{"version":3,"file":"main.e7affc7bc1c36309.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/core/app-template.enum.ts","./src/app/core/core-navbar/core-navbar.component.ts","./src/app/core/core-notification/core-notification.component.ts","./src/app/core/core-routing.module.ts","./src/app/core/core-sidebar/core-sidebar.component.ts","./src/app/core/core.component.ts","./src/app/core/core.module.ts","./src/app/core/modal-terms/modal-terms.component.ts","./src/app/lib/dynamic-form/dynamic-field.directive.ts","./src/app/lib/dynamic-form/dynamic-form.component.ts","./src/app/lib/dynamic-form/dynamic-form.module.ts","./src/app/lib/dynamic-form/field-control.service.ts","./src/app/lib/dynamic-form/models/dynamic-field.interface.ts","./src/app/models/api/autenticacao/contato.ts","./src/app/models/api/comercial/curva-ceva.enum.ts","./src/app/models/api/dados-basicos/enum-status.enum.ts","./src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum.ts","./src/app/models/api/dados-especificos/enum-campo-dinamico-validation-type.enum.ts","./src/app/models/api/dados-especificos/enum-variacoes-dados-especificos.enum.ts","./src/app/models/api/dados-especificos/pdm.ts","./src/app/models/api/elastic/elastic-dashboard-columns.enum.ts","./src/app/models/api/produto/aba.enum.ts","./src/app/models/api/produto/enum-tab-status.enum.ts","./src/app/models/api/response.interface.ts","./src/app/models/api/workflow/enum-sistema-integracao-status.enum.ts","./src/app/pages/dashboard/brand-and-license/brand-and-license.component.ts","./src/app/pages/dashboard/category/category.component.ts","./src/app/pages/dashboard/dashboard-employee/dashboard-employee.component.ts","./src/app/pages/dashboard/dashboard-routing.module.ts","./src/app/pages/dashboard/dashboard-supplier/dashboard-supplier.component.ts","./src/app/pages/dashboard/dashboard-supplier/supplier-list-table/supplier-list-table.component.ts","./src/app/pages/dashboard/dashboard.module.ts","./src/app/pages/dashboard/dashboard/dashboard.component.ts","./src/app/pages/dashboard/department/department.component.ts","./src/app/pages/dashboard/dynamic-field-list/dynamic-field-list.component.ts","./src/app/pages/dashboard/dynamic-form-config/dynamic-form-config-editor/dynamic-form-config-editor.component.ts","./src/app/pages/dashboard/dynamic-form-config/dynamic-form-config-header/dynamic-form-config-header.component.ts","./src/app/pages/dashboard/dynamic-form-config/dynamic-form-config.component.ts","./src/app/pages/dashboard/dynamic-form-config/dynamic-form-config.module.ts","./src/app/pages/dashboard/dynamic-form-config/dynamic-form-config.service.ts","./src/app/pages/dashboard/employee-list/employee-list.component.ts","./src/app/pages/dashboard/license-group/group/group.component.ts","./src/app/pages/dashboard/license-group/hierarchy/hierarchy.component.ts","./src/app/pages/dashboard/license-group/license-group.component.ts","./src/app/pages/dashboard/license-group/license/license.component.ts","./src/app/pages/dashboard/license-group/licensor/licensor.component.ts","./src/app/pages/dashboard/license-group/line/line.component.ts","./src/app/pages/dashboard/log-imports/log-imports.component.ts","./src/app/pages/dashboard/medias/medias.component.ts","./src/app/pages/dashboard/medias/medias.module.ts","./src/app/pages/dashboard/pdm/pdm-form/pdm-form.component.ts","./src/app/pages/dashboard/pdm/pdm-header/pdm-header.component.ts","./src/app/pages/dashboard/pdm/pdm-rule-editor/pdm-rule-editor.component.ts","./src/app/pages/dashboard/pdm/pdm.component.ts","./src/app/pages/dashboard/pdm/pdm.module.ts","./src/app/pages/dashboard/pdm/pdm.service.ts","./src/app/pages/dashboard/product-import/product-import.component.ts","./src/app/pages/dashboard/product-list/components/products-navbar/products-navbar.component.ts","./src/app/pages/dashboard/product-list/product-list-integrations/product-list-integrations.component.ts","./src/app/pages/dashboard/product-list/product-list-integrations/product-list-table-integration/product-list-table-integration.component.ts","./src/app/pages/dashboard/product-list/product-list-integrations/product-list-table-mass-integration/product-list-table-mass-integration.component.ts","./src/app/pages/dashboard/product-list/product-list-table-in-integration/product-list-table-in-integration.component.ts","./src/app/pages/dashboard/product-list/product-list-table-in-registereds/product-list-table-in-registereds.component.ts","./src/app/pages/dashboard/product-list/product-list-table-in-responsable/product-list-table-in-responsable.component.ts","./src/app/pages/dashboard/product-list/product-list-table-in-review/product-list-table-in-review.component.ts","./src/app/pages/dashboard/product-list/product-list-table/product-list-table.component.ts","./src/app/pages/dashboard/product-list/product-list.component.ts","./src/app/pages/dashboard/role-list/role-list.component.ts","./src/app/pages/dashboard/services/dashboard.service.ts","./src/app/pages/dashboard/sublevel/sublevel.component.ts","./src/app/pages/dashboard/supplier-list/supplier-list.component.ts","./src/app/pages/dashboard/xml-list/xml-list-table/xml-list-table.component.ts","./src/app/pages/dashboard/xml-list/xml-list.component.ts","./src/app/pages/dynamic-field-editor/disable-rules.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor-convertions.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor-resolver.service.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor-routing.module.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor.component.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor.module.ts","./src/app/pages/dynamic-field-editor/dynamic-field-editor.service.ts","./src/app/pages/dynamic-field-editor/icons.ts","./src/app/pages/employee/employee/employee-routing.module.ts","./src/app/pages/employee/employee/employee.component.ts","./src/app/pages/employee/employee/employee.module.ts","./src/app/pages/home/home-routing.module.ts","./src/app/pages/home/home.component.ts","./src/app/pages/home/home.module.ts","./src/app/pages/login/login-routing.module.ts","./src/app/pages/login/login-supplier/login-supplier.component.ts","./src/app/pages/login/login.module.ts","./src/app/pages/login/login/login.component.ts","./src/app/pages/not-found/not-found-routing.module.ts","./src/app/pages/not-found/not-found.component.ts","./src/app/pages/not-found/not-found.module.ts","./src/app/pages/product/product-integration/product-integration-routing.module.ts","./src/app/pages/product/product-integration/product-integration.component.ts","./src/app/pages/product/product-integration/product-integration.module.ts","./src/app/pages/product/product/ean-status.directive.ts","./src/app/pages/product/product/helpers/compare-control.validator.ts","./src/app/pages/product/product/helpers/image-required.validator.ts","./src/app/pages/product/product/helpers/online-dun.validator.ts","./src/app/pages/product/product/helpers/online-ean.validator.ts","./src/app/pages/product/product/product-approval/product-approval.component.ts","./src/app/pages/product/product/product-basic-data/product-basic-data.component.ts","./src/app/pages/product/product/product-commercial-data/product-commercial-data.component.ts","./src/app/pages/product/product/product-cost-and-price/product-cost-and-price.component.ts","./src/app/pages/product/product/product-header/product-header.component.ts","./src/app/pages/product/product/product-historic/product-historic-comment/product-historic-comment.component.ts","./src/app/pages/product/product/product-historic/product-historic.component.ts","./src/app/pages/product/product/product-integration/product-integration.component.ts","./src/app/pages/product/product/product-logs-modal/product-logs-modal.component.ts","./src/app/pages/product/product/product-media/product-media-item/product-media-item.component.ts","./src/app/pages/product/product/product-media/product-media.component.ts","./src/app/pages/product/product/product-routing.module.ts","./src/app/pages/product/product/product-specific-data/descriptions-section/descriptions-section.component.ts","./src/app/pages/product/product/product-specific-data/dynamic-data-section/dynamic-data-section.component.ts","./src/app/pages/product/product/product-specific-data/ecommerce-data-section/ecommerce-data-section.component.ts","./src/app/pages/product/product/product-specific-data/pdm-section/pdm-section.component.ts","./src/app/pages/product/product/product-specific-data/product-specific-data.component.ts","./src/app/pages/product/product/product-specific-data/subnivel/subnivel.component.ts","./src/app/pages/product/product/product-specific-data/variations-section/variations-section.component.ts","./src/app/pages/product/product/product-tax-data/nfgnrepor-tributacao.directive.ts","./src/app/pages/product/product/product-tax-data/product-tax-data.component.ts","./src/app/pages/product/product/product-tax-data/tax-data-group-by-type.directive.ts","./src/app/pages/product/product/product.component.ts","./src/app/pages/product/product/product.module.ts","./src/app/pages/product/product/services/convertions.ts","./src/app/pages/product/product/services/logs-modal.service.ts","./src/app/pages/product/product/services/pdm-description-builder.service.ts","./src/app/pages/product/product/services/product-base-entity.class.ts","./src/app/pages/product/product/services/product-basic-data.service.ts","./src/app/pages/product/product/services/product-commercial-data.service.ts","./src/app/pages/product/product/services/product-cost-and-price.service.ts","./src/app/pages/product/product/services/product-historic.service.ts","./src/app/pages/product/product/services/product-media.service.ts","./src/app/pages/product/product/services/product-resolver.service.ts","./src/app/pages/product/product/services/product-specific-data-subnivel.service.ts","./src/app/pages/product/product/services/product-specific-data.service.ts","./src/app/pages/product/product/services/product-tax-data.service.ts","./src/app/pages/product/product/services/product-workflow.service.ts","./src/app/pages/product/product/services/product.service.ts","./src/app/pages/reference/dynamic-form-test/dynamic-form-test.component.ts","./src/app/pages/reference/reference-routing.module.ts","./src/app/pages/reference/reference.component.ts","./src/app/pages/reference/reference.module.ts","./src/app/pages/reset-password/reset-password-routing.module.ts","./src/app/pages/reset-password/reset-password.component.ts","./src/app/pages/reset-password/reset-password.module.ts","./src/app/pages/role/role/role-routing.module.ts","./src/app/pages/role/role/role.component.ts","./src/app/pages/role/role/role.module.ts","./src/app/pages/supplier/city-state.directive.ts","./src/app/pages/supplier/services/convertions.ts","./src/app/pages/supplier/services/supplier-resolver.service.ts","./src/app/pages/supplier/services/supplier.service.ts","./src/app/pages/supplier/supplier-routing.module.ts","./src/app/pages/supplier/supplier.component.ts","./src/app/pages/supplier/supplier.module.ts","./src/app/pages/xml/services/xml-resolver.service.ts","./src/app/pages/xml/services/xml.service.ts","./src/app/pages/xml/xml.component.ts","./src/app/pages/xml/xml.module.ts","./src/app/services/api-http-client.service.ts","./src/app/services/api/autenticacao/api-autenticacao.service.ts","./src/app/services/api/autenticacao/api-estado.service.ts","./src/app/services/api/autenticacao/api-fornecedor.service.ts","./src/app/services/api/autenticacao/api-funcionario.service.ts","./src/app/services/api/autenticacao/api-grupo-permissao.service.ts","./src/app/services/api/autenticacao/api-permissao.service.ts","./src/app/services/api/autenticacao/api-usuario.service.ts","./src/app/services/api/comercial/api-categoria-fornecedor.service.ts","./src/app/services/api/comercial/api-classificacao.service.ts","./src/app/services/api/comercial/api-cluster.service.ts","./src/app/services/api/comercial/api-colecao.service.ts","./src/app/services/api/comercial/api-cvprm-moda.service.ts","./src/app/services/api/comercial/api-dados-comerciais.service.ts","./src/app/services/api/comercial/api-departamento.service.ts","./src/app/services/api/comercial/api-epoca.service.ts","./src/app/services/api/comercial/api-exclusivo-service.ts","./src/app/services/api/comercial/api-exercicio.service.ts","./src/app/services/api/comercial/api-faixa-preco.service.ts","./src/app/services/api/comercial/api-grupo-comprador.service.ts","./src/app/services/api/comercial/api-grupo-service.ts","./src/app/services/api/comercial/api-hierarquia.service.ts","./src/app/services/api/comercial/api-licenca-service.ts","./src/app/services/api/comercial/api-licenciador-service.ts","./src/app/services/api/comercial/api-linha-service.ts","./src/app/services/api/comercial/api-log.service.ts","./src/app/services/api/comercial/api-norma-suprimento.service.ts","./src/app/services/api/comercial/api-padronagem.service.ts","./src/app/services/api/comercial/api-pricefy-dinamicas.service.ts","./src/app/services/api/comercial/api-pricefy-formatos.service.ts","./src/app/services/api/comercial/api-pricefy-temas.service.ts","./src/app/services/api/comercial/api-status-comercial.service.ts","./src/app/services/api/comercial/api-tipo-material.service.ts","./src/app/services/api/comercial/api-tipo-padronagem.service.ts","./src/app/services/api/custo-preco/api-custo-preco-estado.service.ts","./src/app/services/api/custo-preco/api-custo-preco.service.ts","./src/app/services/api/custo-preco/api-log.service.ts","./src/app/services/api/dados-basicos/api-dados-basicos.service.ts","./src/app/services/api/dados-basicos/api-log.service.ts","./src/app/services/api/dados-basicos/api-marca-licensa.service.ts","./src/app/services/api/dados-basicos/api-origem-cst.service.ts","./src/app/services/api/dados-basicos/api-unidade-faturamento.service.ts","./src/app/services/api/dados-especificos/api-campo-dinamico.service.ts","./src/app/services/api/dados-especificos/api-categoria.service.ts","./src/app/services/api/dados-especificos/api-cor-grade.service.ts","./src/app/services/api/dados-especificos/api-dados-especificos.service.ts","./src/app/services/api/dados-especificos/api-departamento.service.ts","./src/app/services/api/dados-especificos/api-form-dinamico.service.ts","./src/app/services/api/dados-especificos/api-global-category.service.ts","./src/app/services/api/dados-especificos/api-log.service.ts","./src/app/services/api/dados-especificos/api-pdm.service.ts","./src/app/services/api/dados-especificos/api-subnivel.service.ts","./src/app/services/api/dados-especificos/api-tamanho-grade.service.ts","./src/app/services/api/dados-fiscais/api-dados-fiscais.service.ts","./src/app/services/api/dados-fiscais/api-grupo.service.ts","./src/app/services/api/dados-fiscais/api-log.service.ts","./src/app/services/api/dados-fiscais/api-ncm-descricao.service.ts","./src/app/services/api/dados-fiscais/api-tipo-excecao.service.ts","./src/app/services/api/dados-fiscais/api-tributacao-cst.service.ts","./src/app/services/api/dados-produto/api-dados-produtos.service.ts","./src/app/services/api/elastic/api-elastic-dashboard.service.ts","./src/app/services/api/historico/api-historico.service.ts","./src/app/services/api/importador/api-importador-planilha.service.ts","./src/app/services/api/importador/api-importador.service.ts","./src/app/services/api/importador/api-templates.service.ts","./src/app/services/api/midia/api-log.service.ts","./src/app/services/api/midia/api-midia.service.ts","./src/app/services/api/relatorio/api-relatorio.service.ts","./src/app/services/api/workflow/api-integracao-em-massa.service.ts","./src/app/services/api/workflow/api-integracao.service.ts","./src/app/services/api/workflow/api-workflow.service.ts","./src/app/services/api/xml/api-xml.service.ts","./src/app/services/auth.service.ts","./src/app/services/component-loader.service.ts","./src/app/services/guards/auth.guard.ts","./src/app/services/guards/can-deactivate.guard.ts","./src/app/services/http.service.ts","./src/app/services/loading.service.ts","./src/app/services/notification.service.ts","./src/app/services/route-data.service.ts","./src/app/services/session.service.ts","./src/app/shared/classes/control-value-accessor-group-mixin.class.ts","./src/app/shared/classes/control-value-accessor-mixin.class.ts","./src/app/shared/classes/error.map.ts","./src/app/shared/data/global-categories.ts","./src/app/shared/decorators/is-allowed.decorator.ts","./src/app/shared/decorators/local-storage.decorator.ts","./src/app/shared/directives/animated-if.directive.ts","./src/app/shared/directives/are-you-sure/are-you-sure-dialog.class.ts","./src/app/shared/directives/are-you-sure/are-you-sure.directive.ts","./src/app/shared/directives/are-you-sure/are-you-sure.module.ts","./src/app/shared/directives/are-you-sure/default-are-you-sure-dialog.class.ts","./src/app/shared/directives/autofocus.directive.ts","./src/app/shared/directives/click-outside.directive.ts","./src/app/shared/directives/control-ref.directive.ts","./src/app/shared/directives/directives.module.ts","./src/app/shared/directives/download.directive.ts","./src/app/shared/directives/is-allowed.directive.ts","./src/app/shared/directives/map-control.directive.ts","./src/app/shared/directives/mouseup-outside.directive.ts","./src/app/shared/directives/open-image.directive.ts","./src/app/shared/directives/readonly.directive.ts","./src/app/shared/directives/upload.directive.ts","./src/app/shared/pipes/cnpj.pipe.ts","./src/app/shared/pipes/count.pipe.ts","./src/app/shared/pipes/cpf.pipe.ts","./src/app/shared/pipes/enum-to-array.pipe.ts","./src/app/shared/pipes/phone.pipe.ts","./src/app/shared/pipes/pipes.module.ts","./src/app/shared/pipes/rangeToArray.pipe.ts","./src/app/shared/pipes/safe.pipe.ts","./src/app/shared/pipes/to-string.pipe.ts","./src/app/shared/shared.module.ts","./src/app/shared/utils/get-unique-id.ts","./src/app/shared/utils/group-by.ts","./src/app/shared/utils/is-function.ts","./src/app/shared/utils/remove-validators-form.ts","./src/app/shared/validators/cep.ts","./src/app/shared/validators/cnpj.ts","./src/app/shared/validators/ean-dun.ts","./src/app/shared/validators/only-integer.ts","./src/app/shared/validators/password.ts","./src/app/ui/card/card-title/card-title.component.ts","./src/app/ui/card/card.module.ts","./src/app/ui/card/card/card.component.ts","./src/app/ui/checkbox/checkbox-group/checkbox-group.component.ts","./src/app/ui/checkbox/checkbox.module.ts","./src/app/ui/checkbox/checkbox/checkbox.component.ts","./src/app/ui/collapse/collapse.module.ts","./src/app/ui/collapse/collapse/collapse.component.ts","./src/app/ui/column-filter/column-filter-item/column-filter-item.component.ts","./src/app/ui/column-filter/column-filter.component.ts","./src/app/ui/column-filter/column-filter.module.ts","./src/app/ui/composition-input/composition-input.component.ts","./src/app/ui/composition-input/composition-input.module.ts","./src/app/ui/cookies/cookies.component.ts","./src/app/ui/cookies/cookies.module.ts","./src/app/ui/dynamic-tab/dynamic-tab-item/dynamic-tab-item.component.ts","./src/app/ui/dynamic-tab/dynamic-tab.component.ts","./src/app/ui/dynamic-tab/dynamic-tab.module.ts","./src/app/ui/empty-pattern/empty-pattern.component.ts","./src/app/ui/empty-pattern/empty-pattern.module.ts","./src/app/ui/general-integration-info/general-integration-info.component.ts","./src/app/ui/general-integration-info/general-integration-info.module.ts","./src/app/ui/icon/icon.component.ts","./src/app/ui/icon/icon.module.ts","./src/app/ui/image-uploader/image-uploader.component.ts","./src/app/ui/image-uploader/image-uploader.module.ts","./src/app/ui/img/img.component.ts","./src/app/ui/img/img.module.ts","./src/app/ui/input-error/input-error.component.ts","./src/app/ui/input-error/input-error.module.ts","./src/app/ui/input-info/input-info.component.ts","./src/app/ui/input-info/input-info.module.ts","./src/app/ui/input/input-group-container/input-group-container.component.ts","./src/app/ui/input/input-group/input-group.component.ts","./src/app/ui/input/input.module.ts","./src/app/ui/input/input/input.component.ts","./src/app/ui/loading/loading-login/loading-login.component.ts","./src/app/ui/loading/loading-wave/loading-wave.component.ts","./src/app/ui/loading/loading.component.ts","./src/app/ui/loading/loading.module.ts","./src/app/ui/modal/alert-dialog.service.ts","./src/app/ui/modal/alert-dialog/alert-dialog.component.ts","./src/app/ui/modal/confirm-dialog.service.ts","./src/app/ui/modal/confirm-dialog/confirm-dialog.component.ts","./src/app/ui/modal/modal.module.ts","./src/app/ui/modal/modal.service.ts","./src/app/ui/modal/modal/modal.component.ts","./src/app/ui/navbar/navbar.component.ts","./src/app/ui/navbar/navbar.module.ts","./src/app/ui/open-image/open-image.component.ts","./src/app/ui/open-image/open-image.module.ts","./src/app/ui/page-title/page-title.component.ts","./src/app/ui/page-title/page-title.module.ts","./src/app/ui/paginator/paginator.component.ts","./src/app/ui/paginator/paginator.module.ts","./src/app/ui/progress-bar/progress-bar.component.ts","./src/app/ui/progress-bar/progress-bar.module.ts","./src/app/ui/radio/radio-group/radio-group.component.ts","./src/app/ui/radio/radio.module.ts","./src/app/ui/radio/radio/radio.component.ts","./src/app/ui/range/range.component.ts","./src/app/ui/range/range.module.ts","./src/app/ui/select/select-option.directive.ts","./src/app/ui/select/select.module.ts","./src/app/ui/select/select/select.component.ts","./src/app/ui/sidebar/sidebar-item/sidebar-item.component.ts","./src/app/ui/sidebar/sidebar.module.ts","./src/app/ui/sidebar/sidebar/sidebar.component.ts","./src/app/ui/tab/tab-content-item/tab-content-item.component.ts","./src/app/ui/tab/tab-content/tab-content.component.ts","./src/app/ui/tab/tab-item-subtitle/tab-item-subtitle.component.ts","./src/app/ui/tab/tab-item-title/tab-item-title.component.ts","./src/app/ui/tab/tab-item/tab-item.component.ts","./src/app/ui/tab/tab.module.ts","./src/app/ui/tab/tab/tab.component.ts","./src/app/ui/table-sort/table-sort-item/table-sort-item.component.ts","./src/app/ui/table-sort/table-sort.directive.ts","./src/app/ui/table-sort/table-sort.module.ts","./src/app/ui/toast/toast.component.ts","./src/app/ui/toast/toast.model.ts","./src/app/ui/toast/toast.module.ts","./src/app/ui/toast/toast.service.ts","./src/app/ui/ui.module.ts","./src/app/ui/video-link-uploader/video-link-uploader.component.ts","./src/app/ui/video-link-uploader/video-link-uploader.module.ts","./src/environments/environment.ts","./src/main.ts","/app/node_modules/moment/locale|sync|/^\\.\\/.*$/"],"sourcesContent":["export enum AppTemplates {\n main = 'main',\n blank = 'blank'\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { SessionService } from 'src/app/services/session.service';\nimport { NotificationService } from 'src/app/services/notification.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'c-core-navbar',\n templateUrl: './core-navbar.component.html',\n styleUrls: ['./core-navbar.component.scss']\n})\nexport class CoreNavbarComponent implements OnInit {\n\n isShowMenu: boolean;\n\n constructor(\n private authServ: AuthService,\n public sessionServ: SessionService,\n public notificationService: NotificationService,\n private readonly router: Router\n ) { }\n\n ngOnInit() {\n }\n\n showMenu(e: Event) {\n e.stopPropagation();\n this.isShowMenu = !this.isShowMenu;\n }\n\n closeMenu() {\n this.isShowMenu = false;\n }\n\n logout() {\n this.authServ.logout();\n }\n\n logoutForgot() {\n this.authServ.logout();\n this.router.navigate(['/login'], {queryParams: {forgot:true}})\n }\n\n formatNameOrEmail(value: string) {\n const separatedValue = value ? value.split(' ') : [];\n if (separatedValue.length > 0) {\n return separatedValue[0];\n }\n return value;\n }\n\n toggleNotification(e: Event) {\n e.stopPropagation();\n this.notificationService.toggle();\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { NotificationService } from 'src/app/services/notification.service';\n\n@Component({\n selector: 'c-core-notification',\n templateUrl: './core-notification.component.html',\n styleUrls: ['./core-notification.component.scss']\n})\nexport class CoreNotificationComponent implements OnInit {\n\n @Input() isVisible: boolean;\n\n constructor(\n private notificationService: NotificationService\n ) { }\n\n ngOnInit() {\n this.notificationService.toggle$.subscribe(res => {\n this.isVisible = res;\n });\n }\n\n toggle() {\n this.isVisible = !this.isVisible;\n }\n\n show() {\n this.isVisible = true;\n }\n\n hide() {\n if (this.isVisible) {\n this.notificationService.toggle();\n }\n this.isVisible = false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { AuthGuard } from '../services/guards/auth.guard';\nimport { AppTemplates } from './app-template.enum';\nimport { SupplierModule } from '../pages/supplier/supplier.module';\nimport { LoginModule } from '../pages/login/login.module';\nimport { ProductModule } from '../pages/product/product/product.module';\nimport { ProductIntegrationModule } from '../pages/product/product-integration/product-integration.module';\nimport { RoleModule } from '../pages/role/role/role.module';\nimport { NotFoundModule } from '../pages/not-found/not-found.module';\nimport { ReferenceModule } from '../pages/reference/reference.module';\nimport { DashboardModule } from '../pages/dashboard/dashboard.module';\nimport { EmployeeModule } from '../pages/employee/employee/employee.module';\nimport { HomeModule } from '../pages/home/home.module';\nimport { ResetPasswordModule } from '../pages/reset-password/reset-password.module';\nimport { DynamicFieldEditorModule } from '../pages/dynamic-field-editor/dynamic-field-editor.module';\nimport { XmlModule } from '../pages/xml/xml.module';\nimport { ConfigTextsModule } from '../pages/config-texts/config-texts.module';\n\nexport const routes: Routes = [\n { path: '', redirectTo: 'dashboard', pathMatch: 'full' },\n {\n path: 'login',\n loadChildren: () => LoginModule,\n data: { template: AppTemplates.blank }\n },\n {\n path: 'home', loadChildren: () => HomeModule\n },\n // {\n // path: 'configuracoes',\n // loadChildren: () => ConfigTextsModule,\n // },\n {\n path: 'reset-password',\n loadChildren: () => ResetPasswordModule,\n data: { template: AppTemplates.blank }\n },\n // Dashboard\n {\n path: 'dashboard',\n loadChildren: () => DashboardModule\n },\n // Supplier\n {\n path: 'supplier',\n loadChildren: () => SupplierModule,\n },\n // Employee\n {\n path: 'employee',\n loadChildren: () => EmployeeModule\n },\n // Product\n {\n path: 'product',\n loadChildren: () => ProductModule,\n },\n {\n path: 'product-integration',\n loadChildren: () => ProductIntegrationModule,\n },\n // Role\n {\n path: 'role',\n loadChildren: () => RoleModule\n },\n // Dynamic field editor\n {\n path: 'dynamic-field-editor',\n loadChildren: () => DynamicFieldEditorModule\n },\n // Not found\n {\n path: 'not-found',\n loadChildren: () => NotFoundModule,\n data: { template: AppTemplates.blank }\n },\n // Reference\n {\n path: 'reference',\n loadChildren: () => ReferenceModule\n },\n {\n path: 'xml',\n loadChildren: () => XmlModule\n },\n // Redirect any route not founded to home\n { path: '**', redirectTo: 'not-found' }\n];\n\n// Set auth guard for all routes\n// If necessary remove auth guard in specific router, just pass the route name\nsetAuthGuardAll('login', 'reset-password', '', '**');\n\n/**\n * Set guard in all routes except informed path\n */\nfunction setAuthGuardAll(...exceptions: string[]) {\n routes.forEach((elem: Route) => {\n if (!exceptions.includes(elem.path)) {\n elem.canActivate = [AuthGuard];\n }\n });\n}\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-core-sidebar',\n templateUrl: './core-sidebar.component.html',\n styleUrls: ['./core-sidebar.component.scss']\n})\nexport class CoreSidebarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, AfterViewChecked, ChangeDetectorRef, HostListener } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport * as waves from 'node-waves';\nimport { LoadingService } from '../services/loading.service';\nimport { AppTemplates } from './app-template.enum';\n\n@Component({\n selector: 'core-root',\n templateUrl: './core.component.html',\n styleUrls: ['./core.component.scss']\n})\nexport class AppComponent implements AfterViewChecked {\n\n template$: Observable;\n loading$: Observable;\n\n constructor(\n private translateServ: TranslateService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private loadingServ: LoadingService,\n private cdRef: ChangeDetectorRef\n ) {\n // this language will be used as a fallback when a translation isn't found in the current language\n this.translateServ.setDefaultLang('pt-br');\n\n // the lang to use, if the lang isn't available, it will use the current loader to get them\n this.translateServ.use('pt-br');\n\n this.initTemplate$();\n this.initWavesEffect();\n\n // Set the loading$ to listen which loading show or hide all\n this.loading$ = this.loadingServ.loading$;\n }\n\n ngAfterViewChecked() {\n this.cdRef.detectChanges();\n }\n\n private initTemplate$() {\n this.template$ = this.router.events.pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => this.activatedRoute.snapshot),\n map(routeSnapshot => routeSnapshot?.root?.firstChild?.data?.template || 'main')\n );\n }\n\n private initWavesEffect() {\n waves.attach('.waves-effect', ['waves-button']);\n waves.attach('.waves-light', ['waves-light']);\n waves.init();\n }\n\n @HostListener('dragleave', ['$event'])\n dragLeave(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n @HostListener('dragover', ['$event'])\n dragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n @HostListener('drop', ['$event'])\n drop(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from \"@angular/cdk/overlay\";\n\nimport { AppRoutingModule } from './core-routing.module';\nimport { AppComponent } from './core.component';\nimport { SharedModule } from '../shared/shared.module';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { SidebarModule } from '../ui/sidebar/sidebar.module';\nimport { NavbarModule } from '../ui/navbar/navbar.module';\nimport { CoreNavbarComponent } from './core-navbar/core-navbar.component';\nimport { CoreSidebarComponent } from './core-sidebar/core-sidebar.component';\nimport { ToastrModule } from 'ngx-toastr';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { LoadingModule } from '../ui/loading/loading.module';\nimport { ImgModule } from '../ui/img/img.module';\nimport { IconModule } from '../ui/icon/icon.module';\nimport { ToastModule } from '../ui/toast/toast.module';\nimport { NgxMaskModule } from 'ngx-mask';\nimport { CoreNotificationComponent } from './core-notification/core-notification.component';\nimport { EmptyPatternModule } from '../ui/empty-pattern/empty-pattern.module';\nimport { ModalTermsComponent } from './modal-terms/modal-terms.component';\nimport { CookiesModule } from '../ui/cookies/cookies.module';\nimport { AuthGuard } from '../services/guards/auth.guard';\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(\n http,\n 'assets/i18n/', // json path\n '.json'\n );\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n CoreNavbarComponent,\n CoreSidebarComponent,\n CoreNotificationComponent,\n ModalTermsComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n AppRoutingModule,\n HttpClientModule,\n HttpClientJsonpModule,\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n }),\n NgxMaskModule.forRoot(),\n ToastrModule.forRoot(),\n SharedModule,\n OverlayModule,\n SidebarModule,\n NavbarModule,\n ImgModule,\n IconModule,\n LoadingModule,\n ToastModule,\n EmptyPatternModule,\n CookiesModule\n ],\n exports: [\n SharedModule\n ],\n providers: [\n AuthGuard\n ],\n bootstrap: [AppComponent]\n})\nexport class CoreModule { }\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ApiAutenticacaoService } from 'src/app/services/api/autenticacao/api-autenticacao.service';\n\ninterface DialogData {\n type: string\n}\n@Component({\n selector: 'c-modal-terms',\n templateUrl: './modal-terms.component.html',\n styleUrls: ['./modal-terms.component.scss']\n})\nexport class ModalTermsComponent implements OnInit {\n\n @Input() type:string\n textTerms = ''\n\n constructor(\n private apiAutenticacaoService: ApiAutenticacaoService\n ) { }\n\n ngOnInit() {\n // this.type == 'terms' ? this.getTerms() : this.getPrivacy()\n }\n\n getTerms():void{\n this.apiAutenticacaoService.getTerms().subscribe(r =>{\n this.textTerms = r.text\n })\n }\n\n getPrivacy():void{\n this.apiAutenticacaoService.getPrivacy().subscribe(r =>{\n this.textTerms = r.text\n })\n }\n}\n","import { Directive, Attribute, TemplateRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[cDynamicField]'\n})\nexport class DynamicFieldDirective {\n @Input('cDynamicFieldType') type = 'default';\n\n constructor(\n public tpl: TemplateRef,\n ) {\n // console.log(this);\n }\n\n}\n","import {\n Component,\n OnInit,\n forwardRef,\n Input,\n ContentChildren,\n QueryList,\n Injector,\n DoCheck,\n OnDestroy,\n NgZone\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroup, NG_VALUE_ACCESSOR, NG_VALIDATORS, Validator, NgControl } from '@angular/forms';\nimport { DynamicField } from './models/dynamic-field.interface';\nimport { FieldControlService } from './field-control.service';\nimport { distinctUntilChanged, startWith } from 'rxjs/operators';\nimport { DynamicFieldDirective } from './dynamic-field.directive';\nimport { DynamicFormConfig } from './models/dyanmic-form.interface';\nimport { Subject } from 'rxjs';\n\ntype Data = object;\ntype OnChangeFn = (data: Data) => any;\ntype OnTouchedFn = () => any;\n\n@Component({\n selector: 'c-dynamic-form',\n templateUrl: './dynamic-form.component.html',\n styleUrls: ['./dynamic-form.component.scss'],\n providers: [\n FieldControlService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DynamicFormComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => DynamicFormComponent),\n multi: true,\n }\n ]\n})\nexport class DynamicFormComponent implements OnInit, DoCheck, ControlValueAccessor, Validator, OnDestroy {\n destroy$ = new Subject();\n\n @ContentChildren(DynamicFieldDirective) dynamicFields: QueryList;\n\n @Input() rules: { [rule: string]: ((df: DynamicFormComponent, field: DynamicField) => any) } = {};\n\n private fieldsByRule: [string, DynamicField][] = [];\n\n // tslint:disable-next-line: variable-name\n _config: DynamicFormConfig;\n @Input() set config(config: DynamicFormConfig) {\n this._config = [];\n // tslint:disable-next-line: forin\n for (const control in this.form.controls) {\n this.form.removeControl(control);\n }\n this.form.reset();\n if (config) {\n for (const c of this.fcs.dynamicFormToControls(config)) {\n this.form.registerControl(c.name, c.control);\n }\n }\n if (this.value) {\n this.form.patchValue(this.value, { emitEvent: false });\n this._config = config;\n } else {\n this._config = config;\n this.resetForm({ emitEvent: false });\n }\n this.form.updateValueAndValidity();\n\n this.fieldsByRule = [];\n this.fieldsByRule = this.ngZone.runOutsideAngular(() => {\n const fieldsByRule: [string, DynamicField][] = [];\n if (this._config) {\n this._config.forEach(c => {\n if (c.rules) {\n c.rules.forEach(r => {\n if (this.rules[r]) {\n fieldsByRule.push([r, c]);\n }\n });\n }\n });\n }\n\n return fieldsByRule;\n });\n\n\n }\n\n @Input() highlightClass = 'highlight';\n form: FormGroup;\n private value: any;\n // private onChange: OnChangeFn;\n private onTouched: OnTouchedFn;\n\n\n private ngControl: NgControl;\n private touched = false;\n\n constructor(\n private injector: Injector,\n private fcs: FieldControlService,\n private ngZone: NgZone,\n ) {\n // console.log('constructor');\n this.form = new FormGroup({});\n }\n\n ngOnInit() {\n this.form.statusChanges.pipe(startWith(this.form.status), distinctUntilChanged()).subscribe(console.log);\n // tslint:disable-next-line: deprecation\n this.ngControl = this.injector.get(NgControl);\n\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n ngDoCheck() {\n this.applyRules();\n\n if (this.ngControl && this.touched !== this.ngControl.touched) {\n this.touched = this.ngControl.touched;\n if (this.touched) {\n this.form.markAllAsTouched();\n }\n }\n }\n\n writeValue(data: Data) {\n // console.log('writing value', data);\n if (data) {\n this.value = data;\n this.form.patchValue(data, { emitEvent: false });\n } else {\n this.value = null;\n this.resetForm();\n }\n }\n\n resetForm(options?: { emitEvent: boolean }) {\n if (this._config) {\n for (const field of this._config) {\n this.form.get(field.id).reset(field.initialValue, options);\n }\n } else {\n this.form.reset();\n }\n }\n\n registerOnChange(fn: OnChangeFn) {\n // console.log('registerOnChange');\n fn(this.form.value);\n // this.form.valueChanges.subscribe(value => console.log('new value', value));\n this.form.valueChanges.subscribe(fn);\n }\n\n registerOnTouched(fn: OnTouchedFn) {\n // console.log('registerOnTouched');\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n validate() {\n return this.form && this.form.invalid ? {\n dynamicForm: this.form.errors\n } : null;\n }\n\n applyRules() {\n this.fieldsByRule.forEach(([rule, field]) => {\n if (this.rules[rule]) { this.rules[rule](this, field); };\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DynamicFormComponent } from './dynamic-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { DynamicFieldDirective } from './dynamic-field.directive';\n\n\n\n@NgModule({\n declarations: [DynamicFormComponent, DynamicFieldDirective],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n exports: [\n DynamicFormComponent,\n DynamicFieldDirective,\n ]\n})\nexport class DynamicFormModule { }\n","import { Injectable } from '@angular/core';\nimport { DynamicField, DynamicFieldValidator, DynamicFieldValidationType } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\nimport { DynamicFormConfig } from 'src/app/lib/dynamic-form/models/dyanmic-form.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FieldControlService {\n\n constructor(\n private fb: FormBuilder\n ) { }\n\n dynamicFormToFormGroup(dynamicFormConfig: DynamicFormConfig) {\n return this.fieldsToFormGroup(dynamicFormConfig);\n }\n\n dynamicFormToControls(dynamicFormConfig: DynamicFormConfig) {\n return this.fieldsToControl(dynamicFormConfig);\n }\n\n private fieldsToControl(fields: DynamicField[] = []) {\n return fields.map(f => ({ name: f.id, control: this.fieldToControl(f) }));\n }\n\n private fieldsToFormGroup(fields: DynamicField[] = []): FormGroup {\n const group: object = {};\n\n for (const field of fields) {\n group[field.id] = this.fieldToControl(field);\n }\n\n return this.fb.group(group);\n }\n\n private fieldToControl(field: DynamicField): FormControl {\n return this.fb.control(\n field.initialValue,\n {\n validators: this.dynamicValidator(field.dynamicFieldValidator),\n // updateOn: field.updateOn || 'change',\n }\n );\n }\n\n private dynamicValidator(validators: DynamicFieldValidator[] = []) {\n const validationsMap = new Map([\n [DynamicFieldValidationType.Pattern, (v: DynamicFieldValidator, c: FormControl) => Validators.pattern(v.pattern)(c)],\n [DynamicFieldValidationType.Required, (v: DynamicFieldValidator, c: FormControl) => Validators.required(c)],\n [DynamicFieldValidationType.Min, (v: DynamicFieldValidator, c: FormControl) => Validators.min(v.value)(c)],\n [DynamicFieldValidationType.MinLength, (v: DynamicFieldValidator, c: FormControl) => Validators.minLength(v.value)(c)],\n [DynamicFieldValidationType.Max, (v: DynamicFieldValidator, c: FormControl) => Validators.max(v.value)(c)],\n [DynamicFieldValidationType.MaxLength, (v: DynamicFieldValidator, c: FormControl) => Validators.maxLength(v.value)(c)],\n [DynamicFieldValidationType.Email, (v: DynamicFieldValidator, c: FormControl) => Validators.email(c)],\n ]);\n\n return (control: FormControl) => {\n const errors = validators.map(v => validationsMap.get(v.type)(v, control) && v).filter(v => !!v);\n return errors.length ? ({\n dynamicValidator: errors\n }) : null;\n };\n }\n}\n","export interface DynamicField {\n id: string;\n label: string;\n type: any;\n\n initialValue?: any;\n dynamicFieldValidator?: DynamicFieldValidator[];\n // updateOn?: 'change' | 'blur'; // remover?\n\n layout?: DynamicFieldLayout;\n options?: FormFieldOption[];\n typeAttribute?: string;\n\n // configuraçãoes extras\n [key: string]: any;\n prefix?: string;\n sufix?: string;\n iconName?: string;\n mask?: string;\n rules?: string[];\n min?: number;\n max?: number;\n\n hide?: boolean;\n}\n\nexport interface DynamicFieldValidator {\n type: DynamicFieldValidationType;\n pattern?: string;\n value?: number;\n errorMessage: string;\n}\n\nexport enum DynamicFieldValidationType {\n Pattern = 0,\n Required = 1,\n Min = 2,\n MinLength = 3,\n Max = 4,\n MaxLength = 5,\n Email = 6,\n // JsonScheme = 7,\n}\n\nexport interface DynamicFieldLayout {\n size?: number;\n highlight?: boolean;\n\n /** usar com cautela */\n // styles?: {[key: string]: string | number };\n /** usar com cautela */\n // classes?: string[];\n}\n\nexport interface FormFieldOption {\n optionId: string;\n description: string;\n}\n\n","export interface Contato {\n email: string;\n nome: string;\n tipo: EnumTipoContato;\n}\n\nexport enum EnumTipoContato {\n Comercial = 0,\n Financeiro = 1,\n Fiscal = 2,\n}\n\n","export enum CurvaCEVAEnum {\n A = 0,\n B = 1,\n C = 2\n}\n","export enum EnumStatus {\n /**\n * Quando o item esta sendo salvado pelo auto-save\n * Aba: Novo\n */\n Draft = 0,\n /**\n * Quando o item foi validado e salvo, aguradando ser revisado pelo funcionário\n * Aba: Em Revisão\n */\n Revisao = 1,\n /**\n * Quando o item foi validado pelo funcionário e foi reprovado\n * Aba: Inconsistências\n */\n Reprovado = 2,\n /**\n * QUando o funcionário validou o item e ele foi enviado para os agregadores\n * Aba: Cadastrados\n */\n Finalizado = 3,\n /**\n * Item inativado\n * Aba: Inativo\n */\n Inativo = 4,\n}\n","export enum EnumCampoDinamicoType {\n Text = 0,\n SimpleSelect = 1,\n Radio = 2,\n MultipleSelect = 3,\n CheckBox = 4,\n Number = 5,\n Range = 6,\n Composition = 7,\n}\n","export enum EnumCampoDinamicoValidationType {\n Pattern = 0,\n Required = 1,\n Min = 2,\n MinLength = 3,\n Max = 4,\n MaxLength = 5,\n Email = 6\n}\n","export enum EnumVariacoesDadosEspecificos {\n Sortimento = 0,\n Grade = 1,\n Nenhum = 2,\n}\n","import { RegraPDM } from './regra-pdm';\n\nexport interface PDM {\n id: string;\n departamentoId: string;\n categoriaId?:\tstring;\n subnivelId?: string;\n tipo: number;\n regraDescricaoLonga: RegraPDM;\n regraDescricaoEstendida: RegraPDM;\n regraTituloDePublicacao?: RegraPDM;\n regraDescricaoEcommerce?: RegraPDM;\n\n}\n\nexport enum PDMTipo {\n departamento = 0,\n categoria = 1,\n subnivel = 2\n}\n","export enum EnumElasticDashboardColumns {\n reference = 'DadosProduto.Referencia.keyword',\n description = 'DadosProduto.Header.DescricaoProduto.keyword',\n category = 'DadosProduto.Categoria.keyword',\n ean = 'DadosProduto.Header.EAN',\n dun = 'DadosProduto.DUN',\n department = 'DadosProduto.Departamento',\n subLevel = 'DadosProduto.Subnivel',\n supplierCodSap = 'DadosProduto.Header.SAPFornecedor.keyword',\n supplierName = 'DadosProduto.Header.NomeFornecedor.keyword',\n brand = 'DadosProduto.Marca',\n license = 'DadosBasicos.License',\n cstOrigin = 'DadosBasicos.OrigemCST',\n id = 'DadosProduto.Id',\n ncm = 'DadosBasicos.NCM',\n hierarchy = 'DadosProduto.Hierarquia',\n codSap = 'DadosProduto.DadosSap.CodigoSap',\n idSkuVex = 'DadosProduto.DadosVtex.Skus.IdVtex',\n idVex = 'DadosProduto.DadosVtex.IdVtex',\n buyerGroup = 'Comercial.GrupoComprador',\n materialType = 'Comercial.TipoMaterial'\n}\n","export enum EnumAba {\n dadosBasicos = 0,\n dadosEspecificos = 1,\n midia = 2,\n dadosFiscais = 3,\n custo = 4,\n comercial = 5\n}\n","export enum EnumTabStatus {\n draft = 0,\n review = 1,\n inconsistency = 2,\n registered = 3,\n inactive = 4,\n integration = 5,\n inIntegration = 6,\n massIntegration = 7,\n responsable = 8\n}\n","export interface IResponse {\n data?: T;\n count?: number;\n message?: string;\n}\n\nexport function isResponse(response: any): response is IResponse {\n try {\n return response\n && (response.message ? typeof response.message === 'string' : true)\n && (response.count ? typeof response.count === 'number' : true)\n && (response.error === undefined);\n } catch {\n return false;\n }\n}\n","export enum EnumSistemaIntegracaoStatus {\n NaoIntegrado = 0,\n Integrado = 1,\n ErroAoIntegrar = 2,\n PrecisaSerAtualizado = 3\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiMarcaLicensaService } from 'src/app/services/api/dados-basicos/api-marca-licensa.service';\nimport { Marca } from 'src/app/models/api/dados-basicos/marca';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { BehaviorSubject } from 'rxjs';\nimport { skip, debounceTime } from 'rxjs/operators';\nimport { FormControl, Validators } from '@angular/forms';\n\n@Component({\n selector: 'c-brand-and-license',\n templateUrl: './brand-and-license.component.html',\n styleUrls: ['./brand-and-license.component.scss']\n})\nexport class BrandAndLicenseComponent implements OnInit {\n\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n brandAndLicenseData: MarcaLicensaEditable[];\n brandAndLicensePaginatedData: MarcaLicensaEditable[];\n brandAndLicenseFilteredData: MarcaLicensaEditable[];\n columns: string[] = ['name', 'actions'];\n search$ = new BehaviorSubject('');\n newBrand = new FormControl(undefined);\n\n constructor(\n private apiMarcaLicensaService: ApiMarcaLicensaService\n ) {\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadBrandAndLicenseData();\n }\n\n loadBrandAndLicenseData() {\n this.apiMarcaLicensaService.getAll().subscribe(res => {\n this.brandAndLicenseData = res.data as MarcaLicensaEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: MarcaLicensaEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: MarcaLicensaEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n save(data: MarcaLicensaEditable) {\n if (!data) {\n const description = this.newBrand.value.toUpperCase();\n this.apiMarcaLicensaService.insert({ descricao: description }).subscribe(res => {\n this.newBrand.reset();\n this.loadBrandAndLicenseData();\n });\n } else {\n const description = data.newDescription.toUpperCase();\n this.apiMarcaLicensaService.update({ id: data.id, descricao: description }).subscribe(res => {\n data.descricao = data.newDescription;\n data.isEditActive = false;\n });\n }\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.brandAndLicenseData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.brandAndLicensePaginatedData = this.brandAndLicenseData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.brandAndLicenseFilteredData = this.brandAndLicenseData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n return regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n });\n } else {\n this.brandAndLicenseFilteredData = undefined;\n }\n });\n }\n\n}\n\ninterface MarcaLicensaEditable extends Marca {\n isEditActive: boolean;\n newDescription: string;\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { skip, debounceTime } from 'rxjs/operators';\nimport { FormControl, FormGroup, Validators, FormBuilder } from '@angular/forms';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { DashboardService } from '../services/dashboard.service';\nimport { CategoriaGlobal } from 'src/app/models/api/dados-especificos/categoria-global.interface';\nimport { ApiCategoriaGlobalService } from 'src/app/services/api/dados-especificos/api-global-category.service';\nimport { FormDinamicoCampo } from 'src/app/models/api/dados-especificos/form-dinamico';\n\n@Component({\n selector: 'c-category',\n templateUrl: './category.component.html',\n styleUrls: ['./category.component.scss']\n})\nexport class CategoryComponent implements OnInit, OnDestroy {\n\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n categoryData: CategoryEditable[];\n categoryPaginatedData: CategoryEditable[];\n categoryFilteredData: CategoryEditable[];\n columns: string[] = ['name', 'department', 'categoryId', 'globalCategory', 'active', 'actions'];\n search$ = new BehaviorSubject('');\n departmentsData: Departamento[];\n form: FormGroup;\n departmentChange$: Subscription;\n globalCategoriesData: CategoriaGlobal[];\n listStock: string[] = [];\n\n constructor(\n private apiCategoriaService: ApiCategoriaService,\n private apiDepartamentoService: ApiDepartamentoService,\n private dashboardService: DashboardService,\n private fb: FormBuilder,\n private apiGlobalCategoryService: ApiCategoriaGlobalService\n ) {\n this.getStock()\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n getStock() {\n this.listStock = [\"SPECIFICATION\", \"LIST\", \"RADIO\", \"COMBO\"];\n }\n\n async ngOnInit() {\n await this.loadDepartmentsData();\n this.loadCategoryData();\n this.loadGlobalCategories();\n\n // Listen department changes\n this.departmentChange$ = this.dashboardService.departmentChange$.subscribe(() => {\n this.loadDepartmentsData();\n });\n }\n\n ngOnDestroy() {\n if (this.departmentChange$) {\n this.departmentChange$.unsubscribe();\n }\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n metaTag: [null],\n stockKeepingUnitSelectionMode: [null],\n departamentoId: [null],\n globalCategoryId: [null],\n cloneFrom: [null],\n categoryId: 0\n });\n }\n\n loadGlobalCategories() {\n this.apiGlobalCategoryService.getAll().subscribe(res => {\n this.globalCategoriesData = res;\n });\n }\n\n async loadDepartmentsData() {\n const res = await this.apiDepartamentoService.getAllAtivosInativos().toPromise();\n this.departmentsData = res.data;\n }\n\n loadCategoryData() {\n this.apiCategoriaService.getAllAtivosInativos().subscribe(res => {\n this.categoryData = res.data as CategoryEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: CategoryEditable) {\n data.newDescription = data.descricao;\n data.newDepartmentId = data.departamentoId;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = true;\n }\n\n cancelEdit(data: CategoryEditable) {\n data.newDescription = data.descricao;\n data.newDepartmentId = data.departamentoId;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = false;\n }\n\n async save(data: CategoryEditable) {\n if (!data) {\n const category: Categoria = this.form.value;\n if (category.categoryId == null){\n category.categoryId = 0;\n }\n const { cloneFrom } = this.form.value;\n category.descricao = category.descricao.toUpperCase();\n category.camposList = this.getCamposList(cloneFrom);\n\n await this.apiCategoriaService.insert(category).toPromise();\n this.form.reset();\n this.loadCategoryData();\n } else {\n const description = data.newDescription.toUpperCase();\n const departmentId = data.newDepartmentId;\n const globalCategoryId = data.newGlobalCategoryId;\n const camposList = data.camposList;\n\n await this.apiCategoriaService.update({\n id: data.id, descricao: description, departamentoId: departmentId, globalCategoryId, camposList\n }).toPromise();\n data.descricao = description;\n data.departamentoId = departmentId;\n data.isEditActive = false;\n }\n\n this.dashboardService.categoryChange$.next();\n }\n\n async changeEnableDisable(data: CategoryEditable) {\n try {\n await this.apiCategoriaService.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n\n }\n this.dashboardService.categoryChange$.next();\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.categoryData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.categoryPaginatedData = this.categoryData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n getCamposList(categoryId: string): FormDinamicoCampo[] {\n let categories = this.categoryData.filter(\n c => c.id === categoryId);\n\n return categories == null || categories.length == 0 ? [] : categories[0].camposList;\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.categoryFilteredData = this.categoryData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const category = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n const departamento = regex.test(this.departmentIdToDescription(elem.departamentoId.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')));\n const categoryId = regex.test(String(elem.categoryId));\n return category || departamento || categoryId;\n });\n } else {\n this.categoryFilteredData = undefined;\n }\n });\n }\n\n departmentIdToDescription(id: string) {\n const department = this.departmentsData.find(elem => elem.id == id);\n\n if (department) {\n return department.descricao;\n }\n }\n\n globalCategoryIdToDescription(id: string) {\n const globalCategory = this.globalCategoriesData.find(elem => elem.id == id);\n\n if (globalCategory) {\n return globalCategory.descricao;\n }\n }\n\n get canCreate() {\n return this.descricao.value && this.departamentoId.value && this.globalCategoryId.value;\n }\n\n // Form gets\n get descricao() { return this.form.get('descricao'); }\n get departamentoId() { return this.form.get('departamentoId'); }\n get globalCategoryId() { return this.form.get('globalCategoryId'); }\n}\n\ninterface CategoryEditable extends Categoria {\n isEditActive: boolean;\n newDescription: string;\n newDepartmentId: string;\n newGlobalCategoryId: string;\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-dashboard-employee',\n templateUrl: './dashboard-employee.component.html',\n styleUrls: ['./dashboard-employee.component.scss']\n})\nexport class DashboardEmployeeComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { DashboardComponent } from './dashboard/dashboard.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: DashboardComponent,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class DashboardRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-dashboard-supplier',\n templateUrl: './dashboard-supplier.component.html',\n styleUrls: ['./dashboard-supplier.component.scss']\n})\nexport class DashboardSupplierComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Fornecedor } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiFornecedorService } from 'src/app/services/api/autenticacao/api-fornecedor.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\n\n@Component({\n selector: 'c-supplier-list-table',\n templateUrl: './supplier-list-table.component.html',\n styleUrls: ['./supplier-list-table.component.scss']\n})\nexport class SupplierListTableComponent implements OnInit {\n @Output() listUpdated = new EventEmitter();\n @Input() dataSource: Fornecedor[];\n columns: string[] = ['fornecedor', 'cnpj', 'sap', 'responsavel', 'local', 'actions'];\n\n constructor(\n private apiFornecedor: ApiFornecedorService,\n private toastService: ToastService,\n ) { }\n\n ngOnInit() {\n }\n\n delete(id: string) {\n this.apiFornecedor.delete(id).subscribe(() => {\n this.listUpdated.emit();\n });\n }\n\n redefinePassword(id: string) {\n this.apiFornecedor.redefinePassword(id).subscribe(res => {\n if(res == null){\n this.toastService.toast('Ocorreu um erro ao redefinir a senha!', ToastType.error);\n }\n else{\n this.toastService.toast('Senha redefinida com sucesso!', ToastType.success);\n }\n });\n }\n\n}\n","import { ProductListTableInReviewComponent } from './product-list/product-list-table-in-review/product-list-table-in-review.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DashboardRoutingModule } from './dashboard-routing.module';\nimport { ProductListComponent } from './product-list/product-list.component';\nimport { SupplierListComponent } from './supplier-list/supplier-list.component';\nimport { DashboardSupplierComponent } from './dashboard-supplier/dashboard-supplier.component';\nimport { DashboardEmployeeComponent } from './dashboard-employee/dashboard-employee.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { TabModule } from 'src/app/ui/tab/tab.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { PageTitleModule } from 'src/app/ui/page-title/page-title.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { PaginatorModule } from 'src/app/ui/paginator/paginator.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { EmptyPatternModule } from 'src/app/ui/empty-pattern/empty-pattern.module';\nimport { ProductListTableComponent } from './product-list/product-list-table/product-list-table.component';\n// tslint:disable-next-line: max-line-length\nimport { ProductListTableIntegrationComponent } from './product-list/product-list-integrations/product-list-table-integration/product-list-table-integration.component';\nimport { ProductImportComponent } from './product-import/product-import.component';\nimport { ProductsNavbarComponent } from './product-list/components/products-navbar/products-navbar.component';\nimport { CollapseModule } from 'src/app/ui/collapse/collapse.module';\nimport { DashboardComponent } from './dashboard/dashboard.component';\nimport { SupplierListTableComponent } from './dashboard-supplier/supplier-list-table/supplier-list-table.component';\nimport { EmployeeListComponent } from './employee-list/employee-list.component';\nimport { RoleListComponent } from './role-list/role-list.component';\n// tslint:disable-next-line: max-line-length\nimport { ProductListTableInIntegrationComponent } from './product-list/product-list-table-in-integration/product-list-table-in-integration.component';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { ColumnFilterModule } from 'src/app/ui/column-filter/column-filter.module';\nimport { TableSortModule } from 'src/app/ui/table-sort/table-sort.module';\nimport { BrandAndLicenseComponent } from './brand-and-license/brand-and-license.component';\nimport { LicenseGroupComponent } from './license-group/license-group.component';\nimport { LicenseComponent } from './license-group/license/license.component';\nimport { LicensorComponent } from './license-group/licensor/licensor.component';\nimport { HierarchyComponent } from './license-group/hierarchy/hierarchy.component';\nimport { CommercialGroupComponent } from './license-group/group/group.component';\nimport { CommercialLineComponent } from './license-group/line/line.component';\nimport { DepartmentComponent } from './department/department.component';\nimport { CategoryComponent } from './category/category.component';\nimport { DynamicFieldListComponent } from './dynamic-field-list/dynamic-field-list.component';\nimport { PdmModule } from './pdm/pdm.module';\nimport { DynamicFormConfigModule } from './dynamic-form-config/dynamic-form-config.module';\nimport { SublevelComponent } from './sublevel/sublevel.component';\nimport { DashboardService } from './services/dashboard.service';\n// tslint:disable-next-line: max-line-length\nimport { ProductListIntegrationsComponent } from './product-list/product-list-integrations/product-list-integrations.component';\n// tslint:disable-next-line: max-line-length\nimport { ProductListTableMassIntegrationComponent } from './product-list/product-list-integrations/product-list-table-mass-integration/product-list-table-mass-integration.component';\nimport { XmlListComponent } from './xml-list/xml-list.component';\nimport { XmlListTableComponent } from './xml-list/xml-list-table/xml-list-table.component';\nimport { MediasModule } from \"./medias/medias.module\";\nimport { LogImportsComponent } from './log-imports/log-imports.component';\nimport { ProductListTableResponsableComponent } from './product-list/product-list-table-in-responsable/product-list-table-in-responsable.component';\nimport { ProductListTableRegisteredsComponent } from './product-list/product-list-table-in-registereds/product-list-table-in-registereds.component';\n\n@NgModule({\n declarations: [\n ProductListComponent,\n ProductListTableComponent,\n ProductListTableIntegrationComponent,\n ProductListTableInIntegrationComponent,\n ProductImportComponent,\n ProductsNavbarComponent,\n SupplierListComponent,\n DashboardSupplierComponent,\n DashboardEmployeeComponent,\n DashboardComponent,\n SupplierListTableComponent,\n EmployeeListComponent,\n RoleListComponent,\n BrandAndLicenseComponent,\n LicenseGroupComponent,\n LicenseComponent,\n LicensorComponent,\n HierarchyComponent,\n CommercialGroupComponent,\n CommercialLineComponent,\n DepartmentComponent,\n CategoryComponent,\n DynamicFieldListComponent,\n SublevelComponent,\n ProductListTableMassIntegrationComponent,\n ProductListIntegrationsComponent,\n XmlListComponent,\n XmlListTableComponent,\n ProductListTableInReviewComponent,\n LogImportsComponent,\n ProductListTableResponsableComponent,\n ProductListTableRegisteredsComponent\n ],\n imports: [\n CommonModule,\n DashboardRoutingModule,\n SharedModule,\n TabModule,\n CardModule,\n PageTitleModule,\n IconModule,\n PaginatorModule,\n InputModule,\n EmptyPatternModule,\n CollapseModule,\n CheckboxModule,\n SelectModule,\n ColumnFilterModule,\n TableSortModule,\n PdmModule,\n DynamicFormConfigModule,\n MediasModule\n ],\n providers: [\n DashboardService\n ]\n})\nexport class DashboardModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Usuario } from 'src/app/models/api/autenticacao/usuario';\nimport { ApiUsuarioService } from 'src/app/services/api/autenticacao/api-usuario.service';\nimport { SessionService } from 'src/app/services/session.service';\n\n@Component({\n selector: 'c-dashboard',\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.scss']\n})\nexport class DashboardComponent implements OnInit {\n\n user: Usuario;\n isFornecedor: boolean;\n\n constructor(\n public sessionService: SessionService,\n private apiUsuarioService: ApiUsuarioService,\n ) { }\n\n async ngOnInit() {\n this.user = this.sessionService.user;\n this.user.id = this.sessionService.user.id;\n this.user.gruposPermissaoIdList = this.sessionService.user.permissions;\n this.user.login = this.sessionService.user.email;\n this.user.nomeFantasiaFornecedor = this.sessionService.user.fantasyName;\n this.user.sapFornecedor = this.sessionService.user.sapCode;\n this.isFornecedor = this.sessionService.user.role !== \"funcionario\" ? true : false;\n\n // this.user = await this.apiUsuarioService.getByLogin(this.sessionService.user.email).toPromise() as Usuario;\n // this.isFornecedor = this.user.fornecedorId !== null && this.user.funcionarioId == null ? true : false;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { BehaviorSubject } from 'rxjs';\nimport { skip, debounceTime, delay } from 'rxjs/operators';\nimport { FormControl, FormGroup, Validators, FormBuilder } from '@angular/forms';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { DashboardService } from '../services/dashboard.service';\nimport { CategoriaGlobal } from 'src/app/models/api/dados-especificos/categoria-global.interface';\nimport { ApiCategoriaGlobalService } from 'src/app/services/api/dados-especificos/api-global-category.service';\nimport { FormDinamicoCampo } from 'src/app/models/api/dados-especificos/form-dinamico';\n\n@Component({\n selector: 'c-department',\n templateUrl: './department.component.html',\n styleUrls: ['./department.component.scss']\n})\nexport class DepartmentComponent implements OnInit {\n\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n departmentData: DepartmentEditable[];\n departmentPaginatedData: DepartmentEditable[];\n departmentFilteredData: DepartmentEditable[];\n columns: string[] = ['name', 'categoryId', 'globalCategory', 'active', 'actions'];\n search$ = new BehaviorSubject('');\n form: FormGroup;\n enableDisableForm: FormGroup;\n globalCategoriesData: CategoriaGlobal[];\n listStock: string[] = [];\n\n constructor(\n private apiDepartamentoService: ApiDepartamentoService,\n private dashboardService: DashboardService,\n private fb: FormBuilder,\n private apiGlobalCategoryService: ApiCategoriaGlobalService\n ) {\n this.getStock()\n this.createForm();\n this.buildEnableDisableForm();\n this.listenPaginator();\n this.listenSearch();\n }\n getStock() {\n this.listStock = [\"SPECIFICATION\", \"LIST\", \"RADIO\", \"COMBO\"];\n }\n\n ngOnInit() {\n this.loadDepartmentData();\n this.loadGlobalCategories();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n metaTag: [null],\n stockKeepingUnitSelectionMode: [null],\n globalCategoryId: [null],\n cloneFrom: [null],\n categoryId: 0\n });\n }\n buildEnableDisableForm() {\n this.enableDisableForm = this.fb.group({\n enable: [null],\n });\n }\n\n loadGlobalCategories() {\n this.apiGlobalCategoryService.getAll().subscribe(res => {\n this.globalCategoriesData = res;\n });\n }\n\n loadDepartmentData() {\n this.apiDepartamentoService.getAllAtivosInativos().subscribe(res => {\n this.departmentData = res.data as DepartmentEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: DepartmentEditable) {\n data.newDescription = data.descricao;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = true;\n }\n\n cancelEdit(data: DepartmentEditable) {\n data.newDescription = data.descricao;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = false;\n }\n\n async changeEnableDisable(data: DepartmentEditable) {\n try {\n await this.apiDepartamentoService.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n\n }\n // await this.apiDepartamentoService.delete(data.id).toPromise();\n this.dashboardService.departmentChange$.next();\n }\n\n async save(data: DepartmentEditable) {\n if (!data) {\n const { descricao, categoryId, metaTag, stockKeepingUnitSelectionMode, globalCategoryId, cloneFrom} = this.form.value;\n if (categoryId == null){\n await this.apiDepartamentoService.insert({ descricao: descricao.toUpperCase(), categoryId: 0, metaTag: metaTag, stockKeepingUnitSelectionMode: stockKeepingUnitSelectionMode, globalCategoryId, camposList: this.getCamposList(cloneFrom) }).toPromise();\n }\n else{\n await this.apiDepartamentoService.insert({ descricao: descricao.toUpperCase(), categoryId: categoryId, metaTag: metaTag, stockKeepingUnitSelectionMode: stockKeepingUnitSelectionMode, globalCategoryId, camposList: this.getCamposList(cloneFrom) }).toPromise();\n }\n this.form.reset();\n this.loadDepartmentData();\n } else {\n const id = data.id;\n const descricao = data.newDescription.toUpperCase();\n const globalCategoryId = data.newGlobalCategoryId;\n const camposList = data.camposList;\n\n await this.apiDepartamentoService.update({ id, descricao, globalCategoryId, camposList }).toPromise();\n data.descricao = descricao;\n data.isEditActive = false;\n }\n\n this.dashboardService.departmentChange$.next();\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.departmentData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.departmentPaginatedData = this.departmentData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.departmentFilteredData = this.departmentData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const department = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n const categoryId = regex.test(String(elem.categoryId));\n return department || categoryId ;\n });\n } else {\n this.departmentFilteredData = undefined;\n }\n });\n }\n\n globalCategoryIdToDescription(id: string) {\n const globalCategory = this.globalCategoriesData.find(elem => elem.id == id);\n\n if (globalCategory) {\n return globalCategory.descricao;\n }\n }\n\n getCamposList(departmentId: string): FormDinamicoCampo[] {\n let departments = this.departmentData.filter(\n d => d.id === departmentId);\n\n return departments == null || departments.length == 0 ? [] : departments[0].camposList;\n }\n\n get canCreate() {\n return this.descricao.value && this.globalCategoryId.value;\n }\n\n // Form gets\n get descricao() { return this.form.get('descricao'); }\n get globalCategoryId() { return this.form.get('globalCategoryId'); }\n\n}\n\ninterface DepartmentEditable extends Departamento {\n isEditActive: boolean;\n newDescription: string;\n newGlobalCategoryId: string;\n}\n\n\n","import { Component, AfterViewInit } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { skip, debounceTime } from 'rxjs/operators';\n\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\n\n@Component({\n selector: 'c-dynamic-field-list',\n templateUrl: './dynamic-field-list.component.html',\n styleUrls: ['./dynamic-field-list.component.scss']\n})\nexport class DynamicFieldListComponent implements AfterViewInit {\n\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n data: CampoDinamico[];\n paginatedData: CampoDinamico[];\n filteredData: CampoDinamico[];\n columns: string[] = ['name', 'createdAt', 'actions'];\n search$ = new BehaviorSubject('');\n\n constructor(\n private apiCampoDinamicoService: ApiCampoDinamicoService\n ) {\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngAfterViewInit() {\n this.loadData();\n }\n\n loadData() {\n this.apiCampoDinamicoService.get().subscribe(res => {\n this.data = res;\n this.paginate(this.paginator$.value);\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.data) {\n const startAt = (data.page - 1) * data.pageLength;\n this.paginatedData = this.data.slice(startAt, startAt + data.pageLength);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.filteredData = this.data.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n return regex.test(elem.label.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n });\n } else {\n this.filteredData = undefined;\n }\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicFormConfigService } from '../dynamic-form-config.service';\n\n@Component({\n selector: 'c-dynamic-form-config-editor',\n templateUrl: './dynamic-form-config-editor.component.html',\n styleUrls: ['./dynamic-form-config-editor.component.scss']\n})\nexport class DynamicFormConfigEditorComponent implements OnInit {\n\n constructor(\n public dynamicFormConfigService: DynamicFormConfigService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicFormConfigService } from '../dynamic-form-config.service';\n\n@Component({\n selector: 'c-dynamic-form-config-header',\n templateUrl: './dynamic-form-config-header.component.html',\n styleUrls: ['./dynamic-form-config-header.component.scss']\n})\nexport class DynamicFormConfigHeaderComponent implements OnInit {\n\n constructor(\n public dynamicFormConfigService: DynamicFormConfigService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicFormConfigService } from './dynamic-form-config.service';\n\n@Component({\n selector: 'c-dynamic-form-config',\n templateUrl: './dynamic-form-config.component.html',\n styleUrls: ['./dynamic-form-config.component.scss'],\n providers: [\n DynamicFormConfigService\n ]\n})\nexport class DynamicFormConfigComponent implements OnInit {\n\n constructor(\n public dynamicFormConfigService: DynamicFormConfigService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicFormConfigComponent } from './dynamic-form-config.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { CollapseModule } from 'src/app/ui/collapse/collapse.module';\nimport { DynamicFormConfigHeaderComponent } from './dynamic-form-config-header/dynamic-form-config-header.component';\nimport { DynamicFormConfigEditorComponent } from './dynamic-form-config-editor/dynamic-form-config-editor.component';\n\n\n@NgModule({\n declarations: [\n DynamicFormConfigComponent,\n DynamicFormConfigHeaderComponent,\n DynamicFormConfigEditorComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n InputModule,\n SelectModule,\n CheckboxModule,\n RadioModule,\n CardModule,\n IconModule,\n ModalModule,\n CollapseModule\n ],\n exports: [\n DynamicFormConfigComponent\n ]\n})\nexport class DynamicFormConfigModule { }\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { Observable, combineLatest, of, defer, Subscription } from 'rxjs';\nimport { map, shareReplay, startWith, tap } from 'rxjs/operators';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { ApiFormDinamicoService } from 'src/app/services/api/dados-especificos/api-form-dinamico.service';\nimport { FormDinamicoCampo, FormDinamico } from 'src/app/models/api/dados-especificos/form-dinamico';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { DashboardService } from '../services/dashboard.service';\n\ninterface HeaderConfig {\n departamentoId: string;\n categoriaId: string;\n subnivelId: string;\n}\n\ninterface DynamicFormConfigForm {\n departamentoId?: string;\n categoriaId?: string;\n subnivelId?: string;\n camposList: string[];\n}\n\n@Injectable()\nexport class DynamicFormConfigService implements OnDestroy {\n //#region headerForm\n headerForm: FormGroup;\n departamentoControl: FormControl;\n categoriaControl: FormControl;\n subnivelControl: FormControl;\n\n departamentos$: Observable;\n categorias$: Observable;\n subniveis$: Observable;\n\n departamentoId$: Observable;\n categoriaId$: Observable;\n subnivelId$: Observable;\n\n filteredCategorias$: Observable;\n filteredSubniveis$: Observable;\n // #endregion\n\n // #beginregion dynamicFormConfigForm\n dynamicFormConfigForm: FormGroup;\n campoDinamicosFormArray: FormArray;\n showDFCForm = false;\n currentDFCTitle$: Observable;\n dynamicFields: { id: string; descricao: string }[];\n dynamicFieldsRawData: { id: string; descricao: string }[];\n canUpdateDynamicFieldOptions = true;\n departmentChange$: Subscription;\n categoryChange$: Subscription;\n sublevelChange$: Subscription;\n\n constructor(\n private fb: FormBuilder,\n private apiDepartamento: ApiDepartamentoService,\n private apiCategoria: ApiCategoriaService,\n private apiSubnivel: ApiSubnivelService,\n private toastService: ToastService,\n private apiFormDinamicoService: ApiFormDinamicoService,\n private apiCampoDinamicoService: ApiCampoDinamicoService,\n public confirmDialogService: ConfirmDialogService,\n private dashboardService: DashboardService\n ) {\n\n // #region headerFormConfig\n\n // cria formulário do header\n this.headerForm = this.createHeaderForm();\n // atribui controls do formulario do header a variaveis, afim de facilitar o acesso dos mesmo\n this.departamentoControl = this.headerForm.get('departamentoId') as FormControl;\n this.categoriaControl = this.headerForm.get('categoriaId') as FormControl;\n this.subnivelControl = this.headerForm.get('subnivelId') as FormControl;\n\n // criar observable que busca os dados do header da api (usando replay subject como uma forma de cache)\n this.departamentos$ = this.apiDepartamento.getAll().pipe(map(response => response.data), shareReplay(1));\n this.categorias$ = this.apiCategoria.getAll().pipe(map(response => response.data), shareReplay(1));\n this.subniveis$ = this.apiSubnivel.getAll().pipe(map(response => response.data), shareReplay(1));\n\n this.createListenersForHeaderData(); // Create listeners for header data\n\n // criar observable representando o id selecionado de cada control\n this.departamentoId$ = this.departamentoControl.valueChanges.pipe(startWith(this.departamentoControl.value));\n this.categoriaId$ = this.categoriaControl.valueChanges.pipe(startWith(this.categoriaControl.value));\n this.subnivelId$ = this.subnivelControl.valueChanges.pipe(startWith(this.subnivelControl.value));\n\n // configura observable de categorias filtradas pelo departamento escolhido\n this.filteredCategorias$ = combineLatest([\n this.categorias$,\n this.departamentoId$\n ]).pipe(map(([categorias, departamentoId]) => categorias.filter(c => c.departamentoId === departamentoId)));\n\n // configura observable de subniveis filtradas pela categoria escolhido\n this.filteredSubniveis$ = combineLatest([\n this.subniveis$,\n this.filteredCategorias$,\n this.categoriaId$,\n ]).pipe(\n map(\n ([subniveis, categorias, categoriaId]) => subniveis.filter(\n s => categoriaId ? s.categoriaId === categoriaId : false\n )\n )\n );\n\n // cuida para que seja restado campo de categoria e subnivel quando nivel anterior muda\n\n // reseta categoria quando departamento muda\n this.departamentoControl.valueChanges.subscribe(departamentoId => {\n this.categoriaControl.reset(null, { emitEvent: true });\n });\n\n // reseta subnivel quando categoria muda\n this.categoriaControl.valueChanges.subscribe(categoriaId => {\n this.subnivelControl.reset(null, { emitEvent: true });\n });\n\n // #endregion\n\n // Carrega os campos dinâmicos cria as options\n this.apiCampoDinamicoService.get().subscribe((res) => {\n this.createDynamicFields(res);\n });\n\n // #region dynamic form config form\n this.dynamicFormConfigForm = this.createDynamicFormConfigForm();\n this.campoDinamicosFormArray = this.dynamicFormConfigForm.get('camposList') as FormArray;\n\n // Escuta mudanças no campo dinâmico array\n this.campoDinamicosFormArray.valueChanges.subscribe(() => this.updateDynamicFieldOptions());\n\n this.currentDFCTitle$ = combineLatest([\n combineLatest([\n this.departamentos$,\n this.categorias$,\n this.subniveis$\n ]),\n defer(() => this.dynamicFormConfigForm.valueChanges.pipe(\n startWith(this.dynamicFormConfigForm.value)\n ) as Observable)\n ]).pipe(\n tap(console.log),\n map(([data, pdm]) => {\n const departamento = data[0].find(d => d.id === pdm.departamentoId);\n const categoria = data[1].find(d => d.id === pdm.categoriaId);\n const subnivel = data[2].find(d => d.id === pdm.subnivelId);\n return (departamento ? departamento.descricao : '') +\n (categoria ? ' - ' + categoria.descricao : '') +\n (subnivel ? ' - ' + subnivel.descricao : '') || 'nothing';\n }),\n );\n // #endregion\n\n }\n\n createListenersForHeaderData() {\n this.departmentChange$ = this.dashboardService.departmentChange$.subscribe(() => {\n this.departamentos$ = this.apiDepartamento.getAll().pipe(map(response => response.data), shareReplay(1));\n });\n\n this.categoryChange$ = this.dashboardService.categoryChange$.subscribe(() => {\n this.categorias$ = this.apiCategoria.getAll().pipe(map(response => response.data), shareReplay(1));\n\n this.filteredCategorias$ = combineLatest([\n this.categorias$,\n this.departamentoId$\n ]).pipe(map(([categorias, departamentoId]) => categorias.filter(c => c.departamentoId === departamentoId)));\n });\n\n this.sublevelChange$ = this.dashboardService.sublevelChange$.subscribe(() => {\n this.subniveis$ = this.apiSubnivel.getAll().pipe(map(response => response.data), shareReplay(1));\n });\n }\n\n ngOnDestroy() {\n if (this.departmentChange$) {\n this.departmentChange$.unsubscribe();\n }\n\n if (this.categoryChange$) {\n this.categoryChange$.unsubscribe();\n }\n\n if (this.sublevelChange$) {\n this.sublevelChange$.unsubscribe();\n }\n }\n\n createDynamicFields(data: CampoDinamico[]) {\n this.dynamicFieldsRawData = data.map(elem => ({ id: elem.id, descricao: elem.label }));\n this.dynamicFields = data.map(elem => ({ id: elem.id, descricao: elem.label }));\n }\n\n createHeaderForm() {\n return this.fb.group({\n departamentoId: [undefined, Validators.required],\n categoriaId: [undefined],\n subnivelId: [undefined],\n });\n }\n\n createDynamicFormConfigForm() {\n return this.fb.group({\n departamentoId: [undefined, Validators.required],\n categoriaId: [undefined],\n subnivelId: [undefined],\n camposList: this.fb.array([])\n });\n }\n\n createCampo(value?: string) {\n return this.fb.control(value, Validators.required);\n }\n\n async edit() {\n const headerFormValue = this.headerForm.value;\n combineLatest([\n this.apiFormDinamicoService.getById(headerFormValue),\n of(headerFormValue),\n ]).subscribe(([data, headerConfig]) => {\n this.patchForm(data, headerConfig);\n // mostra a sessão de edição do pdm\n this.showDFCForm = true;\n });\n }\n\n patchForm(data: FormDinamicoCampo[], headerConfig: HeaderConfig) {\n // configura metadados\n if (headerConfig.departamentoId) { this.dynamicFormConfigForm.get('departamentoId').setValue(headerConfig.departamentoId); }\n if (headerConfig.categoriaId) { this.dynamicFormConfigForm.get('categoriaId').setValue(headerConfig.categoriaId); }\n if (headerConfig.subnivelId) { this.dynamicFormConfigForm.get('subnivelId').setValue(headerConfig.subnivelId); }\n\n this.canUpdateDynamicFieldOptions = false;\n this.campoDinamicosFormArray.clear();\n this.dynamicFields = this.dynamicFieldsRawData;\n\n data.forEach(elem => {\n this.campoDinamicosFormArray.push(this.createCampo(elem.campoDinamicoId));\n });\n\n setTimeout(() => {\n this.canUpdateDynamicFieldOptions = true;\n this.updateDynamicFieldOptions();\n }, 0);\n }\n\n addCampoAbove(index: number) {\n this.campoDinamicosFormArray.insert(index, this.createCampo());\n }\n addCampoBelow(index: number) {\n this.campoDinamicosFormArray.insert(index + 1, this.createCampo());\n }\n addCampoAtEnd() {\n this.campoDinamicosFormArray.push(this.createCampo());\n }\n\n deleteCampo(index: number) {\n this.campoDinamicosFormArray.removeAt(index);\n }\n\n apply() {\n if (this.dynamicFormConfigForm.invalid) {\n this.dynamicFormConfigForm.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido!', ToastType.error);\n return;\n }\n\n const dynamicFormValue = this.dynamicFormConfigForm.getRawValue() as DynamicFormConfigForm;\n const formattedData = {\n ...dynamicFormValue\n } as any as FormDinamico;\n\n // Map the dynamic fields\n formattedData.camposList = dynamicFormValue.camposList.map((elem, i) => ({ campoDinamicoId: elem, ordem: i }));\n\n // Delete unnecessary data\n if (!formattedData.categoriaId) {\n delete formattedData.categoriaId;\n }\n\n if (!formattedData.subnivelId) {\n delete formattedData.subnivelId;\n }\n\n this.apiFormDinamicoService.insertOrUpdate(formattedData).subscribe(res => {\n this.dynamicFormConfigForm.markAsUntouched();\n this.toastService.toast('Salvo com sucesso!');\n this.reset();\n });\n }\n\n private updateDynamicFieldOptions() {\n if (this.canUpdateDynamicFieldOptions) {\n const selectedOptions: string[] = this.campoDinamicosFormArray.value;\n this.dynamicFields = this.dynamicFieldsRawData.filter(elem => {\n return !selectedOptions.some(optionId => optionId == elem.id);\n });\n }\n }\n\n reset() {\n this.showDFCForm = false;\n this.headerForm.reset();\n this.dynamicFormConfigForm.reset();\n }\n\n\n}\n","import { Component, ViewChild, AfterViewInit } from '@angular/core';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { BehaviorSubject } from 'rxjs';\nimport { skip, debounceTime } from 'rxjs/operators';\nimport { PaginatorComponent } from 'src/app/ui/paginator/paginator.component';\nimport { Usuario } from 'src/app/models/api/autenticacao/usuario';\nimport { ApiFuncionarioService } from 'src/app/services/api/autenticacao/api-funcionario.service';\n\n@Component({\n selector: 'c-employee-list',\n templateUrl: './employee-list.component.html',\n styleUrls: ['./employee-list.component.scss']\n})\nexport class EmployeeListComponent implements AfterViewInit {\n\n @ViewChild('paginator', { static: true }) paginator: PaginatorComponent;\n\n userData: IResponse;\n columns: string[] = ['name', 'email', 'actions'];\n search$ = new BehaviorSubject('');\n\n constructor(\n private apiFuncionarioService: ApiFuncionarioService\n ) {\n this.configureSearch();\n }\n\n ngAfterViewInit() {\n this.loadUserData();\n }\n\n loadUserData() {\n this.apiFuncionarioService.getAll(this.createQueryFilter()).subscribe(res => {\n this.userData = res;\n });\n }\n\n createQueryFilter() {\n return {\n query: this.search$.value,\n skip: (this.paginator.page - 1) * this.paginator.pageLength,\n take: this.paginator.pageLength\n };\n }\n\n configureSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe(() => {\n this.loadUserData();\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { Grupo } from 'src/app/models/api/comercial/grupo';\nimport { ApiGrupoService } from 'src/app/services/api/comercial/api-grupo-service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\n\n@Component({\n selector: 'c-commercial-group',\n templateUrl: './group.component.html',\n styleUrls: ['./group.component.scss']\n})\nexport class CommercialGroupComponent implements OnInit {\n groupData: GroupEditable[];\n groupPaginatedData: GroupEditable[];\n groupFilteredData: GroupEditable[];\n columns: string[] = ['name', 'active', 'actions'];\n form: FormGroup;\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n search$ = new BehaviorSubject('');\n constructor(\n private apiGrupo: ApiGrupoService,\n private fb: FormBuilder,\n ) {\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadGroupData();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n ativo: [null]\n });\n }\n\n loadGroupData() {\n this.apiGrupo.getAllAtivosInativos().subscribe(res => {\n this.groupData = res.data as GroupEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: GroupEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: GroupEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n async save(data: GroupEditable) {\n if (!data) {\n const group: GroupEditable = this.form.value;\n group.descricao = group.descricao;\n group.ativo = true;\n\n await this.apiGrupo.insert(group).toPromise();\n this.form.reset();\n this.loadGroupData();\n } else {\n const description = data.newDescription;\n\n await this.apiGrupo.update({\n id: data.id, descricao: description, ativo: data.ativo\n }).toPromise();\n data.descricao = description;\n data.isEditActive = false;\n }\n }\n\n async changeEnableDisable(data: GroupEditable) {\n try {\n await this.apiGrupo.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.groupFilteredData = this.groupData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const group = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n return group;\n });\n } else {\n this.groupFilteredData = undefined;\n }\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.groupData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.groupPaginatedData = this.groupData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n get canCreate() {\n return this.descricao.value;\n }\n get descricao() { return this.form.get('descricao'); }\n}\n\ninterface GroupEditable extends Grupo {\n isEditActive: boolean;\n newDescription: string;\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { Hierarquia } from 'src/app/models/api/comercial/hierarquia';\nimport { ApiHierarquiaService } from 'src/app/services/api/comercial/api-hierarquia.service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\n\n@Component({\n selector: 'c-hierarchy',\n templateUrl: './hierarchy.component.html',\n styleUrls: ['./hierarchy.component.scss']\n})\nexport class HierarchyComponent implements OnInit {\n hierarchyData: hierarchyEditable[];\n hierarchyPaginatedData: hierarchyEditable[];\n hierarchyFilteredData: hierarchyEditable[];\n columns: string[] = ['name', 'active', 'actions'];\n form: FormGroup;\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n search$ = new BehaviorSubject('');\n constructor(\n private apiHierarquia: ApiHierarquiaService,\n private fb: FormBuilder,\n ) {\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadhierarchyData();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n ativo: [null],\n valorSap: [null]\n });\n }\n\n loadhierarchyData() {\n this.apiHierarquia.getAllAtivosInativos().subscribe(res => {\n this.hierarchyData = res.data as hierarchyEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: hierarchyEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: hierarchyEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n async save(data: hierarchyEditable) {\n if (!data) {\n const hierarchy: hierarchyEditable = this.form.value;\n hierarchy.descricao = hierarchy.valorSap.trim() + \" - \" + hierarchy.descricao.toUpperCase().trim();\n hierarchy.ativo = true;\n \n await this.apiHierarquia.insert(hierarchy).toPromise();\n \n this.form.reset();\n this.loadhierarchyData();\n } else {\n const description = data.newDescription.toUpperCase().trimEnd().trimStart();\n\n await this.apiHierarquia.update({\n id: data.id, descricao: description, ativo: data.ativo\n }).toPromise();\n data.descricao = description.toUpperCase().trimEnd().trimStart();\n data.isEditActive = false;\n }\n }\n\n async changeEnableDisable(data: hierarchyEditable) {\n try {\n await this.apiHierarquia.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.hierarchyFilteredData = this.hierarchyData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const hierarchy = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n return hierarchy;\n });\n } else {\n this.hierarchyFilteredData = undefined;\n }\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.hierarchyData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.hierarchyPaginatedData = this.hierarchyData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n get canCreate() {\n return this.descricao.value;\n }\n get descricao() { return this.form.get('descricao'); }\n}\n\ninterface hierarchyEditable extends Hierarquia {\n isEditActive: boolean;\n newDescription: string;\n}","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-license-group',\n templateUrl: './license-group.component.html',\n styleUrls: ['./license-group.component.scss']\n})\nexport class LicenseGroupComponent implements OnInit {\n tabs!: LicenseTable[];\n constructor() {\n this.createTabs();\n }\n\n ngOnInit() { }\n\n private createTabs() {\n this.tabs = [\n { name: \"licença\", permission: \"rhcdm.marcalicenca.listar\" },\n { name: \"licenciador\", permission: \"rhcdm.marcalicenca.listar\" },\n { name: \"grupo\", permission: \"rhcdm.marcalicenca.listar\" },\n { name: \"linha\", permission: \"rhcdm.marcalicenca.listar\" },\n { name: \"hierarquia\", permission: \"rhcdm.marcalicenca.listar\" },\n ];\n }\n}\n\nexport interface LicenseTable {\n name: string;\n permission: string;\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { Licenca } from 'src/app/models/api/comercial/licenca';\nimport { ApiLicencaService } from 'src/app/services/api/comercial/api-licenca-service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\n\n@Component({\n selector: 'c-license',\n templateUrl: './license.component.html',\n styleUrls: ['./license.component.scss']\n})\nexport class LicenseComponent implements OnInit {\n licenseData: LicenseEditable[];\n licensePaginatedData: LicenseEditable[];\n licenseFilteredData: LicenseEditable[];\n columns: string[] = ['name', 'active', 'actions'];\n form: FormGroup;\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n search$ = new BehaviorSubject('');\n constructor(\n private apiLicenca: ApiLicencaService,\n private fb: FormBuilder,\n ) {\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadLicenseData();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n ativo: [null]\n });\n }\n\n loadLicenseData() {\n this.apiLicenca.getAllAtivosInativos().subscribe(res => {\n this.licenseData = res.data as LicenseEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: LicenseEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: LicenseEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n async save(data: LicenseEditable) {\n if (!data) {\n const license: LicenseEditable = this.form.value;\n license.descricao = license.descricao;\n license.ativo = true;\n\n await this.apiLicenca.insert(license).toPromise();\n this.form.reset();\n this.loadLicenseData();\n } else {\n const description = data.newDescription;\n\n await this.apiLicenca.update({\n id: data.id, descricao: description, ativo: data.ativo\n }).toPromise();\n data.descricao = description;\n data.isEditActive = false;\n }\n }\n\n async changeEnableDisable(data: LicenseEditable) {\n try {\n await this.apiLicenca.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.licenseFilteredData = this.licenseData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const license = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n return license;\n });\n } else {\n this.licenseFilteredData = undefined;\n }\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.licenseData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.licensePaginatedData = this.licenseData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n get canCreate() {\n return this.descricao.value;\n }\n get descricao() { return this.form.get('descricao'); }\n}\n\ninterface LicenseEditable extends Licenca {\n isEditActive: boolean;\n newDescription: string;\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { Licenciador } from 'src/app/models/api/comercial/licenciador';\nimport { ApiLicenciadorService } from 'src/app/services/api/comercial/api-licenciador-service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\n\n@Component({\n selector: 'c-licensor',\n templateUrl: './licensor.component.html',\n styleUrls: ['./licensor.component.scss']\n})\nexport class LicensorComponent implements OnInit {\n licensorData: LicensorEditable[];\n licensorPaginatedData: LicensorEditable[];\n licensorFilteredData: LicensorEditable[];\n columns: string[] = ['name', 'active', 'actions'];\n form: FormGroup;\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n search$ = new BehaviorSubject('');\n constructor(\n private apiLicenciador: ApiLicenciadorService,\n private fb: FormBuilder,\n ) {\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadLicensorData();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n ativo: [null]\n });\n }\n\n loadLicensorData() {\n this.apiLicenciador.getAllAtivosInativos().subscribe(res => {\n this.licensorData = res.data as LicensorEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: LicensorEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: LicensorEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n async save(data: LicensorEditable) {\n if (!data) {\n const licensor: LicensorEditable = this.form.value;\n licensor.descricao = licensor.descricao;\n licensor.ativo = true;\n\n await this.apiLicenciador.insert(licensor).toPromise();\n this.form.reset();\n this.loadLicensorData();\n } else {\n const description = data.newDescription;\n\n await this.apiLicenciador.update({\n id: data.id, descricao: description, ativo: data.ativo\n }).toPromise();\n data.descricao = description;\n data.isEditActive = false;\n }\n }\n\n async changeEnableDisable(data: LicensorEditable) {\n try {\n await this.apiLicenciador.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.licensorFilteredData = this.licensorData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const licensor = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n return licensor;\n });\n } else {\n this.licensorFilteredData = undefined;\n }\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.licensorData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.licensorPaginatedData = this.licensorData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n get canCreate() {\n return this.descricao.value;\n }\n get descricao() { return this.form.get('descricao'); }\n}\n\ninterface LicensorEditable extends Licenciador {\n isEditActive: boolean;\n newDescription: string;\n}","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\n\nimport { Linha } from 'src/app/models/api/comercial/linha';\nimport { ApiLinhaService } from 'src/app/services/api/comercial/api-linha-service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\n\n@Component({\n selector: 'c-commercial-line',\n templateUrl: './line.component.html',\n styleUrls: ['./line.component.scss']\n})\nexport class CommercialLineComponent implements OnInit {\n lineData: LineEditable[];\n linePaginatedData: LineEditable[];\n lineFilteredData: LineEditable[];\n columns: string[] = ['name', 'active', 'actions'];\n form: FormGroup;\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n search$ = new BehaviorSubject('');\n constructor(\n private apiLinha: ApiLinhaService,\n private fb: FormBuilder,\n ) {\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n\n ngOnInit() {\n this.loadLineData();\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n ativo: [null]\n });\n }\n\n loadLineData() {\n this.apiLinha.getAllAtivosInativos().subscribe(res => {\n this.lineData = res.data as LineEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: LineEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = true;\n }\n\n cancelEdit(data: LineEditable) {\n data.newDescription = data.descricao;\n data.isEditActive = false;\n }\n\n async save(data: LineEditable) {\n if (!data) {\n const line: LineEditable = this.form.value;\n line.descricao = line.descricao;\n line.ativo = true;\n\n await this.apiLinha.insert(line).toPromise();\n this.form.reset();\n this.loadLineData();\n } else {\n const description = data.newDescription;\n\n await this.apiLinha.update({\n id: data.id, descricao: description, ativo: data.ativo\n }).toPromise();\n data.descricao = description;\n data.isEditActive = false;\n }\n }\n\n async changeEnableDisable(data: LineEditable) {\n try {\n await this.apiLinha.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.lineFilteredData = this.lineData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const line = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n return line;\n });\n } else {\n this.lineFilteredData = undefined;\n }\n });\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.lineData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.linePaginatedData = this.lineData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n get canCreate() {\n return this.descricao.value;\n }\n get descricao() { return this.form.get('descricao'); }\n}\n\ninterface LineEditable extends Linha {\n isEditActive: boolean;\n newDescription: string;\n}","import { map } from 'rxjs/operators';\nimport { ApiImportadorService } from './../../../services/api/importador/api-importador.service';\nimport { LogImport } from '../../../models/api/log-import';\nimport { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'c-log-imports',\n templateUrl: './log-imports.component.html',\n styleUrls: ['./log-imports.component.scss']\n})\nexport class LogImportsComponent implements OnInit {\n\n logData: LogImport[] = [];\n\n constructor(private apiImportadorService: ApiImportadorService) { }\n\n ngOnInit() {\n this.loadLogImportData();\n }\n\n loadLogImportData() {\n this.apiImportadorService.getLogImport().pipe(map(res => res.data))\n .subscribe(logs => this.logData = logs);\n }\n\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from \"@angular/forms\";\nimport { DatePipe } from \"@angular/common\";\n\nimport { saveAs } from \"file-saver\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\nimport { Imagem } from \"../../../models/api/dados-midia/midia.interface\";\nimport { ApiMidiaService } from \"../../../services/api/midia/api-midia.service\";\n\n@Component({\n selector: 'c-medias',\n templateUrl: './medias.component.html',\n styleUrls: ['./medias.component.scss']\n})\nexport class MediasComponent implements OnDestroy, OnInit{\n readonly MAX_LENGTH = 50;\n\n columns = ['date', 'actions', 'download-all'];\n list: { images: Imagem[], title: string, notFound: string, format: string }[] = [];\n error = false;\n disabledForm = true;\n form = this.formBuilder.group({ search: [null, [Validators.required, Validators.maxLength(this.MAX_LENGTH)]] });\n\n private stillAlive$ = new Subject();\n\n constructor(\n private formBuilder: FormBuilder,\n private service: ApiMidiaService,\n private datePipe: DatePipe,\n ){}\n\n ngOnInit(): void{\n this.watchFormChanges();\n }\n\n search(): void{\n this.service\n .getAll(this.form.value.search)\n .subscribe(\n response => {\n this.error = false;\n this.list = [\n {\n title: 'Imagens',\n notFound: 'Imagens não encontradas',\n images: response.imagens,\n format: 'jpeg'\n },\n {\n title: 'Imagens em alta resolução',\n notFound: 'Imagens em alta resolução não encontradas',\n images: response.imagemAltaResolucao,\n format: 'png'\n },\n {\n title: 'Imagens especiais',\n notFound: 'Imagens especiais não encontradas',\n images: response.imagemEspecial,\n format: 'jpeg'\n }\n ];\n },\n () => {\n this.error = true;\n this.list = [];\n }\n );\n }\n\n download(image: Imagem, format: string): void{\n const { id } = image;\n\n this.service.downloadImage(id, format).subscribe(response => saveAs(response, id));\n }\n\n downloadAll(list: Imagem[], format: string): void{\n const ids = list.map(image => image.id);\n\n this.service\n .downloadAllImages(ids, format)\n .subscribe(response => saveAs(response, `grupo-de-imagens-${this.datePipe.transform(new Date(), 'dd-MM-yyyy-HH-mm-ss')}`));\n }\n\n ngOnDestroy(): void{\n this.stillAlive$.next();\n this.stillAlive$.complete();\n }\n\n private watchFormChanges(): void{\n this.form\n .valueChanges\n .pipe(takeUntil(this.stillAlive$))\n .subscribe(() => this.disabledForm = this.form.invalid || this.form.pristine);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { CdkTableModule } from \"@angular/cdk/table\";\nimport {MatTooltipModule} from '@angular/material/tooltip';\n\n// import { TooltipModule } from \"ng2-tooltip-directive\";\n\nimport { MediasComponent } from './medias.component';\nimport { InputModule } from \"../../../ui/input/input.module\";\nimport { CardModule } from \"../../../ui/card/card.module\";\nimport { PipesModule } from \"../../../shared/pipes/pipes.module\";\nimport { IconModule } from \"../../../ui/icon/icon.module\";\nimport { EmptyPatternModule } from \"../../../ui/empty-pattern/empty-pattern.module\";\nimport { DirectivesModule } from \"../../../shared/directives/directives.module\";\nimport { OpenImageModule } from \"../../../ui/open-image/open-image.module\";\n\n@NgModule({\n declarations: [MediasComponent],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n InputModule,\n CardModule,\n PipesModule,\n IconModule,\n EmptyPatternModule,\n OpenImageModule,\n CdkTableModule,\n DirectivesModule,\n MatTooltipModule\n ],\n exports: [MediasComponent],\n providers: [DatePipe]\n})\nexport class MediasModule{}\n","import { Component, OnInit } from '@angular/core';\nimport { PdmService } from '../pdm.service';\n\n@Component({\n selector: 'c-pdm-form',\n templateUrl: './pdm-form.component.html',\n styleUrls: ['./pdm-form.component.scss']\n})\nexport class PdmFormComponent implements OnInit {\n\n constructor(\n public pdmService: PdmService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PdmService } from '../pdm.service';\n\n@Component({\n selector: 'c-pdm-header',\n templateUrl: './pdm-header.component.html',\n styleUrls: ['./pdm-header.component.scss']\n})\nexport class PdmHeaderComponent implements OnInit {\n\n constructor(\n public pdmService: PdmService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Output, Input } from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\nimport { PdmService } from '../pdm.service';\n\n@Component({\n selector: 'c-pdm-rule-editor',\n templateUrl: './pdm-rule-editor.component.html',\n styleUrls: ['./pdm-rule-editor.component.scss']\n})\nexport class PdmRuleEditorComponent {\n @Input() rule: string;\n\n constructor(\n public pdmService: PdmService\n ) { }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { PdmService } from './pdm.service';\n\n@Component({\n selector: 'c-pdm',\n templateUrl: './pdm.component.html',\n styleUrls: ['./pdm.component.scss'],\n providers: [\n PdmService\n ]\n})\nexport class PdmComponent implements OnInit {\n\n constructor(\n public pdmService: PdmService\n ) { }\n\n ngOnInit() {\n }\n\n // canDeactivate() {\n // return this.pdmService.canDeactivate();\n // }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PdmComponent } from './pdm.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { PdmHeaderComponent } from './pdm-header/pdm-header.component';\nimport { PdmFormComponent } from './pdm-form/pdm-form.component';\nimport { CollapseModule } from 'src/app/ui/collapse/collapse.module';\nimport { PdmRuleEditorComponent } from './pdm-rule-editor/pdm-rule-editor.component';\n\n\n@NgModule({\n declarations: [\n PdmComponent,\n PdmHeaderComponent,\n PdmFormComponent,\n PdmRuleEditorComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n InputModule,\n SelectModule,\n CheckboxModule,\n RadioModule,\n CardModule,\n IconModule,\n ModalModule,\n CollapseModule,\n ],\n exports: [\n PdmComponent\n ]\n})\nexport class PdmModule { }\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { FormGroup, FormBuilder, FormControl, Validators, FormArray } from '@angular/forms';\nimport { Observable, combineLatest, of, defer, Subscription } from 'rxjs';\nimport { shareReplay, map, startWith, tap } from 'rxjs/operators';\nimport { ApiPDMService } from 'src/app/services/api/dados-especificos/api-pdm.service';\nimport { CampoRegra } from 'src/app/models/api/dados-especificos/regra-pdm';\nimport { PDM, PDMTipo } from 'src/app/models/api/dados-especificos/pdm';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { DashboardService } from '../services/dashboard.service';\n\ninterface HeaderConfig {\n departamentoId: string;\n categoriaId: string;\n subnivelId: string;\n}\n\ninterface PDMForm {\n id?: string;\n departamentoId: string;\n categoriaId?: string;\n subnivelId?: string;\n\n regraDescricaoLonga: string[];\n regraDescricaoEstendida: string[];\n regraTituloDePublicacao: string[];\n regraDescricaoEcommerce: string[];\n}\n\n@Injectable()\nexport class PdmService implements OnDestroy {\n //#region headerForm\n headerForm: FormGroup;\n departamentoControl: FormControl;\n categoriaControl: FormControl;\n subnivelControl: FormControl;\n\n departamentos$: Observable;\n categorias$: Observable;\n subniveis$: Observable;\n\n departamentoId$: Observable;\n categoriaId$: Observable;\n subnivelId$: Observable;\n\n filteredCategorias$: Observable;\n filteredSubniveis$: Observable;\n // #endregion\n\n // #beginregion pdmForm\n pdmForm: FormGroup;\n showPdmForm = false;\n currentPdmTitle$: Observable;\n campos: { id: string; descricao: string }[];\n departmentChange$: Subscription;\n categoryChange$: Subscription;\n sublevelChange$: Subscription;\n\n // #endregion\n\n\n constructor(\n private fb: FormBuilder,\n private apiDepartamento: ApiDepartamentoService,\n private apiCategoria: ApiCategoriaService,\n private apiSubnivel: ApiSubnivelService,\n private apiPDM: ApiPDMService,\n private toastService: ToastService,\n public confirmDialogService: ConfirmDialogService,\n private dashboardService: DashboardService\n ) {\n // #region headerFormConfig\n\n // cria formulário do header\n this.headerForm = this.createHeaderForm();\n // atribui controls do formulario do header a variaveis, afim de facilitar o acesso dos mesmo\n this.departamentoControl = this.headerForm.get('departamentoId') as FormControl;\n this.categoriaControl = this.headerForm.get('categoriaId') as FormControl;\n this.subnivelControl = this.headerForm.get('subnivelId') as FormControl;\n\n // criar observable que busca os dados do header da api (usando replay subject como uma forma de cache)\n this.departamentos$ = this.apiDepartamento.getAll().pipe(map(response => response.data), shareReplay(1));\n this.categorias$ = this.apiCategoria.getAll().pipe(map(response => response.data), shareReplay(1));\n this.subniveis$ = this.apiSubnivel.getAll().pipe(map(response => response.data), shareReplay(1));\n\n this.createListenersForHeaderData(); // Create listeners for header data\n\n // criar observable representando o id selecionado de cada control\n this.departamentoId$ = this.departamentoControl.valueChanges.pipe(startWith(this.departamentoControl.value));\n this.categoriaId$ = this.categoriaControl.valueChanges.pipe(startWith(this.categoriaControl.value));\n this.subnivelId$ = this.subnivelControl.valueChanges.pipe(startWith(this.subnivelControl.value));\n\n // configura observable de categorias filtradas pelo departamento escolhido\n this.filteredCategorias$ = combineLatest([\n this.categorias$,\n this.departamentoId$\n ]).pipe(map(([categorias, departamentoId]) => categorias.filter(c => c.departamentoId === departamentoId)));\n\n // configura observable de subniveis filtradas pela categoria escolhido\n this.filteredSubniveis$ = combineLatest([\n this.subniveis$,\n this.filteredCategorias$,\n this.categoriaId$,\n ]).pipe(\n map(\n ([subniveis, categorias, categoriaId]) => subniveis.filter(\n s => categoriaId ? s.categoriaId === categoriaId : false\n )\n )\n );\n\n // cuida para que seja restado campo de categoria e subnivel quando nivel anterior muda\n\n // reseta categoria quando departamento muda\n this.departamentoControl.valueChanges.subscribe(departamentoId => {\n this.categoriaControl.reset(null, { emitEvent: true });\n });\n\n // reseta subnivel quando categoria muda\n this.categoriaControl.valueChanges.subscribe(categoriaId => {\n this.subnivelControl.reset(null, { emitEvent: true });\n });\n\n // #endregion\n\n // #region pdm form\n this.pdmForm = this.createPdmForm();\n\n this.currentPdmTitle$ = combineLatest([\n combineLatest([\n this.departamentos$,\n this.categorias$,\n this.subniveis$\n ]),\n defer(() => this.pdmForm.valueChanges.pipe(\n startWith(this.pdmForm.value)\n ) as Observable)\n ]).pipe(\n tap(console.log),\n map(([data, pdm]) => {\n const departamento = data[0].find(d => d.id === pdm.departamentoId);\n const categoria = data[1].find(d => d.id === pdm.categoriaId);\n const subnivel = data[2].find(d => d.id === pdm.subnivelId);\n return (departamento ? departamento.descricao : '') +\n (categoria ? ' - ' + categoria.descricao : '') +\n (subnivel ? ' - ' + subnivel.descricao : '') || 'nothing';\n }),\n );\n // #endregion\n }\n\n createListenersForHeaderData() {\n this.departmentChange$ = this.dashboardService.departmentChange$.subscribe(() => {\n this.departamentos$ = this.apiDepartamento.getAll().pipe(map(response => response.data), shareReplay(1));\n });\n\n this.categoryChange$ = this.dashboardService.categoryChange$.subscribe(() => {\n this.categorias$ = this.apiCategoria.getAll().pipe(map(response => response.data), shareReplay(1));\n\n this.filteredCategorias$ = combineLatest([\n this.categorias$,\n this.departamentoId$\n ]).pipe(map(([categorias, departamentoId]) => categorias.filter(c => c.departamentoId === departamentoId)));\n });\n\n this.sublevelChange$ = this.dashboardService.sublevelChange$.subscribe(() => {\n this.subniveis$ = this.apiSubnivel.getAll().pipe(map(response => response.data), shareReplay(1));\n });\n }\n\n ngOnDestroy() {\n if (this.departmentChange$) {\n this.departmentChange$.unsubscribe();\n }\n\n if (this.categoryChange$) {\n this.categoryChange$.unsubscribe();\n }\n\n if (this.sublevelChange$) {\n this.sublevelChange$.unsubscribe();\n }\n }\n\n createHeaderForm() {\n return this.fb.group({\n departamentoId: [undefined, Validators.required],\n categoriaId: [undefined],\n subnivelId: [undefined],\n });\n }\n\n createPdmForm() {\n return this.fb.group({\n id: [undefined],\n departamentoId: [undefined, Validators.required],\n categoriaId: [undefined],\n subnivelId: [undefined],\n\n regraDescricaoLonga: this.fb.array([]),\n regraDescricaoEstendida: this.fb.array([]),\n regraTituloDePublicacao: this.fb.array([]),\n regraDescricaoEcommerce: this.fb.array([])\n });\n }\n\n createRegraItem(value?: string) {\n return this.fb.control(value, Validators.required);\n }\n\n async edit() {\n // if (!await this.canDeactivate()) {\n // return;\n // }\n\n const headerFormValue = this.headerForm.value;\n combineLatest([\n this.apiPDM.getById(headerFormValue),\n this.apiPDM.getCamposRegra(headerFormValue),\n of(headerFormValue),\n ]).subscribe(([data, camposRegra, headerConfig]) => {\n // configura sessão de edição do pdm\n this.campos = camposRegra.map(cr => ({\n id: this.createCampoRegraId(cr),\n descricao: `${cr.pertenceADadosBasicos ? '[DADOS BÁSICOS]' : '[DADOS ESPECÍFICOS]'} ${cr.descricao}`\n }));\n this.patchForm(data, headerConfig);\n // mostra a sessão de edição do pdm\n this.showPdmForm = true;\n });\n }\n\n addCampoRegraAbove(index: number, rule: string) {\n const control = this.pdmForm.get(rule) as FormArray;\n control.insert(index, this.createRegraItem());\n }\n addCampoRegraBelow(index: number, rule: string) {\n const control = this.pdmForm.get(rule) as FormArray;\n control.insert(index + 1, this.createRegraItem());\n }\n addCampoRegraAtEnd(rule: string) {\n console.log('adicionar no final');\n const control = this.pdmForm.get(rule) as FormArray;\n control.push(this.createRegraItem());\n console.log(this);\n }\n\n deleteCampoRegra(index: number, rule: string) {\n const control = this.pdmForm.get(rule) as FormArray;\n control.removeAt(index);\n }\n\n patchForm(data: PDM, headerConfig: HeaderConfig) {\n const regraDescricaoLonga = this.pdmForm.get('regraDescricaoLonga') as FormArray;\n const regraDescricaoEstendida = this.pdmForm.get('regraDescricaoEstendida') as FormArray;\n const regraTituloDePublicacao = this.pdmForm.get('regraTituloDePublicacao') as FormArray;\n const regraDescricaoEcommerce = this.pdmForm.get('regraDescricaoEcommerce') as FormArray;\n\n // reseta o form\n\n regraDescricaoEstendida.clear();\n regraDescricaoLonga.clear();\n regraTituloDePublicacao.clear();\n regraDescricaoEcommerce.clear();\n this.pdmForm.reset();\n\n // configura metadados\n\n if (data && data.id) { this.pdmForm.get('id').patchValue(data.id); }\n if (headerConfig.departamentoId) { this.pdmForm.get('departamentoId').patchValue(headerConfig.departamentoId); }\n if (headerConfig.categoriaId) { this.pdmForm.get('categoriaId').patchValue(headerConfig.categoriaId); }\n if (headerConfig.subnivelId) { this.pdmForm.get('subnivelId').patchValue(headerConfig.subnivelId); }\n console.log(this.pdmForm.value);\n\n // ordena campos\n\n const camposDL = data &&\n data.regraDescricaoLonga &&\n data.regraDescricaoLonga.camposList.sort((a, b) => a.ordem - b.ordem) || [];\n\n const camposDE = data &&\n data.regraDescricaoEstendida &&\n data.regraDescricaoEstendida.camposList.sort((a, b) => a.ordem - b.ordem) || [];\n\n const camposML = data &&\n data.regraTituloDePublicacao &&\n data.regraTituloDePublicacao.camposList.sort((a, b) => a.ordem - b.ordem) || [];\n \n const camposDEC = data &&\n data.regraDescricaoEcommerce &&\n data.regraDescricaoEcommerce.camposList.sort((a, b) => a.ordem - b.ordem) || [];\n \n\n // cria form dos campos\n\n camposDL.forEach(campo => {\n const rule = this.createRegraItem(this.createCampoRegraId(campo));\n regraDescricaoLonga.push(rule);\n });\n\n camposDE.forEach(campo => {\n const rule = this.createRegraItem(this.createCampoRegraId(campo));\n regraDescricaoEstendida.push(rule);\n });\n\n camposML.forEach(campo => {\n const rule = this.createRegraItem(this.createCampoRegraId(campo));\n regraTituloDePublicacao.push(rule);\n });\n\n camposDEC.forEach(campo => {\n const rule = this.createRegraItem(this.createCampoRegraId(campo));\n regraDescricaoEcommerce.push(rule);\n });\n\n this.pdmForm.updateValueAndValidity();\n }\n\n private createCampoRegraId(campoRegra: CampoRegra) {\n return `{\n \"campoDinamico\": ${campoRegra.campoDinamico ? 'true' : 'false'},\n \"campoDinamicoId\": \"${campoRegra.campoDinamicoId}\",\n \"nomeCampo\": \"${campoRegra.nomeCampo}\",\n \"pertenceADadosBasicos\": ${campoRegra.pertenceADadosBasicos ? 'true' : 'false'},\n \"usaId\": ${campoRegra.usaId ? 'true' : 'false'}\n }`;\n }\n\n apply() {\n if (this.pdmForm.invalid) {\n this.pdmForm.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido!', ToastType.error);\n return;\n }\n\n const pdmFormValue = this.pdmForm.getRawValue() as PDMForm;\n\n const pdm: PDM = {\n id: pdmFormValue.id,\n\n departamentoId: pdmFormValue.departamentoId,\n categoriaId: pdmFormValue.categoriaId,\n subnivelId: pdmFormValue.subnivelId,\n // to-do: mock criar enum e colocar valores corretos\n tipo: !pdmFormValue.subnivelId ? PDMTipo.subnivel : (!pdmFormValue.categoriaId ? PDMTipo.categoria : PDMTipo.departamento),\n\n regraDescricaoEstendida: {\n concatenaCom: ' - ',\n camposList: pdmFormValue.regraDescricaoEstendida.map(this.campoRegraMapper)\n },\n regraDescricaoLonga: {\n concatenaCom: ' - ',\n camposList: pdmFormValue.regraDescricaoLonga.map(this.campoRegraMapper)\n },\n regraTituloDePublicacao: {\n concatenaCom: ' - ',\n camposList: pdmFormValue.regraTituloDePublicacao.map(this.campoRegraMapper)\n }, \n regraDescricaoEcommerce: {\n concatenaCom: ' - ',\n camposList: pdmFormValue.regraDescricaoEcommerce.map(this.campoRegraMapper)\n }\n };\n\n console.log({ pdm });\n this.apiPDM.insertOrUpdate(pdm).subscribe(result => {\n this.pdmForm.get('id').setValue(result.id);\n this.pdmForm.markAsUntouched();\n this.toastService.toast('Salvo com sucesso!');\n }, error => {\n // não faz nada, sera exibido no alert\n });\n }\n\n private campoRegraMapper(value: string, ordem: number): CampoRegra {\n const parsedId: {\n campoDinamico: boolean;\n campoDinamicoId: string;\n nomeCampo: string;\n pertenceADadosBasicos: boolean;\n usaId: boolean;\n } = JSON.parse(value);\n\n return {\n ...parsedId,\n ordem\n };\n }\n\n // canDeactivate() {\n // return this.pdmForm.untouched ? Promise.resolve(true) :\n // this.confirmDialogService.confirm('Tem certeza que deseja descartar suas alterações?');\n // }\n\n reset() {\n this.showPdmForm = false;\n const regraDescricaoLonga = this.pdmForm.get('regraDescricaoLonga') as FormArray;\n const regraDescricaoEstendida = this.pdmForm.get('regraDescricaoEstendida') as FormArray;\n const regraTituloDePublicacao = this.pdmForm.get('regraTituloDePublicacao') as FormArray;\n const regraDescricaoEcommerce = this.pdmForm.get('regraDescricaoEcommerce') as FormArray;\n regraDescricaoEstendida.clear();\n regraDescricaoLonga.clear();\n regraTituloDePublicacao.clear();\n regraDescricaoEcommerce.clear();\n this.pdmForm.reset();\n this.headerForm.reset();\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { ApiImportadorService } from 'src/app/services/api/importador/api-importador.service';\nimport { map, switchMap } from 'rxjs/operators';\nimport { ApiDadosComerciaisService } from 'src/app/services/api/comercial/api-dados-comerciais.service';\nimport { ApiRelatorioService } from 'src/app/services/api/relatorio/api-relatorio.service';\nimport { AlertDialogComponent } from 'src/app/ui/modal/alert-dialog/alert-dialog.component';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { ApiTemplatesService } from 'src/app/services/api/importador/api-templates.service';\n\nenum Elements {\n 'IMPORT_PRODUCTS' = 'import-products',\n 'IMPORT_OMNI' = 'import-omni',\n 'IMPORT_COMERCIAL' = 'import-comercial',\n 'EXPORT_REPORT' = 'export-report',\n}\n\n@Component({\n selector: 'c-product-import',\n templateUrl: './product-import.component.html',\n styleUrls: ['./product-import.component.scss']\n})\nexport class ProductImportComponent implements OnInit {\n elements = Elements;\n @Output() imported = new EventEmitter();\n @Input() showElements = [];\n\n constructor(\n private apiImportadorService: ApiImportadorService,\n private apiDadosComerciaisService: ApiDadosComerciaisService,\n private apiRelatorioService: ApiRelatorioService,\n private apiTemplatesService: ApiTemplatesService,\n private toastService: ToastService,\n\n ) { }\n\n ngOnInit() {\n }\n\n showElement(element: Elements) {\n if (this.showElements.includes(element) || this.showElements.includes('*'))\n return true;\n return false;\n }\n\n downloadTemplateUrl() {\n return this.apiTemplatesService.getTemplate().subscribe(\n res => {\n const downloadUrl = window.URL.createObjectURL(res);\n const downloadLink = document.createElement('a');\n downloadLink.href = downloadUrl;\n downloadLink.download = 'ModeloImportacao_RiHappy.xlsx';\n downloadLink.click();\n window.URL.revokeObjectURL(downloadUrl);\n });\n }\n\n downloadTemplateOmni() {\n return this.apiDadosComerciaisService.getTemplateOmni().subscribe(\n res => {\n const downloadUrl = window.URL.createObjectURL(res);\n const downloadLink = document.createElement('a');\n downloadLink.href = downloadUrl;\n downloadLink.download = 'ModeloImportacao_Omni_RiHappy.xlsx';\n downloadLink.click();\n window.URL.revokeObjectURL(downloadUrl);\n });\n }\n\n downloadTemplateDadosComerciaisUrl() {\n return this.apiTemplatesService.getTemplateDadosComerciais().subscribe(\n res => {\n const downloadUrl = window.URL.createObjectURL(res);\n const downloadLink = document.createElement('a');\n downloadLink.href = downloadUrl;\n downloadLink.download = 'ModeloImportacao_DadosComerciais_RiHappy.xlsx';\n downloadLink.click();\n window.URL.revokeObjectURL(downloadUrl);\n });\n }\n\n atualizaIndicesDinamicosTemplateFornecedor() {\n this.apiTemplatesService.getAtualizaIndicesDinamicosTemplateFornecedor().pipe(map(res => res.data))\n .subscribe();\n }\n\n atualizaIndicesDinamicosTemplateComercial() {\n this.apiTemplatesService.getAtualizaIndicesDinamicosTemplateComercial().pipe(map(res => res.data))\n .subscribe();\n }\n\n exportReportAll(){\n return this.apiRelatorioService.exportReportAll().subscribe(\n res => {\n this.toastService.toast({description: 'Relatório enviado para o e-mail com sucesso!', type: ToastType.success})\n });\n }\n\n exportReportProductsRevisionAll(){\n return this.apiRelatorioService.exportReportProductsRevisionAll().subscribe(\n res => {\n this.toastService.toast({description: 'Relatório está sendo gerado e será enviado para seu e-mail dentro de alguns minutos...', type: ToastType.success})\n });\n }\n\n validateAndUploadSpreadSheet(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiImportadorService.validateSpreadSheet(formData).pipe(\n switchMap(res => this.apiImportadorService.saveSpreadSheet(res))\n ).subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n importarPlanilhaCriar(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiImportadorService.importSpreadSheetCreate(formData).pipe().subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n importarPlanilhaAtualizar(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiImportadorService.importSpreadSheetUpdate(formData).pipe().subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n importarPlanilhaCriarDadosComerciais(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiImportadorService.importSpreadSheetCreateDadosComerciais(formData).pipe().subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n importarPlanilhaUpdateDadosComerciais(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiImportadorService.importSpreadSheetUpdateDadosComerciais(formData).pipe().subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n importarPlanilhaOmni(fileToUpload: File) {\n if (fileToUpload) {\n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n this.apiDadosComerciaisService.importSpreadSheetOmni(formData).pipe().subscribe(() => {\n this.imported.next();\n });\n }\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'c-products-navbar',\n templateUrl: './products-navbar.component.html',\n styleUrls: ['./products-navbar.component.scss']\n})\nexport class ProductsNavbarComponent implements OnInit {\n\n @Input() integratedProductAmount = 0;\n @Input() newProductAmount = 0;\n @Output() emitEvent = new EventEmitter();\n selected = 'cleanFilters';\n constructor() { }\n\n ngOnInit() {\n }\n\n sendToInRevision(button: string): void {\n this.selected = button;\n this.emitEvent.emit(button);\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { EnumTabStatus } from 'src/app/models/api/produto/enum-tab-status.enum';\nimport { ProductTable } from '../product-list.component';\n\n@Component({\n selector: 'c-product-list-integrations',\n templateUrl: './product-list-integrations.component.html',\n styleUrls: ['./product-list-integrations.component.scss']\n})\nexport class ProductListIntegrationsComponent implements OnInit {\n\n @Input() integrationDataSource: ProductTable;\n @Input() massIntegrationDataSource: ProductTable;\n @Output() onPaginate = new EventEmitter<{ paginator: IPaginator, status: EnumTabStatus }>();\n tabSelected: EnumTabStatus = EnumTabStatus.integration;\n EnumTabStatus = EnumTabStatus;\n integrationTableColumns: string[] = ['reference', 'description', 'sap', 'vtex', 'ceva', 'createdAt', 'actions'];\n massIntegrationTableColumns: string[] = ['id', 'products', 'active', 'createdAt', 'actions'];\n\n constructor() { }\n\n ngOnInit() {\n }\n\n reload(paginator: IPaginator, status: EnumTabStatus) {\n this.onPaginate.emit({\n paginator,\n status\n });\n }\n\n}\n\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { EnumSistemaIntegracaoStatus } from 'src/app/models/api/workflow/enum-sistema-integracao-status.enum';\n\n@Component({\n selector: 'c-product-list-table-integration',\n templateUrl: './product-list-table-integration.component.html',\n styleUrls: ['./product-list-table-integration.component.scss']\n})\nexport class ProductListTableIntegrationComponent implements OnInit {\n\n @Input() dataSource: WorkflowProduto[];\n @Input() columns: string[];\n\n constructor(\n ) {\n }\n\n ngOnInit() {\n }\n\n getIntegrationStatusName(value: EnumSistemaIntegracaoStatus) {\n switch (value) {\n case EnumSistemaIntegracaoStatus.NaoIntegrado:\n return 'not integrated';\n\n case EnumSistemaIntegracaoStatus.Integrado:\n return 'integrated';\n\n case EnumSistemaIntegracaoStatus.ErroAoIntegrar:\n return 'error in integration';\n\n case EnumSistemaIntegracaoStatus.PrecisaSerAtualizado:\n return 'need update';\n }\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { EnumSistemaIntegracaoStatus } from 'src/app/models/api/workflow/enum-sistema-integracao-status.enum';\nimport { IntegracaoEmMassaDashboard } from 'src/app/models/api/workflow/integracao-em-massa.interface';\nimport { ApiIntegracaoEmMassaService } from 'src/app/services/api/workflow/api-integracao-em-massa.service';\n\n@Component({\n selector: 'c-product-list-table-mass-integration',\n templateUrl: './product-list-table-mass-integration.component.html',\n styleUrls: ['./product-list-table-mass-integration.component.scss']\n})\nexport class ProductListTableMassIntegrationComponent implements OnInit {\n\n @Input() dataSource: IntegracaoEmMassaDashboardWithRowInfo[];\n @Input() columns: string[];\n\n constructor(\n private apiIntegracaoEmMassaService: ApiIntegracaoEmMassaService\n ) { }\n\n ngOnInit() {\n }\n\n toggleRow(data: IntegracaoEmMassaDashboardWithRowInfo) {\n data.isRowExpanded = !data.isRowExpanded;\n }\n\n getIntegrationStatusName(value: EnumSistemaIntegracaoStatus) {\n switch (value) {\n case EnumSistemaIntegracaoStatus.NaoIntegrado:\n return 'not integrated';\n\n case EnumSistemaIntegracaoStatus.Integrado:\n return 'integrated';\n\n case EnumSistemaIntegracaoStatus.ErroAoIntegrar:\n return 'error in integration';\n\n case EnumSistemaIntegracaoStatus.PrecisaSerAtualizado:\n return 'need update';\n }\n }\n\n exportMassIntegration(id: string) {\n this.apiIntegracaoEmMassaService.getLogByIntegrationId(id).subscribe(res => {\n const downloadUrl = window.URL.createObjectURL(res);\n const downloadLink = document.createElement('a');\n downloadLink.href = downloadUrl;\n downloadLink.download = `${id}_${new Date().getTime()}.xlsx`;\n downloadLink.click();\n window.URL.revokeObjectURL(downloadUrl);\n });\n }\n\n}\n\ninterface IntegracaoEmMassaDashboardWithRowInfo extends IntegracaoEmMassaDashboard {\n isRowExpanded: boolean;\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { IntegracaoEmMassaList } from 'src/app/models/api/workflow/integracao-em-massa.interface';\nimport { ApiIntegracaoService } from 'src/app/services/api/workflow/api-integracao.service';\nimport { IntegracaoQueryFilter } from 'src/app/models/api/workflow/integracao-query-filter.interface';\nimport { EnumSistemaIntegracaoStatus } from 'src/app/models/api/workflow/enum-sistema-integracao-status.enum';\n\n@Component({\n selector: 'c-product-list-table-in-integration',\n templateUrl: './product-list-table-in-integration.component.html',\n styleUrls: ['./product-list-table-in-integration.component.scss']\n})\nexport class ProductListTableInIntegrationComponent implements OnInit {\n\n @Input() dataSource: WorkflowProduto[];\n @Input() columns: string[];\n\n @Output() filterChange = new EventEmitter();\n\n selectedProducts = new Set();\n selectedIntegrations: IntegrationEnum[] = new Array();\n integrationEnum = IntegrationEnum;\n\n constructor(\n private apiIntegracaoService: ApiIntegracaoService\n ) { }\n\n ngOnInit() {\n }\n\n filter() {\n if (this.selectedIntegrations) {\n this.filterChange.emit({\n integrarSAP: this.selectedIntegrations.includes(IntegrationEnum.sap),\n integrarVTEX: this.selectedIntegrations.includes(IntegrationEnum.vtex),\n integrarCEVA: this.selectedIntegrations.includes(IntegrationEnum.ceva)\n });\n\n this.selectedProducts.clear();\n }\n }\n\n toggleProductCheckbox(id: string) {\n if (!this.selectedProducts.has(id)) {\n this.selectedProducts.add(id);\n } else {\n this.selectedProducts.delete(id);\n }\n }\n\n getIntegrationStatusName(value: EnumSistemaIntegracaoStatus) {\n switch (value) {\n case EnumSistemaIntegracaoStatus.NaoIntegrado:\n return 'not integrated';\n\n case EnumSistemaIntegracaoStatus.Integrado:\n return 'integrated';\n\n case EnumSistemaIntegracaoStatus.ErroAoIntegrar:\n return 'error in integration';\n\n case EnumSistemaIntegracaoStatus.PrecisaSerAtualizado:\n return 'need update';\n }\n }\n\n async integrate() {\n const data: IntegracaoEmMassaList[] = new Array();\n\n this.selectedProducts.forEach((id) => {\n data.push({\n produtoId: id,\n integrarSap: this.selectedIntegrations.includes(IntegrationEnum.sap),\n integrarVTEX: this.selectedIntegrations.includes(IntegrationEnum.vtex),\n integrarCEVA: this.selectedIntegrations.includes(IntegrationEnum.ceva)\n });\n });\n\n await this.apiIntegracaoService.integrateManyProducts(data).toPromise();\n\n // Clear the selected products and integrations\n this.selectedIntegrations = new Array();\n this.selectedProducts.clear();\n }\n\n get canIntegrate() {\n return this.selectedProducts.size > 0 && this.selectedIntegrations && this.selectedIntegrations.length > 0;\n }\n\n}\n\nenum IntegrationEnum {\n sap = 0,\n vtex = 1,\n ceva = 3\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\nimport { DashboardFornecedor } from 'src/app/models/api/dashboard-fornecedor/dashboard-fornecedor';\nimport { EnumElasticDashboardColumns } from 'src/app/models/api/elastic/elastic-dashboard-columns.enum';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { ApiElasticDashboardService } from 'src/app/services/api/elastic/api-elastic-dashboard.service';\nimport { SessionService } from 'src/app/services/session.service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { DashboardService } from '../../services/dashboard.service';\nimport { EnumProductTableRegisteredsSubView, ProductTableRegistereds } from '../product-list.component';\n\n@Component({\n selector: 'c-product-list-table-in-registereds',\n templateUrl: './product-list-table-in-registereds.component.html',\n styleUrls: ['./product-list-table-in-registereds.component.scss']\n})\nexport class ProductListTableRegisteredsComponent implements OnInit {\n\n integrationDataSource = [];\n @Output() onPaginate = new EventEmitter<{\n paginator: IPaginator;\n status: EnumProductTableRegisteredsSubView;\n }>();\n tabSelected: EnumProductTableRegisteredsSubView =\n EnumProductTableRegisteredsSubView.registeredsSupplier;\n EnumProductTableRegisteredsSubView = EnumProductTableRegisteredsSubView;\n defaultTableColumns: string[] = [\n \"reference\",\n \"supplierCodSap\",\n \"supplierName\",\n \"description\",\n \"category\",\n \"quality\",\n \"createdAt\",\n \"createdAtCommercial\",\n \"registerResponsable\",\n \"commercialResponsable\",\n \"actions\",\n ];\n inRevisionTabFilterPermission: string;\n tabs!: ProductTableRegistereds[];\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0,\n });\n\n columnFilters$: BehaviorSubject;\n\n isNotFornecedor = true;\n\n constructor(\n private elasticDashboardServ: ApiElasticDashboardService,\n private sessionService: SessionService,\n private dashboardService: DashboardService,\n ) {\n this.configureSearch();\n }\n\n async ngOnInit() {\n this.isNotFornecedor = this.sessionService.user.role !== 'fornecedor';\n this.createColumnFilters();\n this.createTabs();\n this.loadAllProductsData();\n }\n\n configureSearch() {\n this.dashboardService.search$.pipe(skip(1), debounceTime(800)).subscribe(() => {\n this.loadAllProductsData(true);\n });\n }\n\n createColumnFilters() {\n const columnValues: string[] = Object.keys(EnumElasticDashboardColumns).map(\n (key) => EnumElasticDashboardColumns[key]\n );\n\n this.columnFilters$ = new BehaviorSubject(columnValues);\n }\n\n loadAllProductsData(isSearch: boolean = false) {\n for (const key of Object.keys(EnumProductTableRegisteredsSubView)) {\n const status = Number(key);\n console.log({\n status,\n isNotFornecedor: this.isNotFornecedor,\n condicao2: this.isNotFornecedor && status === 0,\n condicaoTotal: this.isNotFornecedor || this.isNotFornecedor && status === 0\n })\n if (!isNaN(status)) {\n if (this.isNotFornecedor || !this.isNotFornecedor && status === 0) {\n this.loadProductsData(status, isSearch);\n }\n }\n }\n }\n\n loadProductsData(status: EnumProductTableRegisteredsSubView, isSearch: boolean = false) {\n let api: any;\n const tab: ProductTableRegistereds = this.tabs.find(\n (elem) => elem.status == status\n );\n\n // Select api\n switch (status) {\n\n case EnumProductTableRegisteredsSubView.registeredsCommercial:\n api = this.elasticDashboardServ.getInconsistencyCommercial;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableRegisteredsSubView.registeredsSupplier:\n api = this.elasticDashboardServ.getInconsistencySupplier;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n default:\n break;\n }\n\n if (api) {\n const paginator = this.page$.value;\n\n api({\n query: this.dashboardService.search$.value,\n skip: isSearch ? 0 : (paginator.page - 1) * paginator.pageLength,\n take: paginator.pageLength,\n filteredColumns: this.columnFilters$.value,\n sortedColumns: tab ? tab.sort : undefined,\n } as QueryFilter).subscribe((res: any) => {\n this.createTabData(res, status);\n });\n }\n }\n\n private createTabData(\n data: IResponse,\n status: EnumProductTableRegisteredsSubView,\n subViewType?: EnumProductTableRegisteredsSubView\n ) {\n const tab = this.tabs.find((elem) => elem.status == status);\n\n if (tab) {\n tab.count = data.count || 0;\n tab.products = data.data || [];\n this.inRevisionTabFilterPermission =\n \"rhcdm.dadosprodutos.listarIntegracoes\";\n }\n }\n\n reload(paginator: IPaginator, status: EnumProductTableRegisteredsSubView) {\n this.page$.next(paginator);\n this.loadProductsData(status);\n }\n\n updateSort(\n data: { [x: string]: number },\n paginator: IPaginator,\n status: EnumProductTableRegisteredsSubView\n ) {\n const tab = this.tabs.find((elem) => {\n return elem.status == status;\n });\n\n tab.sort = data;\n this.reload(paginator, status);\n }\n\n private createTabs() {\n if (this.isNotFornecedor)\n this.tabs = [\n {\n name: \"responsable\",\n title: \"Reprovados (Fornecedor)\",\n status: EnumProductTableRegisteredsSubView.registeredsSupplier,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Reprovados (Comercial)\",\n status: EnumProductTableRegisteredsSubView.registeredsCommercial,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n count: 0,\n products: [],\n }\n ]\n else {\n this.tabs = [\n {\n name: \"responsable\",\n title: \"Todos os produtos\",\n status: EnumProductTableRegisteredsSubView.registeredsSupplier,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n count: 0,\n products: [],\n }\n ];\n }\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { Produto } from 'src/app/models/api/dados-produto/produto';\nimport { environment } from 'src/environments/environment';\nimport { ApiImportadorPlanilhaService } from 'src/app/services/api/importador/api-importador-planilha.service';\nimport { ApiDadosProdutosService } from 'src/app/services/api/dados-produto/api-dados-produtos.service';\nimport { EnumElasticDashboardColumns } from 'src/app/models/api/elastic/elastic-dashboard-columns.enum';\nimport { ApiHistoricoService } from 'src/app/services/api/historico/api-historico.service';\nimport { EnumProductTableInResponsableSubView, ProductTableInResponsable } from '../product-list.component';\nimport { SessionService } from 'src/app/services/session.service';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { DashboardFornecedor } from 'src/app/models/api/dashboard-fornecedor/dashboard-fornecedor';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\nimport { BehaviorSubject } from 'rxjs';\nimport { debounceTime, skip } from 'rxjs/operators';\nimport { DashboardService } from '../../services/dashboard.service';\nimport { ApiElasticDashboardService } from 'src/app/services/api/elastic/api-elastic-dashboard.service';\nimport { EnumTabStatus } from 'src/app/models/api/produto/enum-tab-status.enum';\n\n@Component({\n selector: 'c-product-list-table-in-responsable',\n templateUrl: './product-list-table-in-responsable.component.html',\n styleUrls: ['./product-list-table-in-responsable.component.scss']\n})\nexport class ProductListTableResponsableComponent implements OnInit {\n\n integrationDataSource = [];\n @Output() onPaginate = new EventEmitter<{\n paginator: IPaginator;\n status: EnumProductTableInResponsableSubView;\n }>();\n tabSelected: EnumProductTableInResponsableSubView =\n EnumProductTableInResponsableSubView.inRevision;\n EnumProductTableInResponsableSubView = EnumProductTableInResponsableSubView;\n defaultTableColumns: string[] = [\n \"reference\",\n \"supplierCodSap\",\n \"supplierName\",\n \"description\",\n \"category\",\n \"quality\",\n \"createdAt\",\n \"createdAtCommercial\",\n \"registerResponsable\",\n \"commercialResponsable\",\n \"actions\",\n ];\n inRevisionTabFilterPermission: string;\n tabs!: ProductTableInResponsable[];\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0,\n });\n\n columnFilters$: BehaviorSubject;\n\n isNotFornecedor = true;\n\n constructor(\n private elasticDashboardServ: ApiElasticDashboardService,\n private sessionService: SessionService,\n private dashboardService: DashboardService,\n ) {\n this.configureSearch();\n }\n\n async ngOnInit() {\n this.isNotFornecedor = this.sessionService.user.role !== 'fornecedor';\n this.createColumnFilters();\n this.createTabs();\n this.loadAllProductsData();\n }\n\n configureSearch() {\n this.dashboardService.search$.pipe(skip(1), debounceTime(800)).subscribe(() => {\n this.loadAllProductsData(true);\n });\n }\n\n createColumnFilters() {\n const columnValues: string[] = Object.keys(EnumElasticDashboardColumns).map(\n (key) => EnumElasticDashboardColumns[key]\n );\n\n this.columnFilters$ = new BehaviorSubject(columnValues);\n }\n\n loadAllProductsData(isSearch: boolean = false) {\n for (const key of Object.keys(EnumProductTableInResponsableSubView)) {\n const status = Number(key);\n console.log({\n status,\n isNotFornecedor: this.isNotFornecedor,\n condicao2: this.isNotFornecedor && status === 0,\n condicaoTotal: this.isNotFornecedor || this.isNotFornecedor && status === 0\n })\n if (!isNaN(status)) {\n if (this.isNotFornecedor || !this.isNotFornecedor && status === 0) {\n this.loadProductsData(status, isSearch);\n }\n }\n }\n }\n\n loadProductsData(status: EnumProductTableInResponsableSubView, isSearch: boolean = false) {\n let api: any;\n const tab: ProductTableInResponsable = this.tabs.find(\n (elem) => elem.status == status\n );\n\n // Select api\n switch (status) {\n\n case EnumProductTableInResponsableSubView.inRevision:\n api = this.elasticDashboardServ.getResponsavelTodosEmRevisao;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInResponsableSubView.inOpen:\n api = this.elasticDashboardServ.getResponsavelTodosIntegrados;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInResponsableSubView.all:\n api = this.elasticDashboardServ.getTodosResponsavel;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n default:\n break;\n }\n \n if (api) {\n const paginator = this.page$.value;\n\n api({\n query: this.dashboardService.search$.value,\n skip: isSearch ? 0 : (paginator.page - 1) * paginator.pageLength,\n take: paginator.pageLength,\n filteredColumns: this.columnFilters$.value,\n sortedColumns: tab ? tab.sort : undefined,\n } as QueryFilter).subscribe((res: any) => {\n this.createTabData(res, status);\n });\n }\n }\n\n private createTabData(\n data: IResponse,\n status: EnumProductTableInResponsableSubView,\n subViewType?: EnumProductTableInResponsableSubView\n ) {\n const tab = this.tabs.find((elem) => elem.status == status);\n\n if (tab) {\n tab.count = data.count || 0;\n tab.products = data.data || [];\n this.inRevisionTabFilterPermission =\n \"rhcdm.dadosprodutos.listarIntegracoes\";\n }\n }\n\n reload(paginator: IPaginator, status: EnumProductTableInResponsableSubView) {\n this.page$.next(paginator);\n this.loadProductsData(status);\n }\n\n updateSort(\n data: { [x: string]: number },\n paginator: IPaginator,\n status: EnumProductTableInResponsableSubView\n ) {\n const tab = this.tabs.find((elem) => {\n return elem.status == status;\n });\n\n tab.sort = data;\n this.reload(paginator, status);\n }\n\n private createTabs() {\n if(this.isNotFornecedor)\n this.tabs = [\n {\n name: \"responsable\",\n title: \"Produtos em Revisão\",\n status: EnumProductTableInResponsableSubView.inRevision,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Produtos para Liberação\",\n status: EnumProductTableInResponsableSubView.inOpen,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Todos Produtos para Liberação\",\n status: EnumProductTableInResponsableSubView.all,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n ]\n }\n\n}\n","import { SessionService } from \"./../../../../services/session.service\";\nimport { EnumElasticDashboardColumns } from \"src/app/models/api/elastic/elastic-dashboard-columns.enum\";\nimport { QueryFilter } from \"src/app/models/api/query/query-filter.interface\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { ApiElasticDashboardService } from \"src/app/services/api/elastic/api-elastic-dashboard.service\";\nimport {\n EnumProductTableInReviewSubView,\n ProductTableInReview,\n} from \"./../product-list.component\";\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { EnumTabStatus } from \"src/app/models/api/produto/enum-tab-status.enum\";\nimport { IPaginator } from \"src/app/ui/paginator/paginator.component\";\nimport { ProductTable } from \"../product-list.component\";\nimport { DashboardFornecedor } from \"src/app/models/api/dashboard-fornecedor/dashboard-fornecedor\";\nimport { IResponse } from \"src/app/models/api/response.interface\";\nimport { WorkflowProduto } from \"src/app/models/api/workflow/workflow-produto.interface\";\nimport { debounceTime, skip } from \"rxjs/operators\";\nimport { DashboardService } from \"../../services/dashboard.service\";\nimport { ApiUsuarioService } from \"src/app/services/api/autenticacao/api-usuario.service\";\nimport { Usuario } from \"src/app/models/api/autenticacao/usuario\";\n\n@Component({\n selector: \"c-product-list-table-in-review\",\n templateUrl: \"./product-list-table-in-review.component.html\",\n styleUrls: [\"./product-list-table-in-review.component.scss\"],\n})\nexport class ProductListTableInReviewComponent implements OnInit {\n integrationDataSource = [];\n @Output() onPaginate = new EventEmitter<{\n paginator: IPaginator;\n status: EnumProductTableInReviewSubView;\n }>();\n tabSelected: EnumProductTableInReviewSubView =\n EnumProductTableInReviewSubView.allInReview;\n EnumProductTableInReviewSubView = EnumProductTableInReviewSubView;\n defaultTableColumns: string[] = [\n \"reference\",\n \"supplierCodSap\",\n \"supplierName\",\n \"description\",\n \"category\",\n \"quality\",\n \"createdAt\",\n \"createdAtCommercial\",\n \"registerResponsable\",\n \"commercialResponsable\",\n \"actions\",\n ];\n inRevisionTabFilterPermission: string;\n tabs!: ProductTableInReview[];\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0,\n });\n\n columnFilters$: BehaviorSubject;\n\n isNotFornecedor = true;\n\n constructor(\n private elasticDashboardServ: ApiElasticDashboardService,\n private apiUsuarioService: ApiUsuarioService,\n private sessionService: SessionService,\n private dashboardService: DashboardService,\n ) {\n this.configureSearch();\n }\n\n async ngOnInit() {\n this.isNotFornecedor = this.sessionService.user.role !== 'fornecedor';\n this.createColumnFilters();\n this.createTabs();\n this.loadAllProductsData();\n }\n\n configureSearch() {\n this.dashboardService.search$.pipe(skip(1), debounceTime(800)).subscribe(() => {\n this.loadAllProductsData(true);\n });\n }\n\n createColumnFilters() {\n const columnValues: string[] = Object.keys(EnumElasticDashboardColumns).map(\n (key) => EnumElasticDashboardColumns[key]\n );\n\n this.columnFilters$ = new BehaviorSubject(columnValues);\n }\n\n loadAllProductsData(isSearch: boolean = false) {\n for (const key of Object.keys(EnumProductTableInReviewSubView)) {\n const status = Number(key);\n // console.log({\n // status,\n // isNotFornecedor: this.isNotFornecedor,\n // condicao2: this.isNotFornecedor && status === 0,\n // condicaoTotal: this.isNotFornecedor || this.isNotFornecedor && status === 0\n // })\n if (!isNaN(status)) {\n if (this.isNotFornecedor || !this.isNotFornecedor && status === 0) {\n this.loadProductsData(status, isSearch);\n }\n }\n }\n }\n\n loadProductsData(status: EnumProductTableInReviewSubView, isSearch: boolean = false) {\n let api: any;\n const tab: ProductTableInReview = this.tabs.find(\n (elem) => elem.status == status\n );\n\n // Select api\n switch (status) {\n\n case EnumProductTableInReviewSubView.allInReview:\n api = this.elasticDashboardServ.getReviewTodos;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInReviewSubView.integratedInReview:\n api = this.elasticDashboardServ.getReviewIntegrados;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInReviewSubView.newInReview:\n api = this.elasticDashboardServ.getReviewNovos;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInReviewSubView.commercialDraft:\n api = this.elasticDashboardServ.getReviewComercialRascunho;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInReviewSubView.fiscalDataInReview:\n api = this.elasticDashboardServ.getReviewFiscal;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumProductTableInReviewSubView.coastAndPriceInReview:\n api = this.elasticDashboardServ.getReviewCustoPreco;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n default:\n break;\n }\n\n if (api) {\n const paginator = this.page$.value;\n\n api({\n query: this.dashboardService.search$.value,\n skip: isSearch ? 0 : (paginator.page - 1) * paginator.pageLength,\n take: paginator.pageLength,\n filteredColumns: this.columnFilters$.value,\n sortedColumns: tab ? tab.sort : undefined,\n } as QueryFilter).subscribe((res: any) => {\n this.createTabData(res, status);\n });\n }\n }\n\n private createTabData(\n data: IResponse,\n status: EnumProductTableInReviewSubView,\n subViewType?: EnumProductTableInReviewSubView\n ) {\n const tab = this.tabs.find((elem) => elem.status == status);\n\n if (tab) {\n tab.count = data.count || 0;\n tab.products = data.data || [];\n this.inRevisionTabFilterPermission =\n \"rhcdm.dadosprodutos.listarIntegracoes\";\n }\n }\n\n reload(paginator: IPaginator, status: EnumProductTableInReviewSubView) {\n this.page$.next(paginator);\n this.loadProductsData(status);\n }\n\n updateSort(\n data: { [x: string]: number },\n paginator: IPaginator,\n status: EnumProductTableInReviewSubView\n ) {\n const tab = this.tabs.find((elem) => {\n return elem.status == status;\n });\n\n tab.sort = data;\n this.reload(paginator, status);\n }\n\n private createTabs() {\n if (this.isNotFornecedor) {\n this.tabs = [\n {\n name: \"in review\",\n title: \"Preenchimento Comercial\",\n status: EnumProductTableInReviewSubView.commercialDraft,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Análise Cadastro\",\n status: EnumProductTableInReviewSubView.newInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Análise Fiscal\",\n status: EnumProductTableInReviewSubView.fiscalDataInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Análise Custo\",\n status: EnumProductTableInReviewSubView.coastAndPriceInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Análise Cadastro (Integrados)\",\n status: EnumProductTableInReviewSubView.integratedInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Todos\",\n status: EnumProductTableInReviewSubView.allInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n ];\n } else {\n this.tabs = [\n {\n name: \"in review\",\n title: \"Todos os produtos\",\n status: EnumProductTableInReviewSubView.allInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n ];\n }\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { Produto } from 'src/app/models/api/dados-produto/produto';\nimport { environment } from 'src/environments/environment';\nimport { ApiImportadorPlanilhaService } from 'src/app/services/api/importador/api-importador-planilha.service';\nimport { ApiDadosProdutosService } from 'src/app/services/api/dados-produto/api-dados-produtos.service';\nimport { EnumElasticDashboardColumns } from 'src/app/models/api/elastic/elastic-dashboard-columns.enum';\nimport { ApiHistoricoService } from 'src/app/services/api/historico/api-historico.service';\n\n@Component({\n selector: 'c-product-list-table',\n templateUrl: './product-list-table.component.html',\n styleUrls: ['./product-list-table.component.scss']\n})\nexport class ProductListTableComponent implements OnInit {\n\n @Output() listUpdated = new EventEmitter();\n @Input() dataSource: Produto[];\n @Input() columns: string[];\n\n @Input() currentStatus: number;\n @Input() showEmailSend: boolean = false;\n @Input() inRevisionTabFilterPermission: string;\n @Output() sortEvent = new EventEmitter<{ [x: string]: number }>();\n @Output() inRevisionTableEvent = new EventEmitter();\n\n \n\n EnumElasticDashboardColumns = EnumElasticDashboardColumns;\n\n newProductInRevision: string[] = [];\n integratedProductInRevision: string[] = [];\n newProductAmount: number;\n integratedProductAmount: number;\n\n constructor(\n private apiImportadorPlanilhaServ: ApiImportadorPlanilhaService,\n private apiDadosProduto: ApiDadosProdutosService,\n private apiHistorico: ApiHistoricoService\n ) {\n }\n\n ngOnInit() {\n }\n\n getButtonSelected(button: string): void {\n\n // if(button == 'newProduct') {\n // this.inRevisionTableEvent.emit(8);\n // }\n }\n\n ngOnChanges() {\n if (this.currentStatus == 1) {\n this.newProductAmount = 0;\n this.integratedProductAmount = 0;\n\n this.dataSource.forEach((item) => {\n if(item.dadosSap.length == 0 && item.dadosVtex.length == 0) {\n // console.log(\"novo - item\", item)\n this.newProductInRevision.push(item.referencia);\n this.newProductAmount++;\n } else {\n // console.log(\"integrado - item\", item)\n this.integratedProductInRevision.push(item.referencia);\n this.integratedProductAmount++;\n }\n });\n }\n }\n\n updateSort(data: { [x: string]: number }) {\n this.sortEvent.emit(data);\n }\n\n getProductQualityString(value: number): string {\n const ranges = [\n { start: 0, end: 20, text: 'poor' },\n { start: 21, end: 40, text: 'medium' },\n { start: 41, end: 80, text: 'good' },\n { start: 81, end: 100, text: 'excellent' }\n ];\n\n for (const range of ranges) {\n if (value >= range.start && value <= range.end) {\n return range.text;\n }\n }\n\n return 'poor';\n }\n\n getExportLink(id: string) {\n const link = `${environment.api}/${environment.microservice.importador}/Planilha/${id}`;\n return link;\n }\n\n exportProdut(id: string, reference: string) {\n this.apiImportadorPlanilhaServ.export(id).subscribe(res => {\n const downloadUrl = window.URL.createObjectURL(res);\n const downloadLink = document.createElement('a');\n downloadLink.href = downloadUrl;\n downloadLink.download = `${reference}_${id}_${new Date().getTime()}.xlsx`;\n downloadLink.click();\n window.URL.revokeObjectURL(downloadUrl);\n });\n }\n\n assignResponsible(id:string){\n this.apiDadosProduto.assignResponsible(id).subscribe(() => {\n setTimeout(() => {\n this.listUpdated.emit();\n }, 2500);\n })\n }\n\n releaseProduct(id: string){\n var retorno = this.apiHistorico.releaseProduct(id).subscribe(() => {\n setTimeout(() => {\n this.listUpdated.emit();\n }, 2500);\n return retorno;\n })\n }\n\n delete(id: string) {\n this.apiDadosProduto.delete(id).subscribe(() => {\n this.listUpdated.emit();\n });\n }\n\n}\n","import { Component, AfterViewInit } from \"@angular/core\";\nimport { IPaginator } from \"src/app/ui/paginator/paginator.component\";\nimport { EnumTabStatus } from \"src/app/models/api/produto/enum-tab-status.enum\";\nimport { DashboardFornecedor } from \"src/app/models/api/dashboard-fornecedor/dashboard-fornecedor\";\nimport { WorkflowProduto } from \"src/app/models/api/workflow/workflow-produto.interface\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { ApiWorkflowService } from \"src/app/services/api/workflow/api-workflow.service\";\nimport { IResponse } from \"src/app/models/api/response.interface\";\nimport { skip, debounceTime } from \"rxjs/operators\";\nimport { ApiIntegracaoService } from \"src/app/services/api/workflow/api-integracao.service\";\nimport { IntegracaoQueryFilter } from \"src/app/models/api/workflow/integracao-query-filter.interface\";\nimport { ApiIntegracaoEmMassaService } from \"src/app/services/api/workflow/api-integracao-em-massa.service\";\nimport { EnumElasticDashboardColumns } from \"src/app/models/api/elastic/elastic-dashboard-columns.enum\";\nimport { ApiElasticDashboardService } from \"src/app/services/api/elastic/api-elastic-dashboard.service\";\nimport { QueryFilter } from \"src/app/models/api/query/query-filter.interface\";\nimport { DashboardService } from \"../services/dashboard.service\";\n\n@Component({\n selector: \"c-product-list\",\n templateUrl: \"./product-list.component.html\",\n styleUrls: [\"./product-list.component.scss\"],\n})\nexport class ProductListComponent implements AfterViewInit {\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0,\n });\n\n inIntegrationQueryFilter$ = new BehaviorSubject({\n integrarSAP: false,\n integrarVTEX: false,\n integrarCEVA: false,\n });\n\n columnFilters$: BehaviorSubject;\n enumElasticDashboardColumns = EnumElasticDashboardColumns;\n\n EnumTabStatus = EnumTabStatus;\n defaultTableColumns: string[] = [\n \"reference\",\n \"supplierCodSap\",\n \"supplierName\",\n \"description\",\n \"category\",\n \"quality\",\n \"createdAt\",\n \"createdAtCommercial\",\n \"registerResponsable\",\n \"commercialResponsable\",\n \"actions\",\n ];\n inIntegrationTableColumns: string[] = [\n \"reference\",\n \"description\",\n \"sap\",\n \"vtex\",\n \"ceva\",\n \"createdAt\",\n \"actions\",\n ];\n tabs!: ProductTable[];\n inReviewTabs!: ProductTableInReview[];\n inResponsableTabs!: ProductTableInResponsable[];\n inRegisteredsTabs!: ProductTableRegistereds[];\n inRevisionTabFilterPermission: string;\n integrationData: ProductTable;\n massIntegrationData: ProductTable;\n\n inRevisionProductsArrays: {\n allInRevision: ProductTable;\n newInRevision: ProductTable;\n integratedInRevision: ProductTable;\n } = {\n allInRevision: {},\n newInRevision: {},\n integratedInRevision: {},\n };\n\n constructor(\n private elasticDashboardServ: ApiElasticDashboardService,\n private apiWorkflowServ: ApiWorkflowService,\n private apiIntegracaoServ: ApiIntegracaoService,\n private apiIntegracaoEmMassaService: ApiIntegracaoEmMassaService,\n protected dashboardService: DashboardService\n ) {\n this.configureSearch();\n this.configureInIntegrationQueryFilter();\n this.createTabs();\n\n // Create column filters\n const columnValues: string[] = Object.keys(EnumElasticDashboardColumns).map(\n (key) => EnumElasticDashboardColumns[key]\n );\n\n this.columnFilters$ = new BehaviorSubject(columnValues);\n }\n\n ngAfterViewInit() {\n this.loadAllProductsData();\n }\n\n updateSort(\n data: { [x: string]: number },\n paginator: IPaginator,\n status: EnumTabStatus\n ) {\n const tab = this.tabs.find((elem) => {\n return elem.status == status;\n });\n\n tab.sort = data;\n this.reload(paginator, status);\n }\n\n loadNewInRevisionProducts(status: number): void {\n // console.log(\"🚀 ~ file: product-list.component.ts ~ line 91 ~ ProductListComponent ~ loadNewInRevisionProducts ~ status\", status)\n // for(let i; i < this.tabs.length; i++) {\n // // if (this.tabs[i].status === EnumTabStatus.review) {\n // this.tabs[1].products = this.inRevisionProductsArrays.newInRevision.products;\n // console.log(\"🚀 ~ file: product-list.component.ts ~ line 95 ~ ProductListComponent ~ loadNewInRevisionProducts ~ this.tabs[i]\", this.tabs[i])\n // // }\n // }\n // console.log(\"🚀 ~ file: product-list.component.ts ~ line 100 ~ ProductListComponent ~ loadNewInRevisionProducts ~ this.inRevisionProductsArrays.newInRevision\", this.inRevisionProductsArrays.newInRevision)\n // console.log('TABS: ', this.tabs);\n }\n\n reload(paginator: IPaginator, status: EnumTabStatus) {\n this.page$.next(paginator);\n this.loadProductsData(status);\n }\n\n loadAllProductsData(isSearch: boolean = false) {\n for (const key of Object.keys(EnumTabStatus)) {\n const status = Number(key);\n if (!isNaN(status)) {\n this.loadProductsData(status, isSearch);\n }\n }\n // const paginator = this.page$.value;\n // const status = EnumTabStatus.review;\n // const tab: ProductTable = this.tabs.find(elem => elem.status == status);\n\n // this.elasticDashboardServ.getReviewNovos({\n // query: this.search$.value,\n // skip: (paginator.page - 1) * paginator.pageLength,\n // take: paginator.pageLength,\n // filteredColumns: this.columnFilters$.value,\n // sortedColumns: tab ? tab.sort : undefined\n // } as QueryFilter).subscribe((res: any) => {\n // console.log(\"🚀 ~ file: product-list.component.ts ~ line 159 ~ ProductListComponent ~ loadProductsData ~ res\", res)\n // console.log(\"🚀 ~ file: product-list.component.ts ~ line 161 ~ ProductListComponent ~ loadProductsData ~ status\", status)\n // this.createTabData(res, status);\n // });\n }\n\n loadProductsData(status: EnumTabStatus, isSearch: boolean = false) {\n let api: any;\n const tab: ProductTable = this.tabs.find((elem) => elem.status == status);\n\n // Select api\n switch (status) {\n case EnumTabStatus.draft:\n api = this.elasticDashboardServ.getDraft;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumTabStatus.review:\n api = this.elasticDashboardServ.getReviewTodos;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumTabStatus.inconsistency:\n api = this.elasticDashboardServ.getInconsistency;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumTabStatus.registered:\n api = this.elasticDashboardServ.getRegistered;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumTabStatus.responsable:\n api = this.elasticDashboardServ.getReviewTodosResponsavel;\n api = api.bind(this.elasticDashboardServ);\n break;\n\n case EnumTabStatus.integration:\n api = this.apiWorkflowServ.get;\n api = api.bind(this.apiWorkflowServ);\n break;\n\n case EnumTabStatus.massIntegration:\n api = this.apiIntegracaoEmMassaService.get;\n api = api.bind(this.apiIntegracaoEmMassaService);\n break;\n\n case EnumTabStatus.inIntegration:\n api = this.apiIntegracaoServ.getInIntegrations;\n api = api.bind(this.apiIntegracaoServ);\n break;\n\n case EnumTabStatus.inactive:\n break;\n }\n\n // Fazer um condição para quando o status for review chamar as 3 request\n // e chamar o this.createTabData 3 vezes também\n if (api) {\n const paginator = this.page$.value;\n\n api({\n query: this.dashboardService.search$.value,\n skip: isSearch ? 0 : (paginator.page - 1) * paginator.pageLength,\n take: paginator.pageLength,\n filteredColumns: this.columnFilters$.value,\n sortedColumns: tab ? tab.sort : undefined,\n } as QueryFilter).subscribe((res: any) => {\n this.createTabData(res, status);\n });\n }\n }\n\n configureInIntegrationQueryFilter() {\n this.inIntegrationQueryFilter$.pipe(skip(1)).subscribe((value) => {\n const paginator = this.page$.value;\n\n this.apiIntegracaoServ\n .getInIntegrations({\n query: this.dashboardService.search$.value,\n skip: (paginator.page - 1) * paginator.pageLength,\n take: paginator.pageLength,\n ...value,\n })\n .subscribe((res: any) => {\n this.createTabData(res, EnumTabStatus.inIntegration);\n });\n });\n }\n\n onProductImported() {\n this.loadProductsData(EnumTabStatus.draft);\n }\n\n createTabData(\n data: IResponse,\n status: EnumTabStatus,\n subViewType?: EnumProductTableInReviewSubView\n ) {\n const tab = this.tabs.find((elem) => elem.status == status);\n\n if (tab) {\n tab.count = data.count || 0;\n tab.products = data.data || [];\n this.inRevisionTabFilterPermission =\n \"rhcdm.dadosprodutos.listarIntegracoes\";\n if (status === EnumTabStatus.review) {\n this.inRevisionProductsArrays.allInRevision = tab;\n }\n }\n\n // se o status for inreview a maneira que vai montar o objeto da tab vai ser diferente\n\n // if (status == EnumTabStatus.review) {\n // this.integrationData = tab;\n // }\n\n if (status == EnumTabStatus.integration) {\n this.integrationData = tab;\n }\n\n if (status == EnumTabStatus.massIntegration) {\n this.massIntegrationData = {\n name: \"mass integration\",\n status: EnumTabStatus.massIntegration,\n count: data.count,\n products: data.data,\n sort: {},\n permission: \"rhcdm.dadosprodutos.listarIntegracoes\",\n };\n }\n }\n\n configureSearch() {\n this.dashboardService.search$.pipe(skip(1), debounceTime(800)).subscribe(() => {\n this.loadAllProductsData(true);\n });\n }\n\n private createTabs() {\n this.tabs = [\n {\n name: \"draft\",\n status: EnumTabStatus.draft,\n count: 0,\n products: [],\n sort: {},\n permission: \"rhcdm.dadosprodutos.listarRascunho\",\n },\n {\n name: \"in review\",\n status: EnumTabStatus.review,\n count: 0,\n products: [],\n sort: {},\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n },\n // {\n // name: 'in review new',\n // status: EnumTabStatus.reviewNew,\n // count: 0,\n // products: [],\n // sort: {},\n // permission: 'rhcdm.dadosprodutos.listarEmRevisao'\n // },\n {\n name: \"inconsistencies\",\n status: EnumTabStatus.inconsistency,\n count: 0,\n products: [],\n sort: {},\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n },\n {\n name: \"registereds\",\n status: EnumTabStatus.registered,\n count: 0,\n products: [],\n sort: {},\n permission: \"rhcdm.dadosprodutos.listarCadastrados\",\n },\n {\n name: \"responsable\",\n status: EnumTabStatus.responsable,\n count: 0,\n products: [],\n sort: {},\n permission: \"rhcdm.comercial.visualizarAba\",\n },\n {\n name: \"in integration\",\n status: EnumTabStatus.inIntegration,\n count: 0,\n products: [],\n permission: \"rhcdm.dadosprodutos.listarIntegracoes\",\n },\n {\n name: \"integrations\",\n status: EnumTabStatus.integration,\n count: 0,\n products: [],\n permission: \"rhcdm.dadosprodutos.listarIntegracoes\",\n },\n // {\n // name: \"inactive\",\n // status: EnumTabStatus.inactive,\n // count: 0,\n // products: [],\n // sort: {},\n // permission: \"rhcdm.dadosprodutos.listarCadastrados\",\n // },\n ];\n\n this.inReviewTabs = [\n {\n name: \"in review\",\n title: \"Produtos Novos\",\n status: EnumProductTableInReviewSubView.newInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Produtos Integrados\",\n status: EnumProductTableInReviewSubView.integratedInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n {\n name: \"in review\",\n title: \"Todos os produtos\",\n status: EnumProductTableInReviewSubView.allInReview,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarEmRevisao\",\n count: 0,\n products: [],\n },\n ];\n\n this.inRegisteredsTabs = [\n {\n name: \"responsable\",\n title: \"Reprovados (Fornecedor)\",\n status: EnumProductTableRegisteredsSubView.registeredsSupplier,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Reprovados (Comercial)\",\n status: EnumProductTableRegisteredsSubView.registeredsCommercial,\n subViews: [],\n permission: \"rhcdm.dadosprodutos.listarInconsistencias\",\n count: 0,\n products: [],\n },\n ]\n\n this.inResponsableTabs = [\n {\n name: \"responsable\",\n title: \"Produtos em Revisão\",\n status: EnumProductTableInResponsableSubView.inRevision,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Produtos Liberados\",\n status: EnumProductTableInResponsableSubView.inOpen,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n {\n name: \"responsable\",\n title: \"Todos\",\n status: EnumProductTableInResponsableSubView.all,\n subViews: [],\n permission: \"rhcdm.comercial.visualizarAba\",\n count: 0,\n products: [],\n },\n ]\n }\n}\n\ntype ProductTableAll = ProductTable | ProductTableInReview;\nexport interface ProductTable {\n name: string;\n status: EnumTabStatus;\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n permission: string;\n sort?: { [x: string]: number };\n}\n\nexport interface ProductTableInReview {\n title: string;\n name: string;\n status: EnumProductTableInReviewSubView;\n subViews: ProductTableInReviewSubView[];\n permission: string;\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n sort?: { [x: string]: number };\n}\nexport interface ProductTableInResponsable {\n title: string;\n name: string;\n status: EnumProductTableInResponsableSubView;\n subViews: ProductTableInReviewSubView[];\n permission: string;\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n sort?: { [x: string]: number };\n}\nexport interface ProductTableRegistereds {\n title: string;\n name: string;\n status: EnumProductTableRegisteredsSubView;\n subViews: ProductTableRegisteredsSubView[];\n permission: string;\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n sort?: { [x: string]: number };\n}\n\nexport enum EnumProductTableInReviewSubView {\n allInReview = 0,\n newInReview = 1,\n integratedInReview = 2,\n commercialDraft = 3,\n fiscalDataInReview = 4,\n coastAndPriceInReview = 5\n}\n\nexport enum EnumProductTableInResponsableSubView {\n inRevision = 0,\n inOpen = 1,\n all = 2\n}\nexport enum EnumProductTableRegisteredsSubView {\n registeredsSupplier = 0,\n registeredsCommercial = 1\n}\n\nexport interface ProductTableInReviewSubView {\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n sort?: { [x: string]: number };\n}\n\nexport interface ProductTableRegisteredsSubView {\n count: number;\n products: DashboardFornecedor[] | WorkflowProduto[];\n sort?: { [x: string]: number };\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiGrupoPermissaoService } from 'src/app/services/api/autenticacao/api-grupo-permissao.service';\nimport { GrupoPermissao } from 'src/app/models/api/autenticacao/grupo-permissao.interface';\nimport { RouteDataService } from 'src/app/services/route-data.service';\n\n@Component({\n selector: 'c-role-list',\n templateUrl: './role-list.component.html',\n styleUrls: ['./role-list.component.scss']\n})\nexport class RoleListComponent implements OnInit {\n\n roleData: GrupoPermissao[];\n columns: string[] = ['name', 'actions'];\n\n constructor(\n private apiGrupoPermissaoService: ApiGrupoPermissaoService,\n private routeData: RouteDataService\n ) { }\n\n ngOnInit() {\n this.loadRoleData();\n }\n\n loadRoleData() {\n this.apiGrupoPermissaoService.get().subscribe(res => {\n this.roleData = res;\n });\n }\n\n edit(data: GrupoPermissao) {\n this.routeData.data = data;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable()\nexport class DashboardService {\n search$ = new BehaviorSubject(\"\");\n\n departmentChange$ = new Subject();\n categoryChange$ = new Subject();\n sublevelChange$ = new Subject();\n\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { skip, debounceTime } from 'rxjs/operators';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { DashboardService } from '../services/dashboard.service';\nimport { CategoriaGlobal } from 'src/app/models/api/dados-especificos/categoria-global.interface';\nimport { ApiCategoriaGlobalService } from 'src/app/services/api/dados-especificos/api-global-category.service';\nimport { SubnivelCampoDinamico } from 'src/app/models/api/dados-especificos/subnivel-campo-dinamico';\nimport { FormDinamico, FormDinamicoCampo } from 'src/app/models/api/dados-especificos/form-dinamico';\n\n@Component({\n selector: 'c-sublevel',\n templateUrl: './sublevel.component.html',\n styleUrls: ['./sublevel.component.scss']\n})\nexport class SublevelComponent implements OnInit, OnDestroy {\n\n paginator$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n sublevelData: SublevelEditable[];\n sublevelPaginatedData: SublevelEditable[];\n sublevelFilteredData: SublevelEditable[];\n columns: string[] = ['name', 'category', 'categoryId', 'globalCategory', 'active', 'actions'];\n search$ = new BehaviorSubject('');\n categoriesData: Categoria[];\n form: FormGroup;\n categoryChange$: Subscription;\n globalCategoriesData: CategoriaGlobal[];\n listStock: string[] = [];\n\n constructor(\n private apiCategoriaService: ApiCategoriaService,\n private apiSubnivelService: ApiSubnivelService,\n private dashboardService: DashboardService,\n private fb: FormBuilder,\n private apiGlobalCategoryService: ApiCategoriaGlobalService\n ) {\n this.getStock()\n this.createForm();\n this.listenPaginator();\n this.listenSearch();\n }\n getStock() {\n this.listStock = [\"SPECIFICATION\", \"LIST\", \"RADIO\", \"COMBO\"];\n }\n\n async ngOnInit() {\n await this.loadCategoryData();\n this.loadSublevelData();\n this.loadGlobalCategories();\n\n // Listen category changes\n this.categoryChange$ = this.dashboardService.categoryChange$.subscribe(() => {\n this.loadCategoryData();\n });\n }\n\n ngOnDestroy() {\n if (this.categoryChange$) {\n this.categoryChange$.unsubscribe();\n }\n }\n\n createForm() {\n this.form = this.fb.group({\n descricao: [null],\n metaTag: [null],\n stockKeepingUnitSelectionMode: [null],\n categoriaId: [null],\n globalCategoryId: [null],\n cloneFrom: [null],\n categoryId: 0\n });\n }\n\n loadGlobalCategories() {\n this.apiGlobalCategoryService.getAll().subscribe(res => {\n this.globalCategoriesData = res;\n });\n }\n\n async loadCategoryData() {\n const res = await this.apiCategoriaService.getAllAtivosInativos().toPromise();\n this.categoriesData = res.data;\n }\n\n loadSublevelData() {\n this.apiSubnivelService.getAllAtivosInativos().subscribe(res => {\n this.sublevelData = res.data as SublevelEditable[];\n this.paginate(this.paginator$.value);\n });\n }\n\n edit(data: SublevelEditable) {\n data.newDescription = data.descricao;\n data.newCategoryId = data.categoriaId;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = true;\n }\n\n cancelEdit(data: SublevelEditable) {\n data.newDescription = data.descricao;\n data.newCategoryId = data.categoriaId;\n data.newGlobalCategoryId = data.globalCategoryId;\n data.isEditActive = false;\n }\n\n async save(data: SublevelEditable) {\n if (!data) {\n const category: Categoria = this.form.value;\n if (category.categoryId == null){\n category.categoryId = 0;\n }\n const { cloneFrom } = this.form.value;\n category.descricao = category.descricao.toUpperCase();\n category.camposList = this.getCamposList(cloneFrom);\n\n\n this.apiSubnivelService.insert(category).subscribe(res => {\n this.form.reset();\n this.loadSublevelData();\n });\n } else {\n const description = data.newDescription.toUpperCase();\n const categoryId = data.newCategoryId;\n const globalCategoryId = data.newGlobalCategoryId;\n const camposList = data.camposList;\n\n this.apiSubnivelService.update({\n id: data.id, descricao: description, categoriaId: categoryId, globalCategoryId, camposList\n }).subscribe(res => {\n data.descricao = description;\n data.categoriaId = categoryId;\n data.isEditActive = false;\n });\n }\n\n this.dashboardService.sublevelChange$.next();\n }\n async changeEnableDisable(data: SublevelEditable) {\n try {\n await this.apiSubnivelService.delete(data.id).toPromise();\n } catch {\n setTimeout(() => {\n window.location.reload();\n }, 4000);\n\n }\n this.dashboardService.sublevelChange$.next();\n }\n getCamposList(sublevelId: string): FormDinamicoCampo[] {\n let sublevels = this.sublevelData.filter(\n c => c.id === sublevelId);\n\n return sublevels == null || sublevels.length == 0 ? [] : (sublevels[0].camposList as FormDinamicoCampo[]);\n }\n\n private listenPaginator() {\n this.paginator$.subscribe(res => {\n this.paginate(res);\n });\n }\n\n private paginate(data: IPaginator) {\n if (this.sublevelData) {\n const startAt = (data.page - 1) * data.pageLength;\n this.sublevelPaginatedData = this.sublevelData.slice(startAt, startAt + data.pageLength);\n }\n }\n\n private listenSearch() {\n this.search$.pipe(skip(1), debounceTime(800)).subscribe((res) => {\n if (res) {\n this.sublevelFilteredData = this.sublevelData.filter(elem => {\n const regex = new RegExp(res.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n const subnivel = regex.test(elem.descricao.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n const category = regex.test(this.categoryIdToDescription(elem.categoriaId.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')));\n const categoryId = regex.test(String(elem.categoryId));\n return subnivel || category || categoryId;\n });\n } else {\n this.sublevelFilteredData = undefined;\n }\n });\n }\n\n categoryIdToDescription(id: string) {\n const category = this.categoriesData.find(elem => elem.id == id);\n\n if (category) {\n return category.descricao;\n }\n }\n\n globalCategoryIdToDescription(id: string) {\n const globalCategory = this.globalCategoriesData.find(elem => elem.id == id);\n\n if (globalCategory) {\n return globalCategory.descricao;\n }\n }\n\n get canCreate() {\n return this.descricao.value && this.categoriaId.value && this.globalCategoryId.value;\n }\n\n // Form gets\n get descricao() { return this.form.get('descricao'); }\n get categoriaId() { return this.form.get('categoriaId'); }\n get globalCategoryId() { return this.form.get('globalCategoryId'); }\n\n}\n\ninterface SublevelEditable extends Subnivel {\n isEditActive: boolean;\n newDescription: string;\n newCategoryId: string;\n newGlobalCategoryId: string;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { debounceTime, switchMap, map, tap } from 'rxjs/operators';\nimport { FornecedorBusca } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiFornecedorService } from 'src/app/services/api/autenticacao/api-fornecedor.service';\n\n@Component({\n selector: 'c-supplier-list',\n templateUrl: './supplier-list.component.html',\n styleUrls: ['./supplier-list.component.scss']\n})\nexport class SupplierListComponent implements OnInit {\n totalItems = 0;\n\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n search$ = new BehaviorSubject('');\n data$: Observable;\n\n constructor(\n private apiFornecedor: ApiFornecedorService\n ) { }\n\n ngOnInit() {\n this.data$ = combineLatest([\n this.search$.pipe(\n debounceTime(800),\n ),\n this.page$\n ]).pipe(\n switchMap(([query, page]) => this.apiFornecedor.find({\n filtro: query,\n take: page.pageLength,\n skip: (page.page - 1) * page.pageLength\n })),\n tap(response => this.totalItems = response.count),\n map(response => response.data)\n );\n }\n\n realod() {\n const currentPage = this.page$.value;\n this.page$.next({\n isLastPage: false,\n page: 0,\n total: 0,\n ...currentPage,\n });\n }\n\n}\n","import { Component, OnInit, Input , Output, EventEmitter } from '@angular/core';\nimport { Fornecedor } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiXmlService } from 'src/app/services/api/xml/api-xml.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'c-xml-list-table',\n templateUrl: './xml-list-table.component.html',\n styleUrls: ['./xml-list-table.component.scss']\n})\nexport class XmlListTableComponent implements OnInit {\n @Output() listUpdated = new EventEmitter();\n @Input() dataSource: Fornecedor[];\n columns: string[] = ['nome', 'url', 'actions'];\n\n constructor(\n private apiXml: ApiXmlService\n ) { }\n\n ngOnInit() {\n }\n\n url(elem){\n return environment.api + \"/\" + environment.microservice.xml + \"/ProdutoXML/Download/\" + elem.nomeArquivo\n }\n\n delete(name: string) {\n this.apiXml.delete(name).subscribe(() => {\n this.listUpdated.emit();\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { IPaginator } from 'src/app/ui/paginator/paginator.component';\nimport { debounceTime, switchMap, map, tap } from 'rxjs/operators';\nimport { FornecedorBusca } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiXmlService } from 'src/app/services/api/xml/api-xml.service';\n\n@Component({\n selector: 'c-xml-list',\n templateUrl: './xml-list.component.html',\n styleUrls: ['./xml-list.component.scss']\n})\nexport class XmlListComponent implements OnInit {\n\n totalItems:number = 0;\n\n page$ = new BehaviorSubject({\n isLastPage: false,\n page: 1,\n pageLength: 25,\n total: 0\n });\n\n data$: Observable;\n\n constructor(\n private apiXml: ApiXmlService\n ) { }\n\n ngOnInit() {\n\n this.data$ = this.page$.pipe(\n switchMap(page=>this.apiXml.get(page.page,page.pageLength)),\n tap(response => this.totalItems = (response as any).count),\n map(response => (response as any).data)\n )\n }\n\n realod() {\n const currentPage = this.page$.value;\n this.page$.next({\n isLastPage: false,\n page: 0,\n total: 0,\n ...currentPage,\n });\n }\n\n}\n","import { EnumCampoDinamicoType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum';\n\nexport const disableRules = new Map([\n [EnumCampoDinamicoType.Text, [\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'options',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.Number, [\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'options',\n 'mask',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.SimpleSelect, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.Radio, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.MultipleSelect, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.CheckBox, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.min',\n 'dynamicFieldValidator.minValue',\n 'dynamicFieldValidator.max',\n 'dynamicFieldValidator.maxValue',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.Composition, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'min',\n 'max',\n ]],\n [EnumCampoDinamicoType.Range, [\n 'prefix',\n 'sufix',\n 'mask',\n 'dynamicFieldValidator.required',\n 'dynamicFieldValidator.minLength',\n 'dynamicFieldValidator.minLengthValue',\n 'dynamicFieldValidator.maxLength',\n 'dynamicFieldValidator.maxLengthValue',\n 'dynamicFieldValidator.email',\n 'dynamicFieldValidator.pattern',\n 'dynamicFieldValidator.patternValue',\n 'options'\n ]],\n]);\n","import { DynamicFieldEditorForm, DynamicFieldEditorFormValidation } from './form';\nimport { DynamicField, DynamicFieldValidator } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { EnumCampoDinamicoType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum';\nimport { ValidacoesDinamicas } from 'src/app/models/api/dados-especificos/validacoes-dinamicas';\nimport { EnumCampoDinamicoValidationType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-validation-type.enum';\nimport { DynamicFieldEditorService } from './dynamic-field-editor.service';\n\nexport function convertCampoDinamicoToForm(campoDinamico: CampoDinamico): DynamicFieldEditorForm {\n const { dynamicFieldValidator: dfv, ...dynamicField } = campoDinamico;\n const dynamicFieldValidator: Partial = {};\n\n if (dfv) {\n const requiredValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.Required );\n const emailValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.Email );\n const minLengthValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.MinLength );\n const maxLengthValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.MaxLength );\n const minValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.Min );\n const maxValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.Max );\n const patternValidation = dfv.find( v => v.type === EnumCampoDinamicoValidationType.Pattern );\n\n if ( requiredValidation ) {\n dynamicFieldValidator.required = true;\n }\n if ( emailValidation ) {\n dynamicFieldValidator.email = true;\n }\n if ( minLengthValidation ) {\n dynamicFieldValidator.minLength = true;\n dynamicFieldValidator.maxLengthValue = minLengthValidation.value;\n }\n if ( maxLengthValidation ) {\n dynamicFieldValidator.maxLength = true;\n dynamicFieldValidator.maxLengthValue = maxLengthValidation.value;\n }\n if ( minValidation ) {\n dynamicFieldValidator.min = true;\n dynamicFieldValidator.minValue = minValidation.value;\n }\n if ( maxValidation ) {\n dynamicFieldValidator.max = true;\n dynamicFieldValidator.maxValue = maxValidation.value;\n }\n if ( patternValidation ) {\n dynamicFieldValidator.pattern = true;\n dynamicFieldValidator.patternValue = patternValidation.pattern;\n }\n }\n\n return {\n dynamicFieldValidator,\n ...dynamicField,\n } as DynamicFieldEditorForm;\n}\n\nexport function convertFormToCampoDinamico(form: DynamicFieldEditorForm): CampoDinamico {\n const { dynamicFieldValidator: dfv, min, max, ...dynamicField } = form;\n const dynamicFieldValidator: ValidacoesDinamicas[] = [];\n\n if (dynamicField.type == EnumCampoDinamicoType.Range) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Min,\n value: min,\n errorMessage: `Deve ser no minimo ${ min }!`\n } as ValidacoesDinamicas);\n\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Max,\n value: max,\n errorMessage: `Deve ser no máximo ${ max }!`\n } as ValidacoesDinamicas);\n }\n\n if (dfv.required) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Required,\n errorMessage: 'Campo obrigatório!'\n } as ValidacoesDinamicas);\n }\n if (dfv.email) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Email,\n errorMessage: 'E-mail inválido!'\n } as ValidacoesDinamicas);\n }\n if (dfv.minLength && dfv.minLengthValue != undefined) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.MinLength,\n value: dfv.minLengthValue,\n errorMessage: `Deve ter ao menos ${ dfv.minLengthValue } caracteres!`\n } as ValidacoesDinamicas);\n }\n if (dfv.maxLength && dfv.maxLengthValue != undefined) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.MaxLength,\n value: dfv.maxLengthValue,\n errorMessage: `Deve ter no máximo ${ dfv.maxLengthValue } caracteres!`\n } as ValidacoesDinamicas);\n }\n if (dfv.min && dfv.minValue != undefined) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Min,\n value: dfv.minValue,\n errorMessage: `Deve ser no minimo ${ dfv.minValue }!`\n } as ValidacoesDinamicas);\n }\n if (dfv.max && dfv.maxValue != undefined) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Max,\n value: dfv.maxValue,\n errorMessage: `Deve ser no máximo ${ dfv.maxValue }!`\n } as ValidacoesDinamicas);\n }\n if (dfv.pattern && dfv.patternValue != undefined) {\n dynamicFieldValidator.push({\n type: EnumCampoDinamicoValidationType.Pattern,\n pattern: dfv.patternValue,\n errorMessage: 'Padrão inválido!'\n } as ValidacoesDinamicas);\n }\n\n return { dynamicFieldValidator, min, max, ...dynamicField };\n}\n\nexport function convertFormToDynamicField(form: DynamicFieldEditorForm): DynamicField {\n const campoDinamico = convertFormToCampoDinamico(form);\n return ({\n ...campoDinamico,\n label: campoDinamico.label || '',\n type: campoDinamico.type || EnumCampoDinamicoType.Text,\n id: '' + campoDinamico.type,\n\n dynamicFieldValidator: campoDinamico.dynamicFieldValidator as any[] || [],\n options: campoDinamico.options as any[] || []\n });\n}\n","import { Injectable } from '@angular/core';\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicFieldEditorResolverService implements Resolve {\n\n constructor(\n private apiCampoDinamicoService: ApiCampoDinamicoService\n ) { }\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\n const id = route.paramMap.get('id');\n\n if (id) {\n return this.apiCampoDinamicoService.getById(id);\n } else {\n return null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { CanDeactivateGuard } from 'src/app/services/guards/can-deactivate.guard';\nimport { AuthGuard } from 'src/app/services/guards/auth.guard';\nimport { DynamicFieldEditorComponent } from './dynamic-field-editor.component';\nimport { DynamicFieldEditorResolverService } from './dynamic-field-editor-resolver.service';\n\n\nconst routes: Routes = [\n {\n path: '', redirectTo: '/dashboard', pathMatch: 'full'\n },\n {\n path: 'new',\n component: DynamicFieldEditorComponent,\n canDeactivate: [\n CanDeactivateGuard\n ],\n canActivate: [AuthGuard],\n resolve: {\n field: DynamicFieldEditorResolverService\n },\n // to-do: criar permissao no banco\n // data: { permission: 'rhcdm.dynamic-field-editor.editar' }\n },\n {\n path: ':id',\n component: DynamicFieldEditorComponent,\n canDeactivate: [\n CanDeactivateGuard\n ],\n canActivate: [AuthGuard],\n resolve: {\n field: DynamicFieldEditorResolverService\n },\n // to-do: criar permissao no banco\n // data: { permission: 'rhcdm.dynamic-field-editor.editar' }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class DynamicFieldEditorRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { DynamicFieldEditorService } from './dynamic-field-editor.service';\nimport { FormGroup } from '@angular/forms';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { EnumCampoDinamicoType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum';\nimport { icons } from './icons';\n\n@Component({\n selector: 'c-dynamic-field-editor',\n templateUrl: './dynamic-field-editor.component.html',\n styleUrls: ['./dynamic-field-editor.component.scss'],\n providers: [\n DynamicFieldEditorService\n ]\n})\nexport class DynamicFieldEditorComponent implements OnInit {\n EnumCampoDinamicoType = EnumCampoDinamicoType;\n icons = icons;\n constructor(\n public dynamicFieldEditorService: DynamicFieldEditorService,\n public confirmDialogService: ConfirmDialogService,\n\n ) { }\n\n canDeactivate() {\n /*this.dynamicFieldEditorService.readonly ||*/\n\n return this.dynamicFieldEditorService.form.pristine ||\n this.confirmDialogService.confirm('Tem certeza que deseja sair sem salvar?');\n }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DynamicFieldEditorRoutingModule } from './dynamic-field-editor-routing.module';\nimport { DynamicFieldEditorComponent } from './dynamic-field-editor.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { CollapseModule } from 'src/app/ui/collapse/collapse.module';\nimport { TabModule } from 'src/app/ui/tab/tab.module';\nimport { RangeModule } from 'src/app/ui/range/range.module';\nimport { DynamicFormModule } from 'src/app/lib/dynamic-form/dynamic-form.module';\nimport { EmptyPatternModule } from 'src/app/ui/empty-pattern/empty-pattern.module';\nimport { CompositionInputModule } from 'src/app/ui/composition-input/composition-input.module';\n\n@NgModule({\n declarations: [DynamicFieldEditorComponent],\n imports: [\n CommonModule,\n DynamicFieldEditorRoutingModule,\n SharedModule,\n InputModule,\n SelectModule,\n CheckboxModule,\n RadioModule,\n CardModule,\n IconModule,\n ModalModule,\n CollapseModule,\n TabModule,\n RangeModule,\n DynamicFormModule,\n EmptyPatternModule,\n CompositionInputModule,\n ]\n})\nexport class DynamicFieldEditorModule { }\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { Observable, defer } from 'rxjs';\nimport { DynamicFormConfig } from 'src/app/lib/dynamic-form/models/dyanmic-form.interface';\nimport { startWith, map, tap, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { convertFormToDynamicField, convertCampoDinamicoToForm, convertFormToCampoDinamico } from './dynamic-field-editor-convertions';\nimport { EnumCampoDinamicoType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum';\nimport { getUniqueId } from 'src/app/shared/utils/get-unique-id';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { DynamicFieldEditorForm } from './form';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { disableRules } from './disable-rules';\n\n@Injectable()\nexport class DynamicFieldEditorService {\n form: FormGroup;\n dynamicFormConfigPreview = this.fb.control({});\n dynamicFormConfig$: Observable;\n\n readonly disableRules = disableRules;\n\n constructor(\n private fb: FormBuilder,\n private activatedRoute: ActivatedRoute,\n private toastService: ToastService,\n private router: Router,\n private apiCampoDinamicoService: ApiCampoDinamicoService,\n ) {\n this.init();\n }\n\n // #region inicialização\n\n get optionsFormArray() {\n return this.form && this.form.get('options') as FormArray;\n }\n\n private init() {\n this.form = this.createForm();\n\n this.form.get('type').valueChanges.pipe(\n startWith(this.form.get('type').value),\n distinctUntilChanged()\n ).subscribe( value => {\n // habilita todos os campos\n this.form.enable();\n\n const rule = this.disableRules.get(value) || [];\n rule.forEach( fieldPath => {\n this.form.get(fieldPath).disable();\n });\n });\n\n this.dynamicFormConfig$ = defer(() => this.form.valueChanges.pipe(\n startWith(this.form.value),\n debounceTime(100),\n map(value => [convertFormToDynamicField(value)]),\n ));\n\n this.activatedRoute.data.subscribe(({ field }: { field: CampoDinamico }) => {\n const form = field ? convertCampoDinamicoToForm(field) : null;\n this.setFormData(form);\n });\n }\n\n private setFormData(data?: DynamicFieldEditorForm) {\n console.log('resetando');\n this.form.reset();\n if (data) {\n this.form.patchValue(data);\n\n if (data.options) {\n data.options.forEach(o => {\n const optionForm = this.createOptionsForm();\n optionForm.patchValue(o);\n this.optionsFormArray.push(optionForm);\n });\n }\n\n } else {\n this.form.patchValue({\n type: EnumCampoDinamicoType.Text,\n layout: {\n size: 4,\n hightlight: false\n },\n mask: ''\n });\n }\n console.log('formulario atualizado', this.form.value);\n }\n\n private getFormData() {\n\n }\n\n // #endregion inicialização\n\n // #region ações da tela\n\n save() {\n if (this.form.valid) {\n const campoDinamico = convertFormToCampoDinamico(this.form.value);\n\n if (this.form.get('id').value) {\n this.apiCampoDinamicoService.update(campoDinamico).subscribe(result => {\n this.form.markAsUntouched();\n this.router.navigateByUrl('/');\n });\n } else {\n this.apiCampoDinamicoService.insert(campoDinamico).subscribe(result => {\n this.form.get('id').setValue(result.id);\n this.form.markAsUntouched();\n this.toastService.toast('Salvo com sucesso!');\n this.router.navigateByUrl('/');\n });\n }\n } else {\n this.checkFormErrors();\n }\n }\n\n addOption() {\n const option = this.createOptionsForm();\n option.patchValue({\n optionId: getUniqueId(4), // criar novo id\n description: '',\n });\n this.optionsFormArray.push(option);\n }\n\n deleteOption(index: number) {\n this.optionsFormArray.removeAt(index);\n }\n\n // #endregion ações da tela\n\n private checkFormErrors() {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido', ToastType.error);\n }\n }\n\n private createForm() {\n return this.fb.group({\n id: this.fb.control([undefined]),\n\n // configurações gerais\n label: this.fb.control('', Validators.required),\n type: this.fb.control([undefined], Validators.required),\n layout: this.fb.group({\n size: this.fb.control([undefined], Validators.required),\n hightlight: this.fb.control([undefined]), // não incluso no template\n }),\n iconName: this.fb.control([undefined]),\n prefix: this.fb.control([undefined]),\n sufix: this.fb.control([undefined]),\n mask: this.fb.control([undefined]),\n\n // validações\n dynamicFieldValidator: this.createValidatorForm(),\n min: this.fb.control([undefined], Validators.required), // range min\n max: this.fb.control([undefined], Validators.required), // range max\n\n // opções\n options: this.fb.array([]),\n });\n }\n\n private createValidatorForm() {\n return this.fb.group({\n required: this.fb.control([undefined]),\n email: this.fb.control([undefined]),\n\n minLength: this.fb.control([undefined]),\n minLengthValue: this.fb.control([undefined]),\n\n maxLength: this.fb.control([undefined]),\n maxLengthValue: this.fb.control([undefined]),\n\n min: this.fb.control([undefined]),\n minValue: this.fb.control([undefined]),\n\n max: this.fb.control([undefined]),\n maxValue: this.fb.control([undefined]),\n\n pattern: this.fb.control([undefined]),\n patternValue: this.fb.control([undefined]),\n });\n }\n\n private createOptionsForm() {\n return this.fb.group({\n optionId: ['', Validators.required],\n description: ['', Validators.required],\n });\n }\n}\n","export const icons = [\n {\n id: '-',\n descricao: '-',\n }\n];\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { EmployeeComponent } from './employee.component';\nimport { AuthGuard } from 'src/app/services/guards/auth.guard';\n\nconst routes: Routes = [\n {\n path: '', component: EmployeeComponent,\n canActivate: [AuthGuard],\n data: { permission: 'rhcdm.funcionario.criar' }\n },\n {\n path: ':id',\n component: EmployeeComponent,\n canActivate: [AuthGuard],\n data: { permission: 'rhcdm.funcionario.editar' }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class EmployeeRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { ApiGrupoPermissaoService } from 'src/app/services/api/autenticacao/api-grupo-permissao.service';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { GrupoPermissao } from 'src/app/models/api/autenticacao/grupo-permissao.interface';\nimport { ApiUsuarioService } from 'src/app/services/api/autenticacao/api-usuario.service';\nimport { validatePassword } from 'src/app/shared/validators/password';\nimport { ApiFuncionarioService } from 'src/app/services/api/autenticacao/api-funcionario.service';\nimport { Usuario } from 'src/app/models/api/autenticacao/usuario';\nimport { Funcionario } from 'src/app/models/api/autenticacao/funcionario';\n\n@Component({\n selector: 'c-employee',\n templateUrl: './employee.component.html',\n styleUrls: ['./employee.component.scss']\n})\nexport class EmployeeComponent implements OnInit {\n\n userId: string;\n employeeId: string;\n form: FormGroup;\n isEdit: boolean;\n permissionGroupData: GrupoPermissao[];\n userData: Usuario;\n employeeData: Funcionario;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private apiGrupoPermissaoService: ApiGrupoPermissaoService,\n private apiFuncionarioService: ApiFuncionarioService,\n private apiUsuarioService: ApiUsuarioService,\n private fb: FormBuilder\n ) {\n this.createForm();\n }\n\n ngOnInit() {\n this.loadPermissionGroupData();\n this.checkIsEdit();\n }\n\n createForm() {\n this.form = this.fb.group({\n nome: [null, Validators.required],\n login: [null, Validators.required],\n email: [null, [Validators.required, Validators.email]],\n senha: [null, Validators.required],\n repetirSenha: [null, [Validators.required, validatePassword(() => this.senha)]],\n gruposPermissaoIdList: [null, Validators.required],\n });\n }\n\n checkIsEdit() {\n if (this.route.snapshot.params.id) {\n this.employeeId = this.route.snapshot.params.id;\n this.isEdit = true;\n this.senha.disable();\n this.repetirSenha.disable();\n this.loadUserData();\n }\n }\n\n async loadUserData() {\n this.employeeData = await this.apiFuncionarioService.getById(this.employeeId).toPromise();\n this.userData = await this.apiFuncionarioService.getUserByEmployeeId(this.employeeId).toPromise();\n this.userId = this.userData.id;\n this.form.patchValue({\n nome: this.employeeData.nome,\n email: this.employeeData.email,\n login: this.userData.login,\n gruposPermissaoIdList: this.userData.gruposPermissaoIdList\n });\n }\n\n loadPermissionGroupData() {\n this.apiGrupoPermissaoService.get().subscribe(res => {\n this.permissionGroupData = res;\n });\n }\n\n async save() {\n if (!this.isEdit) {\n const employeeData = await this.apiFuncionarioService.insert(this.createFuncionarioSaveData()).toPromise(); // Create employee\n await this.apiUsuarioService.insert(this.createUsuarioSaveData(employeeData.id)).toPromise(); // Create user with employee id\n\n this.router.navigateByUrl('/dashboard');\n } else {\n await this.apiFuncionarioService.update(this.createFuncionarioSaveData()).toPromise(); // Update employee\n await this.apiUsuarioService.update(this.createUsuarioSaveData(this.employeeId)).toPromise(); // Update user with employee id\n\n this.router.navigateByUrl('/dashboard');\n }\n }\n\n private createFuncionarioSaveData() {\n const formValue = this.form.value;\n const data = {\n id: this.employeeId,\n nome: formValue.nome,\n email: formValue.email\n };\n\n return data;\n }\n\n private createUsuarioSaveData(employeeId: string) {\n const formValue = this.form.value;\n\n const data = {\n id: this.userId,\n login: formValue.login,\n gruposPermissaoIdList: formValue.gruposPermissaoIdList,\n funcionarioId: employeeId\n } as Usuario;\n\n if (!this.isEdit) {\n data.senha = formValue.senha;\n }\n\n return data;\n }\n\n get nome() { return this.form.get('nome'); }\n get email() { return this.form.get('email'); }\n get senha() { return this.form && this.form.get('senha') as FormControl; }\n get repetirSenha() { return this.form.get('repetirSenha') as FormControl; }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmployeeComponent } from './employee.component';\nimport { EmployeeRoutingModule } from './employee-routing.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\n\n@NgModule({\n declarations: [\n EmployeeComponent\n ],\n imports: [\n CommonModule,\n EmployeeRoutingModule,\n SharedModule,\n CardModule,\n CheckboxModule,\n InputModule,\n IconModule\n ]\n})\nexport class EmployeeModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { HomeComponent } from './home.component';\n\nconst routes: Routes = [\n { path: '', component: HomeComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class HomeRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss']\n})\nexport class HomeComponent implements OnInit {\n\n constructor(\n ) {\n }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HomeRoutingModule } from './home-routing.module';\nimport { HomeComponent } from './home.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\n\n@NgModule({\n declarations: [\n HomeComponent\n ],\n imports: [\n CommonModule,\n HomeRoutingModule,\n SharedModule,\n CheckboxModule,\n RadioModule\n ]\n})\nexport class HomeModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginSupplierComponent } from './login-supplier/login-supplier.component';\nimport { LoginComponent } from './login/login.component';\n\nconst routes: Routes = [\n { path: '', component: LoginComponent },\n { path: 'fornecedor', component: LoginSupplierComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class LoginRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { ApiAutenticacaoService } from 'src/app/services/api/autenticacao/api-autenticacao.service';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ApiUsuarioService } from 'src/app/services/api/autenticacao/api-usuario.service';\nimport { LocalStorage } from 'src/app/shared/decorators/local-storage.decorator';\n\n@Component({\n selector: 'c-login-supplier',\n templateUrl: './login-supplier.component.html',\n styleUrls: ['./login-supplier.component.scss']\n})\nexport class LoginSupplierComponent implements OnInit {\n\n @LocalStorage() keepConnected: boolean;\n\n form: FormGroup;\n resetPasswordForm: FormGroup;\n isForgetPasswordVisible: boolean;\n\n constructor(\n private fb: FormBuilder,\n private autenticationServ: ApiAutenticacaoService,\n private apiUsuarioService: ApiUsuarioService,\n private toastService: ToastService,\n private router: Router,\n ) {\n this.createForm();\n this.createResetPasswordForm();\n\n if (this.keepConnected == null) {\n this.keepConnected = true;\n }\n }\n\n ngOnInit() {\n }\n\n createForm() {\n this.form = this.fb.group({\n login: [null, [Validators.required]],\n pass: [null, [Validators.required]]\n });\n }\n\n createResetPasswordForm() {\n this.resetPasswordForm = this.fb.group({\n login: [null, [Validators.required]],\n email: [null, [Validators.required, Validators.email]]\n });\n }\n\n login() {\n const data = this.form.value;\n this.autenticationServ.auth(data.login, data.pass).subscribe(() => {\n this.router.navigateByUrl('/dashboard');\n });\n }\n\n showForgetPasswordForm() {\n this.isForgetPasswordVisible = true;\n }\n\n showLoginForm() {\n this.isForgetPasswordVisible = false;\n }\n\n sendResetPasswordCode() {\n const formValue = this.resetPasswordForm.value;\n this.apiUsuarioService.forgetPassword(formValue.login, formValue.email).subscribe(res => {\n this.showLoginForm();\n this.toastService.toast(`O código foi enviado para ${formValue.email}`);\n this.resetPasswordForm.reset();\n });\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { LoginRoutingModule } from './login-routing.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { LoginComponent } from './login/login.component';\nimport { LoginSupplierComponent } from './login-supplier/login-supplier.component';\n\n@NgModule({\n declarations: [\n LoginComponent,\n LoginSupplierComponent\n ],\n imports: [\n CommonModule,\n LoginRoutingModule,\n SharedModule,\n CheckboxModule,\n InputModule,\n IconModule\n ]\n})\nexport class LoginModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { ApiAutenticacaoService } from 'src/app/services/api/autenticacao/api-autenticacao.service';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ApiUsuarioService } from 'src/app/services/api/autenticacao/api-usuario.service';\nimport { LocalStorage } from 'src/app/shared/decorators/local-storage.decorator';\nimport { ModalTermsComponent } from 'src/app/core/modal-terms/modal-terms.component';\nimport { ModalService } from 'src/app/ui/modal/modal.service';\nimport { ToastrService } from 'ngx-toastr';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\n\n@Component({\n selector: 'c-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n\n @LocalStorage() keepConnected: boolean;\n\n form: FormGroup;\n resetPasswordForm: FormGroup;\n isForgetPasswordVisible: boolean;\n //termsOfUse = true\n privacyPolicie = true\n\n constructor(\n private fb: FormBuilder,\n private autenticationServ: ApiAutenticacaoService,\n private apiUsuarioService: ApiUsuarioService,\n private toastService: ToastService,\n private router: Router,\n private modalService: ModalService,\n private toastr: ToastrService,\n private route: ActivatedRoute\n ) {\n this.createForm();\n this.createResetPasswordForm();\n\n if (this.keepConnected == null) {\n this.keepConnected = true;\n }\n }\n\n ngOnInit() {\n this.route.snapshot.queryParams['forgot']? this.isForgetPasswordVisible = true: this.isForgetPasswordVisible = false\n }\n\n createForm() {\n this.form = this.fb.group({\n login: [null, [Validators.required]],\n pass: [null, [Validators.required]]\n });\n }\n\n createResetPasswordForm() {\n this.resetPasswordForm = this.fb.group({\n login: [null, [Validators.required]],\n email: [null, [Validators.required, Validators.email]]\n });\n }\n\n login() {\n const data = this.form.value;\n if(this.form.valid && this.privacyPolicie){\n this.autenticationServ.auth(data.login, data.pass).subscribe(() => {\n this.router.navigateByUrl('/dashboard');\n });\n }else{\n this.form.markAllAsTouched()\n //if(!this.termsOfUse) this.toastService.toast('Necessário aceitar os Termos de Uso!', ToastType.error);\n if(!this.privacyPolicie) this.toastService.toast('Necessário aceitar as Políticas de Privacidade!', ToastType.error);\n if(this.form.invalid)this.toastService.toast('Preencha os campos inválidos!', ToastType.error);\n }\n }\n\n showForgetPasswordForm() {\n this.isForgetPasswordVisible = true;\n }\n\n showLoginForm() {\n this.isForgetPasswordVisible = false;\n }\n\n sendResetPasswordCode() {\n const formValue = this.resetPasswordForm.value;\n if(this.resetPasswordForm.valid){\n this.apiUsuarioService.forgetPassword(formValue.login, formValue.email).subscribe(res => {\n this.showLoginForm();\n this.toastService.toast(`O código foi enviado para ${formValue.email}`);\n this.resetPasswordForm.reset();\n });\n }else{\n this.resetPasswordForm.markAllAsTouched()\n this.toastService.toast({description: 'Preencha os campos corretamente', type: ToastType.error});\n }\n }\n \n openDialog(type:string):void{\n this.modalService.open(ModalTermsComponent, {contentInitialState: {\n type\n }} );\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { NotFoundComponent } from './not-found.component';\n\nconst routes: Routes = [\n { path: '', component: NotFoundComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class NotFoundRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss']\n})\nexport class NotFoundComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NotFoundComponent } from './not-found.component';\nimport { NotFoundRoutingModule } from './not-found-routing.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [\n NotFoundComponent\n ],\n imports: [\n CommonModule,\n NotFoundRoutingModule,\n SharedModule\n ]\n})\nexport class NotFoundModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ProductIntegrationComponent } from './product-integration.component';\n\nconst routes: Routes = [\n {\n path: ':id',\n component: ProductIntegrationComponent\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ProductIntegrationRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { ApiWorkflowService } from 'src/app/services/api/workflow/api-workflow.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { LogIntegracao } from 'src/app/models/api/workflow/log-integracao.interface';\nimport { EnumSistemaIntegracaoStatus } from 'src/app/models/api/workflow/enum-sistema-integracao-status.enum';\nimport { ApiIntegracaoService } from 'src/app/services/api/workflow/api-integracao.service';\n\n@Component({\n selector: 'c-product-integration',\n templateUrl: './product-integration.component.html',\n styleUrls: ['./product-integration.component.scss']\n})\nexport class ProductIntegrationComponent implements OnInit {\n\n productId: string;\n generalData: WorkflowProduto;\n logData: LogIntegracao[];\n\n constructor(\n private route: ActivatedRoute,\n private apiWorkflowServ: ApiWorkflowService,\n private apiIntegracaoService: ApiIntegracaoService\n ) {\n this.productId = this.route.snapshot.paramMap.get('id');\n }\n\n ngOnInit() {\n this.loadProductIntegrationData();\n this.loadProductIntegrationLogData();\n }\n\n loadProductIntegrationData() {\n if (this.productId) {\n this.apiWorkflowServ.getById(this.productId).subscribe(res => {\n this.generalData = res;\n });\n }\n }\n\n loadProductIntegrationLogData() {\n if (this.productId) {\n this.apiWorkflowServ.getLogById(this.productId).subscribe(res => {\n if (res) {\n this.logData = res.reverse();\n }\n });\n }\n }\n\n getIntegrationStatusName(value: EnumSistemaIntegracaoStatus) {\n switch (value) {\n case EnumSistemaIntegracaoStatus.NaoIntegrado:\n return 'not integrated';\n\n case EnumSistemaIntegracaoStatus.Integrado:\n return 'integrated';\n\n case EnumSistemaIntegracaoStatus.ErroAoIntegrar:\n return 'error in integration';\n\n case EnumSistemaIntegracaoStatus.PrecisaSerAtualizado:\n return 'need update';\n }\n }\n\n get canIntegrateSap() {\n if (this.generalData) {\n return !this.generalData.bloquearIntegracaoSap;\n }\n }\n\n get canIntegrateVtex() {\n if (this.generalData) {\n return !this.generalData.bloquearIntegracaoVTEX;\n }\n }\n\n get isSapIntegrated() {\n if (this.generalData) {\n return this.generalData.integradoComSap;\n }\n }\n\n get isVtexIntegrated() {\n if (this.generalData) {\n return this.generalData.integradoComVTEX;\n }\n }\n\n get canApproveSapIntegration() {\n if (this.generalData) {\n return this.generalData.bloquearIntegracaoSap;\n }\n }\n\n get canApproveVtexIntegration() {\n if (this.generalData) {\n return this.generalData.bloquearIntegracaoVTEX;\n }\n }\n\n integrateSap() {\n this.apiIntegracaoService.integrateSap(this.productId).subscribe(() => {\n });\n }\n\n integrateVtex() {\n this.apiIntegracaoService.integrateVtex(this.productId).subscribe(() => {\n });\n }\n\n integrateCeva() {\n this.apiIntegracaoService.integrateCeva(this.productId).subscribe(() => {\n });\n }\n\n\n toggleApproveOrReproveSapIntegration() {\n if (this.generalData) {\n if (this.generalData.bloquearIntegracaoSap) {\n // Approve\n this.apiIntegracaoService.approveSapIntegration(this.productId, this.generalData.bloquearIntegracaoVTEX).subscribe();\n } else {\n // Reprove\n this.apiIntegracaoService.reproveSapIntegration(this.productId, this.generalData.bloquearIntegracaoVTEX).subscribe();\n }\n\n this.generalData.bloquearIntegracaoSap = !this.generalData.bloquearIntegracaoSap;\n }\n }\n\n toggleApproveOrReproveVtexIntegration() {\n if (this.generalData) {\n if (this.generalData.bloquearIntegracaoVTEX) {\n // Approve\n this.apiIntegracaoService.approveVtexIntegration(this.productId, this.generalData.bloquearIntegracaoSap).subscribe();\n } else {\n // Reprove\n this.apiIntegracaoService.reproveVtexIntegration(this.productId, this.generalData.bloquearIntegracaoSap).subscribe();\n }\n\n this.generalData.bloquearIntegracaoVTEX = !this.generalData.bloquearIntegracaoVTEX;\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProductIntegrationComponent } from './product-integration.component';\nimport { ProductIntegrationRoutingModule } from './product-integration-routing.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { TabModule } from 'src/app/ui/tab/tab.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { EmptyPatternModule } from 'src/app/ui/empty-pattern/empty-pattern.module';\nimport { GeneralIntegrationInfoModule } from 'src/app/ui/general-integration-info/general-integration-info.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\n\n@NgModule({\n declarations: [\n ProductIntegrationComponent\n ],\n imports: [\n CommonModule,\n ProductIntegrationRoutingModule,\n SharedModule,\n CardModule,\n TabModule,\n EmptyPatternModule,\n GeneralIntegrationInfoModule,\n IconModule\n ]\n})\nexport class ProductIntegrationModule { }\n","import { Directive, Optional, Input, AfterViewInit } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { startWith, switchMap, debounceTime, mapTo, map, filter, catchError, distinctUntilChanged } from 'rxjs/operators';\nimport { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { ProductService } from './services/product.service';\nimport { of, combineLatest, EMPTY } from 'rxjs';\n\n@Directive({\n selector: '[eanStatus], [dunStatus]',\n exportAs: 'eanStatus'\n})\nexport class EanStatusDirective implements AfterViewInit {\n status$ = of(null);\n\n constructor(\n @Optional() private ngControl: NgControl,\n private api: ApiDadosBasicosService,\n // private productService: ProductService\n ) { }\n\n ngAfterViewInit() {\n if (this.ngControl) {\n this.status$ = combineLatest([\n this.ngControl.valueChanges.pipe(startWith(this.ngControl.value)),\n this.ngControl.statusChanges.pipe(startWith(this.ngControl.status))\n ]).pipe(\n debounceTime(500),\n filter(([value, status]) => status == 'VALID' && !!value),\n map( ([value, status]) => value),\n distinctUntilChanged(),\n switchMap( ean => this.api.validateGS1(ean).pipe( catchError( () => EMPTY ) ) ),\n );\n }\n }\n}\n","import { FormControl, NgControl } from '@angular/forms';\nimport { isFunction } from 'src/app/shared/utils/is-function';\nimport { map, startWith, tap, first } from 'rxjs/operators';\nimport { isNullOrUndefined } from 'util';\n\nexport function greaterThan(controlToCompare: (() => FormControl) | FormControl, controlName: string) {\n return async (control: FormControl) => {\n if (isNullOrUndefined(control.value)) {\n return null;\n }\n\n const value = control.value;\n const valueToCompareControl = isFunction(controlToCompare) ? controlToCompare() : controlToCompare;\n const valueToCompare = valueToCompareControl.value;\n\n return value > valueToCompare ? null : { greaterThan: { controlName } };\n };\n}\n\nexport function greaterOrEqualThan(controlToCompare: (() => FormControl) | FormControl, controlName: string) {\n return async (control: FormControl) => {\n if (isNullOrUndefined(control.value)) {\n return null;\n }\n\n const value = control.value;\n const valueToCompareControl = isFunction(controlToCompare) ? controlToCompare() : controlToCompare;\n const valueToCompare = valueToCompareControl.value;\n\n return value >= valueToCompare ? null : { greaterOrEqualThan: { controlName } };\n };\n}\n\nexport function lessThan(controlToCompare: (() => FormControl) | FormControl, controlName: string) {\n return async (control: FormControl) => {\n if (isNullOrUndefined(control.value)) {\n return null;\n }\n\n const value = control.value;\n const valueToCompareControl = isFunction(controlToCompare) ? controlToCompare() : controlToCompare;\n const valueToCompare = valueToCompareControl.value;\n\n return value < valueToCompare ? null : { lessThan: { controlName } };\n };\n}\n\nexport function lessOrEqualThan(controlToCompare: (() => FormControl) | FormControl, controlName: string) {\n return async (control: FormControl) => {\n if (isNullOrUndefined(control.value)) {\n return null;\n }\n\n const value = control.value;\n const valueToCompareControl = isFunction(controlToCompare) ? controlToCompare() : controlToCompare;\n const valueToCompare = valueToCompareControl.value;\n\n return value <= valueToCompare ? null : { lessOrEqualThan: { controlName } };\n };\n}\n","import { FormControl } from '@angular/forms';\nimport { MediaFormMedias } from '../models/media-form';\n\nexport function imageRequired(control: FormControl) {\n if (control) {\n if (control.value) {\n // Try find a media without image or undefined\n let existMediaWithouImage: boolean;\n control.value.forEach((elem: MediaFormMedias) => {\n if (!(elem && elem.imagens && elem.imagens.length > 0)) {\n existMediaWithouImage = true;\n }\n });\n\n if (existMediaWithouImage) {\n return { required: true };\n }\n\n return null;\n }\n\n return { required: true };\n }\n\n return null;\n}\n","import { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { ApiDadosEspecificosService } from 'src/app/services/api/dados-especificos/api-dados-especificos.service';\nimport { AsyncValidator, AbstractControl } from '@angular/forms';\nimport { tap, mapTo, map, catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { of, merge, combineLatest } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnlineDunValidator {\n constructor(\n private apiDadosBasicos: ApiDadosBasicosService,\n private apiDadosEspecificos: ApiDadosEspecificosService,\n ) { }\n\n validate(productId?: string | (() => string)) {\n return (control: AbstractControl) => {\n const value: string = control.value;\n const id = typeof productId == 'string' ? productId : productId && productId();\n\n if (value && id) {\n return combineLatest([\n this.apiDadosBasicos.validateEan(value, id),\n this.apiDadosEspecificos.validateEan(value, id),\n ]).pipe(\n map( ([dadosBasicosError, dadosEspecificosError]) => {\n if (dadosBasicosError) {\n return {\n custom: dadosBasicosError\n };\n }\n\n if (dadosEspecificosError) {\n return {\n custom: dadosEspecificosError\n };\n }\n\n return null;\n })\n );\n }\n\n return of(null);\n };\n }\n}\n\n","import { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { ApiDadosEspecificosService } from 'src/app/services/api/dados-especificos/api-dados-especificos.service';\nimport { AsyncValidator, AbstractControl } from '@angular/forms';\nimport { tap, mapTo, map, catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { of, merge, combineLatest } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OnlineEanValidator {\n constructor(\n private apiDadosBasicos: ApiDadosBasicosService,\n private apiDadosEspecificos: ApiDadosEspecificosService,\n ) { }\n\n validate(productId?: string | (() => string)) {\n return (control: AbstractControl) => {\n const value: string = control.value;\n const id = typeof productId == 'string' ? productId : productId && productId();\n\n if (value && id) {\n return combineLatest([\n this.apiDadosBasicos.validateEan(value, id),\n this.apiDadosEspecificos.validateEan(value, id),\n ]).pipe(\n map( ([dadosBasicosError, dadosEspecificosError]) => {\n if (dadosBasicosError) {\n return {\n custom: dadosBasicosError\n };\n }\n\n if (dadosEspecificosError) {\n return {\n custom: dadosEspecificosError\n };\n }\n\n return null;\n })\n );\n }\n\n return of(null);\n };\n }\n}\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ProductService } from '../services/product.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\n\n@Component({\n selector: 'c-product-approval',\n templateUrl: './product-approval.component.html',\n styleUrls: ['./product-approval.component.scss']\n})\nexport class ProductApprovalComponent implements OnInit {\n\n @Input() tab: EnumAba;\n\n reason: string;\n EnumStatus = EnumStatus;\n\n constructor(\n public productServ: ProductService\n ) { }\n\n ngOnInit() {\n\n }\n\n approve() {\n this.productServ.approveOrReprove(this.reason, this.tab, true);\n }\n\n reprove() {\n this.productServ.approveOrReprove(this.reason, this.tab, false);\n }\n\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductBasicDataService } from '../services/product-basic-data.service';\nimport { ProductService } from '../services/product.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { combineLatest, merge } from 'rxjs';\n\n@Component({\n selector: 'c-product-basic-data',\n templateUrl: './product-basic-data.component.html',\n styleUrls: ['./product-basic-data.component.scss']\n})\nexport class ProductBasicDataComponent implements OnInit {\n\n enumAba = EnumAba;\n\n constructor(\n public productBasicDataService: ProductBasicDataService,\n public productService: ProductService\n ) { }\n\n ngOnInit() {\n this.productBasicDataService.form.get(\"foraDaEmbalagem.pesoBruto\").valueChanges.subscribe(v => {\n this.productBasicDataService.form.get(\"embalagemUnitaria.pesoLiquido\").setValue(v);\n });\n const pesoBrutoUnitarioControl = this.productBasicDataService.form.get('embalagemUnitaria.pesoBruto')\n const embalagemMultiplaCaixaControl = this.productBasicDataService.form.get('embalagemCaixa.embalagemMultipla')\n merge(pesoBrutoUnitarioControl.valueChanges, embalagemMultiplaCaixaControl.valueChanges)\n .subscribe((v) => {\n const pesoBruto = pesoBrutoUnitarioControl.value;\n const unidade = embalagemMultiplaCaixaControl.value;\n if (pesoBruto && unidade){\n this.productBasicDataService.form.get(\"embalagemCaixa.pesoLiquido\").setValue(parseFloat((pesoBruto * unidade).toFixed(3)));\n }\n else{\n this.productBasicDataService.form.get(\"embalagemCaixa.pesoLiquido\").setValue(null);\n }\n })\n }\n}\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ProductCommercialDataService } from '../services/product-commercial-data.service';\nimport { ProductService } from '../services/product.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { combineLatest, Observable, of, Subject } from 'rxjs';\nimport { TipoMaterial } from 'src/app/models/api/comercial/tipo-material';\nimport { ProductSpecificDataService } from '../services/product-specific-data.service';\nimport { ProductSpecificDataSubnivelService } from '../services/product-specific-data-subnivel.service';\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'c-product-commercial-data',\n templateUrl: './product-commercial-data.component.html',\n styleUrls: ['./product-commercial-data.component.scss']\n})\nexport class ProductCommercialDataComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n enumAba = EnumAba;\n\n tipoMaterial$: Observable;\n\n constructor(\n private productSpecificData: ProductSpecificDataService,\n private productSpecificDataSubnivel: ProductSpecificDataSubnivelService,\n public productCommercialData: ProductCommercialDataService,\n public productService: ProductService,\n ) {\n this.tipoMaterial$ = combineLatest([\n this.productCommercialData.tipoMaterial$,\n this.productSpecificData.departamentos$.pipe(map(departamentos => {\n return !!departamentos.find(departamento => \n departamento.id == this.productSpecificDataSubnivel.departamentoControl.value && \n departamento.descricao == 'MODA E ACESSÓRIOS');}))\n ]).pipe(takeUntil(this.destroy$), switchMap(([materials, isDepartamentoModa]) => {\n const control = this.productCommercialData.form.get('tipoMaterialId');\n const isSelectedMaterialMode = \n !!materials.find(material => material.id == control.value && material.descricao == \"Mode\");\n \n if((isDepartamentoModa && !isSelectedMaterialMode) || (!isDepartamentoModa && isSelectedMaterialMode)){\n control.setValue(null);\n }\n\n return of(materials.filter(material => (!isDepartamentoModa && material.descricao != \"Mode\") || \n (isDepartamentoModa && material.descricao == \"Mode\") ));\n }));;\n }\n\n ngOnInit() {\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n onKeyDown(event: KeyboardEvent) {\n if (event.key === ' ') {\n const inputElement = event.target as HTMLInputElement;\n inputElement.value += '\\n';\n inputElement.dispatchEvent(new Event('input'));\n event.preventDefault();\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductService } from '../services/product.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { ProductTaxDataService } from '../services/product-tax-data.service';\nimport { ProductCostAndPriceService } from '../services/product-cost-and-price.service';\n\n@Component({\n selector: 'c-product-cost-and-price',\n templateUrl: './product-cost-and-price.component.html',\n styleUrls: ['./product-cost-and-price.component.scss']\n})\nexport class ProductCostAndPriceComponent implements OnInit {\n\n enumAba = EnumAba;\n selectedFilialIndex = 0;\n\n constructor(\n public productService: ProductService,\n public taxDataService: ProductTaxDataService,\n public costAndPriceService: ProductCostAndPriceService\n ) { }\n\n ngOnInit() {\n this.costAndPriceService.codigoSapFornecedor.setValue(this.productService.header.sapFornecedor);\n }\n\n get selectedFilial() {\n return this.taxDataService.filiaisForm.get([this.selectedFilialIndex]);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../services/product-specific-data.service';\nimport { ProductBasicDataService } from '../services/product-basic-data.service';\nimport { Observable, combineLatest } from 'rxjs';\nimport { ProductService } from '../services/product.service';\nimport { startWith, map } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { ProductMediaService } from '../services/product-media.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'c-product-header',\n templateUrl: './product-header.component.html',\n styleUrls: ['./product-header.component.scss']\n})\nexport class ProductHeaderComponent implements OnInit {\n environment = environment;\n descricao$: Observable;\n ean$: Observable;\n categoriaDescription$: Observable;\n\n constructor(\n public productService: ProductService,\n public basicDataService: ProductBasicDataService,\n public productSpecificData: ProductSpecificDataService,\n public mediaService: ProductMediaService,\n ) {\n const descricaoControl = this.basicDataService.form.get('descricao');\n const eanControl = this.basicDataService.form.get('embalagemUnitaria.ean');\n this.descricao$ = descricaoControl.valueChanges.pipe( startWith(descricaoControl.value) );\n this.ean$ = eanControl.valueChanges.pipe( startWith(eanControl.value) );\n\n const categoriaControl = this.productSpecificData.form.get('categoriaId') as FormControl;\n this.categoriaDescription$ = combineLatest([\n categoriaControl.valueChanges.pipe(startWith(categoriaControl.value)),\n this.productSpecificData.categorias$\n ]).pipe(\n map( ([id, categorias]) => {\n const categoria = categorias.find( c => c.id == id);\n return categoria ? categoria.descricao : null;\n })\n );\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Historico, HistoricoAbaList } from 'src/app/models/api/historico/historico.interface';\nimport { ApiHistoricoService } from 'src/app/services/api/historico/api-historico.service';\n\n@Component({\n selector: 'c-product-historic-comment',\n templateUrl: './product-historic-comment.component.html',\n styleUrls: ['./product-historic-comment.component.scss']\n})\nexport class ProductHistoricCommentComponent implements OnInit {\n\n historic: Historico;\n messages: HistoricMessage[];\n\n constructor(\n private apiHistoricoService: ApiHistoricoService\n ) { }\n\n ngOnInit() {\n }\n\n @Input()\n set data(value: Historico) {\n if (value && value.historicoAbaList) {\n this.historic = value;\n this.messages = value.historicoAbaList.reverse();\n }\n }\n\n answer(data: HistoricMessage) {\n this.apiHistoricoService.createAsnwer({\n abaId: data.id,\n historicoId: this.historic.id,\n mensagem: data.answerToSend\n }).subscribe(res => {\n this.data = res;\n });\n }\n\n}\n\ninterface HistoricMessage extends HistoricoAbaList {\n answerToSend?: string;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductHistoricService } from '../services/product-historic.service';\n\n@Component({\n selector: 'c-product-historic',\n templateUrl: './product-historic.component.html',\n styleUrls: ['./product-historic.component.scss']\n})\nexport class ProductHistoricComponent implements OnInit {\n\n constructor(\n public productHistoricServ: ProductHistoricService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductWorkflowService } from '../services/product-workflow.service';\nimport { ProductService } from '../services/product.service';\n\n@Component({\n selector: 'c-product-integration',\n templateUrl: './product-integration.component.html',\n styleUrls: ['./product-integration.component.scss']\n})\nexport class ProductIntegrationComponent implements OnInit {\n\n constructor(\n public productWorkflowService: ProductWorkflowService,\n public productService: ProductService\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ApiLogService as ApiLogServiceBasicData } from 'src/app/services/api/dados-basicos/api-log.service';\nimport { ApiLogService as ApiLogServiceSpecificData } from 'src/app/services/api/dados-especificos/api-log.service';\nimport { ApiLogService as ApiLogServiceMedia } from 'src/app/services/api/midia/api-log.service';\nimport { ApiLogService as ApiLogServiceTax } from 'src/app/services/api/dados-fiscais/api-log.service';\nimport { ApiLogService as ApiLogServiceCostAndPrice } from 'src/app/services/api/custo-preco/api-log.service';\nimport { ApiLogService as ApiLogServiceCommercial } from 'src/app/services/api/comercial/api-log.service';\nimport { Observable, of, combineLatest, Subject, ReplaySubject, EMPTY } from 'rxjs';\nimport { Logs, Log } from 'src/app/models/api/logs';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { FormControl } from '@angular/forms';\nimport { startWith, switchMap, map, debounceTime, shareReplay, tap, catchError } from 'rxjs/operators';\n\n@Component({\n selector: 'c-product-logs-modal',\n templateUrl: './product-logs-modal.component.html',\n styleUrls: ['./product-logs-modal.component.scss']\n})\nexport class ProductLogsModalComponent implements OnInit {\n EnumStatus = EnumStatus;\n EnumAba = EnumAba;\n\n readonly productId: string;\n readonly destroy: () => void;\n\n tabsFilter = new FormControl(EnumAba.dadosBasicos);\n tabsFilter$ = this.tabsFilter.valueChanges.pipe(startWith(this.tabsFilter.value), shareReplay(1));\n\n changesFilter = new FormControl('');\n changesFilter$ = this.changesFilter.valueChanges.pipe(startWith(this.changesFilter.value), shareReplay(1));\n\n logs$: Observable;\n\n selectedItemIndex?: number;\n selectedItem$ = new ReplaySubject(1);\n\n changes$ = combineLatest([\n this.changesFilter$,\n this.selectedItem$\n ]).pipe(\n map( ([filter, selectedItem]) => {\n const test = (value: string) => (new RegExp(filter.normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/[`~!@#$%^&*()_|+\\-=?;:'\",.<>\\{\\}\\[\\]\\\\\\/]/gi, ''), 'i'))\n .test(value.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n\n return selectedItem ?\n !!filter ?\n selectedItem.changes.filter( c => test(c.nomeCampo + c.novoValor + c.valorAnterior)).sort(\n (a, b) => a.nomeCampo > b.nomeCampo ? 1 : a.nomeCampo < b.nomeCampo ? -1 : 0\n ) :\n selectedItem.changes.sort(\n (a, b) => a.nomeCampo > b.nomeCampo ? 1 : a.nomeCampo < b.nomeCampo ? -1 : 0\n ) :\n [];\n })\n );\n\n constructor(\n private apiLogServiceBasicData: ApiLogServiceBasicData,\n private apiLogServiceSpecificData: ApiLogServiceSpecificData,\n private apiLogServiceMedia: ApiLogServiceMedia,\n private apiLogServiceTax: ApiLogServiceTax,\n private apiLogServiceCostAndPrice: ApiLogServiceCostAndPrice,\n private apiLogServiceCommercial: ApiLogServiceCommercial,\n ) { }\n\n ngOnInit() {\n this.logs$ = this.tabsFilter$.pipe(\n switchMap(tab => {\n switch (tab) {\n case EnumAba.dadosBasicos:\n return this.apiLogServiceBasicData.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n case EnumAba.dadosEspecificos:\n return this.apiLogServiceSpecificData.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n case EnumAba.midia:\n return this.apiLogServiceMedia.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n case EnumAba.dadosFiscais:\n return this.apiLogServiceTax.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n case EnumAba.custo:\n return this.apiLogServiceCostAndPrice.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n case EnumAba.comercial:\n return this.apiLogServiceCommercial.getByProduct(this.productId).pipe( catchError( err => of([]) ));\n default:\n return of([]);\n }\n }),\n tap( data => {\n if (data && data.length >= 0) {\n this.selectItem(data[0]);\n }\n })\n );\n }\n\n selectItem(log: Log) {\n this.selectedItem$.next(log);\n }\n\n}\n","import { Component, OnInit, forwardRef, ElementRef, Injector, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormGroup, FormBuilder, NG_VALIDATORS } from '@angular/forms';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { ProductService } from '../../services/product.service';\n\n@Component({\n selector: 'c-product-media-item',\n templateUrl: './product-media-item.component.html',\n styleUrls: ['./product-media-item.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ProductMediaItemComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ProductMediaItemComponent),\n multi: true\n }\n ]\n})\nexport class ProductMediaItemComponent extends ControlValueAccessorMixin implements OnInit {\n\n @Input() label: string;\n @Input() name: string;\n @Input() description: string;\n\n form: FormGroup;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n private fb: FormBuilder,\n public productServ: ProductService\n ) {\n super(elementRef, injector);\n this.createForm();\n }\n\n ngOnInit() {\n }\n\n writeValue(value: any) {\n if (value) {\n this.form.patchValue(value);\n this.value = value;\n } else {\n this.form.reset();\n }\n }\n\n createForm() {\n this.form = this.fb.group({\n videos: [],\n imagens: [],\n imagemAltaResolucao: [],\n imagemEspecial: []\n });\n\n this.form.valueChanges.subscribe(value => {\n this.value = value;\n });\n }\n\n validate() {\n if (this.form.invalid) {\n return { errors: true };\n }\n\n return null;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ProductService } from '../services/product.service';\nimport { ProductMediaService } from '../services/product-media.service';\n\n@Component({\n selector: 'c-product-media',\n templateUrl: './product-media.component.html',\n styleUrls: ['./product-media.component.scss']\n})\nexport class ProductMediaComponent implements OnInit {\n\n form: FormGroup;\n\n constructor(\n public productServ: ProductService,\n public productMediaServ: ProductMediaService\n ) {\n\n }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ProductComponent } from './product.component';\nimport { ProductResolverService } from './services/product-resolver.service';\nimport { CanDeactivateGuard } from 'src/app/services/guards/can-deactivate.guard';\n// import { StatesResolverService } from './services/states-resolver.service';\n\nconst routes: Routes = [\n {\n path: '', redirectTo: '/dashboard', pathMatch: 'full'\n },\n {\n path: 'new',\n component: ProductComponent,\n resolve: {\n product: ProductResolverService,\n // states: StatesResolverService,\n },\n canDeactivate: [\n CanDeactivateGuard\n ]\n },\n {\n path: ':id',\n component: ProductComponent,\n resolve: {\n product: ProductResolverService,\n // states: StatesResolverService,\n },\n canDeactivate: [\n CanDeactivateGuard\n ]\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n providers: [\n ProductResolverService,\n // StatesResolverService\n ]\n})\nexport class ProductRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\nimport { ProductSpecificDataSubnivelService } from '../../services/product-specific-data-subnivel.service';\n\n@Component({\n selector: 'c-descriptions-section',\n templateUrl: './descriptions-section.component.html',\n styleUrls: ['./descriptions-section.component.scss']\n})\nexport class DescriptionsSectionComponent implements OnInit {\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\nimport { Observable, of } from 'rxjs';\nimport { startWith, switchMap, catchError, map, tap, takeUntil } from 'rxjs/operators';\nimport { FormControl, AbstractControl } from '@angular/forms';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { EnumVariacoesDadosEspecificos } from 'src/app/models/api/dados-especificos/enum-variacoes-dados-especificos.enum';\nimport { DynamicFormComponent } from 'src/app/lib/dynamic-form/dynamic-form.component';\nimport { DynamicField } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\nimport { ProductSpecificDataSubnivelService } from '../../services/product-specific-data-subnivel.service';\n\n@Component({\n selector: 'c-dynamic-data-section',\n templateUrl: './dynamic-data-section.component.html',\n styleUrls: ['./dynamic-data-section.component.scss']\n})\nexport class DynamicDataSectionComponent implements OnInit {\n\n @Input() options;\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n public apiCampoDinamico: ApiCampoDinamicoService,\n public subnivelService: ProductSpecificDataSubnivelService,\n ) { }\n\n ngOnInit() {\n // this.subnivelService.options$.subscribe( options => this.options = options );\n }\n\n removeOnVariation = (df: DynamicFormComponent, field: DynamicField) => {\n const variacaoControl = this.specificDataService.form.get('variacoes');\n const variacao = variacaoControl.value;\n\n if (\n variacao === EnumVariacoesDadosEspecificos.Grade ||\n variacao === EnumVariacoesDadosEspecificos.Sortimento\n ) {\n field.hide = true;\n const fieldControl = df.form.get(field.id);\n if (fieldControl) { fieldControl.reset(' '); }\n } else {\n field.hide = false;\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\n\n@Component({\n selector: 'c-ecommerce-data-section',\n templateUrl: './ecommerce-data-section.component.html',\n styleUrls: ['./ecommerce-data-section.component.scss']\n})\nexport class EcommerceDataSectionComponent implements OnInit {\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\n\n@Component({\n selector: 'c-pdm-section',\n templateUrl: './pdm-section.component.html',\n styleUrls: ['./pdm-section.component.scss']\n})\nexport class PdmSectionComponent implements OnInit {\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../services/product-specific-data.service';\nimport { ProductService } from '../services/product.service';\nimport { FormControl } from '@angular/forms';\nimport { ProductSpecificDataSubnivelService } from '../services/product-specific-data-subnivel.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\n\n@Component({\n selector: 'c-product-specific-data',\n templateUrl: './product-specific-data.component.html',\n styleUrls: ['./product-specific-data.component.scss']\n})\nexport class ProductSpecificDataComponent implements OnInit {\n\n enumAba = EnumAba;\n\n subnivelControl: FormControl;\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n public productService: ProductService,\n public subnivelService: ProductSpecificDataSubnivelService,\n ) {\n this.subnivelControl = this.specificDataService.form.get('subnivelId') as FormControl;\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { PdmDescriptionBuilderService } from '../../services/pdm-description-builder.service';\nimport { ProductSpecificDataSubnivelService } from '../../services/product-specific-data-subnivel.service';\n\n@Component({\n selector: 'c-subnivel',\n templateUrl: './subnivel.component.html',\n styleUrls: ['./subnivel.component.scss']\n})\nexport class SubnivelComponent implements OnInit {\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n public apiDepartamento: ApiDepartamentoService,\n public apiCategoria: ApiCategoriaService,\n public apiSubnivel: ApiSubnivelService,\n public apiCampoDinamico: ApiCampoDinamicoService,\n public pdmDescriptionBuilder: PdmDescriptionBuilderService,\n public subnivelService: ProductSpecificDataSubnivelService,\n ) { }\n ngOnInit() {\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ProductSpecificDataService } from '../../services/product-specific-data.service';\nimport { EnumVariacoesDadosEspecificos } from 'src/app/models/api/dados-especificos/enum-variacoes-dados-especificos.enum';\nimport { combineLatest, Observable, of, Subject } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, take, takeUntil, } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\nimport { ProductSpecificDataSubnivelService } from '../../services/product-specific-data-subnivel.service';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\n\n@Component({\n selector: 'c-variations-section',\n templateUrl: './variations-section.component.html',\n styleUrls: ['./variations-section.component.scss']\n})\nexport class VariationsSectionComponent implements OnInit, OnDestroy {\n environment = environment;\n EnumVariacoesDadosEspecificos = EnumVariacoesDadosEspecificos;\n variacao$: Observable;\n variacaoControl: FormControl;\n destroy$ = new Subject();\n isDisabledVariation: boolean = false;\n showGradeVariation: boolean = true;\n\n @IsAllowed('rhcdm.dadosespecificos.excluirVariacao') canRemoveVariation: boolean;\n \n constructor(\n public specificDataService: ProductSpecificDataService,\n public specificDataSubnivelService: ProductSpecificDataSubnivelService,\n private route: ActivatedRoute\n ) {\n this.variacaoControl = this.specificDataService.form.get('variacoes') as FormControl;\n\n this.variacao$ = combineLatest([this.variacaoControl.valueChanges.pipe(startWith(this.variacaoControl.value)), \n this.specificDataService.departamentos$.pipe(map(departamentos => {\n return !!departamentos.find(departamento => \n departamento.id == this.specificDataSubnivelService.departamentoControl.value && \n departamento.descricao == 'MODA E ACESSÓRIOS');\n }))]).pipe(takeUntil(this.destroy$), distinctUntilChanged(), switchMap(([v, isDepartamentoModa]) => {\n this.showGradeVariation = isDepartamentoModa;\n let variation = v;\n if (variation === EnumVariacoesDadosEspecificos.Grade && !this.showGradeVariation){\n variation = EnumVariacoesDadosEspecificos.Nenhum;\n this.variacaoControl.setValue(EnumVariacoesDadosEspecificos.Nenhum, {emitEvent: false}); \n }\n\n return of(variation);\n }));\n }\n\n ngOnInit() {\n\n var variacaoNoBanco = this.variacaoControl.value;\n\n this.variacao$.subscribe(v => {\n if (v === EnumVariacoesDadosEspecificos.Sortimento) {\n this.specificDataService.gradeListForm.clear();\n this.specificDataService.enableDadosDoEcommerce();\n\n if (this.specificDataService.sortimentoListForm.length == 0) {\n this.specificDataService.addSortimento();\n }\n\n this.specificDataService.canUpdatePDM && this.specificDataSubnivelService.pdmSortimentoGrade();\n this.specificDataService.canUpdatePDM = true;\n } else if (v === EnumVariacoesDadosEspecificos.Grade) {\n this.specificDataService.sortimentoListForm.clear();\n this.specificDataService.enableDadosDoEcommerceGrade();\n\n if (this.specificDataService.gradeListForm.length == 0) {\n this.specificDataService.addVariacao();\n }\n this.specificDataService.canUpdatePDM && this.specificDataSubnivelService.pdmSortimentoGrade(\"grade\");\n this.specificDataService.canUpdatePDM = true;\n } else if (v === EnumVariacoesDadosEspecificos.Nenhum) {\n this.specificDataService.sortimentoListForm.clear();\n this.specificDataService.gradeListForm.clear();\n this.specificDataService.enableDadosDoEcommerce();\n }\n\n this.route.data.pipe(takeUntil(this.destroy$)).subscribe((data) => {\n this.isDisabledVariation = ((data.product.header.codigoSap != undefined || data.product.header.idVtex != undefined) && (v === EnumVariacoesDadosEspecificos.Sortimento || v === EnumVariacoesDadosEspecificos.Grade) && variacaoNoBanco !== EnumVariacoesDadosEspecificos.Nenhum);\n });\n\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n isRemovableView(numeroVariacao: number, variacaoIntegrada: boolean) {\n const isNotIntegrated = (numeroVariacao > 1 && variacaoIntegrada)\n \n // O botão será visível se o usuário tiver permissão OU se o sortimento não estiver integrado\n return this.canRemoveVariation || isNotIntegrated;\n }\n}\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject, Observable, of } from 'rxjs';\nimport { FormControl, ControlContainer } from '@angular/forms';\nimport { startWith, switchMap, map, takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { ProductService } from '../services/product.service';\nimport { ProductTaxDataService } from '../services/product-tax-data.service';\nimport { TributacaoCST } from 'src/app/models/api/dados-fiscais/tributacao-cst';\n\n@Directive({\n selector: '[cNFGNREPorTributacao]',\n exportAs: 'cNFGNREPorTributacao'\n})\nexport class NFGNREPorTributacaoDirective implements OnDestroy, OnInit {\n\n @Input() tributacaoCSTControlName = 'tributacaoCstId';\n @Input() destaqueNFControlName = 'destaqueNFId';\n\n private destroy$ = new Subject();\n tributacaoCST: FormControl;\n destaqueNF: FormControl;\n nfgnre$: Observable;\n\n constructor(\n public fg: ControlContainer,\n private taxDataService: ProductTaxDataService,\n ) { }\n\n ngOnInit() {\n this.tributacaoCST = this.fg.control.get(this.tributacaoCSTControlName) as FormControl;\n this.destaqueNF = this.fg.control.get(this.destaqueNFControlName) as FormControl;\n\n this.tributacaoCST.valueChanges.pipe(\n takeUntil(this.destroy$),\n distinctUntilChanged(),\n ).subscribe( tcst => {\n if (tcst) {\n this.destaqueNF.reset(null);\n };\n });\n\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\nimport { Usuario } from \"src/app/models/api/autenticacao/usuario\";\nimport { EnumAba } from \"src/app/models/api/produto/aba.enum\";\nimport { ApiUsuarioService } from \"src/app/services/api/autenticacao/api-usuario.service\";\nimport { SessionService } from \"src/app/services/session.service\";\nimport { ToastType } from \"src/app/ui/toast/toast.model\";\nimport { ToastService } from \"src/app/ui/toast/toast.service\";\nimport { ProductTaxDataService } from \"../services/product-tax-data.service\";\nimport { ProductService } from \"../services/product.service\";\n\n@Component({\n selector: \"c-product-tax-data\",\n templateUrl: \"./product-tax-data.component.html\",\n styleUrls: [\"./product-tax-data.component.scss\"],\n})\nexport class ProductTaxDataComponent implements OnInit {\n private destroy$ = new Subject();\n enumAba = EnumAba;\n selectedFilialIndex = 0;\n\n user: Usuario;\n isFornecedor = false;\n\n constructor(\n public productService: ProductService,\n private apiUsuarioService: ApiUsuarioService,\n public taxDataService: ProductTaxDataService,\n public sessionService: SessionService,\n private toastService: ToastService,\n ) { }\n\n async ngOnInit() {\n this.user = this.sessionService.user;\n this.user.id = this.sessionService.user.id;\n this.user.gruposPermissaoIdList = this.sessionService.user.permissions;\n this.user.login = this.sessionService.user.email;\n this.user.nomeFantasiaFornecedor = this.sessionService.user.fantasyName;\n this.user.sapFornecedor = this.sessionService.user.sapCode;\n this.isFornecedor = this.sessionService.user.role !== \"funcionario\" ? true : false;\n \n // this.user = await this.apiUsuarioService.getByLogin(this.sessionService.user.email).toPromise() as Usuario;\n // this.isFornecedor = this.user.fornecedorId !== null && this.user.funcionarioId == null ? true : false;\n\n this.taxDataService.filterFilial();\n\n this.taxDataService.filiaisFiltered$.subscribe(result => {\n if (result.length <= 0) {\n this.toastService.toast('Nenhuma filial válida encontrada, verifique o seu cadastro de fornecedor!', ToastType.error);\n }\n });\n }\n}\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ControlContainer, FormControl } from '@angular/forms';\nimport { ProductTaxDataService } from '../services/product-tax-data.service';\nimport { Subject, Observable } from 'rxjs';\nimport { TipoExcecao } from 'src/app/models/api/dados-fiscais/tipo-excecao';\nimport { Grupo } from 'src/app/models/api/dados-fiscais/grupo';\nimport { startWith, switchMap, takeUntil, distinctUntilChanged, map, tap, shareReplay } from 'rxjs/operators';\n\n@Directive({\n selector: '[cTaxDataGroupByType]',\n exportAs: 'groupByType',\n})\nexport class TaxDataGroupByTypeDirective implements OnDestroy, OnInit {\n @Input() typeControlName = 'tipoId';\n @Input() groupControlName = 'grupoId';\n\n private destroy$ = new Subject();\n\n typeControl: FormControl;\n groupControl: FormControl;\n\n types$: Observable;\n groups$: Observable;\n campo1Label$: Observable;\n campo2Label$: Observable;\n campo3Label$: Observable;\n\n\n\n constructor(\n private fg: ControlContainer,\n private taxDataService: ProductTaxDataService,\n ) { }\n\n ngOnInit() {\n this.typeControl = this.fg.control.get(this.typeControlName) as FormControl;\n this.groupControl = this.fg.control.get(this.groupControlName) as FormControl;\n\n this.types$ = this.taxDataService.tipoExcecoes$.pipe(\n takeUntil(this.destroy$)\n );\n\n this.groups$ = this.typeControl.valueChanges.pipe(\n startWith(this.typeControl.value),\n takeUntil(this.destroy$),\n switchMap( typeId => this.taxDataService.getGroups(typeId)),\n shareReplay(1)\n );\n\n this.typeControl.valueChanges.pipe(\n takeUntil(this.destroy$),\n distinctUntilChanged(),\n ).subscribe( type => {\n if (type) {\n this.groupControl.reset(null);\n }\n });\n\n const selectedGroup$: Observable = this.groupControl.valueChanges.pipe(\n takeUntil(this.destroy$),\n startWith(this.groupControl.value),\n switchMap( groupId => this.groups$.pipe(\n map( groups => groups ? groups.find( g => g.id === groupId) : null),\n )),\n shareReplay(1)\n );\n\n this.campo1Label$ = selectedGroup$.pipe(\n takeUntil(this.destroy$),\n map( g => g && g.campo1 )\n );\n this.campo2Label$ = selectedGroup$.pipe(\n takeUntil(this.destroy$),\n map( g => g && g.campo2 )\n );\n this.campo3Label$ = selectedGroup$.pipe(\n takeUntil(this.destroy$),\n map( g => g && g.campo3 )\n );\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ProductService } from './services/product.service';\nimport { ProductSpecificDataService } from './services/product-specific-data.service';\nimport { ProductBasicDataService } from './services/product-basic-data.service';\nimport { ProductMediaService } from './services/product-media.service';\nimport { PdmDescriptionBuilderService } from './services/pdm-description-builder.service';\nimport { ProductSpecificDataSubnivelService } from './services/product-specific-data-subnivel.service';\nimport { ProductHistoricService } from './services/product-historic.service';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { ProductCommercialDataService } from './services/product-commercial-data.service';\nimport { ProductWorkflowService } from './services/product-workflow.service';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\nimport { CanComponentDeactivate } from 'src/app/services/guards/can-deactivate.guard';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { ProductTaxDataService } from './services/product-tax-data.service';\nimport { ProductCostAndPriceService } from './services/product-cost-and-price.service';\n\n@Component({\n selector: 'c-product',\n templateUrl: './product.component.html',\n styleUrls: ['./product.component.scss'],\n providers: [\n ProductService,\n PdmDescriptionBuilderService,\n ProductBasicDataService,\n ProductSpecificDataService,\n ProductMediaService,\n ProductTaxDataService,\n ProductCostAndPriceService,\n ProductSpecificDataSubnivelService,\n ProductHistoricService,\n ProductCommercialDataService,\n ProductWorkflowService,\n ReadOnlyDirective\n ]\n})\nexport class ProductComponent implements OnInit, CanComponentDeactivate {\n\n EnumStatus = EnumStatus;\n tabs: {\n name: string;\n permission: string;\n service?: any;\n selected?: boolean;\n }[];\n\n constructor(\n public productService: ProductService,\n private basicDataService: ProductBasicDataService,\n private specificDataService: ProductSpecificDataService,\n private mediaService: ProductMediaService,\n private taxDataService: ProductTaxDataService,\n private costAndPriceService: ProductCostAndPriceService,\n private commercialService: ProductCommercialDataService,\n private confirmDialogService: ConfirmDialogService,\n ) {\n this.createTabs();\n }\n ngOnInit() {\n }\n\n canDeactivate() {\n return this.productService.isUnsaved() ? this.confirmDialogService.confirm('Tem certeza que deseja sair sem salvar?') : true;\n }\n\n createTabs() {\n this.tabs = [\n { name: 'basic data', permission: 'rhcdm.dadosbasicos.visualizarAba', service: this.basicDataService },\n { name: 'specific data', permission: 'rhcdm.dadosespecificos.visualizarAba', service: this.specificDataService },\n { name: 'media', permission: 'rhcdm.midia.visualizarAba', service: this.mediaService },\n { name: 'tax data', permission: 'rhcdm.dadosfiscais.visualizarAba', service: this.taxDataService },\n { name: 'cost and price', permission: 'rhcdm.custopreco.visualizarAba', service: this.costAndPriceService },\n { name: 'commercial', permission: 'rhcdm.comercial.visualizarAba', service: this.commercialService },\n { name: 'historic', permission: 'rhcdm.historico.visualizarAba' }\n ];\n }\n\n getTabIcon(data: any) {\n if (data && data.service) {\n if (data.service.status == EnumStatus.Revisao) {\n return 'waiting';\n }\n\n if (data.service.status == EnumStatus.Reprovado) {\n return 'warning';\n }\n\n if (data.service.status == EnumStatus.Finalizado) {\n return 'approved_outline';\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProductComponent } from './product.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProductRoutingModule } from './product-routing.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { TabModule } from 'src/app/ui/tab/tab.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { ProductBasicDataComponent } from './product-basic-data/product-basic-data.component';\nimport { ProductSpecificDataComponent } from './product-specific-data/product-specific-data.component';\nimport { ProductHeaderComponent } from './product-header/product-header.component';\nimport { EcommerceDataSectionComponent } from './product-specific-data/ecommerce-data-section/ecommerce-data-section.component';\nimport { DynamicDataSectionComponent } from './product-specific-data/dynamic-data-section/dynamic-data-section.component';\nimport { VariationsSectionComponent } from './product-specific-data/variations-section/variations-section.component';\nimport { PdmSectionComponent } from './product-specific-data/pdm-section/pdm-section.component';\nimport { DynamicFormModule } from 'src/app/lib/dynamic-form/dynamic-form.module';\nimport { RangeModule } from 'src/app/ui/range/range.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { ProductHistoricComponent } from './product-historic/product-historic.component';\nimport { ProductMediaComponent } from './product-media/product-media.component';\nimport { ProductMediaItemComponent } from './product-media/product-media-item/product-media-item.component';\nimport { ImageUploaderModule } from 'src/app/ui/image-uploader/image-uploader.module';\nimport { SubnivelComponent } from './product-specific-data/subnivel/subnivel.component';\nimport { DescriptionsSectionComponent } from './product-specific-data/descriptions-section/descriptions-section.component';\nimport { VideoLinkUploaderModule } from 'src/app/ui/video-link-uploader/video-link-uploader.module';\nimport { ImgModule } from 'src/app/ui/img/img.module';\nimport { ProductCommercialDataComponent } from './product-commercial-data/product-commercial-data.component';\nimport { ProductHistoricCommentComponent } from './product-historic/product-historic-comment/product-historic-comment.component';\nimport { ProductApprovalComponent } from './product-approval/product-approval.component';\nimport { EmptyPatternModule } from 'src/app/ui/empty-pattern/empty-pattern.module';\nimport { CompositionInputModule } from 'src/app/ui/composition-input/composition-input.module';\nimport { ProductIntegrationComponent } from './product-integration/product-integration.component';\nimport { GeneralIntegrationInfoModule } from 'src/app/ui/general-integration-info/general-integration-info.module';\nimport { OnlineEanValidator } from './helpers/online-ean.validator';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { LogsModalService } from './services/logs-modal.service';\nimport { ProductLogsModalComponent } from './product-logs-modal/product-logs-modal.component';\nimport { EanStatusDirective } from './ean-status.directive';\nimport { ProductTaxDataComponent } from './product-tax-data/product-tax-data.component';\nimport { ProgressBarModule } from 'src/app/ui/progress-bar/progress-bar.module';\nimport { DynamicTabModule } from 'src/app/ui/dynamic-tab/dynamic-tab.module';\nimport { ProductCostAndPriceComponent } from './product-cost-and-price/product-cost-and-price.component';\nimport { TaxDataGroupByTypeDirective } from './product-tax-data/tax-data-group-by-type.directive';\nimport { NFGNREPorTributacaoDirective } from './product-tax-data/nfgnrepor-tributacao.directive';\n\n@NgModule({\n declarations: [\n ProductComponent,\n ProductBasicDataComponent,\n ProductSpecificDataComponent,\n ProductHeaderComponent,\n EcommerceDataSectionComponent,\n DynamicDataSectionComponent,\n VariationsSectionComponent,\n PdmSectionComponent,\n ProductHistoricComponent,\n ProductMediaComponent,\n ProductMediaItemComponent,\n SubnivelComponent,\n DescriptionsSectionComponent,\n ProductCommercialDataComponent,\n ProductHistoricCommentComponent,\n ProductApprovalComponent,\n ProductIntegrationComponent,\n ProductLogsModalComponent,\n EanStatusDirective,\n ProductTaxDataComponent,\n ProductCostAndPriceComponent,\n TaxDataGroupByTypeDirective,\n NFGNREPorTributacaoDirective,\n ],\n imports: [\n CommonModule,\n ProductRoutingModule,\n SharedModule,\n InputModule,\n SelectModule,\n TabModule,\n CheckboxModule,\n RadioModule,\n RangeModule,\n CardModule,\n DynamicFormModule,\n IconModule,\n ImageUploaderModule,\n VideoLinkUploaderModule,\n ImgModule,\n EmptyPatternModule,\n CompositionInputModule,\n GeneralIntegrationInfoModule,\n ModalModule,\n ProgressBarModule,\n DynamicTabModule,\n ],\n providers: [\n LogsModalService\n ]\n})\nexport class ProductModule { }\n","import { DadosBasicos } from 'src/app/models/api/dados-basicos/dados-basicos';\nimport { BasicDataForm } from '../models/basic-data-form';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { DadosEspecificos } from 'src/app/models/api/dados-especificos/dados-especificos';\nimport { SpecificDataForm } from '../models/specific-data-form';\nimport { Midia, Video, MidiaGrupo } from 'src/app/models/api/dados-midia/midia.interface';\nimport { MediaForm } from '../models/media-form';\nimport { CommerceDataForm } from '../models/commerce-data-form';\nimport { DadosComerciais } from 'src/app/models/api/comercial/dados-comerciais';\nimport { TaxDataForm } from '../models/tax-data-form';\nimport { DadosFiscais } from 'src/app/models/api/dados-fiscais/dados-fiscais';\nimport { CustoPreco } from 'src/app/models/api/custo-preco/custo-preco.interface';\nimport { CostAndPriceForm } from '../models/cost-and-price-form';\nimport { CurvaCEVAEnum } from 'src/app/models/api/comercial/curva-ceva.enum';\n\ninterface FormToReq {\n data: T;\n status: EnumStatus;\n produtoId: string;\n}\nexport function BasicDataFormToReq({\n data, status, produtoId\n}: FormToReq): DadosBasicos {\n return {\n ...data,\n\n id: produtoId,\n status,\n\n // conversões de dados\n palavrasChave: data.palavrasChave ? data.palavrasChave.split(',').map(pc => pc.trim()) : []\n };\n}\n\nexport function BasicDataFormFromReq(data: DadosBasicos): BasicDataForm {\n const { id, qualidadeCadastro, status, ...obj } = {\n ...data,\n\n // conversões de dados\n palavrasChave: data.palavrasChave ? data.palavrasChave.join(', ') : ''\n };\n\n return obj;\n}\n\nexport function SpecificDataToReq({\n data, status, produtoId\n}: FormToReq): DadosEspecificos {\n return {\n ...data,\n\n id: produtoId,\n status,\n };\n}\n\nexport function SpecificDataFromReq(data: DadosEspecificos): SpecificDataForm {\n const { id, qualidadeCadastro, status, ...obj } = {\n ...data,\n // conversões de dados\n descricaoLongaPersonalizada: data.descricaoLongaPersonalizada == undefined ? true : data.descricaoLongaPersonalizada,\n descricaoExtendidaPersonalizada: data.descricaoExtendidaPersonalizada == undefined ? true : data.descricaoExtendidaPersonalizada,\n tituloDePublicacaoPersonalizada: data.tituloDePublicacaoPersonalizada == undefined ? true : data.tituloDePublicacaoPersonalizada,\n descricaoEcommercePersonalizada: data.descricaoEcommercePersonalizada == undefined ? true : data.descricaoEcommercePersonalizada\n };\n\n return obj;\n}\n\nexport function MediaToReq(data: MediaForm): Midia {\n const clonedMedia: MediaForm = JSON.parse(JSON.stringify(data));\n\n const formatedMidia = {\n midias: clonedMedia.midias || [],\n } as unknown as Midia;\n\n clonedMedia.midias.forEach((midia, i) => {\n if (midia) {\n // Check exists videos to format\n if (midia.videos) {\n formatedMidia.midias[i].videos = midia.videos.map((elem) => {\n return {\n link: elem\n };\n });\n } else {\n formatedMidia.midias[i].videos = [];\n }\n\n // Check don't exist images\n if (!midia.imagens) {\n formatedMidia.midias[i].imagens = [];\n }\n\n // Check don't exist special images\n if (!midia.imagemEspecial) {\n formatedMidia.midias[i].imagemEspecial = [];\n }\n\n // Check don't exist high definition images\n if (!midia.imagemAltaResolucao) {\n formatedMidia.midias[i].imagemAltaResolucao = [];\n }\n } else {\n formatedMidia.midias[i] = {\n imagens: [],\n imagemEspecial: [],\n imagemAltaResolucao: [],\n videos: [],\n };\n }\n });\n\n return formatedMidia;\n}\n\nexport function MediaFromReq(data: Midia): MediaForm {\n const formatedMidia = {\n midias: data.midias || [],\n status: data.status\n } as any as MediaForm;\n\n formatedMidia.midias.forEach(midia => {\n if (midia.videos) {\n midia.videos = midia.videos.map((elem) => {\n const video = elem as any as Video;\n return video.link;\n });\n } else {\n midia.videos = [];\n }\n });\n\n return formatedMidia;\n}\n\nexport function TaxDataToReq({\n data, status, produtoId\n}: FormToReq): DadosFiscais {\n return {\n ...data,\n\n id: produtoId,\n status,\n };\n}\n\nexport function TaxDataFromReq(data: DadosFiscais): TaxDataForm {\n const { id, qualidadeCadastro, status, ...obj } = {\n ...data,\n // conversões de dados\n };\n\n return obj;\n}\n\nexport function CostAndPriceToReq({\n data, status, produtoId\n}: FormToReq): CustoPreco {\n return {\n ...data,\n\n id: produtoId,\n status,\n };\n}\n\nexport function CostAndPriceFromReq(data: CustoPreco): CostAndPriceForm {\n const { id, qualidadeCadastro, status, ...obj } = {\n ...data,\n // conversões de dados\n };\n\n return obj;\n}\n\nexport function CommerceDataToReq({ data, produtoId }: { data: CommerceDataForm, produtoId: string }): DadosComerciais {\n return {\n ...data,\n id: produtoId,\n itemExclusivo: {\n marketPlace: data.itemExclusivo ? !!data.itemExclusivo.marketPlace : false,\n pbKids: data.itemExclusivo ? !!data.itemExclusivo.pbKids : false,\n riHappy: data.itemExclusivo ? !!data.itemExclusivo.riHappy : false,\n vendidoEmOmni: data.itemExclusivo ? !!data.itemExclusivo.vendidoEmOmni : false\n },\n };\n}\n\nexport function CommerceDataFromReq(data: DadosComerciais): CommerceDataForm {\n const { id, ...obj } = {\n ...data,\n curvaCEVA: data.curvaCEVA ? data.curvaCEVA : CurvaCEVAEnum.C\n };\n\n return obj;\n}\n","import { Injectable, Injector, ComponentFactoryResolver } from '@angular/core';\nimport { ModalService } from 'src/app/ui/modal/modal.service';\nimport { ProductLogsModalComponent } from '../product-logs-modal/product-logs-modal.component';\n\n@Injectable()\nexport class LogsModalService {\n\n constructor(\n private modalService: ModalService,\n // private injector: Injector,\n // private resolver: ComponentFactoryResolver,\n ) { }\n\n openLogs(productId: string) {\n return this.modalService.open(ProductLogsModalComponent, {\n contentInitialState: {\n productId\n },\n initialState: {\n type: 'large',\n }\n // resolver: this.resolver,\n // injector: this.injector\n });\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { ProductBasicDataService } from './product-basic-data.service';\nimport { ProductSpecificDataService } from './product-specific-data.service';\nimport { startWith, map } from 'rxjs/operators';\nimport { Marca } from 'src/app/models/api/dados-basicos/marca';\nimport { UnidadeFaturamento } from 'src/app/models/api/dados-basicos/unidade-faturamento';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { RegraPDM, CampoRegra } from 'src/app/models/api/dados-especificos/regra-pdm';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { EnumCampoDinamicoType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-type.enum';\n\n@Injectable()\nexport class PdmDescriptionBuilderService {\n\n pdmMapping$: Observable<{ id?: string; descricao?: string }[]>;\n\n constructor(\n private basicDataService: ProductBasicDataService,\n private specificDataService: ProductSpecificDataService,\n ) {\n\n this.pdmMapping$ = combineLatest([\n this.basicDataService.licenca$.pipe(startWith([])),\n this.basicDataService.unidadeFaturamento$.pipe(startWith([])),\n this.specificDataService.subniveis$.pipe(startWith([])),\n this.specificDataService.categorias$.pipe(startWith([])),\n this.specificDataService.departamentos$.pipe(startWith([])),\n ]).pipe(\n map((datas) => datas.flat())\n );\n }\n\n getStringForPDMRule(rule: RegraPDM, camposDinamicos: CampoDinamico[], sortimentoGrade: string = '', indexSortimentoGrade: number = 0) {\n const campos: Observable[] = rule.camposList.map(c => this.getStringForPDMRuleField(c, camposDinamicos, sortimentoGrade, indexSortimentoGrade));\n const string$ = combineLatest(campos).pipe(\n map((c: string[]) => c.filter(s => !!s).join(rule.concatenaCom))\n );\n\n return string$;\n }\n\n getStringForPDMRuleField(field: CampoRegra, camposDinamicos: CampoDinamico[], sortimentoGrade: string, indexSortimentoGrade: number) {\n let value$: Observable;\n\n // campo dinamico dos dados especificos\n if (field.campoDinamico && !field.pertenceADadosBasicos) {\n\n const campoDinamicoRange = camposDinamicos && (camposDinamicos\n .find(cd => cd.id == field.campoDinamicoId) ? camposDinamicos\n .find(cd => cd.id == field.campoDinamicoId).type : undefined) === EnumCampoDinamicoType.Range || null;\n\n const campoDinamicoMultipleSelect = camposDinamicos && (camposDinamicos\n .find(cd => cd.id == field.campoDinamicoId) ? camposDinamicos\n .find(cd => cd.id == field.campoDinamicoId).type : undefined) === EnumCampoDinamicoType.MultipleSelect || null;\n\n const dynamicForm = this.specificDataService.form.get('objetoTemplateSubnivel');\n\n /* a pedido do cliente foi criado novos campos de descrição para cada sortimento/grade e \n caso a regra do pdm contenha os campos de modelo, cor, referencia e tamanho,\n deverá ser usado os valores dos campos do sortimento/grade */\n\n if (sortimentoGrade.length > 0 && \n (field.campoDinamicoId == \"5df4071ff289080001fb864c\" || \n field.campoDinamicoId == \"5e0df9c4a0611125dc24f7df\" ||\n field.campoDinamicoId == \"5df3fa15f289080001fb862d\")) {\n let texto;\n let value;\n if (sortimentoGrade == \"sortimento\") {\n value = this.specificDataService.sortimentoListForm.value\n } else {\n value = this.specificDataService.gradeListForm.value\n }\n switch (field.campoDinamicoId) {\n // id do campo dinamico cor\n case \"5df4071ff289080001fb864c\":\n const idCor = value[indexSortimentoGrade] ? value[indexSortimentoGrade].cor : null;\n if (idCor) {\n this.specificDataService.corGrade$.subscribe(cores =>{\n let cor = cores.filter(cor => cor.valCaract == idCor);\n texto = cor.length ? cor[0].cor : '';\n });\n } else {\n texto = ''; \n }\n break;\n\n // id do campo dinamico Tamanho\n case \"5e0df9c4a0611125dc24f7df\":\n const idTamanho = value[indexSortimentoGrade] ? value[indexSortimentoGrade].tamanho : null;\n if (idTamanho) {\n this.specificDataService.tamanhoGrade$.subscribe(tamanhos =>{\n let tamanho = tamanhos.filter(tamanho => tamanho.valCaract == idTamanho);\n texto = tamanho.length ? tamanho[0].tamanho : '';\n });\n } else {\n texto = ''; \n }\n break;\n\n // id do campo dinamico modelo\n case \"5df3fa15f289080001fb862d\":\n if (sortimentoGrade == \"sortimento\") {\n texto = value[indexSortimentoGrade].itemSortido;\n } else {\n texto = value[indexSortimentoGrade].nomeDoProduto;\n }\n break;\n \n default:\n texto = \"\"\n break;\n }\n\n value$ = of(texto);\n } else {\n value$ = dynamicForm.valueChanges.pipe(\n startWith(dynamicForm.value),\n map(value => {\n if (!value) { return ''; }\n \n if (sortimentoGrade) {\n \n }\n \n if (!field.usaId && campoDinamicoRange) {\n const valor = value[field.campoDinamicoId];\n \n if (valor) {\n if (valor.start === 0 && valor.end === 0) { return null; }\n return `${field.nomeCampo}: de ${valor.start} até ${valor.end}`;\n }\n }\n \n if (field.usaId && campoDinamicoMultipleSelect) {\n const campoDinamicoMultipleArray = [];\n const ids = value[field.campoDinamicoId];\n \n const cdConfig = camposDinamicos && camposDinamicos.find(cd => cd.id == field.campoDinamicoId);\n \n if (ids) {\n ids.forEach((id: string) => campoDinamicoMultipleArray.push(cdConfig.options.find(opt => opt.optionId == id).description));\n \n return campoDinamicoMultipleArray.join(', ');\n }\n }\n \n if (field.usaId) {\n const id = value[field.campoDinamicoId];\n if (!id) { return ''; }\n const cdConfig = camposDinamicos && camposDinamicos.find(cd => cd.id == field.campoDinamicoId);\n const cdOption = cdConfig && cdConfig.options ? cdConfig.options.find(o => o.optionId == id) : null;\n return cdOption ? cdOption.description : '';\n } else {\n return value[field.campoDinamicoId];\n }\n \n })\n );\n }\n\n // campo dos dados especificos que não é dinamico\n } else if (!field.campoDinamico && !field.pertenceADadosBasicos) {\n\n const control = this.specificDataService.form.get(field.nomeCampo);\n\n if (field.usaId) {\n const id$: Observable = control ? control.valueChanges.pipe(startWith(control.value)) : of(null);\n\n value$ = combineLatest(\n this.pdmMapping$,\n id$,\n ).pipe(\n map(([pdmMapping, id]) => {\n if (!id) {\n return '';\n }\n\n const item = pdmMapping.find(p => p.id == id);\n return item ? item.descricao : '';\n })\n );\n\n } else {\n value$ = control ? control.valueChanges.pipe(startWith(control.value)) : of('');\n }\n\n // campo dos dados basicos\n } else if (!field.campoDinamico && field.pertenceADadosBasicos) {\n if (sortimentoGrade.length > 0 && field.nomeCampo == \"referencia\") {\n let texto = '';\n let value;\n value = sortimentoGrade == \"sortimento\" ?\n this.specificDataService.sortimentoListForm.value :\n this.specificDataService.gradeListForm.value;\n\n texto = value[indexSortimentoGrade].referencia || \"\";\n \n value$ = of(texto);\n } else {\n const control = this.basicDataService.form.get(field.nomeCampo);\n \n if (field.usaId) {\n const id$: Observable = control ? control.valueChanges.pipe(startWith(control.value)) : of(null);\n \n value$ = combineLatest(\n this.pdmMapping$,\n id$,\n ).pipe(\n map(([pdmMapping, id]) => {\n if (!id) {\n return '';\n }\n \n const item = pdmMapping.find(p => p.id == id);\n return item ? item.descricao : '';\n })\n );\n \n } else {\n value$ = control ? control.valueChanges.pipe(startWith(control.value)) : of('');\n }\n }\n } else {\n value$ = of('falhou na regra' + field.nomeCampo);\n }\n\n return value$;\n }\n\n}\n\n","import { FormGroup, FormBuilder } from '@angular/forms';\nimport { CustoPreco } from 'src/app/models/api/custo-preco/custo-preco.interface';\nimport { DadosBasicos } from 'src/app/models/api/dados-basicos/dados-basicos';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { DadosEspecificos } from 'src/app/models/api/dados-especificos/dados-especificos';\nimport { DadosFiscais } from 'src/app/models/api/dados-fiscais/dados-fiscais';\nimport { Midia } from 'src/app/models/api/dados-midia/midia.interface';\n\nexport abstract class ProductBaseEntity {\n\n productId: string;\n form: FormGroup;\n status: EnumStatus;\n protected canSaveFinished: boolean;\n protected canSaveReview: boolean;\n protected canSaveRepproved: boolean;\n protected canApproveOrReprove: boolean;\n\n constructor(\n public fb: FormBuilder\n ) { }\n\n protected initForm() {\n this.form = this.createForm();\n }\n\n updateStatus(status: EnumStatus) {\n this.status = status;\n }\n\n setValue(productId: string, status: EnumStatus, value: T) {\n this.productId = productId;\n this.status = status;\n this.form.reset();\n this.form.patchValue(value);\n }\n\n get canSubmitForReview() {\n return this.form.valid && (\n ([EnumStatus.Draft, EnumStatus.Reprovado, EnumStatus.Finalizado].includes(this.status)) ||\n (this.status == EnumStatus.Revisao && this.canSaveReview)\n );\n }\n\n canSubmitBasicDataForReview(dadosBasicos: DadosBasicos) {\n // => Após aba Dados Basicos entrar em Finalizada não deve mais voltar para revisão através do ENVIAR CADASTRO!\n if (dadosBasicos.status == EnumStatus.Finalizado)\n return false;\n else\n return true;\n }\n\n canSubmitSpecificDataForReview(dadosEspecificos: DadosEspecificos) {\n // => Após aba Dados Especificos entrar em Finalizada não deve mais voltar para revisão através do ENVIAR CADASTRO!\n if (dadosEspecificos.status == EnumStatus.Finalizado)\n return false;\n else\n return true;\n }\n\n canSubmitMediaDataForReview(midia: Midia) {\n // => Após aba Media entrar em Finalizada não deve mais voltar para revisão através do ENVIAR CADASTRO!\n if (midia.status == EnumStatus.Finalizado)\n return false;\n else\n return true;\n }\n\n canSubmitTaxDataForReview(dadosFiscais: DadosFiscais) {\n // => Após aba Fiscal entrar em Finalizada não deve mais voltar para revisão através do ENVIAR CADASTRO!\n if (dadosFiscais.status == EnumStatus.Finalizado)\n return false;\n else\n return true;\n }\n\n canSubmitCoastPriceDataForReview(custoPreco: CustoPreco) {\n // => Após aba Custo Preço entrar em Finalizada não deve mais voltar para revisão através do ENVIAR CADASTRO!\n if (custoPreco.status == EnumStatus.Finalizado)\n return false;\n else \n return true;\n }\n\n get canSave() {\n // é draft?\n if (this.status === EnumStatus.Draft) {\n return true;\n }\n\n // esta em revisão e pode salvar para revisão?\n if (this.status === EnumStatus.Revisao && this.canSaveReview) {\n return true;\n }\n\n // esta finalizado e pode salvar quando finalizado?\n if (this.status === EnumStatus.Finalizado && this.canSaveFinished) {\n return true;\n }\n // esta reprovado e pode salvar quando reprovado?\n if (this.status === EnumStatus.Reprovado && this.canSaveRepproved) {\n return true;\n }\n\n return false;\n }\n\n get isValid() {\n return this.form.valid;\n }\n\n abstract createForm(): FormGroup;\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { validateEanDun } from 'src/app/shared/validators/ean-dun';\nimport { ProductBaseEntity } from './product-base-entity.class';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { shareReplay, map, switchMap, tap } from 'rxjs/operators';\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\nimport { UnidadeFaturamento } from 'src/app/models/api/dados-basicos/unidade-faturamento';\nimport { ApiUnidadeFaturamentoService } from 'src/app/services/api/dados-basicos/api-unidade-faturamento.service';\nimport { ApiMarcaLicensaService } from 'src/app/services/api/dados-basicos/api-marca-licensa.service';\nimport { greaterOrEqualThan, greaterThan, lessOrEqualThan } from '../helpers/compare-control.validator';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { onlyInteger } from 'src/app/shared/validators/only-integer';\nimport { OnlineEanValidator } from '../helpers/online-ean.validator';\nimport { OnlineDunValidator } from '../helpers/online-dun.validator';\nimport { OrigemCst } from 'src/app/models/api/dados-basicos/origem-cst';\nimport { ApiOrigemCstService } from 'src/app/services/api/dados-basicos/api-origem-cst.service';\nimport { Licensa } from 'src/app/models/api/dados-basicos/licensa';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { BasicDataForm } from '../models/basic-data-form';\n\n\n@Injectable()\nexport class ProductBasicDataService extends ProductBaseEntity {\n\n @IsAllowed('rhcdm.dadosbasicos.editarFinalizado') canSaveFinished: boolean;\n @IsAllowed('rhcdm.dadosbasicos.editarRevisao') canSaveReview: boolean;\n @IsAllowed('rhcdm.dadosbasicos.editarReprovado') canSaveRepproved: boolean;\n @IsAllowed('rhcdm.dadosbasicos.aprovar') canApproveOrReprove: boolean;\n\n ncm?: string;\n origemCSTId?: string;\n ipi?: number;\n\n unidadeFaturamento$: Observable;\n origemCst$: Observable;\n marcasId: string[];\n marca$: Observable;\n licenca$: Observable;\n\n constructor(\n fb: FormBuilder,\n private toastService: ToastService,\n private api: ApiDadosBasicosService,\n private apiUnidadeFaturamentoService: ApiUnidadeFaturamentoService,\n private apiMarcaLicensaService: ApiMarcaLicensaService,\n private apiOrigemCst: ApiOrigemCstService,\n private onlineEanValidator: OnlineEanValidator,\n private onlineDunValidator: OnlineDunValidator\n ) {\n super(fb);\n this.initForm();\n this.init();\n }\n\n async init() {\n this.unidadeFaturamento$ = this.apiUnidadeFaturamentoService.getAll().pipe(\n map(response => response.data),\n shareReplay(1)\n );\n\n const licenseData = await this.apiMarcaLicensaService.getAll().pipe(\n map(response => response.data),\n ).toPromise();\n\n this.licenca$ = new BehaviorSubject(licenseData);\n\n this.marca$ = new BehaviorSubject([]).pipe(\n switchMap(() => this.licenca$),\n map(licencas => {\n // Remove no license if exists in marcasId\n const filteredMarcasId = this.marcasId ? this.marcasId.filter(marcaId => marcaId != '5e14b9fbc06b25cda3c8b750') : [];\n\n // Filter\n const filteredBrands = licencas.filter(elem => {\n return filteredMarcasId.find(marcaId => elem.id == marcaId) ? true : false;\n });\n\n // Find no license and add on array\n const noLicense = licencas.find(elem => elem.id == '5e14b9fbc06b25cda3c8b750');\n if (noLicense) {\n filteredBrands.unshift(noLicense);\n }\n\n return filteredBrands;\n }),\n tap(marcas => {\n if (marcas && marcas.length == 1) {\n this.marcaId.setValue(marcas[0].id);\n }\n })\n );\n\n this.origemCst$ = this.apiOrigemCst.getAll().pipe(shareReplay(1));\n\n this.controladoPorValidade.valueChanges.subscribe(() => {\n this.checkValidityControl();\n });\n }\n\n setValue(productId: string, status: EnumStatus, value: BasicDataForm, marcasId?: string[]) {\n this.marcasId = marcasId;\n super.setValue(productId, status, value);\n this.checkValidityControl();\n }\n\n // Criação do Formulário\n\n createForm() {\n return this.fb.group({\n controladoPorValidade: [undefined, Validators.required],\n vencimento: [undefined, [Validators.required, Validators.min(1), onlyInteger()]],\n descricao: [undefined, Validators.required],\n referencia: [undefined, Validators.required],\n palavrasChave: [undefined, Validators.required],\n marcaId: [undefined],\n licencaId: [undefined],\n unidadeFaturamentoId: [undefined, Validators.required],\n embalagemUnitaria: this.createEmbalagemUnitaria(),\n embalagemCaixa: this.createEmbalagemCaixa(),\n foraDaEmbalagem: this.createForaDaEmbalagem(),\n\n // origemCSTId: [undefined, Validators.required],\n // ncm: [undefined, Validators.required],\n // ipi: [undefined, Validators.required]\n });\n }\n\n get referencia(): string {\n return this.form.get('referencia').value;\n }\n\n private createForaDaEmbalagem() {\n const formGroup = this.fb.group({\n pesoBruto: [undefined, [Validators.required, Validators.max(25)]],\n dimensoesProduto: this.createDimensoesProdutoForaDaEmbalagem()\n });\n\n formGroup.get('pesoBruto').setAsyncValidators([\n lessOrEqualThan(\n () => this.form.get('embalagemUnitaria.pesoBruto') as FormControl, 'Peso Bruto (UNIT.)* da seção Unidade'\n )\n ]);\n\n return formGroup;\n }\n\n private createEmbalagemUnitaria() {\n const formGroup = this.fb.group({\n ean: [undefined, validateEanDun()],\n pesoBruto: [undefined, [Validators.required, Validators.max(25)]],\n pesoLiquido: [undefined, [Validators.required, Validators.max(25)]],\n dimensoesProduto: this.createDimensoesProdutoUnidade()\n });\n\n // Set timeout to fix angular problems on form group\n setTimeout(() => {\n \n formGroup.get('pesoBruto').setAsyncValidators([\n greaterOrEqualThan(\n () => this.form.get('embalagemUnitaria.pesoLiquido') as FormControl, 'Peso Líquido (UNIT.)* da seção Unidade'\n )\n ]);\n\n formGroup.get('pesoBruto').setAsyncValidators([\n greaterOrEqualThan(\n () => this.form.get('foraDaEmbalagem.pesoBruto') as FormControl, 'Peso Líquido (UNIT.)* da seção Fora da Embalagem'\n )\n ]);\n\n });\n\n return formGroup;\n }\n\n private createEmbalagemCaixa() {\n const formGroup = this.fb.group({\n dun: [undefined, validateEanDun()],\n embalagemMultipla: [undefined],\n pesoBruto: [undefined, Validators.max(25)],\n pesoLiquido: [undefined, Validators.max(25)],\n dimensoesProduto: this.createDimensoesProdutoCaixa()\n });\n\n formGroup.get('pesoBruto').setAsyncValidators([\n greaterThan(\n () => this.form.get('embalagemUnitaria.pesoBruto') as FormControl, 'Peso Bruto (UNIT.)* da seção Unidade'\n )\n ]);\n\n formGroup.get('pesoLiquido').setAsyncValidators([\n greaterOrEqualThan(\n () => this.form.get('embalagemUnitaria.pesoLiquido') as FormControl, 'Peso Líquido (UNIT.)* da seção Unidade'\n )\n ]);\n\n formGroup.get('pesoBruto').setAsyncValidators([\n greaterOrEqualThan(\n () => this.form.get('embalagemCaixa.pesoLiquido') as FormControl, 'Peso x Embalagem Múltipla (PACK) da seção Caixa'\n )\n ]);\n\n // Regra removida devido ao fornecedor Lego\n // formGroup.get('dimensoesProduto.altura').setAsyncValidators([\n // greaterOrEqualThan(\n // () => this.form.get('embalagemUnitaria.dimensoesProduto.altura') as FormControl, 'Campo \"A - Altura\" da seção Unidade > Dimensões'\n // )\n // ]);\n // formGroup.get('dimensoesProduto.largura').setAsyncValidators([\n // greaterOrEqualThan(\n // () => this.form.get('embalagemUnitaria.dimensoesProduto.largura') as FormControl, 'Campo \"L - Largura\" da seção Unidade > Dimensões'\n // )\n // ]);\n // formGroup.get('dimensoesProduto.profundidade').setAsyncValidators([\n // greaterOrEqualThan(\n // () => this.form.get('embalagemUnitaria.dimensoesProduto.profundidade') as FormControl, 'Campo \"P - Profundidade\" da seção Unidade > Dimensões'\n // )\n // ]);\n\n return formGroup;\n }\n\n private createDimensoesProdutoForaDaEmbalagem() {\n return this.fb.group({\n altura: [undefined, [Validators.required, Validators.max(500)]],\n largura: [undefined, [Validators.required, Validators.max(500)]],\n profundidade: [undefined, [Validators.required, Validators.max(500)]],\n });\n }\n\n private createDimensoesProdutoUnidade() {\n return this.fb.group({\n altura: [undefined, [Validators.required, Validators.max(150)]],\n largura: [undefined, [Validators.required, Validators.max(150)]],\n profundidade: [undefined, [Validators.required, Validators.max(150)]],\n });\n }\n\n private createDimensoesProdutoCaixa() {\n return this.fb.group({\n altura: [undefined, Validators.max(150)],\n largura: [undefined, Validators.max(150)],\n profundidade: [undefined, Validators.max(150)],\n });\n }\n\n private checkValidityControl() {\n if (this.controladoPorValidade.value) {\n this.vencimento.enable();\n this.vencimento.setValidators([Validators.required, Validators.min(1), onlyInteger()]);\n } else {\n this.vencimento.disable();\n this.vencimento.clearValidators();\n }\n }\n\n private get controladoPorValidade() {\n return this.form.get('controladoPorValidade');\n }\n\n private get vencimento() {\n return this.form.get('vencimento');\n }\n\n private get marcaId() {\n return this.form.get('marcaId');\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { ProductBaseEntity } from './product-base-entity.class';\nimport { FormBuilder, Validators, FormGroup } from '@angular/forms';\nimport { ApiDadosComerciaisService } from 'src/app/services/api/comercial/api-dados-comerciais.service';\nimport { CanSave } from './interfaces';\nimport { ApiCategoriaFornecedorService } from 'src/app/services/api/comercial/api-categoria-fornecedor.service';\nimport { ApiTipoMaterialService } from 'src/app/services/api/comercial/api-tipo-material.service';\nimport { ApiGrupoCompradorService } from 'src/app/services/api/comercial/api-grupo-comprador.service';\nimport { tap, shareReplay, startWith, map, switchMap } from 'rxjs/operators';\nimport { TipoMaterial } from 'src/app/models/api/comercial/tipo-material';\nimport { Observable } from 'rxjs';\nimport { GrupoComprador } from 'src/app/models/api/comercial/grupo-comprador';\nimport { CategoriaFornecedor } from 'src/app/models/api/comercial/categoria-fornecedor';\nimport { Classificacao } from 'src/app/models/api/comercial/classificacao';\nimport { Colecao } from 'src/app/models/api/comercial/colecao';\nimport { CvprmModa } from 'src/app/models/api/comercial/cvprm-moda';\nimport { FaixaPreco } from 'src/app/models/api/comercial/faixa-preco';\nimport { Hierarquia } from 'src/app/models/api/comercial/hierarquia';\nimport { Padronagem } from 'src/app/models/api/comercial/padronagem';\nimport { TipoPadronagem } from 'src/app/models/api/comercial/tipo-padronagem';\nimport { ApiClassificacaoService } from 'src/app/services/api/comercial/api-classificacao.service';\nimport { ApiColecaoService } from 'src/app/services/api/comercial/api-colecao.service';\nimport { ApiCvprmModaService } from 'src/app/services/api/comercial/api-cvprm-moda.service';\nimport { ApiEpocaService } from 'src/app/services/api/comercial/api-epoca.service';\nimport { ApiExercicioService } from 'src/app/services/api/comercial/api-exercicio.service';\nimport { ApiFaixaPrecoService } from 'src/app/services/api/comercial/api-faixa-preco.service';\nimport { ApiHierarquiaService } from 'src/app/services/api/comercial/api-hierarquia.service';\nimport { ApiLicencaService } from 'src/app/services/api/comercial/api-licenca-service';\nimport { ApiLicenciadorService } from 'src/app/services/api/comercial/api-licenciador-service';\nimport { ApiLinhaService } from 'src/app/services/api/comercial/api-linha-service';\nimport { ApiGrupoService } from 'src/app/services/api/comercial/api-grupo-service';\nimport { ApiExclusivoService } from 'src/app/services/api/comercial/api-exclusivo-service';\nimport { ApiPadronagemService } from 'src/app/services/api/comercial/api-padronagem.service';\nimport { ApiTipoPadronagemService } from 'src/app/services/api/comercial/api-tipo-padronagem.service';\nimport { Epoca } from 'src/app/models/api/comercial/epoca';\nimport { Exercicio } from 'src/app/models/api/comercial/exercicio';\nimport { Departamento } from 'src/app/models/api/comercial/departamento';\nimport { ApiDepartamentoService } from 'src/app/services/api/comercial/api-departamento.service';\nimport { Cluster } from 'src/app/models/api/comercial/cluster';\nimport { ApiClusterService } from 'src/app/services/api/comercial/api-cluster.service';\nimport { NormaSuprimento } from 'src/app/models/api/comercial/norma-suprimento';\nimport { ApiNormaSuprimentoService } from 'src/app/services/api/comercial/api-norma-suprimento.service';\nimport { ProductBasicDataService } from './product-basic-data.service';\nimport { StatusComercial } from 'src/app/models/api/comercial/status-comercial';\nimport { ApiStatusComercialService } from 'src/app/services/api/comercial/api-status-comercial.service';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { CurvaCEVAEnum } from 'src/app/models/api/comercial/curva-ceva.enum';\nimport { Licenca } from 'src/app/models/api/comercial/licenca';\nimport { Licenciador } from 'src/app/models/api/comercial/licenciador';\nimport { Linha } from 'src/app/models/api/comercial/linha';\nimport { Grupo } from 'src/app/models/api/comercial/grupo';\nimport { Exclusivo } from 'src/app/models/api/comercial/exclusivo';\nimport { ApiPricefyTemasService } from 'src/app/services/api/comercial/api-pricefy-temas.service';\nimport { ApiPricefyFormatosService } from 'src/app/services/api/comercial/api-pricefy-formatos.service';\nimport { ApiPricefyDinamicasService } from 'src/app/services/api/comercial/api-pricefy-dinamicas.service';\nimport { Tema } from 'src/app/models/api/comercial/pricefy-tema';\nimport { Formato } from 'src/app/models/api/comercial/pricefy-formato';\nimport { Dinamica } from 'src/app/models/api/comercial/pricefy-dinamica';\n\n@Injectable()\nexport class ProductCommercialDataService extends ProductBaseEntity implements CanSave {\n\n @IsAllowed('rhcdm.comercial.aprovar') canApproveOrReprove: boolean;\n\n // gets da api\n tipoMaterial$: Observable;\n grupoComprador$: Observable;\n categoriaFornecedor$: Observable;\n hierarquia$: Observable;\n licenca$: Observable;\n licenciador$: Observable;\n linha$: Observable;\n grupo$: Observable;\n exclusivo$: Observable;\n\n classificacao$: Observable;\n colecao$: Observable;\n cvprmModal$: Observable;\n epoca$: Observable;\n exercicio$: Observable;\n faixaPreco$: Observable;\n padronagem$: Observable;\n tipoPadronagem$: Observable;\n departamento$: Observable;\n cluster$: Observable;\n normaSuprimento$: Observable;\n statusComercial$: Observable;\n\n idModeMaterial: string;\n\n showAditionalFields$: Observable;\n\n mirroredForm: FormGroup;\n // pricefyTemas$: Observable;\n // pricefyFormatos$: Observable;\n // pricefyDinamicas$: Observable;\n\n precoSugerido?: number;\n \n\n constructor(\n fb: FormBuilder,\n private api: ApiDadosComerciaisService,\n private apiDadosComerciais: ApiDadosComerciaisService,\n private apiTipoMaterial: ApiTipoMaterialService,\n private apiCategoriaFornecedor: ApiCategoriaFornecedorService,\n private apiGrupoComprador: ApiGrupoCompradorService,\n private apiClassificacao: ApiClassificacaoService,\n private apiColecao: ApiColecaoService,\n private apiCvprmModa: ApiCvprmModaService,\n private apiEpoca: ApiEpocaService,\n private apiExercicio: ApiExercicioService,\n private apiFaixaPreco: ApiFaixaPrecoService,\n private apiHierarquia: ApiHierarquiaService,\n private apiLicenca: ApiLicencaService,\n private apiLicenciador: ApiLicenciadorService,\n private apiLinha: ApiLinhaService,\n private apiGrupo: ApiGrupoService,\n private apiExclusivo: ApiExclusivoService,\n private apiPadronagem: ApiPadronagemService,\n private apiTipoPadronagem: ApiTipoPadronagemService,\n private apiDepartamento: ApiDepartamentoService,\n private apiCluster: ApiClusterService,\n private apiStatusComercial: ApiStatusComercialService,\n private apiNormaSuprimento: ApiNormaSuprimentoService,\n private basicDataService: ProductBasicDataService,\n private apiPricefyTemas: ApiPricefyTemasService,\n private apiPricefyFormatos: ApiPricefyFormatosService,\n private apiPricefyDinamicas: ApiPricefyDinamicasService,\n ) {\n super(fb);\n this.initForm();\n\n this.tipoMaterial$ = this.apiTipoMaterial.getAll().pipe(\n shareReplay(1),\n // solução rapida =(\n // soluções mais adequadas:\n // - adicionar id condicional do tipo material nos campos adicionais (afim de determinar se deve exibir ou não)\n // - indicar por boolean quais campos do tipo material qunado selecionado exibi os campos adicionais\n tap(data => {\n const item = data.find(d => d.descricao == 'Mode');\n if (item) { this.idModeMaterial = item.id; }\n })\n );\n this.grupoComprador$ = this.apiGrupoComprador.getAll().pipe(shareReplay(1));\n this.categoriaFornecedor$ = this.apiCategoriaFornecedor.getAll().pipe(shareReplay(1));\n\n this.classificacao$ = this.apiClassificacao.getAll().pipe(shareReplay(1));\n this.colecao$ = this.apiColecao.getAll().pipe(shareReplay(1));\n this.cvprmModal$ = this.apiCvprmModa.getAll().pipe(shareReplay(1));\n this.epoca$ = this.apiEpoca.getAll().pipe(shareReplay(1));\n this.exercicio$ = this.apiExercicio.getAll().pipe(shareReplay(1));\n this.faixaPreco$ = this.apiFaixaPreco.getAll().pipe(shareReplay(1));\n this.hierarquia$ = this.apiHierarquia.getAll().pipe(shareReplay(1));\n this.licenca$ = this.apiLicenca.getAll().pipe(shareReplay(1));\n this.licenciador$ = this.apiLicenciador.getAll().pipe(shareReplay(1));\n this.linha$ = this.apiLinha.getAll().pipe(shareReplay(1));\n this.grupo$ = this.apiGrupo.getAll().pipe(shareReplay(1));\n this.exclusivo$ = this.apiExclusivo.getAll().pipe(shareReplay(1));\n this.padronagem$ = this.apiPadronagem.getAll().pipe(shareReplay(1));\n this.tipoPadronagem$ = this.apiTipoPadronagem.getAll().pipe(shareReplay(1));\n this.departamento$ = this.apiDepartamento.getAll().pipe(shareReplay(1));\n this.cluster$ = this.apiCluster.getAll().pipe(shareReplay(1));\n this.normaSuprimento$ = this.apiNormaSuprimento.getAll().pipe(shareReplay(1));\n this.statusComercial$ = this.apiStatusComercial.getAll().pipe(shareReplay(1));\n\n // this.pricefyTemas$ = this.apiPricefyTemas.getAll().pipe(shareReplay(1));\n // this.pricefyFormatos$ = this.apiPricefyFormatos.getAll().pipe(shareReplay(1));\n // this.pricefyDinamicas$ = this.apiPricefyDinamicas.getAll().pipe(shareReplay(1));\n\n this.showAditionalFields$ = this.tipoMaterial$.pipe(\n switchMap(() => this.form.get('tipoMaterialId').valueChanges.pipe(\n startWith(this.form.get('tipoMaterialId').value),\n map(value => this.idModeMaterial == value)\n ))\n );\n\n this.showAditionalFields$.subscribe(show => {\n const formControls = [\n this.form.get('padronagemId'),\n this.form.get('tipoPadronagemId'),\n this.form.get('classificacaoId'),\n this.form.get('faixaPrecoId'),\n this.form.get('cvprmModaId'),\n this.form.get('epocaId'),\n this.form.get('exercicioId'),\n this.form.get('colecaoId'),\n ];\n\n if (show) {\n formControls.forEach(c => c.enable());\n } else {\n formControls.forEach(c => c.disable());\n }\n });\n }\n\n get canSaveDraftitForReview() {\n return false;\n }\n\n get canSave() {\n return true;\n }\n\n createForm() {\n const form = this.fb.group({\n descricaoCurta: [undefined, [Validators.required, Validators.maxLength(40)]],\n descricaoAbreviada: [undefined, [Validators.required, Validators.maxLength(23)]],\n statusComercialId: [undefined, Validators.required],\n tipoMaterialId: [undefined, Validators.required],\n grupoCompradorId: [undefined, Validators.required],\n hieraquiaId: [undefined, Validators.required],\n licencaId: [undefined, Validators.required],\n licenciadorId: [undefined, Validators.required],\n linhaId: [undefined, Validators.required],\n grupoId: [undefined, Validators.required],\n exclusivoId: [undefined, Validators.required],\n itemExclusivo: this.createItemExclusivoForm(),\n formatoId: [undefined, Validators.required],\n temaId: [undefined, Validators.required],\n dinamicaId: [undefined, Validators.required],\n custoSP: [undefined, [Validators.required, Validators.max(100000)]],\n // precoSugerido: [undefined, [Validators.required, Validators.max(100000)],\n precoVenda: [undefined, [Validators.required, Validators.max(100000)]],\n valorArredondamento: [undefined, Validators.required],\n // clusterIdList: [[]],\n clusters: [undefined],\n departamentoId: [undefined, Validators.required],\n id: [undefined, Validators.required],\n normaSuprimentoId: [undefined, Validators.required],\n curvaCEVA: [CurvaCEVAEnum.C],\n\n // Campos adicionais\n padronagemId: [undefined, Validators.required],\n tipoPadronagemId: [undefined, Validators.required],\n classificacaoId: [undefined, Validators.required],\n faixaPrecoId: [undefined, Validators.required],\n cvprmModaId: [undefined, Validators.required],\n epocaId: [undefined, Validators.required],\n exercicioId: [undefined, Validators.required],\n colecaoId: [undefined, Validators.required],\n });\n\n return form;\n }\n\n private createItemExclusivoForm() {\n return this.fb.control({\n marketPlace: false,\n pbKids: false,\n riHappy: false,\n vendidoEmOmni: false\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ProductBaseEntity } from \"./product-base-entity.class\";\nimport { CanSubmitForReview } from \"./interfaces\";\nimport { IsAllowed } from \"src/app/shared/decorators/is-allowed.decorator\";\nimport { FormBuilder, Validators, FormArray, FormControl } from \"@angular/forms\";\nimport { EnumStatus } from \"src/app/models/api/dados-basicos/enum-status.enum\";\nimport { CostAndPriceForm } from \"../models/cost-and-price-form\";\nimport { ProductTaxDataService } from \"./product-tax-data.service\";\nimport { removeValidators } from \"src/app/shared/utils/remove-validators-form\";\n\nimport {\n CustoPrecoEstadoAliquota,\n CustoPrecoEstadoOrigem,\n CustoPrecoEstadoRegiao,\n CustoPrecoPorEstadoValor,\n} from \"src/app/models/api/custo-preco/custo-preco.interface\";\nimport { ApiCustoPrecoEstadoService } from \"src/app/services/api/custo-preco/api-custo-preco-estado.service\";\nimport { distinctUntilChanged } from \"rxjs/operators\";\nimport { combineLatest } from \"rxjs\";\nimport { of, Subject, BehaviorSubject, ReplaySubject, Observable } from \"rxjs\";\n\n@Injectable()\nexport class ProductCostAndPriceService\n extends ProductBaseEntity\n implements CanSubmitForReview\n{\n @IsAllowed(\"rhcdm.custopreco.editarFinalizado\") canSaveFinished: boolean;\n @IsAllowed(\"rhcdm.custopreco.editarRevisao\") canSaveReview: boolean;\n @IsAllowed(\"rhcdm.custopreco.editarReprovado\") canSaveRepproved: boolean;\n @IsAllowed(\"rhcdm.custopreco.aprovar\") canApproveOrReprove: boolean;\n\n isCustoPrecoIntegrado$ = new BehaviorSubject(false);\n\n fornecedorId: string;\n\n constructor(\n fb: FormBuilder,\n private taxDataService: ProductTaxDataService,\n private apiCustoPrecoEstadoService: ApiCustoPrecoEstadoService,\n\n ) {\n super(fb);\n super.initForm();\n this.listenTaxDataFiliais();\n\n }\n\n setValue(productId: string, status: EnumStatus, value: CostAndPriceForm) {\n super.setValue(productId, status, value);\n this.createEstadoOrigemList(value.estadoOrigemList); \n if (this.isCustoPrecoIntegrado$.getValue()){\n removeValidators(this.form)\n }\n }\n\n createForm() {\n return this.fb.group({\n codigoRihappy: [undefined, Validators.required],\n precoSugerido: [undefined, Validators.required],\n custoBrasil: [undefined, Validators.required],\n estadoOrigemList: new FormArray([]),\n });\n }\n\n replicate() {\n const custoBrasil = this.form.get('custoBrasil').value;\n\n this.estadoOrigemList.controls.forEach(estadoControl => \n (estadoControl.get('estadoPorAliquotaList') as FormArray).controls.forEach(aliquotaControl => \n (aliquotaControl.get('regiaoEstadoSemDescontoList') as FormArray).controls.forEach(regiaoControl => \n (regiaoControl.get('valorPorEstadoList') as FormArray).controls.forEach(valorControl => {\n valorControl.get('valor').patchValue(custoBrasil);\n })\n )\n )\n );\n } \n\n private createEstadoOrigemList(data: CustoPrecoEstadoOrigem[]){\n this.estadoOrigemList.clear();\n\n if (data) {\n data.forEach((elem) => {\n this.createEstadoOrigemItem(elem);\n }); \n } \n }\n\n private createEstadoOrigemItem(data: CustoPrecoEstadoOrigem) {\n const form = this.fb.group({\n uf: [data.uf, Validators.required],\n estadoPorAliquotaList: this.createEstadoPorAliquotaList(\n data.estadoPorAliquotaList\n ),\n });\n\n this.estadoOrigemList.push(form);\n }\n\n private createEstadoPorAliquotaList(data: CustoPrecoEstadoAliquota[]) {\n const formArray = this.fb.array([]);\n\n if (data) {\n data.forEach((elem) => {\n const form = this.fb.group({\n aliquota: [elem.aliquota, Validators.required],\n regiaoEstadoSemDescontoList: this.createRegiaoEstadoDescontoList(\n elem.regiaoEstadoSemDescontoList\n ),\n regiaoEstadoComDescontoList: this.createRegiaoEstadoDescontoList(\n elem.regiaoEstadoComDescontoList\n ),\n });\n\n formArray.push(form);\n });\n }\n\n return formArray;\n }\n\n private createRegiaoEstadoDescontoList(data: CustoPrecoEstadoRegiao[]) {\n const formArray = this.fb.array([]);\n\n if (data) {\n data.forEach((elem) => {\n const form = this.fb.group({\n regiao: [elem.regiao, Validators.required],\n valorPorEstadoList: this.createValorPorEstadoList(\n elem.valorPorEstadoList\n ),\n });\n\n formArray.push(form);\n });\n }\n\n return formArray;\n }\n\n private createValorPorEstadoList(data: CustoPrecoPorEstadoValor[]) {\n const formArray = this.fb.array([]);\n\n if (data) {\n data.forEach((elem) => {\n const form = this.fb.group({\n uf: [elem.uf, Validators.required],\n valor: [elem.valor, [Validators.required, Validators.min(0)]],\n });\n\n formArray.push(form);\n });\n }\n\n return formArray;\n }\n\n private listenTaxDataFiliais() {\n \n // Listen to filiais and to the fiscal origin\n combineLatest(this.taxDataService.filialChange$, \n this.taxDataService.isSelectedCstForeigner$.pipe(distinctUntilChanged()))\n .subscribe(async ([filiais, isForeigner]) => {\n const custoPrecoEstadoOrigemList: CustoPrecoEstadoOrigem[] = [];\n\n for (const filial of filiais.sort(x => x.index)) {\n const aliquotasData = await this.apiCustoPrecoEstadoService\n .getAliquotasByState(filial.uf, isForeigner, this.fornecedorId)\n .toPromise() as CustoPrecoEstadoAliquota[];\n\n const custoPrecoEstadoOrigem: CustoPrecoEstadoOrigem = {\n uf: filial.uf,\n estadoPorAliquotaList: aliquotasData\n };\n\n const filialCustoPreco = (this.estadoOrigemList.getRawValue() as CustoPrecoEstadoOrigem[])[filial.index];\n if (filialCustoPreco && filial.uf == filialCustoPreco.uf) { \n custoPrecoEstadoOrigem.estadoPorAliquotaList = this.getCustoPrecoEstadoListWithPreviousValues(\n filialCustoPreco.estadoPorAliquotaList, aliquotasData);\n }\n\n custoPrecoEstadoOrigemList.push(custoPrecoEstadoOrigem);\n } \n \n this.createEstadoOrigemList(custoPrecoEstadoOrigemList);\n });\n }\n\n private getCustoPrecoEstadoListWithPreviousValues(formEstados: CustoPrecoEstadoAliquota[], \n newEstados: CustoPrecoEstadoAliquota[]){\n const regioesSemDesconto: CustoPrecoEstadoRegiao[] = [];\n const regioesComDesconto: CustoPrecoEstadoRegiao[] = [];\n\n formEstados.forEach(formEstado => {\n this.fillUniqueCustoPrecoEstadoRegiaoList(formEstado.regiaoEstadoSemDescontoList, regioesSemDesconto);\n this.fillUniqueCustoPrecoEstadoRegiaoList(formEstado.regiaoEstadoComDescontoList, regioesComDesconto);\n });\n\n newEstados.forEach(estadoAliquota => {\n this.fillValorOfRegiaoEstado(estadoAliquota.regiaoEstadoSemDescontoList, regioesSemDesconto);\n this.fillValorOfRegiaoEstado(estadoAliquota.regiaoEstadoComDescontoList, regioesComDesconto);\n });\n\n return newEstados;\n }\n\n private fillUniqueCustoPrecoEstadoRegiaoList(list: CustoPrecoEstadoRegiao[], \n uniqueRegionsList: CustoPrecoEstadoRegiao[]){\n\n list.forEach(formRegiao => {\n const regiaoExistente = uniqueRegionsList.find(x => x.regiao == formRegiao.regiao);\n\n if(regiaoExistente){\n regiaoExistente.valorPorEstadoList.push(...formRegiao.valorPorEstadoList);\n }else{\n uniqueRegionsList.push(formRegiao);\n }\n });\n }\n\n private fillValorOfRegiaoEstado(regioesOrigin: CustoPrecoEstadoRegiao[], regioesDestiny: CustoPrecoEstadoRegiao[]) {\n if (regioesOrigin && regioesOrigin.length > 0 && regioesDestiny && regioesDestiny.length > 0){\n regioesOrigin.forEach(estadoRegiao => {\n const regiaoDestino = regioesDestiny.find(x => x.regiao === estadoRegiao.regiao);\n\n if(estadoRegiao && estadoRegiao.valorPorEstadoList && estadoRegiao.valorPorEstadoList.length > 0){\n estadoRegiao.valorPorEstadoList.forEach(estadoValor => {\n const value = regiaoDestino.valorPorEstadoList.find(x => x.uf === estadoValor.uf).valor;\n estadoValor.valor = value ? value : estadoValor.valor;\n })\n }\n });\n }\n }\n\n\n get estadoOrigemList() {\n return this.form.get(\"estadoOrigemList\") as FormArray;\n }\n\n get codigoSapFornecedor() {\n return this.form.get(\"codigoRihappy\") as FormControl;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Historico } from 'src/app/models/api/historico/historico.interface';\n\n@Injectable()\nexport class ProductHistoricService {\n\n productId: string;\n data: Historico;\n\n constructor(\n ) {\n }\n\n setValue(productId: string, value: Historico) {\n this.productId = productId;\n this.data = value;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormArray, FormControl } from '@angular/forms';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { ProductSpecificDataService } from './product-specific-data.service';\nimport { EnumVariacoesDadosEspecificos } from 'src/app/models/api/dados-especificos/enum-variacoes-dados-especificos.enum';\nimport { MediaForm } from '../models/media-form';\nimport { ProductBaseEntity } from './product-base-entity.class';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { imageRequired } from '../helpers/image-required.validator';\n\n@Injectable()\nexport class ProductMediaService extends ProductBaseEntity {\n\n @IsAllowed('rhcdm.midia.editarFinalizado') canSaveFinished: boolean;\n @IsAllowed('rhcdm.midia.editarRevisao') canSaveReview: boolean;\n @IsAllowed('rhcdm.midia.editarReprovado') canSaveRepproved: boolean;\n @IsAllowed('rhcdm.midia.aprovar') canApproveOrReprove: boolean;\n\n itemListName = 'mídia do produto';\n variationStatus = EnumVariacoesDadosEspecificos.Nenhum;\n\n constructor(\n fb: FormBuilder,\n private specificDataService: ProductSpecificDataService\n ) {\n super(fb);\n this.initForm();\n this.listenSpecificDataVariations();\n this.createFormArray();\n }\n\n // Métodos auxiliares do formulário\n setValue(productId: string, status: EnumStatus, value: MediaForm) {\n this.form.reset();\n\n if (value.midias.length > 1) {\n for (let i = this.midias.length; i < value.midias.length; i++) {\n this.createFormArray();\n }\n }\n\n this.productId = productId;\n this.status = status;\n\n this.form.patchValue(value);\n }\n\n private listenSpecificDataVariations() {\n // Listen delete variations to delete in midia\n this.specificDataService.removeVariation$.subscribe(res => {\n this.midias.removeAt(res);\n });\n\n // Listen sortimento to create items for midia\n this.specificDataService.sortimentoListForm.valueChanges.subscribe(res => {\n if (this.specificDataService.sortimentoListForm.length >= this.midias.length) {\n // tslint:disable-next-line: prefer-for-of\n for (let i = this.midias.length; i <= this.specificDataService.sortimentoListForm.length; i++) {\n this.createFormArray();\n }\n }\n });\n\n // Listen grade to create items for midia\n this.specificDataService.gradeListForm.valueChanges.subscribe(res => {\n if (this.specificDataService.gradeListForm.length > this.midias.length) {\n // tslint:disable-next-line: prefer-for-of\n for (let i = this.midias.length; i < this.specificDataService.gradeListForm.length; i++) {\n this.createFormArray();\n }\n }\n });\n\n this.specificDataService.variacoes.valueChanges.subscribe(res => {\n this.variationStatus = res;\n\n if (this.midias.length > 1) {\n const firstControl = this.midias.controls[0];\n this.form = this.createForm();\n this.midias.push(firstControl);\n }\n\n if (res == EnumVariacoesDadosEspecificos.Nenhum) {\n this.itemListName = 'mídia do produto';\n } else if (res == EnumVariacoesDadosEspecificos.Grade) {\n this.itemListName = 'variação';\n } else if (res == EnumVariacoesDadosEspecificos.Sortimento) {\n this.itemListName = 'sortimento';\n }\n });\n }\n\n getItemListName(index: number) {\n if (this.variationStatus == EnumVariacoesDadosEspecificos.Grade) {\n return `${this.itemListName} ${index + 1}`;\n } else if (this.variationStatus == EnumVariacoesDadosEspecificos.Sortimento) {\n if (index == 0) {\n return 'mídia do produto';\n } else {\n return `${this.itemListName} ${index}`;\n }\n } else {\n return `${this.itemListName}`;\n }\n }\n\n // Criação do Formulário\n createForm() {\n return this.fb.group({\n midias: this.fb.array([], [imageRequired])\n });\n }\n\n createFormArray() {\n const control = this.midias as FormArray;\n control.push(new FormControl());\n }\n\n // helpers de acesso aos dados do form\n\n get midias() {\n return this.form.get('midias') as FormArray;\n }\n\n get mainImage() {\n if (this.midias && this.midias.value && this.midias.value[0] && this.midias.value[0].imagens && this.midias.value[0].imagens[0]) {\n return this.midias.value[0].imagens[0].link;\n }\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { ApiDadosProdutosService } from 'src/app/services/api/dados-produto/api-dados-produtos.service';\nimport { switchMap, map, catchError } from 'rxjs/operators';\nimport { zip, of, throwError } from 'rxjs';\nimport { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { ApiDadosEspecificosService } from 'src/app/services/api/dados-especificos/api-dados-especificos.service';\nimport { Product } from '../models/product';\nimport { ApiMidiaService } from 'src/app/services/api/midia/api-midia.service';\nimport { ApiDadosComerciaisService } from 'src/app/services/api/comercial/api-dados-comerciais.service';\nimport { ApiHistoricoService } from 'src/app/services/api/historico/api-historico.service';\nimport { ApiWorkflowService } from 'src/app/services/api/workflow/api-workflow.service';\nimport { DadosSap, DadosVtex, Produto } from 'src/app/models/api/dados-produto/produto';\nimport { ApiDadosFiscaisService } from 'src/app/services/api/dados-fiscais/api-dados-fiscais.service';\nimport { ApiCustoPrecoService } from 'src/app/services/api/custo-preco/api-custo-preco.service';\n\n@Injectable()\nexport class ProductResolverService implements Resolve {\n\n constructor(\n private apiDadosProduto: ApiDadosProdutosService,\n private apiDadosBasicos: ApiDadosBasicosService,\n private apiDadosEspecificos: ApiDadosEspecificosService,\n private apiMidia: ApiMidiaService,\n private apiDadosFiscais: ApiDadosFiscaisService,\n private apiCustoPrecoService: ApiCustoPrecoService,\n private apiDadosComerciais: ApiDadosComerciaisService,\n private apiHistorico: ApiHistoricoService,\n private apiWorkflow: ApiWorkflowService\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\n const id = route.paramMap.get('id');\n\n if (id) {\n return this.apiDadosProduto.get(id).pipe(\n switchMap( data =>\n zip(\n // caso o id não exista sera retornado undefined\n this.apiDadosBasicos.get(data.id),\n this.apiDadosEspecificos.get(data.id),\n this.apiMidia.get(data.id),\n this.apiDadosFiscais.get(data.id), // this.apiDadosFiscais.get(data.id),\n this.apiCustoPrecoService.get(data.id),\n this.apiDadosComerciais.get(data.id).pipe(\n catchError( error => error.status == 403 || error.status == 400 ? of(null) : throwError(error)\n )),\n this.apiHistorico.get(data.id),\n this.apiWorkflow.getById(data.id)\n ).pipe(\n map(tabs => ({\n id: data.id,\n status: data.statusProduto,\n header: { ...data.header,\n codigoSap: this.getCodSap(data),\n idVtex: this.getIdVtex(data),\n sku: this.getSku(data),\n qualidadeCadastro: data.qualidadeCadastro\n },\n sortimento: this.getSortimentos(data),\n grade: this.getGrades(data),\n dadosBasicos: tabs[0],\n dadosEspecificos: tabs[1],\n midia: tabs[2],\n dadosFiscais: tabs[3],\n custoPreco: tabs[4],\n dadosComerciais: tabs[5],\n historico: tabs[6],\n workflow: tabs[7],\n } as Product)\n )\n )),\n );\n } else {\n return this.apiDadosProduto.createProductId().pipe( map( produto => {\n return { id: produto.id, header: produto.header };\n }));\n }\n }\n\n private getCodSap(produto: Produto): string {\n const aux = produto.dadosSap && produto.dadosSap.find( i => !i.idGrade );\n return aux && aux.codigoSap;\n }\n\n private getIdVtex(produto: Produto): string {\n const aux = produto.dadosVtex && produto.dadosVtex.find( i => !i.idSortimento );\n return aux && aux.idVtex;\n }\n private getSku(produto: Produto): string {\n const aux = produto.dadosVtex && produto.dadosVtex.find( i => !i.idSortimento );\n return aux && aux.skus && aux.skus[0] && aux.skus[0].idVtex;\n }\n\n private getSortimentos(produto: Produto) {\n const codigoSap = this.getCodSap(produto);\n const items = produto.dadosVtex.filter( i => !!i.idSortimento ).map( i => ({\n id: i.idSortimento,\n idVtex: i.idVtex,\n sku: i.skus && i.skus[0] && i.skus[0].idVtex,\n codigoSap,\n })).reduce( (o, c) => {\n o[c.id] = c;\n return o;\n }, {});\n return items || [];\n }\n\n private getGrades(produto: Produto) {\n const aux = produto.dadosVtex && produto.dadosVtex.find( i => !i.idSortimento );\n const codSapGrades = produto.dadosSap.filter( i => i.idGrade );\n return codSapGrades.map( i => {\n const sku = aux && aux.skus.find( s => s.idGrade == i.idGrade );\n return {\n id: i.idGrade,\n idVtex: aux && aux.idVtex,\n codigoSap: i.codigoSap,\n sku: sku && sku.idVtex,\n };\n }).reduce( (o, c) => {\n o[c.id] = c;\n return o;\n }, {}) || [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { Observable, combineLatest, of, BehaviorSubject } from 'rxjs';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { ProductSpecificDataService } from './product-specific-data.service';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { ApiCampoDinamicoService } from 'src/app/services/api/dados-especificos/api-campo-dinamico.service';\nimport { PdmDescriptionBuilderService } from './pdm-description-builder.service';\nimport { startWith, map, switchMap, catchError, tap, defaultIfEmpty } from 'rxjs/operators';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\n\n// Capitalize os valores de PDM vindos de Titulo de Publicação\nfunction titleCase(str) {\n var splitStr = str.toLowerCase().split(' ');\n for (var i = 0; i < splitStr.length; i++) {\n splitStr[i] = splitStr[i].charAt(0).toUpperCase() + splitStr[i].substring(1); \n }\n return splitStr.join(' '); }\n\n@Injectable()\nexport class ProductSpecificDataSubnivelService {\n\n departamentoControl: FormControl;\n departamentoId$: Observable;\n\n categoriaControl: FormControl;\n categoriaId$: Observable;\n\n subnivelControl: FormControl;\n subnivelId$: Observable;\n\n filteredCategorias$: BehaviorSubject;\n filteredSubniveis$: BehaviorSubject;\n\n options$: Observable;\n options: CampoDinamico[];\n\n constructor(\n public specificDataService: ProductSpecificDataService,\n public apiDepartamento: ApiDepartamentoService,\n public apiCategoria: ApiCategoriaService,\n public apiSubnivel: ApiSubnivelService,\n public apiCampoDinamico: ApiCampoDinamicoService,\n public pdmDescriptionBuilder: PdmDescriptionBuilderService,\n ) {\n /**\n * O SHARE REPLAY funciona como um cache, a request é feita apenas uma vez,\n * mesmo que seja criado uma nova subscription para o observable\n */\n\n this.departamentoControl = this.specificDataService.form.get('departamentoId') as FormControl;\n this.departamentoId$ = this.departamentoControl.valueChanges.pipe(startWith(this.departamentoControl.value));\n\n this.categoriaControl = this.specificDataService.form.get('categoriaId') as FormControl;\n this.categoriaId$ = this.categoriaControl.valueChanges.pipe(startWith(this.categoriaControl.value));\n\n this.subnivelControl = this.specificDataService.form.get('subnivelId') as FormControl;\n this.subnivelId$ = this.subnivelControl.valueChanges.pipe(\n startWith(this.subnivelControl.value)\n );\n\n this.filteredCategorias$ = new BehaviorSubject([]);\n combineLatest([\n this.specificDataService.categorias$,\n this.departamentoId$\n ])\n .pipe(map(([categorias, departamentoId]) => categorias.filter(c => c.departamentoId === departamentoId)))\n .subscribe(res => this.filteredCategorias$.next(res));\n\n this.filteredSubniveis$ = new BehaviorSubject([]);\n combineLatest([\n this.specificDataService.subniveis$,\n this.filteredCategorias$,\n this.categoriaId$,\n ])\n .pipe(\n map(\n ([subniveis, categorias, categoriaId]) => subniveis.filter(\n s => categoriaId ? s.categoriaId === categoriaId : false\n )\n )\n )\n .subscribe(res => this.filteredSubniveis$.next(res));\n\n this.options$ = this.subnivelId$.pipe(\n switchMap(id => id ? this.apiCampoDinamico.getBySubnivel(id).pipe(catchError(() => null)) : of(null)),\n tap(res => this.options = res)\n );\n\n // reseta categoria quando departamento muda\n this.departamentoControl.valueChanges.subscribe(departamentoId => {\n this.categoriaControl.reset(null, { emitEvent: true });\n });\n\n // reseta subnivel quando categoria muda\n this.categoriaControl.valueChanges.subscribe(categoriaId => {\n this.subnivelControl.reset(null, { emitEvent: true });\n });\n\n const subnivel$ = combineLatest([\n this.filteredSubniveis$,\n this.subnivelId$\n ]).pipe(\n map(([subniveis, id]) => {\n const subnivel = subniveis && subniveis.find(s => s.id == id);\n return subnivel;\n })\n );\n\n combineLatest([\n subnivel$,\n this.options$,\n this.specificDataService.descricaoExtendidaPersonalizada.valueChanges.pipe(\n startWith(this.specificDataService.descricaoExtendidaPersonalizada.value\n ))\n ]).pipe(\n switchMap(([subnivel, options]) => subnivel && subnivel.regraDescricaoEstendida ?\n this.pdmDescriptionBuilder.getStringForPDMRule(\n subnivel.regraDescricaoEstendida,\n options,\n ) :\n of('SEM REGRA')\n )\n ).subscribe(description => {\n if (description && this.specificDataService.canUsePdmForDescricaoExtendida) {\n this.specificDataService.form.get('descricaoExtendida').setValue(description);\n }\n });\n\n combineLatest([\n subnivel$,\n this.options$,\n this.specificDataService.tituloDePublicacaoPersonalizada.valueChanges.pipe(\n startWith(this.specificDataService.tituloDePublicacaoPersonalizada.value\n ))\n ]).pipe(\n switchMap(([subnivel, options]) => subnivel && subnivel.regraTituloDePublicacao ?\n this.pdmDescriptionBuilder.getStringForPDMRule(\n subnivel.regraTituloDePublicacao,\n options,\n ) :\n of('SEM REGRA')\n )\n ).subscribe(description => {\n if (description && this.specificDataService.canUsePdmForTituloDePublicacao) {\n this.specificDataService.form.get('tituloDePublicacao').setValue(titleCase(description));\n }\n });\n\n combineLatest([\n subnivel$,\n this.options$,\n this.specificDataService.descricaoEcommercePersonalizada.valueChanges.pipe(\n startWith(this.specificDataService.descricaoEcommercePersonalizada.value\n ))\n ]).pipe(\n switchMap(([subnivel, options]) => subnivel && subnivel.regraDescricaoEcommerce ?\n this.pdmDescriptionBuilder.getStringForPDMRule(\n subnivel.regraDescricaoEcommerce,\n options,\n ) :\n of('')\n )\n ).subscribe(description => {\n if (description && this.specificDataService.canUsePdmForDescricaoEcommerce) {\n this.specificDataService.form.get('dadosDoEcommerce').get('nomeDoProduto').setValue(titleCase(description));\n }\n });\n\n combineLatest([\n subnivel$,\n this.options$,\n this.specificDataService.descricaoLongaPersonalizada.valueChanges.pipe(\n startWith(this.specificDataService.descricaoLongaPersonalizada.value\n ))\n ]).pipe(\n switchMap(([subnivel, options]) => subnivel && subnivel.regraDescricaoLonga ?\n this.pdmDescriptionBuilder.getStringForPDMRule(\n subnivel.regraDescricaoLonga,\n options,\n ) :\n of('SEM REGRA')\n ),\n ).subscribe(description => {\n if (description && this.specificDataService.canUsePdmForDescricaoLonga) {\n this.specificDataService.form.get('descricaoLonga').setValue(description);\n }\n });\n }\n\n pdmSortimentoGrade(sortimentoGrade: string = \"sortimento\") {\n const subnivelId$ = this.subnivelControl.valueChanges.pipe(\n startWith(this.subnivelControl.value)\n );\n\n const subnivel$ = combineLatest([\n this.filteredSubniveis$,\n subnivelId$\n ]).pipe(\n map(([subniveis, id]) => {\n const subnivel = subniveis && subniveis.find(s => s.id == id);\n return subnivel;\n })\n );\n \n let options$: BehaviorSubject = new BehaviorSubject([]);\n options$.next(this.options);\n\n let subnivel;\n subnivel$.subscribe(sub => subnivel = sub);\n\n let options;\n options$.subscribe(opt => {options = opt});\n \n \n let selectedForm;\n if (sortimentoGrade == \"sortimento\") {\n selectedForm = this.specificDataService.sortimentoListForm.value;\n } else {\n selectedForm = this.specificDataService.gradeListForm.value;\n }\n\n const arrayRegras = [\n { regra: 'regraDescricaoEstendida', campo: 'descricaoEstendida' },\n { regra: 'regraTituloDePublicacao', campo: 'tituloDePublicacao'},\n { regra: 'regraDescricaoEcommerce', campo: 'descricaoEcommerce'},\n { regra: 'regraDescricaoLonga', campo: 'descricaoLonga' }];\n\n selectedForm.map((itemForm, index) => {\n arrayRegras.map(regra => {\n var inputSelected;\n if (sortimentoGrade == \"sortimento\"){\n if (regra.campo == \"descricaoEcommerce\"){\n inputSelected = this.specificDataService.sortimentoListForm.get(`${index}`).get('dadosDoEcommerce').get('nomeDoProduto');\n }\n else{\n inputSelected = this.specificDataService.sortimentoListForm.get(`${index}`).get(`${regra.campo}Sortimento`);\n }\n }\n else{\n if (regra.campo == \"descricaoEcommerce\"){\n inputSelected = this.specificDataService.gradeListForm.get(`${index}`).get('dadosDoEcommerce').get('nomeDoProduto');\n }\n else{\n inputSelected = this.specificDataService.gradeListForm.get(`${index}`).get(`${regra.campo}Grade`);\n }\n }\n\n const canUpdateInput = sortimentoGrade == \"sortimento\" ? \n this.specificDataService.sortimentoListForm.get(`${index}`).get(`${regra.campo}SortimentoPersonalizada`) : \n this.specificDataService.gradeListForm.get(`${index}`).get(`${regra.campo}GradePersonalizada`);\n\n if (subnivel[regra.regra]) {\n let observable = this.pdmDescriptionBuilder.getStringForPDMRule(\n subnivel[regra.regra],\n options,\n sortimentoGrade,\n index\n ).pipe(map(item => item), defaultIfEmpty(\"SEM REGRA\"));\n \n observable.subscribe(description => {\n if (description) {\n if(regra.campo == 'tituloDePublicacao' || regra.campo == 'descricaoEcommerce'){\n description = titleCase(description)\n }\n if (canUpdateInput.value) {\n inputSelected.setValue(description);\n }\n }\n });\n } else {\n if (canUpdateInput.value) {\n if (regra.campo == 'descricaoEcommerce'){\n inputSelected.setValue(\"\")\n }\n else {\n inputSelected.setValue(\"SEM REGRA\");\n }\n }\n }\n })\n });\n }\n resetInputsForRulesPDM(input: string, index: number = 0, sortimento: string = 'sortimento') {\n const inputSelected = sortimento == \"sortimento\" ? \n this.specificDataService.sortimentoListForm.get(`${index}`).get(`${input}`) : \n this.specificDataService.gradeListForm.get(`${index}`).get(`${input}`);\n \n const canUpdateInput = sortimento == \"sortimento\" ? \n this.specificDataService.sortimentoListForm.get(`${index}`).get(`${input}Personalizada`) : \n this.specificDataService.gradeListForm.get(`${index}`).get(`${input}Personalizada`);\n\n\n if (!inputSelected.value || inputSelected.value.length <= 0) {\n canUpdateInput.setValue(true);\n this.pdmSortimentoGrade(sortimento);\n } else {\n canUpdateInput.setValue(false);\n }\n }\n\n resetInputsForRulesDadosEcommercePDM(index: number = 0, sortimento: string = 'sortimento') {\n const inputSelected = sortimento == \"sortimento\" ? \n this.specificDataService.sortimentoListForm.get(`${index}`).get('dadosDoEcommerce').get('nomeDoProduto') : \n this.specificDataService.gradeListForm.get(`${index}`).get('dadosDoEcommerce').get('nomeDoProduto');\n\n const canUpdateInput = sortimento == \"sortimento\" ? \n this.specificDataService.sortimentoListForm.get(`${index}`).get('descricaoEcommerceSortimentoPersonalizada') : \n this.specificDataService.gradeListForm.get(`${index}`).get('descricaoEcommerceGradePersonalizada');\n\n if (!inputSelected.value || inputSelected.value.length <= 0) {\n canUpdateInput.setValue(true);\n this.pdmSortimentoGrade(sortimento);\n } else {\n canUpdateInput.setValue(false);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\nimport { EnumVariacoesDadosEspecificos } from 'src/app/models/api/dados-especificos/enum-variacoes-dados-especificos.enum';\nimport { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { map, shareReplay, throwIfEmpty } from 'rxjs/operators';\nimport { ApiDepartamentoService } from 'src/app/services/api/dados-especificos/api-departamento.service';\nimport { ApiCategoriaService } from 'src/app/services/api/dados-especificos/api-categoria.service';\nimport { ApiSubnivelService } from 'src/app/services/api/dados-especificos/api-subnivel.service';\nimport { ProductBaseEntity } from './product-base-entity.class';\nimport { CanSubmitForReview } from './interfaces';\nimport { ApiDadosEspecificosService } from 'src/app/services/api/dados-especificos/api-dados-especificos.service';\nimport { SpecificDataForm } from '../models/specific-data-form';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { validateEanDun } from 'src/app/shared/validators/ean-dun';\nimport { OnlineEanValidator } from '../helpers/online-ean.validator';\nimport { CorGrade } from 'src/app/models/api/dados-especificos/cor-grade';\nimport { ApiCorGradeService } from 'src/app/services/api/dados-especificos/api-cor-grade.service';\nimport { TamanhoGrade } from 'src/app/models/api/dados-especificos/tamanho-grade';\nimport { ApiTamanhoGradeService } from 'src/app/services/api/dados-especificos/api-tamanho-grade.service';\n\n@Injectable()\nexport class ProductSpecificDataService extends ProductBaseEntity implements CanSubmitForReview {\n\n @IsAllowed('rhcdm.dadosespecificos.editarFinalizado') canSaveFinished: boolean;\n @IsAllowed('rhcdm.dadosespecificos.editarRevisao') canSaveReview: boolean;\n @IsAllowed('rhcdm.dadosespecificos.editarReprovado') canSaveRepproved: boolean;\n @IsAllowed('rhcdm.dadosespecificos.aprovar') canApproveOrReprove: boolean;\n\n regexDisallowEmptyString = /^(?!\\s*$).+/;\n\n removeVariation$ = new Subject();\n\n // API CACHED DATA\n departamentos$: Observable;\n categorias$: Observable;\n subniveis$: Observable;\n corGrade$: Observable;\n tamanhoGrade$: Observable;\n canUpdatePDM: boolean = true;\n\n untouchableLinks: string[] = [];\n\n // Dados de integrações\n // dados são gravadas assim que produto é pego pelo id\n sortimentosIntegrationData: {\n [id: string]: {\n codigoSap?: string;\n idVtex?: string;\n sku?: string;\n }\n } = {};\n\n gradeIntegrationData: {\n [id: string]: {\n codigoSap?: string;\n idVtex?: string;\n sku?: string;\n }\n } = {};\n\n constructor(\n fb: FormBuilder,\n private toastService: ToastService,\n private api: ApiDadosEspecificosService,\n private apiDepartamento: ApiDepartamentoService,\n private apiCategoria: ApiCategoriaService,\n private apiSubnivel: ApiSubnivelService,\n private onlineEanValidator: OnlineEanValidator,\n public apiCorGrade: ApiCorGradeService,\n public apiTamanhoGrade: ApiTamanhoGradeService,\n ) {\n super(fb);\n this.initForm();\n\n /**\n * O SHARE REPLAY funciona como um cache, a request é feita apenas uma vez,\n * mesmo que seja criado uma nova subscription para o observable\n */\n this.departamentos$ = this.apiDepartamento.getAll().pipe(map(response => response.data), shareReplay(1));\n this.categorias$ = this.apiCategoria.getAll().pipe(map(response => response.data), shareReplay(1));\n this.subniveis$ = this.apiSubnivel.getAll().pipe(map(response => response.data), shareReplay(1));\n this.corGrade$ = this.apiCorGrade.getAll().pipe(map(response => response.data), shareReplay(1));\n this.tamanhoGrade$ = this.apiTamanhoGrade.getAll().pipe(map(response => response.data), shareReplay(1));\n // this.listenLongDescriptionAndExtendedDescriptionChanges();\n }\n\n setValue(productId: string, status: EnumStatus, value: SpecificDataForm) {\n super.setValue(productId, status, value);\n\n if (value && value.sortimentoList) {\n const sortimentoListControl = this.form.get('sortimentoList') as FormArray;\n value.sortimentoList.forEach((s, i) => {\n const form = this.createSortimentoForm();\n form.patchValue(s);\n sortimentoListControl.insert(i, form);\n });\n }\n\n if (value && value.gradeList) {\n const gradeListControl = this.form.get('gradeList') as FormArray;\n value.gradeList.forEach(((g, i) => {\n const form = this.createGradeForm();\n form.patchValue(g);\n gradeListControl.insert(i, form);\n }));\n }\n }\n\n // Métodos auxiliares do formulário\n\n addVariacao() {\n const grade = this.createGradeForm();\n this.gradeListForm.push(grade);\n }\n\n addSortimento() {\n const sortimento = this.createSortimentoForm();\n this.sortimentoListForm.push(sortimento);\n }\n\n removeVariacao(index: number) {\n this.gradeListForm.removeAt(index);\n this.removeVariation$.next(index+1);\n }\n\n removeSortimento(index: number) {\n this.sortimentoListForm.removeAt(index);\n this.removeVariation$.next(index+1);\n }\n\n enablePdmForLongDescription() {\n const hasValue = this.descricaoLonga.value;\n\n if (!hasValue) {\n this.descricaoLongaPersonalizada.setValue(true);\n }\n }\n\n disablePdmForLongDescription() {\n const hasValue = this.descricaoLonga.value;\n\n if (hasValue) {\n this.descricaoLongaPersonalizada.setValue(false);\n }\n }\n\n enablePdmForExtendedDescription() {\n const hasValue = this.descricaoExtendida.value;\n\n if (!hasValue) {\n this.descricaoExtendidaPersonalizada.setValue(true);\n }\n }\n\n disablePdmForExtendedDescription() {\n const hasValue = this.descricaoExtendida.value;\n\n if (hasValue) {\n this.descricaoExtendidaPersonalizada.setValue(false);\n }\n }\n\n enablePdmForTituloDePublicacao() {\n const hasValue = this.tituloDePublicacao.value;\n\n if (!hasValue) {\n this.tituloDePublicacaoPersonalizada.setValue(true);\n }\n }\n\n disablePdmForTituloDePublicacao() {\n const hasValue = this.tituloDePublicacao.value;\n\n if (hasValue) {\n this.tituloDePublicacaoPersonalizada.setValue(false);\n }\n }\n\n enablePdmForDescricaoEcommerce() {\n const hasValue = this.dadosDoEcommerce.get('nomeDoProduto').value;\n\n if (!hasValue) {\n this.descricaoEcommercePersonalizada.setValue(true);\n }\n }\n\n disablePdmForDescricaoEcommerce() {\n const hasValue = this.dadosDoEcommerce.get('nomeDoProduto').value;\n console.log(hasValue)\n if (hasValue) {\n this.descricaoEcommercePersonalizada.setValue(false);\n }\n }\n\n setUntouchableLinks(dadosEspecificos: any){\n \n if(dadosEspecificos == null)\n return;\n\n \n let untouchableLinks = [];\n\n if(dadosEspecificos.dadosDoEcommerce != null \n && dadosEspecificos.dadosDoEcommerce.link != null \n && dadosEspecificos.dadosDoEcommerce.link != \"\"){\n untouchableLinks.push(dadosEspecificos.dadosDoEcommerce.link);\n }\n\n if(dadosEspecificos.sortimentoList != null && dadosEspecificos.sortimentoList.length > 0){\n\n dadosEspecificos.sortimentoList.forEach(sortimento => {\n\n if(sortimento.dadosDoEcommerce != null\n && sortimento.dadosDoEcommerce.link != null \n && sortimento.dadosDoEcommerce.link != \"\"){\n untouchableLinks.push(sortimento.dadosDoEcommerce.link);\n }\n\n })\n\n }\n\n this.untouchableLinks = [...untouchableLinks];\n }\n\n // Criação do Formulário\n\n createForm() {\n\n return this.fb.group({\n departamentoId: [undefined, Validators.required],\n categoriaId: [undefined, Validators.required],\n subnivelId: [undefined, Validators.required],\n\n objetoTemplateSubnivel: [undefined, Validators.required],\n\n descricaoLonga: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n descricaoExtendida: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n tituloDePublicacao: [undefined, [Validators.maxLength(60)]],\n // descricaoCurta: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n // descricaoAbreviada: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n descricaoLongaPersonalizada: [true],\n descricaoExtendidaPersonalizada: [true],\n tituloDePublicacaoPersonalizada: [true],\n descricaoEcommercePersonalizada: [true],\n\n dadosDoEcommerce: this.createDadosDoEcommerce(),\n\n variacoes: [EnumVariacoesDadosEspecificos.Nenhum, Validators.required],\n sortimentoList: this.createSortimentoListForm(),\n gradeList: this.createGradeListForm(),\n });\n }\n\n private createSortimentoListForm() {\n return this.fb.array([]);\n }\n\n private createGradeListForm() {\n return this.fb.array([]);\n }\n\n createSortimentoForm() {\n return this.fb.group({\n sortimentoId: [undefined],\n itemSortido: [undefined, Validators.required],\n cor: [undefined, Validators.required],\n descricaoLongaSortimento: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n descricaoEstendidaSortimento: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n tituloDePublicacaoSortimento: [undefined, [Validators.maxLength(60)]],\n descricaoLongaSortimentoPersonalizada: [true],\n descricaoEstendidaSortimentoPersonalizada: [true],\n tituloDePublicacaoSortimentoPersonalizada: [true],\n descricaoEcommerceSortimentoPersonalizada: [true],\n referencia: [undefined, Validators.required],\n dadosDoEcommerce: this.createDadosDoEcommerce(),\n });\n }\n\n createGradeForm() {\n return this.fb.group({\n gradeId: [undefined],\n ean: [undefined, validateEanDun()],\n tamanho: [undefined, Validators.required],\n cor: [undefined, Validators.required],\n nomeDoProduto: [undefined, Validators.required],\n descricaoLongaGrade: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n descricaoEstendidaGrade: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n tituloDePublicacaoGrade: [undefined, [Validators.maxLength(60)]],\n descricaoLongaGradePersonalizada: [true],\n descricaoEstendidaGradePersonalizada: [true],\n tituloDePublicacaoGradePersonalizada: [true],\n descricaoEcommerceGradePersonalizada: [true],\n referencia: [undefined, Validators.required],\n dadosDoEcommerce: this.createDadosDoEcommerce(),\n });\n }\n\n private createDadosDoEcommerce() {\n return this.fb.group({\n nomeDoProduto: [undefined, [Validators.maxLength(100), Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n descricaoNarrativa: [undefined, [Validators.required, Validators.pattern(this.regexDisallowEmptyString)]],\n link: [undefined]\n });\n }\n\n // manipulação formulário\n\n enableDadosDoEcommerceGrade(){\n this.dadosDoEcommerce.get('descricaoNarrativa').reset();\n this.dadosDoEcommerce.get('descricaoNarrativa').disable();\n this.dadosDoEcommerce.get('link').reset(null);\n this.dadosDoEcommerce.get('nomeDoProduto').setValidators([Validators.required, Validators.maxLength(100)]);\n this.dadosDoEcommerce.get('nomeDoProduto').updateValueAndValidity();\n }\n\n enableDadosDoEcommerce(){\n this.dadosDoEcommerce.enable();\n this.dadosDoEcommerce.get('nomeDoProduto').setValidators(Validators.maxLength(100));\n this.dadosDoEcommerce.get('nomeDoProduto').updateValueAndValidity();\n }\n\n // helpers de acesso aos dados do form\n\n get sortimentoListForm() {\n return this.form && this.form.get('sortimentoList') as FormArray;\n }\n\n get gradeListForm() {\n return this.form && this.form.get('gradeList') as FormArray;\n }\n\n get dadosDoEcommerce() {\n return this.form && this.form.get('dadosDoEcommerce') as FormGroup;\n }\n\n get variacoes() {\n return this.form && this.form.get('variacoes');\n }\n\n get descricaoLonga() {\n return this.form && this.form.get('descricaoLonga');\n }\n\n get descricaoExtendida() {\n return this.form && this.form.get('descricaoExtendida');\n }\n\n get tituloDePublicacao() {\n return this.form && this.form.get('tituloDePublicacao');\n }\n\n get descricaoLongaPersonalizada() {\n return this.form && this.form.get('descricaoLongaPersonalizada');\n }\n\n get descricaoExtendidaPersonalizada() {\n return this.form && this.form.get('descricaoExtendidaPersonalizada');\n }\n\n get tituloDePublicacaoPersonalizada() {\n return this.form && this.form.get('tituloDePublicacaoPersonalizada');\n }\n\n get descricaoEcommercePersonalizada() {\n return this.form && this.form.get('descricaoEcommercePersonalizada');\n }\n\n // Can do something\n\n get canUsePdmForDescricaoLonga() {\n return this.descricaoLongaPersonalizada.value;\n }\n\n get canUsePdmForDescricaoExtendida() {\n return this.descricaoExtendidaPersonalizada.value;\n }\n\n get canUsePdmForTituloDePublicacao() {\n return this.tituloDePublicacaoPersonalizada.value;\n }\n\n get canUsePdmForDescricaoEcommerce() {\n return this.descricaoEcommercePersonalizada.value;\n }\n\n linkConvertionFn(description: string) {\n return description\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .replace(/-/g, '')\n .replace(/\\s\\s+/g, ' ')\n .trim()\n .replace(/\\s/g, '-')\n .replace(/[^a-zA-Z0-9-]/g, \"\")\n .toLowerCase();\n }\n\n}\n","import { Injectable, ViewChild } from \"@angular/core\";\nimport {\n FormArray, FormBuilder, FormControl, FormGroup, Validators\n} from \"@angular/forms\";\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subject } from \"rxjs\";\nimport {\n distinctUntilChanged, map,\n shareReplay, startWith,\n switchMap, take, tap\n} from \"rxjs/operators\";\nimport { Estado } from \"src/app/models/api/autenticacao/estado\";\nimport { EnumStatus } from \"src/app/models/api/dados-basicos/enum-status.enum\";\nimport { CidadeFilial } from \"src/app/models/api/dados-fiscais/cidadeFilial\";\nimport { EstadoOrdenado } from \"src/app/models/api/dados-fiscais/estado\";\nimport { Grupo } from \"src/app/models/api/dados-fiscais/grupo\";\nimport { ApiEstadoService } from \"src/app/services/api/autenticacao/api-estado.service\";\nimport { ApiOrigemCstService } from \"src/app/services/api/dados-basicos/api-origem-cst.service\";\nimport { ApiDadosFiscaisService } from \"src/app/services/api/dados-fiscais/api-dados-fiscais.service\";\nimport { ApiGrupoService } from \"src/app/services/api/dados-fiscais/api-grupo.service\";\nimport { ApiNCMDescricaoService } from \"src/app/services/api/dados-fiscais/api-ncm-descricao.service\";\nimport { ApiTipoExcecaoService } from \"src/app/services/api/dados-fiscais/api-tipo-excecao.service\";\nimport { ApiTributacaoCSTService } from \"src/app/services/api/dados-fiscais/api-tributacao-cst.service\";\nimport { IsAllowed } from \"src/app/shared/decorators/is-allowed.decorator\";\nimport { removeValidators } from \"src/app/shared/utils/remove-validators-form\";\nimport { ToastType } from \"src/app/ui/toast/toast.model\";\nimport { ToastService } from \"src/app/ui/toast/toast.service\";\nimport { TaxDataForm } from \"../models/tax-data-form\";\nimport { CanSubmitForReview } from \"./interfaces\";\nimport { ProductBaseEntity } from \"./product-base-entity.class\";\n\n@Injectable()\nexport class ProductTaxDataService\n extends ProductBaseEntity\n implements CanSubmitForReview\n{\n\n @ViewChild('selectState', {static: true}) selectState: any\n @IsAllowed(\"rhcdm.dadosfiscais.editarFinalizado\") canSaveFinished: boolean;\n @IsAllowed(\"rhcdm.dadosfiscais.editarRevisao\") canSaveReview: boolean;\n @IsAllowed(\"rhcdm.dadosfiscais.editarReprovado\") canSaveRepproved: boolean;\n @IsAllowed(\"rhcdm.dadosfiscais.aprovar\") canApproveOrReprove: boolean;\n\n @IsAllowed(\"rhcdm.dadosfiscais.ManipularImpostoEntrada\")\n podeManipularImpostoEntrada: boolean;\n @IsAllowed(\"rhcdm.dadosfiscais.ManipularExcecao\")\n podeManipularExcecao: boolean;\n\n filialChange$ = new Subject<{ uf: string; index: number }[]>();\n\n protected tributacaoCST:any;\n\n tributacaoCSTIImposto$ = this.apiTributacaoCst.getAllImposto().pipe(shareReplay(1));\n\n nfgnre$ = of([{\"value\": 1, \"description\": \"Destaque NF\"}, {\"value\": 2, \"description\": \"GNRE\"}])\n\n states$ = this.apiEstadoService.getOnlyStates().pipe(shareReplay(1));\n\n tipoExcecoes$ = this.apiTipoExcecao.getAll().pipe(shareReplay(1));\n\n origemCst$ = this.apiOrigemCST.getAll().pipe(shareReplay(1));\n\n isSelectedCstForeigner$ = new BehaviorSubject(false);\n\n private fornecedorId$ = new ReplaySubject();\n\n\n simplesNacional$ = new BehaviorSubject(null);\n\n // estadosArray;\n\n isFiscalIntegrado$ = new BehaviorSubject(false);\n\n protected estados:Estado[];\n private tributacaoCSTIImposto: any;\n protected tributacaoCSTIpi: any;\n protected tributacaoCSTPisCofins: any;\n\n filiais$ = this.fornecedorId$.pipe(take(1)).pipe(\n switchMap((id) => {\n if (id && id != undefined) {\n return this.apiEstadoService.getBranchesBySupplier(id)\n } else {\n this.toastService.toast('Id do fornecedor inválido!', ToastType.error);\n return [];\n }\n }),\n tap((filiais) => {\n return this.simplesNacional$.next(\n filiais && filiais[0] && filiais[0].simplesNacional\n );\n }),\n shareReplay(1)\n );\n\n filiaisFiltered$: Observable;\n\n private states: EstadoOrdenado[];\n constructor(\n fb: FormBuilder,\n private toastService: ToastService,\n private api: ApiDadosFiscaisService,\n private apiNCMDescricao: ApiNCMDescricaoService,\n private apiEstadoService: ApiEstadoService,\n private apiTributacaoCst: ApiTributacaoCSTService,\n private apiTipoExcecao: ApiTipoExcecaoService,\n private apiGrupo: ApiGrupoService,\n private apiOrigemCST: ApiOrigemCstService\n ) {\n super(fb);\n this.initForm();\n this.listenEstados();\n this.listenTributacaoCSTImposto();\n this.listenTributacaoCst()\n }\n\n initForm() {\n super.initForm();\n }\n\n setStates(states: EstadoOrdenado[]) {\n this.states = states;\n }\n\n setFornecedorId(fornecedorId: string) {\n this.fornecedorId$.next(fornecedorId);\n }\n\n setValue(productId: string, status: EnumStatus, value: TaxDataForm) {\n if (!value.filialList || value.filialList.length === 0)\n value.filialList = [];\n\n super.setValue(productId, status, value);\n this.updateSelectedCst((value as any).origemCSTId);\n // this.filiaisForm.clear();\n\n // caso tenha alguma filial cria formArrays\n // caso não tenha, cria a primeira 'filial' automaticamente\n if (value && value.filialList) {\n value.filialList.forEach((filial, index) => {\n const form = this.createFilialForm();\n\n this.listenFilialChange(form.get(\"filialId\") as FormControl, index);\n\n\n\n // criar forms de dados tributarios\n if (filial && filial.dadosTributariosList) {\n const dtFormArray = form.get(\"dadosTributariosList\") as FormArray;\n filial.dadosTributariosList.forEach((dt, dtIndex) => {\n filial.dadosTributariosListSap.map(dtListSap => {\n if (dt.uf == dtListSap.uf) {\n dt.infoSap = dtListSap;\n dt.dirFiscal = dt.dirFiscal ? dt.dirFiscal : dtListSap.dirFiscal;\n dt.mva = dt.mva ? dt.mva : dtListSap.mva;\n dt.codimp = dt.codimp ? dt.codimp : dtListSap.codimp;\n dt.cstEntrada = dtListSap.tributacaoCstId;\n dt.bsOutras = dtListSap.bsOutras;\n }\n });\n\n const dtForm = this.createDadosTributariosItemForm();\n\n dtForm.patchValue(dt);\n dtFormArray.insert(dtIndex, dtForm);\n });\n }\n\n // criar forms de exceção\n // if (filial && filial.excecaoList) {\n // const excecaoFormArray = form.get('excecaoList') as FormArray;\n // filial.excecaoList.forEach((excecao, excecaoIndex) => {\n // const excecaoForm = this.createExcecaoForm();\n\n // excecaoForm.patchValue(excecao);\n // excecaoFormArray.insert(excecaoIndex, excecaoForm);\n // });\n // }\n form.patchValue(filial);\n this.filiaisForm.insert(index, form);\n });\n }\n\n if (this.isFiscalIntegrado$.getValue()){\n removeValidators(this.form)\n }\n }\n\n save() {\n if (this.canSave) {\n this.api.saveDraft(this.getRequestData()).subscribe(() => {\n this.toastService.toast('Salvo com sucesso!');\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.form.markAllAsTouched();\n });\n } else {\n throw new Error('Não é possivel salvar');\n }\n }\n\n submitForReview() {\n if (this.canSubmitForReview) {\n this.api.insertOrUpdate(this.getRequestData()).subscribe(({ status }) => {\n this.updateStatus(status);\n });\n } else {\n throw new Error('Não é possivel submeter para revisão');\n }\n }\n\n private getRequestData() {\n return {\n ...(this.form.getRawValue() as TaxDataForm),\n ...{\n id: this.productId,\n status: this.status,\n },\n };\n }\n\n // #region Métodos auxiliares do formulário\n\n applyNcm() {\n const ncmControl = this.form.get(\"ncm\");\n const ncm = this.form.get(\"ncm\").value;\n if (ncmControl.invalid) {\n this.toastService.toast(\"NCM invalido!\", ToastType.error);\n return;\n }\n\n this.apiNCMDescricao.search(ncm).subscribe((result) => {\n if (result.length > 0) {\n const firstItem = result[0];\n\n const descricaoNcmControl = this.form.get(\"descricaoNcm\");\n const segmentoNcmControl = this.form.get(\"segmentoNcm\");\n\n ncmControl.patchValue(firstItem.ncm);\n descricaoNcmControl.patchValue(firstItem.descricao);\n segmentoNcmControl.patchValue(firstItem.segmento);\n } else {\n this.toastService.toast(\"NCM não encontrado!\", ToastType.error);\n }\n });\n }\n\n addFilial() {\n const newItem = this.createFilialForm();\n\n this.listenFilialChange(\n newItem.get(\"filialId\") as FormControl,\n this.filiaisForm.length\n );\n\n this.filiaisForm.push(newItem);\n this.filterFilial(this.filiaisForm.controls.length);\n }\n\n updateSelectedCst(selectedId: string){\n this.origemCst$.pipe(take(1)).subscribe((origemCst) => {\n const isForeign = !!origemCst.find(x => x.id === selectedId && x.descricao.includes('Estrangeiro'));\n this.isSelectedCstForeigner$.next(isForeign);\n });\n }\n\n removeFilial(index: number) {\n this.filiaisForm.removeAt(index);\n this.filterFilial(index - 1);\n\n this.filialChange$.next(this.filiaisForm.controls.map((control, index) => {\n return {uf: control.get('uf').value, index};\n }));\n }\n\n filterFilial(position: number = 0) {\n const filiaisForm = this.filiaisForm.value;\n this.filiaisFiltered$ = this.filiais$.pipe(take(1)).pipe(map(filial => filial.filter(data => data.filialId)));\n\n filiaisForm.map((filialForm, index:number) => {\n if (index != position) {\n this.filiaisFiltered$ = this.filiaisFiltered$.pipe(take(1)).pipe(\n map((filiais) => filiais.filter((f) => f.filialId != filialForm.filialId))\n );\n }\n });\n }\n\n valueStateForIdx(filialIdx:number, dadosTributariosIndex:number):string{\n return (((this.filiaisForm.get([ filialIdx, \"dadosTributariosList\" ]) as FormArray).controls[dadosTributariosIndex] as FormGroup).controls['uf'].value);\n }\n\n getStatesNotSelected(arrayStates:Estado[], dadosTributarios:FormGroup[]): Observable{\n return of(arrayStates.filter(item => !(dadosTributarios.find(dada => dada.controls['uf'].value == item.uf)) ))\n }\n\n stateIsSelected(state:string, dadosTributarios:FormGroup[]):boolean{\n if(dadosTributarios.find(dada => dada.controls['uf'].value == state)){\n return false\n }\n return true\n }\n\n getValueItem(uf:string):Estado{\n return this.estados.find(e => e.uf == uf);\n }\n\n updateRegiao(dadosTributarioItem:FormGroup, dadosTributario:FormGroup[],filialIdx?:number,dadosTributariosIndex?:number){\n if(dadosTributario.filter(item => item.controls['uf'].value == dadosTributarioItem.controls['uf'].value).length == 2){\n this.toastService.toast(`${dadosTributarioItem.controls['uf'].value} já foi selecionado para os Dados Tributários!`);\n (((this.filiaisForm.get([ filialIdx, \"dadosTributariosList\" ]) as FormArray).controls[dadosTributariosIndex] as FormGroup).controls['uf'].patchValue(''));\n }else{\n let estado = this.estados.find(x => x.uf == dadosTributarioItem.controls['uf'].value);\n dadosTributarioItem.controls.regiao.patchValue(estado.regiao);\n }\n }\n\n addTableUf(filialIndex: number) {\n const newItem = this.createDadosTributariosItemForm();\n\n const dadosTributariosForm = this.getTributacaoForm(filialIndex);\n dadosTributariosForm.push(newItem)\n }\n\n removeTableUf(filialIndex: number, index: number) {\n const dadosTributariosForm = this.getTributacaoForm(filialIndex);\n dadosTributariosForm.removeAt(index);\n }\n\n addExcecao(filialIndex: number) {\n const excecaoFormArray = this.getExcecaoForm(filialIndex);\n const newItem = this.createExcecaoForm();\n excecaoFormArray.push(newItem);\n }\n\n removeExcecao(filialIndex: number, index: number) {\n const excecaoForm = this.getExcecaoForm(filialIndex);\n excecaoForm.removeAt(index);\n }\n\n // #endregion Métodos auxiliares do formulário\n\n // #region Funções de criação do form\n\n createForm() {\n return this.fb.group({\n origemCSTId: [undefined, Validators.required],\n ncm: [undefined, Validators.required],\n descricaoNcm: [undefined, Validators.required],\n segmentoNcm: [undefined, Validators.required],\n\n filialList: this.createFiliaisFormArray(),\n });\n }\n\n createFiliaisFormArray() {\n return this.fb.array([]);\n }\n\n createFilialForm() {\n const form = this.fb.group({\n filialId: [undefined, Validators.required],\n uf: [undefined, Validators.required],\n\n impostoFederalSaida: this.fb.group({\n ipi: this.fb.group({\n value: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n base: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n cstId: [undefined, Validators.required],\n }),\n pis: this.fb.group({\n value: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n base: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n cstId: [undefined, Validators.required],\n }),\n cofins: this.fb.group({\n value: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n base: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n cstId: [undefined, Validators.required],\n }),\n }),\n\n impostoFederalEntrada: this.fb.group({\n ipi: this.fb.group({\n value: [undefined],\n base: [undefined],\n cstId: [undefined],\n\n outras: [false],\n documentoFiscalId: [undefined],\n }),\n pis: this.fb.group({\n value: [undefined],\n base: [undefined],\n cstId: [undefined],\n }),\n cofins: this.fb.group({\n value: [undefined],\n base: [undefined],\n cstId: [undefined],\n }),\n }),\n\n temST: [false],\n cest: [undefined],\n\n dadosTributariosList: this.fb.array([]),\n // excecaoList: this.createExcecaoFormArray(),\n });\n\n const temST = form.get('temST');\n const cest = form.get('cest');\n\n temST.valueChanges.subscribe(value => {\n if(value)\n cest.setValidators([Validators.required]);\n else\n cest.clearValidators();\n\n cest.updateValueAndValidity({emitEvent: false});\n });\n\n return form;\n }\n\n\n // createDadosTributariosItemFormArray() {\n // return this.fb.array([]);\n // }\n\n createDadosTributariosItemForm() {\n return this.fb.group({\n regiao: [undefined, Validators.required],\n uf: [undefined, Validators.required],\n icms: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n baseCalculo: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n tributacaoCstId: [undefined, Validators.required],\n cstEntrada: [undefined],\n bsOutras: [undefined],\n dirFiscal: [undefined],\n icmsFCP: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n baseFCP: [undefined, [Validators.required, Validators.min(0), Validators.max(100)]],\n aliquotaSt: [undefined, [Validators.min(0), Validators.max(100)]],\n aliquotaStFCP: [undefined, [Validators.min(0), Validators.max(100)]],\n mva: [undefined, [Validators.min(0), Validators.max(200)]],\n tipoSt: [undefined],\n infoSap: this.fb.group({\n regiao: [undefined],\n uf: [undefined],\n icms: [undefined],\n tributacaoCstId: [undefined],\n cstEntrada: [undefined],\n bsOutras: [undefined],\n dirFiscal: [undefined],\n icmsFCP: [undefined],\n codimp: [undefined],\n baseCalculo: [undefined],\n mva: [undefined],\n tipoSt: [undefined],\n baseFCP: [undefined],\n aliquotaSt: [undefined],\n aliquotaStFCP: [undefined],\n })\n });\n }\n\n // createExcecaoFormArray() {\n // return this.fb.array([]);\n // }\n\n createExcecaoForm() {\n return this.fb.group({\n tipoId: [undefined, Validators.required],\n grupoId: [undefined, Validators.required],\n\n campo1: [undefined, Validators.required],\n campo2: [undefined, Validators.required],\n campo3: [undefined, Validators.required],\n });\n }\n\n // #endregion Funções de criação do form\n\n // #region helpers de acesso aos dados do form\n get filiaisForm() {\n return this.form.get(\"filialList\") as FormArray;\n }\n\n private getFilial(id: string) {\n return this.filiais$.pipe(take(1)).pipe(\n map((filiais) => filiais.filter(filial => filial.filialId).find((f) => f.filialId == id))\n );\n }\n\n getBranchName(index: number, type: number) {\n const filialControl = this.filiaisForm.get([index]);\n const filialIdControl = filialControl.get(\"filialId\");\n\n if (filialControl && type === 0) {\n return filialIdControl.valueChanges.pipe(take(1)).pipe(\n startWith(filialIdControl.value),\n switchMap((filialId) => this.getFilial(filialId)),\n map((filial) => (filial ? filial.estadoUF : \"\"))\n );\n } else if (filialControl && type === 1) {\n return filialIdControl.valueChanges.pipe(take(1)).pipe(\n startWith(filialIdControl.value),\n switchMap((filialId) => this.getFilial(filialId)),\n map((filial) => (filial ? `${filial.cidadeDescricao}, ${filial.estadoUF}` : \"\"))\n );\n } {\n return of(\"\");\n }\n }\n\n listenFilialChange(control: FormControl, index: number) {\n control.valueChanges\n .pipe(\n distinctUntilChanged(),\n switchMap((filialId) => {\n return this.getFilial(filialId);\n })\n )\n .subscribe((filial) => {\n if (!filial) {\n return\n }\n\n this.filiaisForm.controls.map((x, i) => {\n if (x.get('filialId').value == filial.filialId){\n index = i;\n }\n });\n\n this.filiaisForm\n .get([index])\n .patchValue({\n cidadeId: filial.cidadeId,\n uf: filial.estadoUF,\n // fornecedorId: filial.fornecedorId\n });\n\n this.filialChange$.next(this.filiaisForm.controls.map((control, index) => {\n return {uf: control.get('uf').value, index};\n }));\n });\n }\n\n listenEstados(){\n this.apiEstadoService.getOnlyStates().pipe(take(1)).subscribe(estados => this.estados = estados)\n }\n\n listenTributacaoCst():void{\n this.apiTributacaoCst.getAll().pipe(take(1)).subscribe(r => this.tributacaoCST = r);\n }\n\n listenTributacaoCSTImposto() {\n\n this.tributacaoCSTIImposto$.pipe(take(1)).subscribe(impostos => {\n this.tributacaoCSTIImposto = impostos\n this.tributacaoCSTIpi = this.tributacaoCSTIImposto.filter(imposto => imposto.tipoImposto == 0);\n this.tributacaoCSTPisCofins = this.tributacaoCSTIImposto.filter(imposto => imposto.tipoImposto == 1);\n });\n }\n getTributacaoForm(filialIndex: number) {\n return this.filiaisForm.controls[filialIndex].get('dadosTributariosList') as FormArray;\n }\n\n getExcecaoForm(filialIndex: number) {\n return this.filiaisForm.controls[filialIndex].get('excecaoList') as FormArray;\n }\n\n getDadosTributariosForm(filialIndex: number) {\n return this.filiaisForm.controls[filialIndex].get('dadosTributariosList') as FormArray;\n }\n\n getGroups(tipoId?: string) {\n return tipoId\n ? this.apiGrupo.getGrupoByExcecaoWithCache(tipoId)\n : of([]);\n }\n\n // #endregion\n\n // #endregion\n}\n","import { Injectable } from '@angular/core';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\n\n@Injectable()\nexport class ProductWorkflowService {\n\n productId: string;\n data: WorkflowProduto;\n\n constructor(\n ) {\n }\n\n setValue(productId: string, value: WorkflowProduto) {\n this.productId = productId;\n this.data = value;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ProductSpecificDataService } from './product-specific-data.service';\nimport { ProductBasicDataService } from './product-basic-data.service';\nimport { EnumStatus } from 'src/app/models/api/dados-basicos/enum-status.enum';\nimport { BasicDataForm } from '../models/basic-data-form';\nimport { DadosBasicos } from 'src/app/models/api/dados-basicos/dados-basicos';\nimport { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\nimport { DadosEspecificos } from 'src/app/models/api/dados-especificos/dados-especificos';\nimport { SpecificDataForm } from '../models/specific-data-form';\nimport { ApiDadosEspecificosService } from 'src/app/services/api/dados-especificos/api-dados-especificos.service';\nimport {\n BasicDataFormToReq,\n BasicDataFormFromReq,\n SpecificDataFromReq,\n MediaToReq,\n MediaFromReq,\n CommerceDataToReq,\n CommerceDataFromReq,\n TaxDataFromReq,\n TaxDataToReq,\n CostAndPriceToReq,\n CostAndPriceFromReq\n} from './convertions';\nimport { Product, ProductHeader } from '../models/product';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { ProductMediaService } from './product-media.service';\nimport { ApiMidiaService } from 'src/app/services/api/midia/api-midia.service';\nimport { Midia } from 'src/app/models/api/dados-midia/midia.interface';\nimport { ProductCommercialDataService } from './product-commercial-data.service';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { ApiHistoricoService } from 'src/app/services/api/historico/api-historico.service';\nimport { ApiDadosComerciaisService } from 'src/app/services/api/comercial/api-dados-comerciais.service';\nimport { DadosComerciais } from 'src/app/models/api/comercial/dados-comerciais';\nimport { ProductHistoricService } from './product-historic.service';\nimport { zip, of } from 'rxjs';\nimport { delay, map, tap } from 'rxjs/operators';\nimport { ApiIntegracaoService } from 'src/app/services/api/workflow/api-integracao.service';\nimport { ProductWorkflowService } from './product-workflow.service';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { LogsModalService } from './logs-modal.service';\nimport { EstadoOrdenado } from 'src/app/models/api/dados-fiscais/estado';\nimport { ProductTaxDataService } from './product-tax-data.service';\nimport { DadosFiscais } from 'src/app/models/api/dados-fiscais/dados-fiscais';\nimport { TaxDataForm } from '../models/tax-data-form';\nimport { ApiDadosFiscaisService } from 'src/app/services/api/dados-fiscais/api-dados-fiscais.service';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { ProductCostAndPriceService } from './product-cost-and-price.service';\nimport { ApiCustoPrecoService } from 'src/app/services/api/custo-preco/api-custo-preco.service';\nimport { CustoPreco } from 'src/app/models/api/custo-preco/custo-preco.interface';\nimport { CostAndPriceForm } from '../models/cost-and-price-form';\nimport { CommerceDataForm } from '../models/commerce-data-form';\n\n@Injectable()\nexport class ProductService {\n\n /** Armazena id corrente do produto\n * Sempre que esta tela for aberte existira um id de produto, tanto na criação quanto edição\n */\n productId: string;\n /** Dados fixos do Header que vem do backend */\n header: ProductHeader;\n status: EnumStatus;\n rodouCodimp: boolean;\n\n @IsAllowed('rhcdm.produto.enviarParaRevisao') canSubmitForReviewPermission: boolean;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private basicDataService: ProductBasicDataService,\n private specificDataService: ProductSpecificDataService,\n private mediaService: ProductMediaService,\n private taxDataService: ProductTaxDataService,\n private costAndPriceService: ProductCostAndPriceService,\n private commercialDataService: ProductCommercialDataService,\n private historicService: ProductHistoricService,\n private workflowService: ProductWorkflowService,\n private apiDadosBasicos: ApiDadosBasicosService,\n private apiDadosEspecificos: ApiDadosEspecificosService,\n private apiMidia: ApiMidiaService,\n private apiDadosFiscaisService: ApiDadosFiscaisService,\n private apiCustoPrecoService: ApiCustoPrecoService,\n private apiHistorico: ApiHistoricoService,\n private apiDadosComerciais: ApiDadosComerciaisService,\n public apiIntegracaoService: ApiIntegracaoService,\n private router: Router,\n public toastService: ToastService,\n private logModal: LogsModalService,\n private confirmDialogService: ConfirmDialogService,\n ) {\n this.init();\n }\n\n init() {\n // esculta por dados da rota, e pega o produto que foi preparado pelo Resolver\n this.activatedRoute.data.subscribe(({ product, states }: { product: Product, states: EstadoOrdenado[] }) => {\n this.setProductData(product, states);\n });\n }\n\n /** inicializa tela com o produto passado como argumento */\n private setProductData(product: Product, states: EstadoOrdenado[]) {\n this.productId = product.id;\n this.header = product.header;\n this.status = product.status || EnumStatus.Draft;\n\n\n // Inicializa dados basicos\n if (product.dadosBasicos) {\n this.basicDataService.setValue(\n product.id,\n product.dadosBasicos.status || EnumStatus.Draft,\n BasicDataFormFromReq(product.dadosBasicos),\n product.header.marcasId\n );\n\n this.basicDataService.ncm = product.dadosBasicos.ncm;\n this.basicDataService.origemCSTId = product.dadosBasicos.origemCSTId;\n this.basicDataService.ipi = product.dadosBasicos.ipi;\n\n console.log(product);\n } else {\n this.basicDataService.productId = product.id;\n this.basicDataService.updateStatus(EnumStatus.Draft);\n this.basicDataService.marcasId = product.header.marcasId;\n }\n\n // Inicializa dados especificos\n if (product.dadosEspecificos) {\n this.specificDataService.sortimentosIntegrationData = product.sortimento;\n this.specificDataService.gradeIntegrationData = product.grade;\n\n if (product.header.idVtex) {\n this.specificDataService.setUntouchableLinks(product.dadosEspecificos);\n }\n\n this.specificDataService.setValue(\n product.id,\n product.dadosEspecificos.status || EnumStatus.Draft,\n SpecificDataFromReq(product.dadosEspecificos)\n );\n\n if (product.dadosEspecificos.sortimentoList || product.dadosEspecificos.gradeList) {\n this.specificDataService.canUpdatePDM = false;\n }\n } else {\n this.specificDataService.productId = product.id;\n this.specificDataService.updateStatus(EnumStatus.Draft);\n }\n\n // Inicializa midia\n if (product.midia) {\n this.mediaService.setValue(\n product.id,\n product.midia.status || EnumStatus.Draft,\n MediaFromReq(product.midia)\n );\n } else {\n this.mediaService.productId = product.id;\n this.mediaService.updateStatus(EnumStatus.Draft);\n }\n\n // Inicializa dados fiscais\n this.taxDataService.setFornecedorId(product.header.fornecedorId);\n this.taxDataService.setStates(states);\n if (product.dadosFiscais && product.dadosFiscais.filialList) {\n this.rodouCodimp = product.dadosFiscais.filialList[0].dadosTributariosListSap?.length > 0 && product.dadosFiscais.filialList[0].dadosTributariosListSap?.some(e => e.codimp !== null)\n this.taxDataService.isFiscalIntegrado$.next(product.dadosFiscais.fiscalIntegrado);\n this.taxDataService.setValue(\n product.id,\n product.dadosFiscais.status || EnumStatus.Draft,\n TaxDataFromReq(product.dadosFiscais)\n );\n } else {\n this.taxDataService.productId = product.id;\n this.taxDataService.addFilial();\n this.taxDataService.filiais$.subscribe(filial => {\n this.taxDataService.filiaisForm.get('0').get('filialId').setValue(filial[0].filialId);\n });\n\n this.taxDataService.updateStatus(EnumStatus.Draft);\n }\n\n // Inicializa dados custo e preço\n this.costAndPriceService.fornecedorId = this.header.fornecedorId;\n if (product.custoPreco) {\n this.costAndPriceService.isCustoPrecoIntegrado$.next(product.custoPreco.custoPrecoIntegrado);\n this.costAndPriceService.setValue(\n product.id,\n product.custoPreco.status || EnumStatus.Draft,\n CostAndPriceFromReq(product.custoPreco));\n } else {\n this.costAndPriceService.productId = product.id;\n this.costAndPriceService.updateStatus(EnumStatus.Draft);\n }\n\n // Inicializa dados comerciais\n if (product.dadosComerciais) {\n this.commercialDataService.setValue(\n this.productId,\n product.dadosComerciais.status,\n CommerceDataFromReq(product.dadosComerciais) as DadosComerciais\n );\n\n this.commercialDataService.precoSugerido = product.dadosComerciais.precoSugerido;\n } else {\n this.commercialDataService.productId = product.id;\n this.commercialDataService.updateStatus(EnumStatus.Draft);\n }\n\n // Inicializa histórico\n if (product.historico) {\n this.historicService.setValue(\n this.productId,\n product.historico\n );\n }\n\n // Inicializa workflow\n if (product.workflow) {\n this.workflowService.setValue(\n this.productId,\n product.workflow\n );\n }\n }\n\n /** Submete o produto para revisão */\n async submitForReview() {\n console.log(this.canSubmitForReview, this.isAllTabsValid, this.canSubmitSomeTabForReview);\n console.log(this.basicDataService.isValid, this.specificDataService.isValid, this.mediaService.isValid,\n this.taxDataService.isValid, this.costAndPriceService.isValid);\n\n let confirmSubmitForm = await this.confirmDialogService.confirm('Tem certeza que deseja enviar o cadastro?').then(\n data => data\n );\n\n if (!confirmSubmitForm)\n return;\n\n // Verifica se pode ir para revisão\n if (this.canSubmitForReview) {\n // Validate all tabs\n await this.validateAllTabs();\n\n // Extract all tabs data\n const dadosBasicos = this.extractDadosBasicos();\n const dadosEspecificos = this.extractDadosEspecificos();\n const midia = this.extractMidia();\n const dadosFiscais = this.extractDadosFiscais();\n const custoPreco = this.extractCustoPreco();\n\n const submitBasicDataForReview = this.basicDataService.canSubmitForReview && this.basicDataService.canSubmitBasicDataForReview(dadosBasicos) ? this.submitBasicDataForReview(dadosBasicos) : of(null);\n console.log(\"basic data \" + new Date().getTime())\n\n const submitSpecificDataForReview = this.specificDataService.canSubmitForReview && this.specificDataService.canSubmitSpecificDataForReview(dadosEspecificos) ? this.submitSpecificDataForReview(dadosEspecificos) : of(null);\n console.log(\"specific data \" + new Date().getTime())\n\n const submitMidiaForReview = this.mediaService.canSubmitForReview && this.mediaService.canSubmitMediaDataForReview(midia) ? this.submitMidiaForReview(midia) : of(null);\n console.log(\"midia \" + new Date().getTime())\n\n const submitTaxDataForReview = this.taxDataService.canSubmitForReview && this.taxDataService.canSubmitTaxDataForReview(dadosFiscais) ? this.submitTaxDataForReview(dadosFiscais) : of(null);\n console.log(\"tax data \" + new Date().getTime())\n\n const submitCostAndPriceForReview = this.costAndPriceService.canSubmitForReview && this.costAndPriceService.canSubmitCoastPriceDataForReview(custoPreco) ? this.submitCostAndPriceForReview(custoPreco) : of(null);\n console.log(\"cost price \" + new Date().getTime())\n\n zip(\n submitBasicDataForReview,\n submitSpecificDataForReview,\n submitMidiaForReview,\n submitTaxDataForReview,\n submitCostAndPriceForReview\n ).pipe(\n map(tabs => ({\n dadosBasicos: tabs[0],\n dadosEspecificos: tabs[1],\n midia: tabs[2],\n dadosFiscais: tabs[3],\n custoPreco: tabs[4]\n } as Product))\n ).subscribe(() => {\n // assim que todas as abas são submetidas para revisão redireciona para listagem\n this.router.navigateByUrl('/dashboard');\n\n // to-do pós mvp =>\n // remove redirect e replicar regra do status globar do produto que esta no backend, aqui, afim de atualiza-lo também\n });\n } else {\n this.checkTabErrors();\n }\n }\n\n /** envia aba Dados Basicos para revisão e atualiza status */\n private submitBasicDataForReview(dadosBasicos: DadosBasicos) {\n return this.apiDadosBasicos.insertOrUpdate(dadosBasicos).pipe(tap(res => {\n if (res) {\n this.basicDataService.form.markAsUntouched();\n this.basicDataService.status = res.status;\n }\n }));\n }\n\n /** envia aba Dados Especificos para revisão e atualiza status */\n private submitSpecificDataForReview(dadosEspecificos: DadosEspecificos) {\n return this.apiDadosEspecificos.insertOrUpdate(dadosEspecificos).pipe(delay(1250), tap(res => {\n if (res) {\n this.specificDataService.form.markAsUntouched();\n this.specificDataService.status = res.status;\n }\n }));\n }\n\n /** envia aba Midia para revisão e atualiza status */\n private submitMidiaForReview(midia: Midia) {\n return this.apiMidia.insertOrUpdate(midia).pipe(delay(2500), tap(res => {\n if (res) {\n this.mediaService.form.markAsUntouched();\n this.mediaService.status = res.status;\n }\n }));\n }\n\n private submitTaxDataForReview(dadosFiscais: DadosFiscais) {\n return this.apiDadosFiscaisService.insertOrUpdate(dadosFiscais).pipe(delay(2750), tap(res => {\n if (res) {\n this.taxDataService.form.markAsUntouched();\n this.taxDataService.status = res.status;\n\n if (dadosFiscais.status == EnumStatus.Reprovado && !dadosFiscais.fiscalIntegrado){\n this.apiIntegracaoService.integrateSap(this.productId).subscribe(() => {\n });\n }\n }\n }));\n }\n\n private submitCostAndPriceForReview(data: CustoPreco) {\n return this.apiCustoPrecoService.insertOrUpdate(data).pipe(delay(3000), tap(res => {\n if (res) {\n this.costAndPriceService.form.markAsUntouched();\n this.costAndPriceService.status = res.status;\n }\n }));\n }\n\n private validateAllTabs() {\n return Promise.all([\n this.validateBasicData(),\n this.validateSpecificData(),\n this.validateMedia(),\n this.validateTaxData(),\n this.validateCostAndPrice()\n ]);\n }\n\n private validateBasicData() {\n return this.apiDadosBasicos.validate(this.extractDadosBasicos()).toPromise();\n }\n\n private validateSpecificData() {\n return this.apiDadosEspecificos.validate(this.extractDadosEspecificos()).toPromise();\n }\n\n private validateMedia() {\n return this.apiMidia.validate(this.extractMidia()).toPromise();\n }\n\n private validateTaxData() {\n var dadosFiscais = this.extractDadosFiscais();\n if (dadosFiscais.status != 3){\n return this.apiDadosFiscaisService.validate(dadosFiscais).toPromise();\n }\n }\n\n private validateCostAndPrice() {\n var custoPreco = this.extractCustoPreco();\n if (custoPreco.status != 3)\n return this.apiCustoPrecoService.validate(custoPreco).toPromise();\n }\n\n saveAllTabs() {\n this.saveBasicData();\n this.saveSpecificData();\n this.saveMidia();\n this.saveTaxData();\n this.saveCostAndPrice();\n this.saveCommercialData();\n }\n\n saveBasicData() {\n // se produto esta reprovado ou é um draft salva o draft\n // se não, tenta enviar esta aba para revisão\n // mostra os erros caso algo esteja invalido\n\n if (this.basicDataService.status === EnumStatus.Draft || this.basicDataService.status === EnumStatus.Reprovado) {\n this.apiDadosBasicos.saveDraft(this.extractDadosBasicos()).subscribe(() => {\n this.basicDataService.form.markAsUntouched();\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.basicDataService.form.markAllAsTouched();\n });\n } else {\n const dadosBasicos = this.extractDadosBasicos();\n if (this.basicDataService.form.valid) {\n this.submitBasicDataForReview(dadosBasicos).subscribe(() => {\n this.basicDataService.form.markAsUntouched();\n });\n } else {\n this.checkBasicDataErrors();\n }\n }\n }\n\n saveSpecificData() {\n // se produto esta reprovado ou é um draft salva o draft\n // se não, tenta enviar esta aba para revisão\n // mostra os erros caso algo esteja invalido\n\n if (this.specificDataService.status === EnumStatus.Draft || this.specificDataService.status === EnumStatus.Reprovado) {\n this.apiDadosEspecificos.saveDraft(this.extractDadosEspecificos()).subscribe(() => {\n this.specificDataService.form.markAsUntouched();\n this.saveMidia();\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.specificDataService.form.markAllAsTouched();\n });\n } else {\n const dadosEspecificos = this.extractDadosEspecificos();\n if (this.specificDataService.form.valid) {\n this.submitSpecificDataForReview(dadosEspecificos).subscribe(() => {\n this.specificDataService.form.markAsUntouched();\n this.saveMidia();\n });\n } else {\n this.checkSpecificDataErrors();\n }\n }\n }\n\n saveMidia() {\n // se produto esta reprovado ou é um draft salva o draft\n // se não, tenta enviar esta aba para revisão\n // mostra os erros caso algo esteja invalido\n\n if (this.mediaService.status === EnumStatus.Draft || this.mediaService.status === EnumStatus.Reprovado) {\n this.apiMidia.saveDraft(this.extractMidia()).subscribe(() => {\n this.mediaService.form.markAsUntouched();\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.mediaService.form.markAllAsTouched();\n });\n } else {\n const dadosMidia = this.extractMidia();\n if (this.mediaService.form.valid) {\n this.submitMidiaForReview(dadosMidia).subscribe(() => {\n this.mediaService.form.markAsUntouched();\n });\n } else {\n this.checkMediaErrors();\n }\n }\n }\n\n saveTaxData() {\n // se produto esta reprovado ou é um draft salva o draft\n // se não, tenta enviar esta aba para revisão\n // mostra os erros caso algo esteja invalido\n\n if (this.taxDataService.status === EnumStatus.Draft || this.taxDataService.status === EnumStatus.Reprovado) {\n this.apiDadosFiscaisService.saveDraft(this.extractDadosFiscais()).subscribe(() => {\n this.taxDataService.form.markAsUntouched();\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.taxDataService.form.markAllAsTouched();\n });\n } else {\n const dadosFiscais = this.extractDadosFiscais();\n if (this.taxDataService.form.valid) {\n this.submitTaxDataForReview(dadosFiscais).subscribe(() => {\n this.taxDataService.form.markAsUntouched();\n });\n } else {\n this.checkTaxDataErrors();\n }\n }\n }\n\n saveCostAndPrice() {\n // se produto esta reprovado ou é um draft salva o draft\n // se não, tenta enviar esta aba para revisão\n // mostra os erros caso algo esteja invalido\n\n if (this.costAndPriceService.status === EnumStatus.Draft || this.costAndPriceService.status === EnumStatus.Reprovado) {\n this.apiCustoPrecoService.saveDraft(this.extractCustoPreco()).subscribe(() => {\n this.costAndPriceService.form.markAsUntouched();\n //this.saveTaxData();\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.costAndPriceService.form.markAllAsTouched();\n });\n } else {\n const costAndPrice = this.extractCustoPreco();\n if (this.costAndPriceService.form.valid) {\n this.submitCostAndPriceForReview(costAndPrice).subscribe(() => {\n this.costAndPriceService.form.markAsUntouched();\n //this.saveTaxData();\n });\n } else {\n this.checkCostAndPriceErrors();\n }\n }\n }\n\n saveCommercialData() {\n // tenta salvar a aba de dados comerciais\n // mostra os erros caso algo tenha dado errado\n\n this.apiDadosComerciais.insertOrUpdate(this.extractDadosComerciais()).subscribe((res) => {\n this.commercialDataService.form.markAsUntouched();\n this.commercialDataService.status = res.status;\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.commercialDataService.form.markAllAsTouched();\n });\n }\n\n submitCommercialForReview() {\n // salva o cadastro\n // muda o status do cadastro para revisao\n\n this.apiDadosComerciais.submitCommercialForReview(this.extractDadosComerciais()).subscribe((res) => {\n this.commercialDataService.form.markAsUntouched();\n this.commercialDataService.status = res.status;\n // assim que a aba for submetida para revisão redireciona para dashboard\n this.router.navigateByUrl('/dashboard');\n }, () => {\n this.toastService.toast('Erro ao salvar!', ToastType.error);\n this.commercialDataService.form.markAllAsTouched();\n });\n }\n\n approveOrReprove(reason: string, tab: EnumAba, approved: boolean) {\n // Cria o histórico caso não exista\n // Se existir adiciona uma mensagem\n\n if (!this.historicService.data || this.historicService.data && !this.historicService.data.historicoAbaList) {\n this.apiHistorico.create(this.productId, reason, tab, approved).subscribe(res => {\n this.updateTabStatusWhenApproveOrReprove(tab, approved, this.header.codigoSap);\n\n this.historicService.setValue(\n this.productId,\n res\n );\n });\n } else {\n this.apiHistorico.approveOrReproveNewTab(this.productId, reason, tab, approved, this.header.fornecedorId, this.header.referencia).subscribe(res => {\n this.updateTabStatusWhenApproveOrReprove(tab, approved, this.header.codigoSap);\n\n this.historicService.setValue(\n this.productId,\n res\n );\n });\n }\n }\n\n private updateTabStatusWhenApproveOrReprove(tab: EnumAba, approved: boolean, codigoSap: string) {\n if (approved) {\n switch (tab) {\n case EnumAba.dadosBasicos:\n this.basicDataService.status = EnumStatus.Finalizado;\n break;\n\n case EnumAba.dadosEspecificos:\n this.specificDataService.status = EnumStatus.Finalizado;\n break;\n\n case EnumAba.midia:\n this.mediaService.status = EnumStatus.Finalizado;\n break;\n\n case EnumAba.dadosFiscais:\n this.taxDataService.status = EnumStatus.Finalizado;\n break;\n\n case EnumAba.custo:\n this.costAndPriceService.status = EnumStatus.Finalizado;\n break;\n\n case EnumAba.comercial:\n this.commercialDataService.status = EnumStatus.Finalizado;\n break;\n }\n } else {\n switch (tab) {\n case EnumAba.dadosBasicos:\n this.basicDataService.status = EnumStatus.Reprovado;\n this.specificDataService.status = EnumStatus.Reprovado;\n this.mediaService.status = EnumStatus.Reprovado;\n\n if (codigoSap == null || codigoSap == \"\"){\n this.taxDataService.status = EnumStatus.Reprovado;\n this.costAndPriceService.status = EnumStatus.Reprovado;\n }\n break;\n\n case EnumAba.dadosEspecificos:\n this.specificDataService.status = EnumStatus.Reprovado;\n this.mediaService.status = EnumStatus.Reprovado;\n break;\n\n case EnumAba.midia:\n this.mediaService.status = EnumStatus.Reprovado;\n break;\n\n case EnumAba.dadosFiscais:\n this.taxDataService.status = EnumStatus.Reprovado;\n break;\n\n case EnumAba.custo:\n this.costAndPriceService.status = EnumStatus.Reprovado;\n break;\n\n case EnumAba.comercial:\n this.commercialDataService.status = EnumStatus.Reprovado;\n break;\n }\n }\n }\n\n integrateSap() {\n document.getElementById('integrar').style.display = \"none\";\n this.apiIntegracaoService.integrateSap(this.productId).subscribe(() => {\n });\n }\n\n integrateVtex() {\n this.apiIntegracaoService.integrateVtex(this.productId).subscribe(() => {\n });\n }\n\n integrateCeva() {\n this.apiIntegracaoService.integrateCeva(this.productId).subscribe(() => {\n });\n }\n\n integrateAll() {\n this.apiIntegracaoService.integrateAll(this.productId).subscribe(() => {\n });\n }\n\n toggleApproveOrReproveSapIntegration() {\n if (this.workflowService.data) {\n if (this.workflowService.data.bloquearIntegracaoSap) {\n // Approve\n this.apiIntegracaoService.approveSapIntegration(this.productId, this.workflowService.data.bloquearIntegracaoVTEX).subscribe();\n } else {\n // Reprove\n this.apiIntegracaoService.reproveSapIntegration(this.productId, this.workflowService.data.bloquearIntegracaoVTEX).subscribe();\n }\n\n this.workflowService.data.bloquearIntegracaoSap = !this.workflowService.data.bloquearIntegracaoSap;\n }\n }\n\n toggleApproveOrReproveVtexIntegration() {\n if (this.workflowService.data) {\n if (this.workflowService.data.bloquearIntegracaoVTEX) {\n // Approve\n this.apiIntegracaoService.approveVtexIntegration(this.productId, this.workflowService.data.bloquearIntegracaoSap).subscribe();\n } else {\n // Reprove\n this.apiIntegracaoService.reproveVtexIntegration(this.productId, this.workflowService.data.bloquearIntegracaoSap).subscribe();\n }\n\n this.workflowService.data.bloquearIntegracaoVTEX = !this.workflowService.data.bloquearIntegracaoVTEX;\n }\n }\n\n openLogs() {\n this.logModal.openLogs(this.productId);\n }\n\n // #endregion\n\n // #region VERIFICAÇÃO DE ERROS E FEEDBACK VISUAL\n private checkTabErrors() {\n this.checkBasicDataErrors();\n this.checkSpecificDataErrors();\n this.checkMediaErrors();\n this.checkTaxDataErrors();\n this.checkCostAndPriceErrors();\n }\n\n private checkBasicDataErrors() {\n if (!this.basicDataService.form.valid) {\n this.basicDataService.form.markAllAsTouched();\n this.toastService.toast('Aba de Dados Básicos está inválida!', ToastType.error);\n }\n }\n\n private checkSpecificDataErrors() {\n if (!this.specificDataService.form.valid) {\n this.specificDataService.form.markAllAsTouched();\n this.toastService.toast('Aba de Dados Específicos está inválida!', ToastType.error);\n }\n }\n\n private checkMediaErrors() {\n if (!this.mediaService.form.valid) {\n this.mediaService.form.markAllAsTouched();\n this.toastService.toast('Aba de Mídia está inválida!', ToastType.error);\n }\n }\n\n private checkTaxDataErrors() {\n if (this.taxDataService.form.invalid) {\n this.taxDataService.form.markAllAsTouched();\n this.toastService.toast('Aba de Dados Fiscais está inválida!', ToastType.error);\n }\n }\n\n private checkCostAndPriceErrors() {\n if (this.costAndPriceService.form.invalid) {\n this.costAndPriceService.form.markAllAsTouched();\n this.toastService.toast('Aba de custo e preço está inválida!', ToastType.error);\n }\n }\n\n private checkCommercialErrors() {\n if (this.commercialDataService.form.invalid) {\n this.commercialDataService.form.markAllAsTouched();\n this.toastService.toast('Aba de Comercial está inválida!', ToastType.error);\n }\n }\n\n // #endregion\n\n // #region MÉTODOS AUXILIARES\n\n // #region PERMISSIONS\n\n isUnsaved() {\n // tslint:disable-next-line: max-line-length\n return /*(this.canSubmitForReview) && */ (\n (this.specificDataService.canSave || this.specificDataService.canSubmitForReview ? this.specificDataService.form.touched : false) ||\n (this.basicDataService.canSave || this.basicDataService.canSubmitForReview ? this.basicDataService.form.touched : false) ||\n // tslint:disable-next-line: max-line-length\n (this.commercialDataService.canSave || this.commercialDataService.canSubmitForReview ? this.commercialDataService.form.touched : false) ||\n (this.mediaService.canSave || this.mediaService.canSubmitForReview ? this.mediaService.form.touched : false) ||\n (this.taxDataService.canSave || this.taxDataService.canSubmitForReview ? this.taxDataService.form.touched : false) ||\n (this.costAndPriceService.canSave || this.costAndPriceService.canSubmitForReview ? this.costAndPriceService.form.touched : false)\n );\n }\n\n get canSaveBasicData() {\n return this.basicDataService.canSave;\n }\n\n get canSaveSpecificData() {\n return this.specificDataService.canSave;\n }\n\n get canSaveMidia() {\n return this.mediaService.canSave;\n }\n\n get canSaveTaxData() {\n return this.taxDataService.canSave;\n }\n\n get canSaveCostAndPrice() {\n return this.costAndPriceService.canSave;\n }\n\n get canApproveOrReproveCommercial() {\n return (this.commercialDataService.status == EnumStatus.Revisao || this.commercialDataService.status == EnumStatus.Draft) &&\n this.commercialDataService.canApproveOrReprove;\n }\n\n get canApproveOrReproveCostAndPrice() {\n return this.status == EnumStatus.Revisao &&\n this.costAndPriceService.status == EnumStatus.Revisao &&\n this.costAndPriceService.canApproveOrReprove;\n }\n\n get canApproveOrReproveTaxData() {\n return this.status == EnumStatus.Revisao &&\n this.taxDataService.status == EnumStatus.Revisao &&\n this.taxDataService.canApproveOrReprove;\n }\n\n get canIntegrateTaxData() {\n return this.taxDataService.status == EnumStatus.Finalizado && this.taxDataService.isFiscalIntegrado$.getValue() === false\n }\n\n get canIntegrateCoastAndPrice() {\n return this.costAndPriceService.status == EnumStatus.Finalizado && this.taxDataService.isFiscalIntegrado$.getValue() === true && this.costAndPriceService.isCustoPrecoIntegrado$.getValue() === false\n }\n\n get canApproveOrReproveMedia() {\n return this.mediaService.status == EnumStatus.Revisao &&\n this.mediaService.canApproveOrReprove;\n }\n\n get canApproveOrReproveSpecificData() {\n return this.specificDataService.status == EnumStatus.Revisao &&\n this.specificDataService.canApproveOrReprove;\n }\n\n get canApproveOrReproveBasicData() {\n return this.basicDataService.status == EnumStatus.Revisao &&\n this.basicDataService.canApproveOrReprove;\n }\n\n get canSaveAny() {\n return !!this.basicDataService.referencia;\n }\n\n get canSubmitForReview() {\n return this.canSubmitForReviewPermission && this.isAllTabsValid && this.canSubmitSomeTabForReview &&\n [EnumStatus.Draft, EnumStatus.Finalizado, EnumStatus.Reprovado].includes(this.status);\n }\n\n get canSubmitAllTabsForReview() {\n return this.basicDataService.canSubmitForReview &&\n this.specificDataService.canSubmitForReview &&\n this.mediaService.canSubmitForReview &&\n this.taxDataService.canSubmitForReview &&\n this.costAndPriceService.canSubmitForReview;\n }\n\n get canSubmitSomeTabForReview() {\n return this.basicDataService.canSubmitForReview ||\n this.specificDataService.canSubmitForReview ||\n this.mediaService.canSubmitForReview ||\n this.taxDataService.canSubmitForReview ||\n this.costAndPriceService.canSubmitForReview;\n }\n\n get isAllTabsValid() {\n return this.basicDataService.isValid &&\n this.specificDataService.isValid &&\n this.mediaService.isValid &&\n this.taxDataService.isValid &&\n this.costAndPriceService.isValid;\n }\n\n get canIntegrate() {\n return this.status == EnumStatus.Finalizado;\n }\n\n get canIntegrateSap() {\n if (this.workflowService.data) {\n return this.canIntegrate && !this.workflowService.data.bloquearIntegracaoSap;\n }\n }\n\n get canIntegrateVtex() {\n if (this.workflowService.data) {\n return this.canIntegrate && !this.workflowService.data.bloquearIntegracaoVTEX;\n }\n }\n\n get isSapIntegrated() {\n if (this.workflowService.data) {\n return this.workflowService.data.integradoComSap;\n }\n }\n\n get isVtexIntegrated() {\n if (this.workflowService.data) {\n return this.workflowService.data.integradoComVTEX;\n }\n }\n\n get isCevaIntegrated() {\n if (this.workflowService.data) {\n return this.workflowService.data.integradoComCEVA;\n }\n }\n\n get canApproveSapIntegration() {\n if (this.workflowService.data) {\n return this.workflowService.data.bloquearIntegracaoSap;\n }\n }\n\n get canApproveVtexIntegration() {\n if (this.workflowService.data) {\n return this.workflowService.data.bloquearIntegracaoVTEX;\n }\n }\n get canApproveCevaIntegration() {\n if (this.workflowService.data) {\n return this.workflowService.data.bloquearIntegracaoCEVA;\n }\n }\n\n get canShowIntegrationTab() {\n return this.status == EnumStatus.Finalizado;\n }\n\n // #endregion PERMISSIONS\n\n // #region EXTRACT DATA\n\n /** Junta os dados do formulário com os metadados necessário para api */\n private extractDadosBasicos(): DadosBasicos {\n const basicDataForm = this.basicDataService.form.getRawValue() as BasicDataForm;\n basicDataForm.origemCSTId = this.basicDataService.origemCSTId;\n basicDataForm.ncm = this.basicDataService.ncm;\n basicDataForm.ipi = this.basicDataService.ipi;\n\n return BasicDataFormToReq({\n data: basicDataForm,\n status: this.basicDataService.status,\n produtoId: this.productId\n });\n }\n\n /** Junta os dados do formulário com os metadados necessário para api */\n private extractDadosEspecificos(): DadosEspecificos {\n return {\n ...this.specificDataService.form.getRawValue() as SpecificDataForm,\n ...{\n id: this.productId,\n status: this.specificDataService.status,\n }\n };\n }\n\n /** Junta os dados do formulário com os metadados necessário para api */\n private extractMidia(): Midia {\n const data = {\n ...MediaToReq(this.mediaService.form.getRawValue()) as Midia,\n ...{\n idProduto: this.productId,\n status: this.mediaService.status,\n }\n };\n\n return data;\n }\n\n private extractDadosFiscais(): DadosFiscais {\n const data = TaxDataToReq({\n data: this.taxDataService.form.getRawValue() as TaxDataForm,\n status: this.taxDataService.status,\n produtoId: this.productId,\n });\n\n return data;\n }\n\n private extractCustoPreco(): CustoPreco {\n const data = CostAndPriceToReq({\n data: this.costAndPriceService.form.getRawValue() as CostAndPriceForm,\n status: this.costAndPriceService.status,\n produtoId: this.productId,\n });\n\n return data;\n }\n\n private extractDadosComerciais(): DadosComerciais {\n const commerceDataForm = this.commercialDataService.form.getRawValue() as CommerceDataForm;\n //commerceDataForm.precoVenda = this.commercialDataService.precoVenda;\n commerceDataForm.precoSugerido = this.commercialDataService.precoSugerido;\n commerceDataForm.status = this.commercialDataService.status;\n\n return CommerceDataToReq({ data: commerceDataForm, produtoId: this.productId });\n }\n\n // #endregion EXTRACT DATA\n\n // #endregion\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { DynamicFieldValidationType } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\nimport { DynamicFormConfig } from 'src/app/lib/dynamic-form/models/dyanmic-form.interface';\n\n@Component({\n selector: 'c-dynamic-form-test',\n templateUrl: './dynamic-form-test.component.html',\n styleUrls: ['./dynamic-form-test.component.scss'],\n})\nexport class DynamicFormTestComponent implements OnInit {\n\n form: FormGroup;\n config: DynamicFormConfig = [{\n id: 'a1',\n initialValue: 11,\n label: 'a1',\n type: 'number',\n layout: {\n size: 12,\n highlight: true\n },\n dynamicFieldValidator: [\n {\n type: DynamicFieldValidationType.Min,\n value: 15,\n errorMessage: 'Deve conter no minimo 10 items'\n }\n ]\n }, {\n id: 'a2',\n initialValue: 'initialValueA2',\n label: 'a2',\n type: 'text'\n }, {\n id: 'a3',\n initialValue: 'initialValueA2',\n label: 'a3',\n type: 'text'\n }, {\n id: 'a4',\n initialValue: 'initialValueA2',\n label: 'a4',\n type: 'text'\n }, {\n id: 'a5',\n initialValue: 'initialValueA2',\n label: 'a5',\n type: 'text'\n }, {\n id: 'a6',\n initialValue: 'initialValueA2',\n label: 'a6',\n type: 'text'\n }, {\n id: 'a7',\n initialValue: 'initialValueA2',\n label: 'a7',\n type: 'text'\n }, {\n id: 'a8',\n initialValue: 'initialValueA2',\n label: 'a8',\n type: 'text'\n }, {\n id: 'a9',\n initialValue: 'initialValueA2',\n label: 'a9',\n type: 'text'\n }, {\n id: 'a10',\n initialValue: 'initialValueA2',\n label: 'a10',\n type: 'text'\n }, {\n id: 'b1',\n initialValue: 1,\n label: 'b1',\n type: 'number'\n }, {\n id: 'b2',\n initialValue: 'initialValueA2',\n label: 'b2',\n type: 'text'\n }, {\n id: 'b3',\n initialValue: 'initialValueA2',\n label: 'b3',\n type: 'text'\n }, {\n id: 'b4',\n initialValue: 'initialValueA2',\n label: 'b4',\n type: 'text'\n }, {\n id: 'b5',\n initialValue: 'initialValueA2',\n label: 'b5',\n type: 'text'\n }, {\n id: 'b6',\n initialValue: 'initialValueA2',\n label: 'b6',\n type: 'text'\n }, {\n id: 'b7',\n initialValue: 'initialValueA2',\n label: 'b7',\n type: 'text'\n }, {\n id: 'b8',\n initialValue: 'initialValueA2',\n label: 'b8',\n type: 'text'\n }, {\n id: 'b9',\n initialValue: 'initialValueA2',\n label: 'b9',\n type: 'text'\n }, {\n id: 'b10',\n initialValue: 'initialValueA2',\n label: 'a10',\n type: 'text'\n }];\n\n constructor(private fb: FormBuilder) {\n this.form = this.fb.group({\n test: {\n a2: 'valorDefinido no component controllador',\n }\n });\n }\n\n ngOnInit() {\n }\n\n resetTest() {\n this.form.get('test').reset();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ReferenceComponent } from './reference.component';\nimport { DynamicFormTestComponent } from './dynamic-form-test/dynamic-form-test.component';\n\nconst routes: Routes = [\n { path: '', component: ReferenceComponent },\n { path: 'dynamic-forms', component: DynamicFormTestComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ReferenceRoutingModule { }\n","import { Component, OnInit, ViewContainerRef } from '@angular/core';\nimport { LocalStorage } from 'src/app/shared/decorators/local-storage.decorator';\nimport { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { LoadingService, LoadingName } from 'src/app/services/loading.service';\nimport { ModalService } from 'src/app/ui/modal/modal.service';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ApiDadosBasicosService } from 'src/app/services/api/dados-basicos/api-dados-basicos.service';\n\nexport interface PeriodicElement {\n name: string;\n position: number;\n weight: number;\n symbol: string;\n}\n\n@Component({\n selector: 'c-reference',\n templateUrl: './reference.component.html',\n styleUrls: ['./reference.component.scss']\n})\nexport class ReferenceComponent implements OnInit {\n\n @LocalStorage('user') user: any;\n test: any = 2;\n\n radioGroupControl = new FormControl({ value: 3 });\n tabs = [\n 'rascunhos',\n 'dados específicos',\n 'mídia',\n 'dados fiscais',\n 'custo e preço',\n 'histórico',\n ];\n selectControl = new FormControl([0, 2, 1, 6, 4], [Validators.required]);\n textAreaControl = new FormControl('alalalalal');\n checkboxGroupControl = new FormControl(null);\n inputGroupControl = new FormControl(null, [Validators.required]);\n // inputGroupControl = new FormControl({ altura: 10, largura: 20, profundidade: 30 }, [Validators.required]);\n rangeControl = new FormControl(null, Validators.required);\n imageUploader = new FormControl(null);\n videoUploader = new FormControl(null, [Validators.required]);\n compositionInput = new FormControl(null, Validators.required);\n checkboxInput = new FormControl(null);\n\n form: FormGroup = this.fb.group({\n name: ['', [Validators.required, Validators.email]]\n });\n\n superArray = Array.from({ length: 1000 }).fill('');\n\n // Table data\n displayedColumns: string[] = ['position', 'name', 'weight', 'symbol'];\n dataSource = [\n { position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H' },\n { position: 2, name: 'Helium', weight: 4.0026, symbol: 'He' },\n { position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li' },\n { position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be' },\n { position: 5, name: 'Boron', weight: 10.811, symbol: 'B' },\n { position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C' },\n { position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N' },\n { position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O' },\n { position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F' },\n { position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne' },\n ];\n\n referenceForm = this.fb.group({\n radioGroupControl: this.radioGroupControl,\n selectControl: this.selectControl,\n textAreaControl: this.textAreaControl,\n checkboxGroupControl: this.checkboxGroupControl,\n inputGroupControl: this.inputGroupControl,\n rangeControl: this.rangeControl,\n imageUploader: this.imageUploader,\n videoUploader: this.videoUploader,\n compositionInput: this.compositionInput,\n form: this.form,\n checkboxInput: this.checkboxInput,\n });\n\n readonly = false;\n\n constructor(\n private loadingServ: LoadingService,\n private modalService: ModalService,\n private confirmDialogService: ConfirmDialogService,\n private vcr: ViewContainerRef,\n private toastService: ToastService,\n private fb: FormBuilder,\n private adb: ApiDadosBasicosService\n ) {\n this.loadingServ.setTimeToDisincrease(10);\n // this.referenceForm.disable();\n }\n\n toggleEnabled() {\n if (this.referenceForm.enabled) {\n this.referenceForm.disable();\n } else {\n this.referenceForm.enable();\n }\n }\n\n toggleReadonly() {\n this.readonly = !this.readonly;\n }\n\n ngOnInit() {\n // this.videoUploader.valueChanges.subscribe(res => console.log(res));\n // this.videoUploader.setValue([\n // 'https://www.youtube.com/embed/S2ILS8c8yYo',\n // 'https://www.youtube.com/embed/7v8rpVkHETc',\n // 'https://www.youtube.com/embed/eW3_PdaFTnM',\n // 'https://www.youtube.com/embed/xMYvG5lDjIQ',\n // ]);\n\n // this.imageUploader.valueChanges.subscribe(res => console.log(res));\n // this.imageUploader.setValue([\n // 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTf80NS-3wrzh7TWYnGr5OwFDUFMwy3pkofGbaiZwN71jGjbtWy&s',\n // 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSJHqzEYG2pHjrK8oN0GdqdNl0jb0ai1005z_NA0mfp_QALwx4u&s'\n // ]);\n\n // this.rangeControl.valueChanges.subscribe(res => console.log(res));\n // this.rangeControl.disable();\n // this.rangeControl.markAsDirty();\n // setTimeout(() => {\n // this.rangeControl.setValue({ start: 1, end: 3 });\n // }, 3000);\n\n // this.radioGroupControl.valueChanges.subscribe(res => console.log(res));\n // this.radioGroupControl.disable();\n\n this.selectControl.valueChanges.subscribe(res => console.log(res));\n // this.selectControl.disable();\n\n // this.textAreaControl.valueChanges.subscribe(res => console.log(res));\n // this.textAreaControl.disable();\n\n // this.form.valueChanges.subscribe(res => console.log(res));\n // this.form.disable();\n\n // this.checkboxGroupControl.valueChanges.subscribe(res => console.log(res));\n // setTimeout(() => {\n // this.checkboxGroupControl.setValue(['rihappy', 'marketplace']);\n // }, 4000)\n // this.checkboxGroupControl.disable();\n\n // this.inputGroupControl.valueChanges.subscribe(res => console.log(res, this.inputGroupControl.touched));\n // setTimeout(() => {\n // this.inputGroupControl.markAsTouched();\n // }, 4000);\n // this.inputGroupControl.markAsTouched();\n // this.inputGroupControl.disable();\n\n // this.toastService.toast('toast teste asasasas');\n // this.toastService.toast('toast teste');\n // this.toastService.toast('toast teste asasa');\n // this.toastService.toast('toast teste');\n // this.toastService.toast('toast teste sdjasldkas');\n\n // this.adb.getAll().subscribe(console.log);\n }\n\n showLoading(name: LoadingName) {\n this.loadingServ.show(name);\n }\n\n openModal() {\n this.confirmDialogService.confirm('tem certeza?');\n // const modal = this.modalService.open('teste teste teste teste teste teste te testetes testetet testete tetestet', { initialState: {\n // // hideOverlay: true,\n // type: 'dialog',\n // style: { color: 'blue' },\n // class: 'lalal'\n // }});\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReferenceComponent } from './reference.component';\nimport { ReferenceRoutingModule } from './reference-routing.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { UiModule } from 'src/app/ui/ui.module';\nimport { DynamicFormModule } from 'src/app/lib/dynamic-form/dynamic-form.module';\nimport { DynamicFormTestComponent } from './dynamic-form-test/dynamic-form-test.component';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { CompositionInputModule } from 'src/app/ui/composition-input/composition-input.module';\nimport { CollapseModule } from 'src/app/ui/collapse/collapse.module';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ColumnFilterModule } from 'src/app/ui/column-filter/column-filter.module';\n\n@NgModule({\n declarations: [\n ReferenceComponent,\n DynamicFormTestComponent\n ],\n imports: [\n CommonModule,\n ReferenceRoutingModule,\n SharedModule,\n UiModule,\n DynamicFormModule,\n ModalModule,\n CompositionInputModule,\n CollapseModule,\n ScrollingModule,\n ColumnFilterModule\n ]\n})\nexport class ReferenceModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { ResetPasswordComponent } from './reset-password.component';\n\nconst routes: Routes = [\n { path: '', component: ResetPasswordComponent },\n { path: ':id', component: ResetPasswordComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class ResetPasswordRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { ApiUsuarioService } from 'src/app/services/api/autenticacao/api-usuario.service';\nimport { validatePassword } from 'src/app/shared/validators/password';\n\n@Component({\n selector: 'c-reset-password',\n templateUrl: './reset-password.component.html',\n styleUrls: ['./reset-password.component.scss']\n})\nexport class ResetPasswordComponent implements OnInit {\n\n form: FormGroup;\n resetCode: string;\n\n constructor(\n private fb: FormBuilder,\n private apiUsuarioService: ApiUsuarioService,\n private router: Router,\n private activatedRoute: ActivatedRoute\n ) {\n this.createForm();\n this.setPasswordValidator();\n this.resetCode = this.activatedRoute.snapshot.params.id;\n // if (this.resetCode) {\n // this.form.get('senhaAntiga').disable();\n // }\n }\n\n ngOnInit() {\n\n }\n\n private createForm() {\n this.form = this.fb.group({\n // senhaAntiga: [null, [Validators.required]],\n senhaNova: [null, [Validators.required]],\n senhaNovaRepetir: [null, [Validators.required]]\n });\n }\n\n async changePassword() {\n const data = this.form.value;\n\n if (!this.resetCode) {\n await this.apiUsuarioService.changePassword(data).toPromise();\n } else {\n await this.apiUsuarioService.changePasswordWithCode(data, this.resetCode).toPromise();\n }\n\n this.router.navigateByUrl('/');\n }\n\n private setPasswordValidator() {\n this.senhaNovaRepetir.setValidators(validatePassword(this.senhaNova));\n }\n\n get senhaNova() { return this.form.get('senhaNova') as FormControl; }\n get senhaNovaRepetir() { return this.form.get('senhaNovaRepetir'); }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResetPasswordComponent } from './reset-password.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ResetPasswordRoutingModule } from './reset-password-routing.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\n\n@NgModule({\n declarations: [\n ResetPasswordComponent\n ],\n imports: [\n CommonModule,\n ResetPasswordRoutingModule,\n SharedModule,\n CheckboxModule,\n InputModule\n ]\n})\nexport class ResetPasswordModule { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { RoleComponent } from './role.component';\nimport { AuthGuard } from 'src/app/services/guards/auth.guard';\n\nconst routes: Routes = [\n {\n path: '', component: RoleComponent,\n canActivate: [AuthGuard],\n data: { permission: 'rhcdm.papeis.criar' }\n },\n {\n path: ':id', component: RoleComponent,\n canActivate: [AuthGuard],\n data: { permission: 'rhcdm.papeis.editar' }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class RoleRoutingModule { }\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { RouteDataService } from 'src/app/services/route-data.service';\nimport { ApiGrupoPermissaoService } from 'src/app/services/api/autenticacao/api-grupo-permissao.service';\nimport { ApiPermissaoService } from 'src/app/services/api/autenticacao/api-permissao.service';\nimport { Permissao } from 'src/app/models/api/autenticacao/permissao';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'c-role',\n templateUrl: './role.component.html',\n styleUrls: ['./role.component.scss']\n})\nexport class RoleComponent implements OnInit, OnDestroy {\n\n roleId: string;\n form: FormGroup;\n isEdit: boolean;\n permissionData: Permissao[];\n permissionByResource: PermissionByResource[];\n\n constructor(\n private routeData: RouteDataService,\n private router: Router,\n private apiGrupoPermissaoService: ApiGrupoPermissaoService,\n private apiPermissaoService: ApiPermissaoService,\n private fb: FormBuilder\n ) {\n this.createForm();\n }\n\n ngOnInit() {\n this.loadPermissionData();\n this.checkIsEdit();\n }\n\n ngOnDestroy() {\n this.routeData.data = undefined;\n }\n\n createForm() {\n this.form = this.fb.group({\n nome: [null, Validators.required],\n permissoesIdList: [null, Validators.required]\n });\n }\n\n checkIsEdit() {\n if (this.routeData.data) {\n this.isEdit = true;\n this.roleId = this.routeData.data.id;\n this.form.patchValue(this.routeData.data);\n }\n }\n\n loadPermissionData() {\n this.apiPermissaoService.getAll().subscribe(res => {\n this.permissionData = res;\n\n const groupedByResourceMap = new Map();\n res.forEach(elem => {\n const resource = elem.nome.split('.')[1];\n\n let group: Array = groupedByResourceMap.get(resource);\n if (!group) {\n group = new Array();\n groupedByResourceMap.set(resource, group);\n }\n\n group.push(elem);\n });\n\n const permissionsByResource: PermissionByResource[] = new Array();\n groupedByResourceMap.forEach((elem, key) => {\n permissionsByResource.push({\n resource: key,\n permission: elem\n });\n });\n\n this.permissionByResource = permissionsByResource;\n });\n }\n\n save() {\n if (!this.isEdit) {\n this.apiGrupoPermissaoService.create(this.createSaveData()).subscribe(() => {\n this.router.navigateByUrl('/dashboard');\n });\n } else {\n this.apiGrupoPermissaoService.update(this.createSaveData()).subscribe(() => {\n this.router.navigateByUrl('/dashboard');\n });\n }\n }\n\n private createSaveData() {\n return {\n id: this.roleId,\n ...this.form.value\n };\n }\n\n get nome() { return this.form.get('nome'); }\n\n}\n\ninterface PermissionByResource {\n resource: string;\n permission: Permissao;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RoleComponent } from './role.component';\nimport { RoleRoutingModule } from './role-routing.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\n\n@NgModule({\n declarations: [\n RoleComponent\n ],\n imports: [\n CommonModule,\n RoleRoutingModule,\n SharedModule,\n CardModule,\n CheckboxModule,\n InputModule,\n IconModule\n ]\n})\nexport class RoleModule { }\n","import { Directive, OnDestroy, Input, OnInit } from '@angular/core';\nimport { FormControl, ControlContainer } from '@angular/forms';\nimport { Subject, Observable } from 'rxjs';\nimport { Estado } from 'src/app/models/api/autenticacao/estado';\nimport { Cidade } from 'src/app/models/api/autenticacao/cidade';\nimport { ApiEstadoService } from 'src/app/services/api/autenticacao/api-estado.service';\nimport { shareReplay, startWith, switchMap, map, takeUntil, tap, distinctUntilChanged } from 'rxjs/operators';\n\n@Directive({\n selector: '[cCityState]',\n exportAs: 'cityState',\n})\nexport class CityStateDirective implements OnDestroy, OnInit {\n static states$: Observable;\n\n @Input() cityControlName = 'cidadeId';\n\n private destroy$ = new Subject();\n\n city: FormControl;\n state = new FormControl();\n\n cities$: Observable;\n states$: Observable;\n\n constructor(\n public fg: ControlContainer,\n private api: ApiEstadoService,\n ) {\n\n }\n\n ngOnInit() {\n console.log(this.fg);\n this.city = this.fg.control.get(this.cityControlName) as FormControl;\n // pega todos estados da api\n if (!CityStateDirective.states$) {\n CityStateDirective.states$ = this.api.getAllWithCache().pipe(takeUntil(this.destroy$), shareReplay(1));\n }\n this.states$ = CityStateDirective.states$;\n\n // pega cidades de acordo com o estado selecionado\n this.cities$ = this.states$.pipe(\n takeUntil(this.destroy$),\n switchMap(states => this.state.valueChanges.pipe(\n startWith(this.state.value),\n map(stateId => {\n const state = states.find(s => s.id == stateId);\n return state ? state.cidadeList : states.flatMap( s => s.cidadeList );\n })\n ))\n );\n\n this.state.valueChanges.pipe(\n takeUntil(this.destroy$),\n distinctUntilChanged(),\n ).subscribe( state => {\n console.log({state});\n if (state) {\n this.city.reset(null);\n }\n });\n console.log(this.city);\n this.city.valueChanges.pipe(\n startWith(this.city.value),\n tap( value => console.log(value)),\n takeUntil(this.destroy$),\n switchMap((cityId: string) => this.states$.pipe(\n map(states => ({ cityId, states }))\n ))\n ).subscribe(({ cityId, states }) => {\n console.log({cityId, states});\n if (states) {\n if (cityId) {\n const state = states.find(s => s.cidadeList.some(c => c.id === cityId));\n this.state.setValue(state.id, { emitEvent: false });\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n}\n","import { EnumTipoContato } from 'src/app/models/api/autenticacao/contato';\nimport { Supplier } from '../models/supplier';\nimport { Fornecedor } from 'src/app/models/api/autenticacao/fornecedor';\n\nexport function convertFornecedorToSupplier(fornecedor: Partial): Partial {\n const { contatoList, ...supplier } = {\n ...fornecedor,\n\n simplesNacional: !!fornecedor.simplesNacional,\n contatoComercial: fornecedor && fornecedor.contatoList &&\n fornecedor.contatoList.find(i => i.tipo === EnumTipoContato.Comercial) || { nome: undefined, email: undefined },\n contatoFinanceiro: fornecedor && fornecedor.contatoList &&\n fornecedor.contatoList.find(i => i.tipo === EnumTipoContato.Financeiro) || { nome: undefined, email: undefined },\n contatoFiscal: fornecedor && fornecedor.contatoList &&\n fornecedor.contatoList.find(i => i.tipo === EnumTipoContato.Fiscal) || { nome: undefined, email: undefined },\n operacao: {\n b2B: !!fornecedor.operacao.b2B,\n b2C: !!fornecedor.operacao.b2C\n },\n modeloDeVenda: {\n centralizado: !!fornecedor.modeloDeVenda.centralizado,\n descentralizado: !!fornecedor.modeloDeVenda.descentralizado\n }\n };\n\n return supplier;\n}\n\nexport function convertSupplierToFornecedor(supplier: Partial): Partial {\n const { contatoComercial, contatoFinanceiro, contatoFiscal, ...fornecedor } = {\n ...supplier,\n\n simplesNacional: !!supplier.simplesNacional,\n contatoList: [\n supplier.contatoComercial ? { ...supplier.contatoComercial, tipo: EnumTipoContato.Comercial } : null,\n supplier.contatoFinanceiro ? { ...supplier.contatoFinanceiro, tipo: EnumTipoContato.Financeiro } : null,\n supplier.contatoFiscal ? { ...supplier.contatoFiscal, tipo: EnumTipoContato.Fiscal } : null\n ].filter(i => i !== undefined || i !== null),\n operacao: {\n b2B: !!supplier.operacao.b2B,\n b2C: !!supplier.operacao.b2C\n },\n modeloDeVenda: {\n centralizado: !!supplier.modeloDeVenda.centralizado,\n descentralizado: !!supplier.modeloDeVenda.descentralizado\n }\n };\n return fornecedor;\n}\n","import { Injectable } from '@angular/core';\nimport { Fornecedor } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiFornecedorService } from 'src/app/services/api/autenticacao/api-fornecedor.service';\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SupplierResolverService implements Resolve> {\n\n constructor(\n private apiFornecedor: ApiFornecedorService\n ) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable> | Partial {\n const id = route.paramMap.get('id');\n if (id) {\n console.log('oi', id)\n return this.apiFornecedor.get(id);\n } else {\n return ({});\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Fornecedor } from 'src/app/models/api/autenticacao/fornecedor';\nimport { ApiFornecedorService } from 'src/app/services/api/autenticacao/api-fornecedor.service';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { validateCnpj } from 'src/app/shared/validators/cnpj';\nimport { validateCep } from 'src/app/shared/validators/cep';\nimport { convertFornecedorToSupplier, convertSupplierToFornecedor } from './convertions';\nimport { Supplier } from '../models/supplier';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { Marca } from 'src/app/models/api/dados-basicos/marca';\nimport { Observable } from 'rxjs';\nimport { ApiMarcaLicensaService } from 'src/app/services/api/dados-basicos/api-marca-licensa.service';\nimport { map, shareReplay } from 'rxjs/operators';\n\n@Injectable()\nexport class SupplierService {\n form: FormGroup;\n get filiaisForm() {\n return this.form && this.form.get('filialList') as FormArray;\n }\n\n @IsAllowed('rhcdm.fornecedor.editar') canEdit: boolean;\n\n marca$: Observable;\n\n constructor(\n private fb: FormBuilder,\n private activatedRoute: ActivatedRoute,\n private apiFornecedor: ApiFornecedorService,\n private toastService: ToastService,\n private router: Router,\n private apiMarcaLicensaService: ApiMarcaLicensaService\n\n ) {\n this.init();\n\n this.marca$ = this.apiMarcaLicensaService.getAll().pipe(\n map(response => response.data),\n shareReplay(1)\n );\n }\n\n // #region inicialização\n\n private init() {\n this.form = this.createForm();\n\n this.activatedRoute.data.subscribe(({ supplier }: { supplier: Partial }) => {\n this.setSupplierData(supplier);\n });\n }\n\n private setSupplierData(fornecedor: Partial) {\n const supplier = convertFornecedorToSupplier(fornecedor);\n this.form.reset();\n this.form.patchValue(supplier);\n if (supplier && supplier.filialList && this.filiaisForm) {\n supplier.filialList.forEach( (f, i) => {\n const item = this.createFilialForm();\n item.patchValue(f);\n this.filiaisForm.insert(i, item);\n });\n }\n }\n\n private getFormData(): Partial {\n return this.form.getRawValue();\n }\n\n private getFormDataAsFornecedor() {\n return convertSupplierToFornecedor(this.getFormData()) as Fornecedor;\n }\n\n get readonly() {\n return this.form.get('id').value ? !this.canEdit : false;\n }\n\n // #endregion inicialização\n\n // #region ações da tela\n\n get canFinalizarCadastro() {\n return !this.form.get('id').value;\n }\n\n finalizarCadastro() {\n if (this.form.valid) {\n this.apiFornecedor.insert(this.getFormDataAsFornecedor()).subscribe( res => {\n this.form.reset();\n this.router.navigateByUrl('/');\n });\n } else {\n this.checkFormErrors();\n }\n }\n\n get canSalvarCadastro() {\n return !!this.form.get('id').value && this.canEdit;\n }\n\n salvarCadastro() {\n if (this.form.valid) {\n this.apiFornecedor.update(this.getFormDataAsFornecedor()).subscribe( res => {\n this.form.reset();\n this.router.navigateByUrl('/');\n });\n } else {\n this.checkFormErrors();\n }\n }\n\n addFilial() {\n this.filiaisForm.push(this.createFilialForm());\n }\n\n deleteFilial(index: number) {\n this.filiaisForm.removeAt(index);\n }\n\n // #endregion ações da tela\n\n private checkFormErrors() {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido', ToastType.error);\n }\n }\n\n // #region métodos auxiliares na criação do form\n\n private createForm() {\n return this.fb.group({\n cnpj: [undefined, [Validators.required, validateCnpj]],\n nomeFantasia: [undefined, [Validators.required]],\n nomeFantasiaFornecedor: [undefined, [Validators.required]],\n razaoSocial: [undefined, [Validators.required]],\n codSap: [undefined, [Validators.required]],\n cep: [undefined, [Validators.required, validateCep]],\n logradouro: [undefined, [Validators.required]],\n bairro: [undefined, [Validators.required]],\n numero: [undefined, [Validators.required]],\n complemento: [undefined],\n cidadeId: [undefined, [Validators.required]],\n modeloDeVenda: [undefined, [Validators.required]],\n operacao: [undefined, [Validators.required]],\n filialList: this.createFiliaisForm(),\n vtex: this.createVtexForm(),\n simplesNacional: [false],\n marcasId: [undefined, [Validators.required]],\n id: [undefined],\n\n email: [undefined, [Validators.required, Validators.email]],\n\n contatoComercial: this.createContactForm(),\n contatoFinanceiro: this.createContactForm(),\n contatoFiscal: this.createContactForm(),\n\n // dataCadastro: [undefined],\n // dataAtualizacao: [undefined],\n // dataInativacao: [undefined],\n });\n }\n\n private createContactForm() {\n return this.fb.group({\n nome: [undefined, [Validators.required]],\n email: [undefined, [Validators.required, Validators.email]],\n });\n }\n\n // private createModeloDeVendaForm() {\n // return this.fb.group({\n // centralizado: [undefined],\n // descentralizado: [undefined],\n // });\n // }\n // private createOperacaoForm() {\n // return this.fb.group({\n // b2B: [undefined],\n // b2C: [undefined],\n // });\n // }\n\n private createFiliaisForm() {\n return this.fb.array([]);\n }\n\n private createFilialForm() {\n return this.fb.group({\n cnpj: [undefined, [Validators.required, validateCnpj]],\n cidadeId: [undefined, [Validators.required]],\n });\n }\n\n private createVtexForm() {\n return this.fb.group({\n institucional: [undefined, Validators.required],\n sac: [undefined, Validators.required],\n atendimento: [undefined, Validators.required],\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { SupplierComponent } from './supplier.component';\nimport { SupplierResolverService } from './services/supplier-resolver.service';\nimport { CanDeactivateGuard } from 'src/app/services/guards/can-deactivate.guard';\nimport { AuthGuard } from 'src/app/services/guards/auth.guard';\n\n\nconst routes: Routes = [\n {\n path: '', redirectTo: '/dashboard', pathMatch: 'full'\n },\n {\n path: 'new',\n component: SupplierComponent,\n resolve: {\n supplier: SupplierResolverService\n },\n canDeactivate: [\n CanDeactivateGuard\n ],\n canActivate: [AuthGuard],\n data: { permission: 'rhcdm.fornecedor.criar' }\n },\n {\n path: ':id',\n component: SupplierComponent,\n resolve: {\n supplier: SupplierResolverService\n },\n canDeactivate: [\n CanDeactivateGuard\n ],\n canActivate: [AuthGuard],\n \n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class SupplierRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { SupplierService } from './services/supplier.service';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { CanComponentDeactivate } from 'src/app/services/guards/can-deactivate.guard';\n\n@Component({\n selector: 'c-supplier',\n templateUrl: './supplier.component.html',\n styleUrls: ['./supplier.component.scss'],\n providers: [\n SupplierService\n ]\n})\nexport class SupplierComponent implements OnInit, CanComponentDeactivate {\n\n constructor(\n public supplierService: SupplierService,\n public confirmDialogService: ConfirmDialogService,\n ) { }\n\n canDeactivate() {\n return this.supplierService.readonly ||\n this.supplierService.form.pristine ||\n this.confirmDialogService.confirm('Tem certeza que deseja sair sem salvar?');\n }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SupplierRoutingModule } from './supplier-routing.module';\nimport { SupplierComponent } from './supplier.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { RangeModule } from 'src/app/ui/range/range.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { CityStateDirective } from './city-state.directive';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\n\n\n@NgModule({\n declarations: [SupplierComponent, CityStateDirective],\n imports: [\n CommonModule,\n SupplierRoutingModule,\n SharedModule,\n InputModule,\n SelectModule,\n CheckboxModule,\n RadioModule,\n RangeModule,\n CardModule,\n IconModule,\n ModalModule,\n ]\n})\nexport class SupplierModule { }\n","import { Injectable } from '@angular/core';\nimport { ApiXmlService } from 'src/app/services/api/xml/api-xml.service';\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class XmlResolverService implements Resolve> {\n\n constructor(private apiXml: ApiXmlService) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable> | Partial {\n const id = route.paramMap.get('id');\n if (id) {\n return this.apiXml.getXml(id);\n } else {\n return ({});\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ToastService } from 'src/app/ui/toast/toast.service';\nimport { ToastType } from 'src/app/ui/toast/toast.model';\nimport { IsAllowed } from 'src/app/shared/decorators/is-allowed.decorator';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ApiXmlService } from 'src/app/services/api/xml/api-xml.service';\nimport { TagItem } from 'src/app/models/api/xml/tag-item';\nimport { catchError, retry } from 'rxjs/operators';\nimport { forkJoin } from 'rxjs';\n\n@Injectable()\nexport class XmlService {\n\n form: FormGroup;\n\n tagItens$: Observable;\n filtros$: Observable;\n operacoes$: Observable;\n regras$: Observable;\n\n campos:TagItem[] = []\n csvContent: string;\n\n periodicidades = [\n {\n name:\"Uma vez por mês\",\n value:\"0 0 1 * *\"\n },\n {\n name:\"Uma vez por semana\",\n value:\"0 0 * * 0\"\n },\n {\n name:\"Uma vez por dia\",\n value:\"0 0 * * *\"\n },\n {\n name:\"Duas vezes por dia\",\n value:\"0 0,12 * * *\"\n },\n {\n name:\"Três vezes por dia\",\n value:\"0 0,8,16 * * *\"\n },\n {\n name:\"A cada hora\",\n value:\"0 * * * *\"\n },\n {\n name:\"A cada minuto\",\n value:\"* * * * *\"\n }\n ]\n\n @IsAllowed('rhcdm.fornecedor.editar') canEdit: boolean;\n\n constructor(\n private fb: FormBuilder,\n private activatedRoute: ActivatedRoute,\n private apiXml: ApiXmlService,\n private toastService: ToastService,\n private router: Router\n ) {\n this.init();\n\n this.tagItens$ = this.apiXml.getTags().pipe(map(x => x.data));\n this.filtros$ = this.apiXml.getFiltros().pipe(map(x => x.data));\n this.operacoes$ = this.apiXml.getOperacoes().pipe(map(x => x.data));\n this.regras$ = this.apiXml.getOperadores().pipe(map(x => x.data));\n\n let self = this;\n this.tagItens$.subscribe(tags=>{\n self.campos = tags;\n this.activatedRoute.data.subscribe(({ xml }: { xml: Partial }) => {\n console.log(xml)\n this.setXmlData(xml)\n });\n })\n\n\n\n }\n\n private init() {\n this.form = this.createForm();\n }\n\n private setXmlData(xml: Partial){\n if(typeof xml !== 'undefined'){\n this.form.reset();\n this.form.patchValue(xml);\n if (xml && xml.tags && this.tagsForm) {\n xml.tags.forEach( (f, i) => {\n const item = this.createTagForm();\n item.patchValue(f);\n this.tagsForm.insert(i, item);\n });\n }\n if (xml && xml.filtros && this.filtrosForm) {\n xml.filtros.forEach( (f, i) => {\n f.campo = this.campos.find(c => c.nomeCampo == f.campo).nomeDescritivo\n const item = this.createFiltroForm(f.operacaoLogica);\n item.patchValue(f);\n this.filtrosForm.insert(i, item);\n });\n }\n }\n }\n\n countValues(index){\n let valor = this.filtrosForm.value[index].operacao.valor;\n if (typeof valor !== \"string\"){return valor.length}\n if (valor !== null){return valor.split(\"\\n\").length }\n else{ return 0 }\n }\n\n removeFile(index){\n (this.filtrosForm as any).controls[index].controls.operacao.controls.valor.setValue(\"\");\n }\n\n onFileSelect(input: HTMLInputElement,index:number) {\n let self = this;\n const files = input.files;\n var content = this.csvContent;\n if (files && files.length) {\n const fileToRead = files[0];\n const fileReader = new FileReader();\n fileReader.onload = function(fileLoadedEvent:any){\n const textFromFileLoaded = fileLoadedEvent.target.result;\n (self.filtrosForm as any).controls[index].controls.operacao.controls.valor.setValue(textFromFileLoaded);\n };\n fileReader.readAsText(fileToRead, \"UTF-8\");\n }\n }\n\n get readonly() {\n return this.form.get('id').value ? !this.canEdit : false;\n }\n\n get canFinalizarCadastro() {\n return !this.form.get('id').value;\n }\n\n get canSalvarCadastro() {\n return !!this.form.get('id').value && this.canEdit;\n }\n\n addTag(){\n this.tagsForm.push(this.createTagForm());\n }\n\n removeTag(index: number){\n this.tagsForm.removeAt(index);\n }\n\n newFiltro(operacao){\n this.filtrosForm.push(this.createFiltroForm(operacao));\n }\n\n removeFiltro(index){\n this.filtrosForm.removeAt(index);\n }\n\n checkForErrors(value) {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido', ToastType.error);\n return true;\n } else if (value.tags.length == 0){\n this.toastService.toast('Pelo menos uma TAG é obrigatória', ToastType.error);\n return true;\n } else {\n return false;\n }\n }\n\n private getFormValue(){\n\n let value = this.form.value;\n\n if (value.id == null) {\n delete value.id;\n }\n\n value.nomeArquivo = value.nomeDoProcesso;\n for(let tag of value.tags){\n let campo = this.campos.find(c => c.nomeDescritivo == tag.nomeDescritivo)\n if(typeof campo !== 'undefined'){\n tag.nomeCampo = campo.nomeCampo;\n tag.argumento = tag.argumento == null ? null : tag.argumento.toString();\n }\n }\n for(let [i, filtro] of value.filtros.entries()){\n filtro.indice = i; \n let campo = this.campos.find(c => c.nomeDescritivo == filtro.campo);\n if(typeof campo !== 'undefined'){\n filtro.campo = campo.nomeCampo;\n }\n\n if(typeof filtro.operacao.valor === \"string\"){\n filtro.operacao.valor = filtro.operacao.valor.replaceAll(\"\\r\",\"\").split(\"\\n\");\n }\n \n }\n\n return value;\n\n }\n\n salvar(){\n\n let value = this.getFormValue()\n\n if(this.checkForErrors(value)){\n return;\n }\n\n console.log(value)\n console.log(JSON.stringify(value))\n\n if(typeof value.id === 'undefined'){\n this.apiXml.save(value).subscribe( res => {\n this.form.reset();\n this.router.navigateByUrl('/');\n });\n } else {\n this.apiXml.update(value).subscribe( res => {\n this.form.reset();\n this.router.navigateByUrl('/');\n });\n }\n\n\n }\n\n private checkFormErrors() {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.toastService.toast('Formulário esta inválido', ToastType.error);\n }\n }\n\n private createForm() {\n return this.fb.group({\n id: [undefined],\n nomeDoProcesso: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n periodicidade: [undefined, [Validators.required]],\n tagRaiz: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n tagSubraiz: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n tagItem: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n utm_Source: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n utm_Campaign: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n utm_Medium: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n tags: this.createTagsForm(),\n filtros: this.createFiltrosForm()\n });\n }\n\n get tagsForm():FormArray {\n return this.form && this.form.get('tags') as FormArray;\n }\n get filtrosForm():FormArray {\n return this.form && this.form.get('filtros') as FormArray;\n }\n\n get numFiltros(){\n return this.filtrosForm.controls.length;\n }\n\n get camposEscolhidos(){\n return this.tagsForm.value.filter(c => c.nomeDescritivo !== null)\n }\n\n private createTagsForm() {\n return this.fb.array([]);\n }\n\n private createFiltrosForm() {\n return this.fb.array([]);\n }\n\n private createTagForm() {\n return this.fb.group({\n nomeTag: [undefined, [Validators.required, Validators.pattern(/^\\S*$/)]],\n nomeCampo: [undefined],\n argumento: [undefined],\n nomeDescritivo: [undefined, [Validators.required]],\n filtro: [true, [Validators.required]],\n layout: [true, [Validators.required]]\n });\n }\n\n private createFiltroForm(operacao) {\n return this.fb.group({\n campo: [undefined, [Validators.required]],\n operacao: this.createOperacaoForm(),\n operacaoLogica: [operacao, [Validators.required]],\n });\n }\n\n private createOperacaoForm() {\n return this.fb.group({\n tipo: [undefined, [Validators.required]],\n valor: [undefined, [Validators.required]]\n });\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { XmlService } from './services/xml.service';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { CanComponentDeactivate } from 'src/app/services/guards/can-deactivate.guard';\nimport { TagItem } from 'src/app/models/api/xml/tag-item';\n\n@Component({\n selector: 'c-xml',\n templateUrl: './xml.component.html',\n styleUrls: ['./xml.component.scss'],\n providers: [\n XmlService\n ]\n})\nexport class XmlComponent implements OnInit, CanComponentDeactivate {\n\n private MENOR_PRECO_DO_PRODUTO: string = 'Menor Preço do Produto';\n\n constructor(\n public xmlService: XmlService,\n public confirmDialogService: ConfirmDialogService\n ) { }\n\n canDeactivate() {\n return this.xmlService.readonly ||\n this.xmlService.form.pristine ||\n this.confirmDialogService.confirm('Tem certeza que deseja sair sem salvar?');\n }\n\n ngOnInit() {\n }\n\n isArgumentField(elem: any){\n let selectedTag: TagItem = elem.value;\n\n if(selectedTag == null)\n return false;\n\n return selectedTag.nomeDescritivo == this.MENOR_PRECO_DO_PRODUTO;\n }\n\n getArgumentLabel(elem: any){\n let selectedTag: TagItem = elem.value;\n\n if(selectedTag == null)\n return \"\";\n\n if(selectedTag.nomeDescritivo == this.MENOR_PRECO_DO_PRODUTO)\n return \"Desconto\";\n }\n\n getArgumentInputType(elem: any){\n let selectedTag: TagItem = elem.value;\n\n if(selectedTag == null)\n return \"\";\n\n if(selectedTag.nomeDescritivo == this.MENOR_PRECO_DO_PRODUTO)\n return \"number\";\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Routes, RouterModule } from '@angular/router';\nimport { XmlComponent } from './xml.component';\nimport { CanDeactivateGuard } from 'src/app/services/guards/can-deactivate.guard';\nimport { XmlResolverService } from './services/xml-resolver.service';\nimport { AuthGuard } from 'src/app/services/guards/auth.guard';\n\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputModule } from 'src/app/ui/input/input.module';\nimport { SelectModule } from 'src/app/ui/select/select.module';\nimport { CheckboxModule } from 'src/app/ui/checkbox/checkbox.module';\nimport { RadioModule } from 'src/app/ui/radio/radio.module';\nimport { RangeModule } from 'src/app/ui/range/range.module';\nimport { CardModule } from 'src/app/ui/card/card.module';\nimport { IconModule } from 'src/app/ui/icon/icon.module';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\n\nconst routes: Routes = [\n {\n path: 'new',\n component: XmlComponent,\n resolve: {\n xml: XmlResolverService\n },\n canDeactivate: [\n CanDeactivateGuard\n ]\n },\n {\n path: ':id',\n component: XmlComponent,\n resolve: {\n xml: XmlResolverService\n },\n canDeactivate: [\n CanDeactivateGuard\n ]\n }\n];\n\n@NgModule({\n declarations: [XmlComponent],\n imports: [\n CommonModule,\n RouterModule.forChild(routes),\n SharedModule,\n InputModule,\n SelectModule,\n CheckboxModule,\n RadioModule,\n RangeModule,\n CardModule,\n IconModule,\n ModalModule,\n ]\n})\nexport class XmlModule { }\n","import { Injectable } from '@angular/core';\nimport { AbstractHttpService } from './http.service';\nimport { HttpHandler, HttpResponse } from '@angular/common/http';\nimport { SessionService } from './session.service';\nimport { map, finalize } from 'rxjs/operators';\nimport { IResponse, isResponse } from '../models/api/response.interface';\nimport { LoadingService, LoadingName } from './loading.service';\nimport { ToastService } from '../ui/toast/toast.service';\nimport { ToastType } from '../ui/toast/toast.model';\nimport { environment } from 'src/environments/environment';\nimport { AuthService } from './auth.service';\nimport { EMPTY } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n deps: [\n HttpHandler,\n SessionService,\n LoadingService,\n ToastService,\n AuthService\n ],\n useFactory: (\n httpHandler: HttpHandler,\n sessionService: SessionService,\n loadingService: LoadingService,\n toastService: ToastService,\n authService: AuthService,\n ) => {\n return (new ApiHttpClientService(\n httpHandler,\n sessionService,\n loadingService,\n toastService,\n authService\n ))\n .useToast()\n .useAuth()\n .useBaseUrl(environment.api);\n }\n})\nexport class ApiHttpClientService extends AbstractHttpService {\n\n private constructor(\n httpHandler: HttpHandler,\n private sessionService: SessionService,\n private loadingService: LoadingService,\n private toastService: ToastService,\n private authService: AuthService\n ) {\n super(httpHandler);\n }\n\n instanceFactory(handler: HttpHandler) {\n return new ApiHttpClientService(\n handler,\n this.sessionService,\n this.loadingService,\n this.toastService,\n this.authService\n ) as this;\n }\n\n unwrap(ref = 'unwrap') {\n return this.use((req, next) => {\n return next.handle(req).pipe(\n map(event => {\n if (event instanceof HttpResponse) {\n if (isResponse(event.body)) {\n return event.clone>({\n body: event.body.data || null\n });\n } else {\n throw new Error('O objeto retornado pela api não é do tipo IResponse');\n }\n }\n })\n );\n }, ref);\n }\n\n unwrapMessage(ref = 'unwrapMessage') {\n return this.use((req, next) => {\n return next.handle(req).pipe(\n map(event => {\n if (event instanceof HttpResponse) {\n if (isResponse(event.body)) {\n return event.clone({\n body: event.body.message || null\n });\n } else {\n throw new Error('O objeto retornado pela api não é do tipo IResponse');\n }\n }\n })\n );\n }, ref);\n }\n\n useAuth(ref = 'auth') {\n return this.use((req, next) => {\n const session = this.sessionService.getSession();\n\n if (session && session.accessToken) {\n return next.handle(\n req.clone({\n setHeaders: { Authorization: `Bearer ${session.accessToken}` },\n })\n );\n }\n\n console.warn('Token não foi adicionado pois usuário esta sem sessao', session);\n return next.handle(req);\n }, ref);\n }\n\n useToast(ref = 'toast') {\n return this.useSideEffect({\n next: event => {\n if (event instanceof HttpResponse) {\n if (isResponse(event.body)) {\n if (event.body.message) { this.toastService.toast(event.body.message); }\n } else {\n console.warn('O objeto retornado pela api não é do tipo IResponse');\n }\n }\n },\n error: async (error) => {\n console.error('erro na resposta da api', error);\n if (error && isResponse(error.error) && error.error.message) {\n this.toastService.toast(error.error.message, ToastType.error);\n } else if (error && error.error instanceof Blob) {\n const obj = await this.blobJsonToObj(error.error);\n this.toastService.toast(obj.message, ToastType.error);\n } else {\n this.toastService.toast('Ocorreu erro na requisição!', ToastType.error);\n }\n }\n }, () => { }, ref);\n }\n\n useLoading(name?: LoadingName, delay?: number, ref = 'loading') {\n return this.use((req, next) => {\n const loadingRef = this.loadingService.show(name, delay);\n\n return next.handle(req).pipe(\n finalize(() => loadingRef && loadingRef.dismiss())\n );\n }, ref);\n }\n\n cancelRequestWithoutPermission(permission: string, ref = 'cancelRequest') {\n return this.use((req, next) => {\n if (this.authService.hasPermission(permission)) {\n return next.handle(req);\n } else {\n console.warn(`A URL '${req.url}' de requisição foi bloqueada pela falta de permissão`, req);\n return EMPTY;\n }\n }, ref);\n }\n\n private blobJsonToObj(blob: Blob) {\n return new Promise<{ message: string; }>((resolve) => {\n const reader = new FileReader();\n\n reader.onload = (e: any) => {\n const text = e.target.result as string;\n resolve(JSON.parse(text));\n };\n\n reader.readAsText(blob);\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { tap } from 'rxjs/operators';\nimport { AuthService } from '../../auth.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiAutenticacaoService {\n\n private baseUrl = 'Autenticacao';\n private controller: ApiHttpClientService;\n private controllerText: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService,\n private authServ: AuthService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n this.controllerText = this.api\n .useBaseUrl(this.baseUrl);\n }\n\n auth(login: string, senha: string) {\n return this.controller\n .useLoading('login')\n .unwrap()\n .post('loginv2', {\n login,\n senha\n }).pipe(tap((res) => {\n this.authServ.login(res, login);\n }));\n }\n\n getTerms(): Observable {\n return this.controllerText\n .useLoading('login')\n .unwrap()\n .get('Termos/terms-of-use');\n }\n\n postTerms(body:string) {\n return this.controllerText\n .useLoading('login')\n .unwrap()\n .put('Termos/terms-of-use', {text:body});\n }\n\n getPrivacy(): Observable {\n return this.controllerText\n .useLoading('login')\n .unwrap()\n .get('Termos/terms-of-privacity');\n }\n\n postPrivacy(body:string) {\n return this.controllerText\n .useLoading('login')\n .unwrap()\n .put('Termos/terms-of-privacity', {text:body});\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApiHttpClientService } from \"../../api-http-client.service\";\nimport { AuthService } from \"../../auth.service\";\nimport { environment } from \"src/environments/environment\";\nimport { Estado } from \"src/app/models/api/autenticacao/estado\";\nimport { Cidade } from \"src/app/models/api/autenticacao/cidade\";\nimport { HttpParams } from \"@angular/common/http\";\nimport { shareReplay, map } from \"rxjs/operators\";\nimport { Observable } from \"rxjs\";\nimport { CidadeFilial } from \"src/app/models/api/dados-fiscais/cidadeFilial\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ApiEstadoService {\n private baseUrl = \"Estado\";\n private controller: ApiHttpClientService;\n\n private getAllCache$: Observable;\n\n constructor(\n private api: ApiHttpClientService,\n private authServ: AuthService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n getOnlyStates() {\n return this.controller.unwrap().get(\"BuscarApenasEstado\");\n }\n\n getAll() {\n return this.controller.unwrap().get(\"BuscaPorNome\");\n }\n\n getAllWithCache() {\n if (!this.getAllCache$) {\n this.getAllCache$ = this.getAll().pipe(shareReplay(1));\n }\n\n return this.getAllCache$;\n }\n getByName(name: string) {\n const params = new HttpParams().append(\"nome\", name);\n return this.controller.unwrap().get(\"BuscaPorNome\", { params });\n }\n\n getCityByState(stateId: string, cityName: string) {\n const params = new HttpParams()\n .append(\"EstadoId\", stateId)\n .append(\"NomeCidade\", cityName);\n return this.controller\n .unwrap()\n .get(\"BuscaCidadePorEstado\", { params });\n }\n\n getCityById(cityId: string) {\n const params = new HttpParams().append(\"cidadeId\", cityId);\n return this.controller.unwrap().get(\"BuscaCidadePorId\", { params });\n }\n\n supplierGetByName(fornecedorId: string, name?: string) {\n const params = new HttpParams()\n .append(\"fornecedorId\", fornecedorId)\n .append(\"nome\", name);\n return this.controller\n .unwrap()\n .get(\"BuscaPorNome/Fornecedor\", { params });\n }\n\n getBranchesBySupplier(fornecedorId: string) {\n const params = new HttpParams().append(\"fornecedorId\", fornecedorId);\n return this.controller\n .unwrap()\n .get(\"BuscaFiliaisPorCidadeDoFornecedor/Fornecedor\", { params });\n }\n\n supplierGetCityByState(\n fornecedorId: string,\n stateId: string,\n cityName?: string\n ) {\n const params = new HttpParams()\n .append(\"fornecedorId\", fornecedorId)\n .append(\"EstadoId\", stateId)\n .append(\"NomeCidade\", cityName);\n return this.controller\n .unwrap()\n .get(\"BuscaCidadePorEstado/Fornecedor\", { params });\n }\n\n insert(data: Estado) {\n return this.controller.unwrap().post(\"\", data);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Fornecedor, FornecedorBusca } from 'src/app/models/api/autenticacao/fornecedor';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiFornecedorService {\n\n private baseUrl = 'Fornecedor';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n find(query: {\n skip: number,\n take: number,\n filtro: string\n }) {\n return this.controller.useLoading().post>('/busca', query);\n }\n\n get(id: string) {\n return this.controller.useLoading().unwrap().get(id);\n }\n\n insert(data: Fornecedor) {\n return this.controller.useLoading().unwrap().post('', data);\n }\n\n update(data: Fornecedor) {\n return this.controller.useLoading().unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n\n redefinePassword(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().put(`${id}`, {});\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Funcionario } from 'src/app/models/api/autenticacao/funcionario';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\nimport { Usuario } from 'src/app/models/api/autenticacao/usuario';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiFuncionarioService {\n\n private baseUrl = 'Funcionario';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll(query?: QueryFilter) {\n const filtro = query ? query.query : '';\n delete query.query;\n\n return this.controller\n .useLoading()\n .post>('busca', {\n filtro,\n skip: 0,\n take: 0,\n filtrosPesquisados: [\n 0,\n 1\n ],\n ...query\n });\n }\n\n getById(id: string) {\n return this.controller\n .useLoading()\n .unwrap()\n .get(id);\n }\n\n getUserByEmployeeId(id: string) {\n return this.controller\n .useLoading()\n .unwrap()\n .get(`Usuario/${id}`);\n }\n\n insert(data: Funcionario) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: Funcionario) {\n return this.controller.unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { GrupoPermissao } from 'src/app/models/api/autenticacao/grupo-permissao.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiGrupoPermissaoService {\n\n private baseUrl = 'GrupoPermissao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n get() {\n return this.controller.useLoading().unwrap().get('');\n }\n\n getByName(name: string) {\n return this.controller.useLoading().unwrap().get(`nome?nome=${name}`);\n }\n\n update(data: GrupoPermissao) {\n return this.controller.useLoading().put('', data);\n }\n\n create(data: GrupoPermissao) {\n return this.controller.useLoading().post('', data);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { AuthService } from '../../auth.service';\nimport { environment } from 'src/environments/environment';\nimport { Permissao } from 'src/app/models/api/autenticacao/permissao';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPermissaoService {\n\n private baseUrl = 'Permissao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService,\n private authServ: AuthService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n insert(data: Permissao) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: Permissao) {\n return this.controller.unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Usuario } from 'src/app/models/api/autenticacao/usuario';\nimport { AlterarSenha } from 'src/app/models/api/autenticacao/alterar-senha.interface';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiUsuarioService {\n\n private baseUrl = 'Usuario';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.autenticacao)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll(query?: QueryFilter) {\n const filtro = query ? query.query : '';\n delete query.query;\n\n return this.controller\n .useLoading()\n .post>('busca', {\n filtro,\n skip: 0,\n take: 0,\n filtrosPesquisados: [\n 0,\n 1\n ],\n ...query\n });\n }\n\n getById(id: string) {\n return this.controller\n .useLoading()\n .unwrap()\n .get(id);\n }\n\n getByLogin(login: string) {\n return this.controller\n .useLoading()\n .unwrap()\n .get(`busca/${login}`);\n }\n\n insert(data: Usuario) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: Usuario) {\n return this.controller.unwrap().put('', data);\n }\n\n changePassword(data: AlterarSenha) {\n return this.controller.useLoading().put('alterarSenha', data);\n }\n\n changePasswordWithCode(data: AlterarSenha, code: string) {\n return this.controller.useLoading().put('redefinirSenha', { ...data, codigo: code });\n }\n\n forgetPassword(login: string, email: string) {\n return this.controller.useLoading().post('esqueciSenha', { login, email });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { CategoriaFornecedor } from 'src/app/models/api/comercial/categoria-fornecedor';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCategoriaFornecedorService {\n private baseUrl = 'CategoriaFornecedor';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n insert(data: CategoriaFornecedor) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: CategoriaFornecedor) {\n return this.controller.unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { CategoriaFornecedor } from 'src/app/models/api/comercial/categoria-fornecedor';\nimport { Classificacao } from 'src/app/models/api/comercial/classificacao';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiClassificacaoService {\n private baseUrl = 'Classificacao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Cluster } from 'src/app/models/api/comercial/cluster';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiClusterService {\n private baseUrl = 'Cluster';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Colecao } from 'src/app/models/api/comercial/colecao';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiColecaoService {\n private baseUrl = 'Colecao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { CvprmModa } from 'src/app/models/api/comercial/cvprm-moda';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCvprmModaService {\n private baseUrl = 'CVPRMModa';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { DadosComerciais } from 'src/app/models/api/comercial/dados-comerciais';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDadosComerciaisService {\n\n private baseUrl = 'DadosComerciais';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n get(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().get(id);\n }\n\n // getAll() {\n // return this.controller.get>('');\n // }\n\n insertOrUpdate(data: DadosComerciais) {\n return this.controller.unwrap().post('', data);\n }\n\n // delete(id: string) {\n // if (!id) { throw new Error('Invalid Argument'); }\n // return this.controller.delete(id);\n // }\n\n saveDraft(draft: Partial) {\n return this.controller.unwrap().post('draft', draft);\n }\n\n getTemplateOmni() {\n return this.controller.useLoading().get('DownloadPlanilhaTemplateOmni', { responseType: 'blob' });\n }\n\n importSpreadSheetOmni(res: object) {\n return this.controller.unwrap().useLoading().post('ImportarOmni', res);\n }\n\n submitCommercialForReview(data: DadosComerciais) {\n return this.controller.unwrap().post('EnviarParaRevisao', data);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Departamento } from 'src/app/models/api/comercial/departamento';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDepartamentoService {\n private baseUrl = 'Departamento';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Epoca } from 'src/app/models/api/comercial/epoca';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEpocaService {\n private baseUrl = 'Epoca';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Exclusivo } from 'src/app/models/api/comercial/exclusivo';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiExclusivoService {\n private baseUrl = 'Exclusivo';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Exercicio } from 'src/app/models/api/comercial/exercicio';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiExercicioService {\n private baseUrl = 'Exercicio';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { FaixaPreco } from 'src/app/models/api/comercial/faixa-preco';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiFaixaPrecoService {\n private baseUrl = 'FaixaPreco';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { GrupoComprador } from 'src/app/models/api/comercial/grupo-comprador';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiGrupoCompradorService {\n private baseUrl = 'GrupoComprador';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n insert(data: GrupoComprador) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: GrupoComprador) {\n return this.controller.unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Grupo } from 'src/app/models/api/comercial/grupo';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiGrupoService {\n private baseUrl = 'Grupo';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n insert(data: Grupo) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Grupo) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Hierarquia } from 'src/app/models/api/comercial/hierarquia';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiHierarquiaService {\n private baseUrl = 'Hierarquia';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n insert(data: Hierarquia) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Hierarquia) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Licenca } from 'src/app/models/api/comercial/licenca';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLicencaService {\n private baseUrl = 'Licenca';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n insert(data: Licenca) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Licenca) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Licenciador } from 'src/app/models/api/comercial/licenciador';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLicenciadorService {\n private baseUrl = 'Licenciador';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n insert(data: Licenciador) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Licenciador) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Linha } from 'src/app/models/api/comercial/linha';\nimport { IResponse } from 'src/app/models/api/response.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLinhaService {\n private baseUrl = 'Linha';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n insert(data: Linha) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Linha) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`DadosComerciais/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { NormaSuprimento } from 'src/app/models/api/comercial/norma-suprimento';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiNormaSuprimentoService {\n private baseUrl = 'NormaSuprimento';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Padronagem } from 'src/app/models/api/comercial/padronagem';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPadronagemService {\n private baseUrl = 'Padronagem';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Dinamica } from 'src/app/models/api/comercial/pricefy-dinamica';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPricefyDinamicasService {\n private baseUrl = 'DadosPricefy';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('ObterDinamicas');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Formato } from 'src/app/models/api/comercial/pricefy-formato';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPricefyFormatosService {\n private baseUrl = 'DadosPricefy';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('ObterFormatos');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Tema } from 'src/app/models/api/comercial/pricefy-tema';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPricefyTemasService {\n private baseUrl = 'DadosPricefy';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('ObterTemas');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { TipoMaterial } from 'src/app/models/api/comercial/tipo-material';\nimport { StatusComercial } from 'src/app/models/api/comercial/status-comercial';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiStatusComercialService {\n private baseUrl = 'StatusComercial';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { TipoMaterial } from 'src/app/models/api/comercial/tipo-material';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiTipoMaterialService {\n private baseUrl = 'TipoMaterial';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n insert(data: TipoMaterial) {\n return this.controller.unwrap().post('', data);\n }\n\n update(data: TipoMaterial) {\n return this.controller.unwrap().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { TipoPadronagem } from 'src/app/models/api/comercial/tipo-padronagem';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiTipoPadronagemService {\n private baseUrl = 'TipoPadronagem';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.comercial)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApiHttpClientService } from \"../../api-http-client.service\";\nimport { environment } from \"src/environments/environment\";\nimport { CustoPrecoEstadoAliquota } from \"src/app/models/api/custo-preco/custo-preco.interface\";\nimport { Observable, of } from \"rxjs\";\nimport { HttpParams } from \"@angular/common/http\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ApiCustoPrecoEstadoService {\n private baseUrl = \"Estado\";\n private controller: ApiHttpClientService;\n\n constructor(private api: ApiHttpClientService) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.custoPreco)\n .useBaseUrl(this.baseUrl);\n }\n\n getAliquotasByState(id: string, isForeign: boolean, fornecedorId: string): any {\n if (!id) {\n throw new Error(\"Invalid Argument\");\n }\n \n const params = new HttpParams()\n .set('uf', id)\n .set('estrangeiro', isForeign.toString())\n .set('fornecedorId', fornecedorId);\n\n return this.controller.unwrap().get('UF', {params});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { DadosBasicos } from 'src/app/models/api/dados-basicos/dados-basicos';\nimport { environment } from 'src/environments/environment';\nimport { CustoPreco } from 'src/app/models/api/custo-preco/custo-preco.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCustoPrecoService {\n\n private baseUrl = 'CustoPreco';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.custoPreco)\n .useBaseUrl(this.baseUrl);\n }\n\n get(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(id);\n }\n\n insertOrUpdate(data: CustoPreco) {\n return this.controller.unwrap().useLoading().post('', data);\n }\n\n validate(data: CustoPreco) {\n return this.controller.unwrap().useLoading().post('ValidarCadastro', data);\n }\n\n saveDraft(draft: CustoPreco) {\n return this.controller.unwrap().useLoading().post('draft', draft);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.custoPreco)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`CustoPreco/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { HttpParams } from '@angular/common/http';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { DadosBasicos } from 'src/app/models/api/dados-basicos/dados-basicos';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDadosBasicosService {\n\n private baseUrl = 'DadosBasicos';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosBasicos)\n .useBaseUrl(this.baseUrl);\n }\n\n get(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(id);\n }\n\n getAll() {\n return this.controller.get>('');\n }\n\n getWithFilter(filter: { query?: string, skip?: number, take?: number }) {\n const params = new HttpParams()\n .set('query', filter.query)\n .set('skip', '' + filter.skip)\n .set('take', '' + filter.take);\n\n return this.controller.get>('BuscaComFiltos', { params });\n }\n\n validateEan(ean: string, productId: string) {\n const params = new HttpParams()\n .set('id', productId)\n .set('ean', ean);\n\n return this.controller.unwrapMessage().get('ValidaEan', { params });\n }\n\n validateDun(dun: string, productId: string) {\n const params = new HttpParams()\n .set('id', productId)\n .set('dun', dun);\n\n return this.controller.unwrapMessage().get('ValidateDun', { params });\n }\n\n validateGS1(value: string) {\n const params = new HttpParams()\n .set('valor', value);\n\n return this.controller.unwrap().get('ValidaGS1', { params });\n }\n\n insertOrUpdate(data: DadosBasicos) {\n return this.controller.unwrap().useLoading().post('', data);\n }\n\n validate(data: DadosBasicos) {\n return this.controller.unwrap().useLoading().post('ValidarCadastro', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n\n saveDraft(draft: DadosBasicos) {\n return this.controller.unwrap().useLoading().post('draft', draft);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosBasicos)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`DadosBasicos/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { Marca } from 'src/app/models/api/dados-basicos/marca';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiMarcaLicensaService {\n\n private baseUrl = 'MarcaLicenca';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosBasicos)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.useLoading().get>('');\n }\n\n insert(data: Marca) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Marca) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { OrigemCst } from 'src/app/models/api/dados-fiscais/origem-cst';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiOrigemCstService {\n private baseUrl = 'OrigemCST';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosBasicos)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { HttpParams } from '@angular/common/http';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { UnidadeFaturamento } from 'src/app/models/api/dados-basicos/unidade-faturamento';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiUnidadeFaturamentoService {\n\n private baseUrl = 'UnidadeFaturamento';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosBasicos)\n .useBaseUrl(this.baseUrl);\n }\n\n // get(id: string) {\n // if (!id) { throw new Error('Invalid Argument'); }\n // return this.controller.unwrap().get(id);\n // }\n\n getAll() {\n return this.controller.get>('');\n }\n\n insert(data: UnidadeFaturamento) {\n return this.controller.post('', data);\n }\n\n update(data: UnidadeFaturamento) {\n return this.controller.put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { environment } from 'src/environments/environment';\nimport { map } from 'rxjs/operators';\nimport { EnumCampoDinamicoValidationType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-validation-type.enum';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCampoDinamicoService {\n\n private baseUrl = 'CampoDinamico';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n get() {\n return this.controller.useLoading().unwrap().get('');\n }\n\n getById(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().unwrap().get(`buscaPorId/${id}`).pipe(\n map( data => this.createMinMaxCampoDinamico(data))\n );\n }\n\n getBySubnivel(subnivelId: string) {\n if (!subnivelId) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().unwrap().get(subnivelId).pipe(\n map(data => {\n for (const d of data) {\n // altera por referencia\n this.createMinMaxCampoDinamico(d);\n }\n\n return data;\n })\n );\n }\n\n insert(data: CampoDinamico) {\n return this.controller.useLoading().unwrap().post('', data);\n }\n\n update(data: CampoDinamico) {\n return this.controller.useLoading().unwrap().put('', data);\n }\n\n // delete(id: string) {\n // if (!id) { throw new Error('Invalid Argument'); }\n // return this.controller.useLoading().delete(id);\n // }\n\n /**\n * @param data campo dinamico passado por referencia para alteração\n * @description este processo de conversão é realido neste service somente quando o dado vem do backend\n * no momento de envio ao backend deve ser enviado sem estes dados (min e max) e usar as validações ao invez disso)\n */\n private createMinMaxCampoDinamico(data: CampoDinamico) {\n if (data) {\n for (const v of data.dynamicFieldValidator) {\n if (v.type === EnumCampoDinamicoValidationType.Min) {\n // tslint:disable-next-line: no-string-literal\n data['min'] = v.value;\n }\n if (v.type === EnumCampoDinamicoValidationType.Max) {\n // tslint:disable-next-line: no-string-literal\n data['max'] = v.value;\n }\n }\n }\n\n return data;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { Categoria } from 'src/app/models/api/dados-especificos/categoria';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCategoriaService {\n\n private baseUrl = 'Categoria';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getByDepartamentoId(departamentoId: string) {\n if (!departamentoId) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(departamentoId);\n }\n\n getAll() {\n return this.controller.useLoading().get>('');\n }\n\n getAllAtivosInativos() {\n return this.controller.useLoading().get>('/BuscarAtivosInativos');\n }\n\n insert(data: Categoria) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Categoria) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { CorGrade } from 'src/app/models/api/dados-especificos/cor-grade';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCorGradeService {\n\n private baseUrl = 'CorGrade';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.get>('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { DadosEspecificos } from 'src/app/models/api/dados-especificos/dados-especificos';\nimport { environment } from 'src/environments/environment';\nimport { HttpParams } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDadosEspecificosService {\n\n private baseUrl = 'DadosEspecificos';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n get(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(id);\n }\n\n getAll() {\n return this.controller.get>('');\n }\n\n validateEan(ean: string, productId: string) {\n const params = new HttpParams()\n .set('id', productId)\n .set('ean', ean);\n\n return this.controller.unwrapMessage().get('ValidaEan', { params });\n }\n\n validateDun(dun: string, productId: string) {\n const params = new HttpParams()\n .set('id', productId)\n .set('dun', dun);\n\n return this.controller.unwrapMessage().get('ValidateDun', { params });\n }\n\n insertOrUpdate(data: DadosEspecificos) {\n return this.controller.unwrap().useLoading().post('', data);\n }\n\n validate(data: DadosEspecificos) {\n return this.controller.unwrap().useLoading().post('ValidarCadastro', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.delete(id);\n }\n\n saveDraft(draft: DadosEspecificos) {\n return this.controller.unwrap().useLoading().post('draft', draft);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { Departamento } from 'src/app/models/api/dados-especificos/departamento';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDepartamentoService {\n\n private baseUrl = 'Departamento';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.useLoading().get>('');\n }\n\n getAllAtivosInativos() {\n return this.controller.useLoading().get>('/BuscarAtivosInativos');\n }\n\n insert(data: Departamento) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Departamento) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { CampoDinamico } from 'src/app/models/api/dados-especificos/campo-dinamico';\nimport { environment } from 'src/environments/environment';\nimport { map } from 'rxjs/operators';\nimport { EnumCampoDinamicoValidationType } from 'src/app/models/api/dados-especificos/enum-campo-dinamico-validation-type.enum';\nimport { FormDinamico } from 'src/app/models/api/dados-especificos/form-dinamico';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiFormDinamicoService {\n\n private baseUrl = 'CampoDinamico';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getById(query: {\n departamentoId: string;\n categoriaId?: string;\n subnivelId?: string;\n }) {\n return this.controller.useLoading().unwrap().get('BuscaPor', {\n params: {\n departamentoId: query.departamentoId,\n categoriaId: query.categoriaId || '',\n subnivelId: query.subnivelId || ''\n }\n });\n }\n\n insertOrUpdate(data: FormDinamico) {\n return this.controller.useLoading().unwrap().post('VincularCom', data);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CategoriaGlobal } from 'src/app/models/api/dados-especificos/categoria-global.interface';\nimport { globalCategories } from 'src/app/shared/data/global-categories';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCategoriaGlobalService {\n\n constructor() {\n }\n\n getAll() {\n return new Observable((subscribe => {\n subscribe.next(globalCategories);\n }));\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`DadosEspecificos/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { environment } from 'src/environments/environment';\nimport { HttpParams } from '@angular/common/http';\nimport { PDM } from 'src/app/models/api/dados-especificos/pdm';\nimport { CampoRegra } from 'src/app/models/api/dados-especificos/regra-pdm';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiPDMService {\n\n private baseUrl = 'PDM';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getById(query: {\n departamentoId: string;\n categoriaId?: string;\n subnivelId?: string;\n }) {\n if (!query.departamentoId) { throw new Error('Invalid Argument'); }\n\n return this.controller.unwrap().useLoading().get('BuscaPorId', {\n params: {\n departamentoId: query.departamentoId,\n categoriaId: query.categoriaId || '',\n subnivelId: query.subnivelId || ''\n }\n });\n }\n\n getCamposRegra(query: {\n departamentoId: string;\n categoriaId?: string;\n subnivelId?: string;\n }) {\n if (!query.departamentoId) { throw new Error('Invalid Argument'); }\n\n return this.controller.unwrap().useLoading().get('', {\n params: {\n departamentoId: query.departamentoId,\n categoriaId: query.categoriaId || '',\n subnivelId: query.subnivelId || ''\n }\n });\n }\n\n insertOrUpdate(pdm) {\n const body = pdm;\n return this.controller.unwrap().useLoading().post('', body);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { Subnivel } from 'src/app/models/api/dados-especificos/subnivel';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiSubnivelService {\n\n private baseUrl = 'Subnivel';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getByCategoria(categoriaId: string) {\n if (!categoriaId) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(categoriaId);\n }\n\n getAll() {\n return this.controller.useLoading('waves').get>('');\n }\n\n getAllAtivosInativos() {\n return this.controller.useLoading('waves').get>('/BuscarAtivosInativos');\n }\n\n insert(data: Subnivel) {\n return this.controller.useLoading().post('', data);\n }\n\n update(data: Subnivel) {\n return this.controller.useLoading().put('', data);\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TamanhoGrade } from 'src/app/models/api/dados-especificos/tamanho-grade';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiTamanhoGradeService {\n\n private baseUrl = 'TamanhoGrades';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosEspecificos)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.get>('');\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApiHttpClientService } from \"../../api-http-client.service\";\nimport { environment } from \"src/environments/environment\";\nimport { DadosFiscais } from \"src/app/models/api/dados-fiscais/dados-fiscais\";\nimport { EstadoOrdenado } from \"src/app/models/api/dados-fiscais/estado\";\nimport { Observable } from \"rxjs\";\nimport { CidadeFilial } from \"src/app/models/api/dados-fiscais/cidadeFilial\";\nimport { HttpParams } from \"@angular/common/http\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ApiDadosFiscaisService {\n private baseUrl = \"DadosFiscais\";\n private controller: ApiHttpClientService;\n\n constructor(private api: ApiHttpClientService) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n }\n\n get(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.unwrap().useLoading().get(id);\n }\n\n // getAll() {\n // return this.controller.get>('');\n // }\n\n insertOrUpdate(data: DadosFiscais) {\n return this.controller.unwrap().useLoading().post(\"\", data);\n }\n\n validate(data: DadosFiscais) {\n return this.controller\n .unwrap()\n .useLoading()\n .post(\"ValidarCadastro\", data);\n }\n\n // delete(id: string) {\n // if (!id) { throw new Error('Invalid Argument'); }\n // return this.controller.delete(id);\n // }\n\n saveDraft(draft: DadosFiscais) {\n return this.controller\n .unwrap()\n .useLoading()\n .post(\"draft\", draft);\n }\n\n getOrderedStates() {\n return this.controller\n .unwrap()\n .useLoading()\n .get(\"BuscarEstadosOrdenados\");\n }\n\n getSupplierBranchesById(fornecedorId: string) {\n const params = new HttpParams().append(\"fornecedorId\", fornecedorId);\n\n return this.controller\n .unwrap()\n .useLoading()\n .get(\"BuscaFiliaisPorCidadeDoFornecedor\", { params });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Grupo } from 'src/app/models/api/dados-fiscais/grupo';\nimport { HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { shareReplay, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiGrupoService {\n\n private baseUrl = 'Grupo';\n private controller: ApiHttpClientService;\n private getAllCache$: Observable;\n\n\n constructor(\n private api: ApiHttpClientService,\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n getGrupoByExcecao(idExcecao: string) {\n const params = new HttpParams().append('excecao', idExcecao);\n return this.controller.unwrap().get('', { params });\n }\n\n getAllWithCache() {\n if (!this.getAllCache$) {\n this.getAllCache$ = this.getAll().pipe(\n shareReplay(1)\n );\n }\n\n return this.getAllCache$;\n }\n\n getGrupoByExcecaoWithCache(idExcecao: string) {\n return this.getAllWithCache().pipe(\n map( grupos => grupos.filter( g => g.validoPara.includes(idExcecao)))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`DadosFiscais/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { NcmDescricao } from 'src/app/models/api/dados-fiscais/ncm-descricao';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiNCMDescricaoService {\n\n private baseUrl = 'NcmDescricao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n }\n\n search(ncm: string) {\n if (!ncm) { throw new Error('Invalid Argument'); }\n\n return this.controller.unwrap().useLoading().get(ncm);\n }\n\n getAll() {\n return this.controller.unwrap().useLoading().get('');\n }\n\n // não usado\n // insertOrUpdate(data: NcmDescricao[]) {\n // return this.controller.unwrap().useLoading().post('', data);\n // }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { TipoExcecao } from 'src/app/models/api/dados-fiscais/tipo-excecao';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiTipoExcecaoService {\n\n private baseUrl = 'TipoExcecao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService,\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApiHttpClientService } from \"../../api-http-client.service\";\nimport { environment } from \"src/environments/environment\";\nimport { TributacaoCST } from \"src/app/models/api/dados-fiscais/tributacao-cst\";\nimport { Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ApiTributacaoCSTService {\n private baseUrl = \"TributacaoCST\";\n private baseUrlImposto = \"TributacaoCSTImposto\";\n private controller: ApiHttpClientService;\n private controllerImposto: ApiHttpClientService;\n\n constructor(private api: ApiHttpClientService) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrl);\n \n this.controllerImposto = this.api\n .useBaseUrl(environment.microservice.dadosFiscais)\n .useBaseUrl(this.baseUrlImposto);\n\n }\n\n getAll() {\n return this.controller.unwrap().get('');\n }\n\n getAllImposto() {\n return this.controllerImposto.unwrap().get('');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Produto } from 'src/app/models/api/dados-produto/produto';\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiDadosProdutosService {\n\n private baseUrl = 'DadosProdutos';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosProdutos)\n .useBaseUrl(this.baseUrl);\n }\n\n createProductId() {\n return this.controller.unwrap().useLoading().post('', null);\n }\n\n get(id: string) {\n return this.controller.unwrap().useLoading().get(id);\n }\n\n assignResponsible(id: string) {\n return this.controller.unwrap().useLoading().post(`AtribuirResponsavel/${id}`, {});\n }\n\n delete(id: string) {\n if (!id) { throw new Error('Invalid Argument'); }\n return this.controller.useLoading().delete(id);\n // return of(null);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { ApiHttpClientService } from \"../../api-http-client.service\";\nimport { environment } from \"src/environments/environment\";\nimport {\n QueryFilter,\n SortedColumn,\n} from \"src/app/models/api/query/query-filter.interface\";\nimport { IResponse } from \"src/app/models/api/response.interface\";\nimport { DashboardFornecedor } from \"src/app/models/api/dashboard-fornecedor/dashboard-fornecedor\";\nimport { IElasticTerm } from \"src/app/models/api/elastic/elastic-term.interface\";\nimport { IElasticSortedColumn } from \"src/app/models/api/elastic/elastic-sorted-column.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ApiElasticDashboardService {\n private baseUrl = \"Elastic\";\n private controller: ApiHttpClientService;\n\n constructor(private api: ApiHttpClientService) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.dadosProdutos)\n .useBaseUrl(this.baseUrl);\n }\n\n getDraft(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarRascunho\")\n .post>(\n \"Rascunho\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getResponsavelTodosEmRevisao(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"Responsavel/EmRevisao\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getResponsavelTodosIntegrados(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"Responsavel/Integrados\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getTodosResponsavel(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"Responsavel/Todos\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewTodosResponsavel(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"Responsavel/EmRevisao\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewComercialRascunho(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao/ComercialRascunho\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewFiscal(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao/Fiscal\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewCustoPreco(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao/CustoPreco\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewTodos(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewNovos(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao/Novos\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getReviewIntegrados(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarEmRevisao\")\n .post>(\n \"EmRevisao/Integrados\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getInconsistencyCommercial(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\n \"rhcdm.dadosprodutos.listarInconsistencias\"\n )\n .post>(\n \"Inconsistencias/Comercial\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getInconsistencySupplier(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\n \"rhcdm.dadosprodutos.listarInconsistencias\"\n )\n .post>(\n \"Inconsistencias/Fornecedor\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getInconsistency(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\n \"rhcdm.dadosprodutos.listarInconsistencias\"\n )\n .post>(\n \"Inconsistencias\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n getRegistered(query?: QueryFilter) {\n return this.controller\n .useLoading()\n .cancelRequestWithoutPermission(\"rhcdm.dadosprodutos.listarCadastrados\")\n .post>(\n \"Cadastrados\",\n this.convertQueryFilterToQueryFilterElastic(query)\n );\n }\n\n private convertQueryFilterToQueryFilterElastic(query?: QueryFilter) {\n const terms = this.convertColumnsToElasticTerms(\n query.query,\n query.filteredColumns\n );\n const sortedColumns = this.convertSortedColumnsToElasticSort(\n query.sortedColumns\n );\n\n const elasticQuery = {\n query: {\n bool: {\n must: {\n bool: {\n should: terms,\n },\n },\n },\n },\n from: query.skip,\n size: query.take,\n sort: sortedColumns,\n };\n\n return elasticQuery;\n }\n\n private convertColumnsToElasticTerms(value: string, columns: string[]) {\n if (value && columns) {\n return columns.map((column) => {\n const term: IElasticTerm = {\n match: {},\n };\n\n term.match[column] = value;\n\n return term;\n });\n }\n\n return [];\n }\n\n private convertSortedColumnsToElasticSort(columns: SortedColumn) {\n if (columns) {\n const sortedColumns = new Array();\n\n for (const column of Object.keys(columns)) {\n const sortedColumn = new Object() as IElasticSortedColumn;\n sortedColumn[column] = columns[column] == 1 ? \"asc\" : \"desc\";\n\n sortedColumns.push(sortedColumn);\n }\n\n return sortedColumns;\n }\n\n return [];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { HistoricoAprovarOuReprovar } from 'src/app/models/api/historico/historico-approvar-reprovar.interface';\nimport { HistoricoNovaMensagem } from 'src/app/models/api/historico/historico-nova-mensagem.interface';\nimport { HistoricoAprovarOuReprovarNovaAba } from 'src/app/models/api/historico/historico-approvar-reprovar-nova-aba.interface';\nimport { HistoricoNovo } from 'src/app/models/api/historico/historico-novo.interface';\nimport { EnumAba } from 'src/app/models/api/produto/aba.enum';\nimport { Historico } from 'src/app/models/api/historico/historico.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiHistoricoService {\n\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.historico);\n }\n\n /**\n * Create a answer to historic\n */\n createAsnwer(data: HistoricoNovaMensagem) {\n return this.controller.useLoading().unwrap().post(`Historico/AdicionarNovaMensagem`, data);\n }\n\n /**\n * Change the tab approved status if the tab exists\n * To use this method the tab need be added before\n */\n approveOrReproveTab(data: HistoricoAprovarOuReprovar) {\n return this.controller.useLoading().unwrap().post(`Historico/AprovarDesaprovarAba`, data);\n }\n\n /**\n * If the historic exists and the tab not, create a new tab on historic\n */\n approveOrReproveNewTab(historicId: string, reason: string, tab: EnumAba, approved: boolean, idFornecedor: string, referencia: string) {\n const data: HistoricoAprovarOuReprovarNovaAba = {\n historicoId: historicId,\n aprovado: approved,\n aba: tab,\n fornecedorId: idFornecedor,\n referencia: referencia,\n mensagensList: [\n {\n mensagem: reason\n }\n ]\n };\n\n return this.controller.useLoading().unwrap().post(`Historico/AdicionarNovaAba`, data);\n }\n\n create(historicId: string, reason: string, tab: EnumAba, approved: boolean) {\n const data: HistoricoNovo = {\n id: historicId,\n historicoAbaList: [{\n aprovado: approved,\n aba: tab,\n mensagensList: [\n {\n mensagem: reason\n }\n ]\n }]\n };\n\n return this.controller.useLoading().unwrap().post(`Historico`, data);\n }\n\n get(id: string) {\n return this.controller.unwrap().useLoading().get(`Historico/${id}`);\n }\n\n releaseProduct(id : string){\n return this.controller.unwrap().useLoading().get(`Historico/NotificarLiberacaoProduto/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { tap, map, switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiImportadorPlanilhaService {\n\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.importador);\n }\n\n export(id: string) {\n return this.controller.useLoading().get(`Planilha/${id}`, { responseType: 'blob' });\n }\n\n}\n","import { IResponse } from './../../../models/api/response.interface';\nimport { LogImport } from './../../../models/api/log-import';\nimport { Injectable } from '@angular/core';\n\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { PlanilhaTemplate } from 'src/app/models/api/importador/planilha-template.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiImportadorService {\n\n private baseUrl = 'Importador';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.importador)\n .useBaseUrl(this.baseUrl);\n }\n\n validateSpreadSheet(res: object) {\n return this.controller.unwrap().useLoading().post('ValidarPlanilha', res);\n }\n\n importSpreadSheetCreate(res: object) {\n return this.controller.unwrap().useLoading().post('ImportarPlanilha', res);\n }\n\n importSpreadSheetUpdate(res: object) {\n return this.controller.unwrap().useLoading().post('ImportarPlanilhaAtualizar', res);\n }\n\n importSpreadSheetCreateDadosComerciais(res: object) {\n return this.controller.unwrap().useLoading().post('SalvarPlanilha/DadosComerciais', res);\n }\n\n importSpreadSheetUpdateDadosComerciais(res: object) {\n return this.controller.unwrap().useLoading().post('AtualizarPlanilha/DadosComerciais', res);\n }\n\n saveSpreadSheet(file: object) {\n return this.controller.unwrap().useLoading().post('SalvarPlanilha', file);\n }\n\n exportProduct() {\n return this.controller.useLoading().get('DownloadPlanilhaTemplate', { responseType: 'blob' });\n }\n\n getLogImport() {\n return this.controller.useLoading().get>('LogImportacao');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiTemplatesService {\n\n private baseUrl = 'Templates';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.importador)\n .useBaseUrl(this.baseUrl);\n }\n\n getTemplate() {\n return this.controller.useLoading().get('DownloadTemplateFornecedor', { responseType: 'blob' });\n }\n\n getTemplateDadosComerciais() {\n return this.controller.useLoading().get('DownloadTemplateComercial', { responseType: 'blob' });\n }\n\n getAtualizaIndicesDinamicosTemplateFornecedor() {\n return this.controller.useLoading().get>('AtualizaIndicesDinamicosTemplateFornecedor');\n }\n\n getAtualizaIndicesDinamicosTemplateComercial() {\n return this.controller.useLoading().get>('AtualizaIndicesDinamicosTemplateComercial');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Logs } from 'src/app/models/api/logs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiLogService {\n\n private baseUrl = 'Log';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.midia)\n .useBaseUrl(this.baseUrl);\n }\n\n getByProduct(id: string) {\n return this.controller.unwrap().useLoading().get(`Midia/${id}`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from \"@angular/common/http\";\n\nimport { Observable } from \"rxjs\";\nimport { take } from \"rxjs/operators\";\n\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { Imagem, Midia, MidiaGrupo } from 'src/app/models/api/dados-midia/midia.interface';\nimport { environment } from 'src/environments/environment';\nimport { SessionService } from \"../../session.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiMidiaService {\n\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService,\n private httpClient: HttpClient,\n private sessionService: SessionService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.midia);\n }\n\n get(id: string) {\n return this.controller.unwrap().useLoading().get(`Midia/produto/${id}`);\n }\n\n insertOrUpdate(data: Midia) {\n return this.controller.unwrap().useLoading().post('Midia', data);\n }\n\n validate(data: Midia) {\n return this.controller.unwrap().useLoading().post('Midia/ValidarCadastro', data);\n }\n\n saveDraft(data: Midia) {\n return this.controller.unwrap().useLoading().post('Midia/draft', data);\n }\n\n uploadImage(productId: string, data: File) {\n const formData = new FormData();\n formData.append('file', data);\n\n return this.controller\n .useLoading()\n .unwrap()\n .post>(`Imagem/UploadImagem/${productId}`, formData);\n }\n\n uploadEspecialImage(productId: string, data: File) {\n const formData = new FormData();\n formData.append('file', data);\n\n return this.controller\n .useLoading()\n .unwrap()\n .post>(`Imagem/UploadImagemEspecial/${productId}`, formData);\n }\n\n uploadImageAltaResolucao(productId: string, data: File) {\n const formData = new FormData();\n formData.append('file', data);\n\n return this.controller\n .useLoading()\n .unwrap()\n .post>(`Imagem/UploadImagemAltaResolucao/${productId}`, formData);\n }\n\n getAll(search: string|null): Observable{\n return this.controller\n .useLoading()\n .unwrap()\n .get(`Midia/BuscarMidiaPorDadosSAPVTEX/${search}`)\n .pipe(take(1));\n }\n\n downloadImage(id: string, format: string): Observable{\n return this.httpClient\n .get(\n `${environment.api}/${environment.microservice.midia}/Midia/DownloadImagem/${id}/${format}`,\n {\n responseType: 'blob',\n headers: this.sessionService.authorizationHeader()\n }\n )\n .pipe(take(1));\n }\n\n downloadAllImages(ids: string[], format: string): Observable{\n return this.httpClient\n .post(\n `${environment.api}/${environment.microservice.midia}/Midia/DownloadImagem/${format}`,\n ids,\n {\n responseType: 'blob',\n headers: this.sessionService.authorizationHeader()\n }\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { environment } from 'src/environments/environment';\nimport { ApiHttpClientService } from '../../api-http-client.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ApiRelatorioService {\n\n private baseUrl = 'relatorio';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.relatorio)\n .useBaseUrl(this.baseUrl);\n }\n\n exportReportAll() {\n return this.controller.useLoading().get('RelatorioCompleto');\n }\n\n exportReportProductsRevisionAll() {\n return this.controller.useLoading().get('RelatorioProdutosIntegradosEmRevisao');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiIntegracaoEmMassaService {\n\n private baseUrl = 'IntegracaoEmMassa';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.workflow)\n .useBaseUrl(this.baseUrl);\n }\n\n get(query?: QueryFilter) {\n return this.controller.useLoading().post('BuscarComFiltro', {\n query: '',\n skip: 0,\n take: 25,\n ...query\n });\n }\n\n getLogByIntegrationId(id: string) {\n return this.controller.useLoading().get(`/Log/${id}`, { responseType: 'blob' });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { Integracao } from 'src/app/models/api/workflow/integracao.interface';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { IntegracaoQueryFilter } from 'src/app/models/api/workflow/integracao-query-filter.interface';\nimport { IntegracaoEmMassaList, IntegracaoEmMassa } from 'src/app/models/api/workflow/integracao-em-massa.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiIntegracaoService {\n\n private baseUrl = 'Integracao';\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.workflow)\n .useBaseUrl(this.baseUrl);\n }\n\n integrateManyProducts(data: IntegracaoEmMassaList[]) {\n const integrationData: IntegracaoEmMassa = {\n integracoesList: data\n };\n\n return this.controller.useLoading().post('/IntegrarEmMassa', integrationData);\n }\n\n getInIntegrations(query?: IntegracaoQueryFilter) {\n const { skip, take, integrarVTEX, integrarSAP, integrarCEVA } = query;\n return this.controller.useLoading().post('BuscarComFiltro', {\n query: query.query,\n skip,\n take,\n integrarVTEX: integrarVTEX || true,\n integrarSAP: integrarSAP || true,\n integrarCEVA: integrarCEVA || true\n });\n }\n\n integrateSap(productId: string) {\n const data: Integracao = {\n produtoId: productId,\n integrarSap: true,\n integrarVTEX: false,\n integrarCeva: false\n };\n\n return this.controller.useLoading().post('', data);\n }\n\n integrateVtex(productId: string) {\n const data: Integracao = {\n produtoId: productId,\n integrarSap: false,\n integrarVTEX: true,\n integrarCeva: false\n };\n\n return this.controller.useLoading().post('', data);\n }\n\n integrateCeva(productId: string) {\n const data: Integracao = {\n produtoId: productId,\n integrarSap: false,\n integrarVTEX: false,\n integrarCeva: true\n };\n\n return this.controller.useLoading().post('', data);\n }\n\n integrateAll(productId: string) {\n const data: Integracao = {\n produtoId: productId,\n integrarSap: true,\n integrarVTEX: true,\n integrarCeva: true\n };\n\n return this.controller.useLoading().post('', data);\n }\n\n approveSapIntegration(productId: string, vtexStatus: boolean) {\n const data: Partial = {\n id: productId,\n bloquearIntegracaoSap: false,\n bloquearIntegracaoVTEX: vtexStatus\n };\n\n return this.controller.useLoading().post('bloquear', data);\n }\n\n reproveSapIntegration(productId: string, vtexStatus: boolean) {\n const data: Partial = {\n id: productId,\n bloquearIntegracaoSap: true,\n bloquearIntegracaoVTEX: vtexStatus\n };\n\n return this.controller.useLoading().post('bloquear', data);\n }\n\n approveVtexIntegration(productId: string, sapStatus: boolean) {\n const data: Partial = {\n id: productId,\n bloquearIntegracaoSap: sapStatus,\n bloquearIntegracaoVTEX: false\n };\n\n return this.controller.useLoading().post('bloquear', data);\n }\n\n reproveVtexIntegration(productId: string, sapStatus: boolean) {\n const data: Partial = {\n id: productId,\n bloquearIntegracaoSap: sapStatus,\n bloquearIntegracaoVTEX: true\n };\n\n return this.controller.useLoading().post('bloquear', data);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { environment } from 'src/environments/environment';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\nimport { LogIntegracao } from 'src/app/models/api/workflow/log-integracao.interface';\nimport { QueryFilter } from 'src/app/models/api/query/query-filter.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiWorkflowService {\n\n private controller: ApiHttpClientService;\n\n constructor(\n private api: ApiHttpClientService\n ) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.workflow);\n }\n\n get(query?: QueryFilter) {\n return this.controller.useLoading().post(`Produto`, {\n query: '',\n skip: 0,\n take: 0,\n filtrosPesquisados: [\n ...query.filteredColumns\n ],\n ...query\n });\n }\n\n getById(id: string) {\n return this.controller.unwrap().useLoading().get(`Produto/${id}`);\n }\n\n getLogById(id: string) {\n return this.controller.unwrap().useLoading().get(`Produto/${id}/log`);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ApiHttpClientService } from '../../api-http-client.service';\nimport { HttpParams } from '@angular/common/http';\nimport { IResponse } from 'src/app/models/api/response.interface';\nimport { TagItem } from 'src/app/models/api/xml/tag-item';\nimport { environment } from 'src/environments/environment';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiXmlService {\n\n private baseUrl = 'ProdutoXML';\n private controller: ApiHttpClientService;\n\n constructor(private api: ApiHttpClientService) {\n this.controller = this.api\n .useBaseUrl(environment.microservice.xml)\n .useBaseUrl(this.baseUrl);\n }\n\n getTags(){\n return this.controller.useLoading().get>('CamposTagItem');\n }\n getFiltros(){\n return this.controller.useLoading().get>('CamposFiltro');\n }\n getOperacoes(){\n return this.controller.useLoading().get>('OperacaoLogica');\n }\n getOperadores(){\n return this.controller.useLoading().get>('Operador');\n }\n\n get(pagina: number, tamanho: number){\n return this.controller.useLoading().get('LayoutXml?pagina='+pagina+'&tamanho='+tamanho);\n }\n\n getXml(id:string){\n return this.controller.useLoading().unwrap().get('LayoutXml/'+id);\n }\n\n save(data){\n return this.controller.useLoading().post('LayoutXml', data);\n }\n update(data){\n return this.controller.useLoading().put('LayoutXml', data);\n }\n\n delete(name){\n return this.controller.useLoading().delete('LayoutXml?nomeArquivo='+name);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport * as moment from 'moment';\nimport { map } from 'rxjs/operators';\nimport * as jwtDecode from 'jwt-decode';\n\nimport { SessionService } from './session.service';\nimport { environment } from 'src/environments/environment';\nimport { IClaim } from '../models/claim/claim.interface';\nimport { ISession } from '../models/session/session.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n isAuthenticated$ = this.sessionServ.session$.pipe(\n map(session => this.isAuthenticated(session))\n );\n\n constructor(\n private router: Router,\n private sessionServ: SessionService\n ) {\n }\n\n isAuthenticated(session = this.sessionServ.getSession()) {\n if (session) {\n const now = moment();\n const expirationDate = session && moment(new Date(session.expiration));\n return session && session.accessToken && now.isBefore(expirationDate);\n } else {\n return false;\n }\n }\n\n hasPermission(permissionName: string) {\n const user = this.sessionServ.user;\n\n if (permissionName && user && user.permissions) {\n const permissions = user.permissions;\n\n if (permissions.find(elem => elem === permissionName || elem === `${environment.permissionPrefix}.*`)) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n }\n\n login(token: string, login: string) {\n const claim: IClaim = jwtDecode(token);\n\n // Create user session\n const session = {\n accessToken: token,\n user: {\n id: claim.usuario_id,\n email: login,\n name: claim.given_name,\n permissions: claim.permission ? JSON.parse(claim.permission) : [],\n role: claim.role,\n fantasyName: claim.nome_fantasia,\n sapCode: claim.codigo_sap\n },\n expiration: claim.expiration_date,\n } as ISession;\n\n // Set session\n this.sessionServ.setSession(session);\n\n this.router.navigateByUrl('/');\n }\n\n logout() {\n this.sessionServ.reset();\n this.router.navigateByUrl('/login');\n }\n\n}\n","/* tslint:disable:no-string-literal no-redundant-jsdoc */\n\n/**\n * Referencias ultilizadas\n * - https://itnext.io/angular-create-your-own-modal-boxes-20bb663084a1\n * - https://medium.com/@ole.ersoy/rendering-a-string-into-a-dynamic-components-ng-content-element-810d9e074087\n */\n\nimport { Injectable, ApplicationRef, Injector, ComponentFactoryResolver, Inject, Type, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nexport type Content = string | TemplateRef | Type;\nexport interface Config {\n component: Type;\n content?: Content;\n initialState?: Partial;\n contentInitialState?: Partial;\n /** @default bodyElement */\n container?: HTMLElement | string | ViewContainerRef;\n injector?: Injector;\n resolver?: ComponentFactoryResolver;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ComponentLoaderService {\n\n private elementContainer = this.document.body;\n\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n @Inject(DOCUMENT) private document: Document\n ) { }\n\n create(config: Config) {\n const {\n component,\n content,\n initialState,\n contentInitialState,\n container,\n injector,\n resolver,\n } = config;\n\n // cria a factory do component container (que pode ser a modal padrão)\n const factory = (resolver || this.resolver).resolveComponentFactory(component);\n // Cria o ngContent, e traz o componentRef caso\n const { componentRef: contentComponentRef, embeddedViewRef, ngContent } = this.resolveNgContent(content, contentInitialState, resolver);\n // cria o componente container (modal) com o ngContent passado\n const componentRef = factory.create(injector || this.injector, ngContent);\n // função ultilizada para destruir o componente\n const destroyFnFactory = (from: 'container' | 'content' | 'outside') => {\n return () => {\n if (contentComponentRef && contentComponentRef.instance['beforeDestroy']) {\n contentComponentRef.instance['beforeDestroy'](from);\n }\n if (componentRef.instance['beforeDestroy']) {\n componentRef.instance['beforeDestroy'](from);\n }\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n };\n // atribui função de destruição no container e no content (modal)\n componentRef.instance['destroy'] = destroyFnFactory('container');\n if (contentComponentRef) {\n contentComponentRef.instance['destroy'] = destroyFnFactory('content');\n } else if (embeddedViewRef) {\n // revalidar -> talvez precise chamar a detecção de mudança\n Object.assign(embeddedViewRef.context, { destroy: destroyFnFactory('content') });\n }\n // atribui initial state\n Object.assign(componentRef.instance, initialState);\n\n // Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(componentRef.hostView);\n // containerCmpRef.hostView.detectChanges();\n\n const { nativeElement } = componentRef.location;\n // Adiciona o elemento do componente no Body, ou em algum elemento passado por parametro\n this.resolveElementContainer(container).appendChild(nativeElement);\n\n return {\n componentRef,\n contentComponentRef,\n destroy: destroyFnFactory('outside')\n };\n }\n\n private resolveNgContent(content: Content = '', initialState?: T, resolver?: ComponentFactoryResolver) {\n if (typeof content === 'string') {\n const element = this.document.createTextNode(content);\n return {\n ngContent: [[element]],\n };\n }\n\n if (content instanceof TemplateRef) {\n // Cria viewRef com initial state\n const embeddedViewRef = content.createEmbeddedView(initialState);\n // Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(embeddedViewRef);\n return {\n ngContent: [embeddedViewRef.rootNodes],\n embeddedViewRef,\n };\n }\n\n /** Otherwise it's a component */\n const factory = (resolver || this.resolver).resolveComponentFactory(content);\n const componentRef = factory.create(this.injector);\n\n // atribui initial state\n Object.assign(componentRef.instance, initialState);\n // Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(componentRef.hostView);\n\n return {\n ngContent: [[componentRef.location.nativeElement]],\n componentRef,\n };\n }\n\n private resolveElementContainer(container?: HTMLElement | string | ViewContainerRef) {\n if (container) {\n if (typeof container == 'string') {\n const element = this.document.querySelector(container) as HTMLElement;\n if (!element) { throw new Error('Invalid selector for the container'); }\n return element;\n } else if (this.isViewContainerRef(container)) {\n return this.resolveElementContainer(container.element.nativeElement);\n } else {\n return container;\n }\n } else {\n return this.elementContainer;\n }\n }\n\n private isViewContainerRef(vcr: any): vcr is ViewContainerRef {\n return vcr && vcr.element && vcr.element.nativeElement;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router';\nimport { AuthService } from '../auth.service';\nimport { Observable } from 'rxjs';\nimport { SessionService } from '../session.service';\n\n/**\n * @ignore\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard {\n\n userPermissions: string[];\n\n constructor(\n private authServ: AuthService,\n private sessionServ: SessionService,\n private router: Router\n ) {\n this.listenUser();\n }\n\n canActivate(\n next: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable | Promise | boolean {\n if (this.authServ.isAuthenticated()) {\n let hasPermission: boolean;\n\n if (next.data.permission) {\n hasPermission = this.authServ.hasPermission(next.data.permission);\n } else if (next.data.somePermission && Array.isArray(next.data.somePermission)) {\n hasPermission = next.data.somePermission.some((p: string) => this.authServ.hasPermission(p));\n } else if (next.data.everyPemission && Array.isArray(next.data.everyPemission)) {\n hasPermission = next.data.everyPemission.every((p: string) => this.authServ.hasPermission(p));\n } else {\n hasPermission = true;\n }\n\n if (hasPermission) {\n return true;\n } else {\n this.router.navigate(['/']);\n return false;\n }\n\n } else {\n this.router.navigate(['/login'], { queryParams: { redirectTo: state.url } });\n return false;\n }\n }\n\n private listenUser() {\n this.sessionServ.user$.subscribe(res => {\n this.userPermissions = res && res.permissions ? res.permissions : [];\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport interface CanComponentDeactivate {\n canDeactivate: () => Observable | Promise | boolean;\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanDeactivateGuard implements CanDeactivate {\n canDeactivate(\n component: CanComponentDeactivate,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): boolean | UrlTree | Observable | Promise {\n return component.canDeactivate ? component.canDeactivate() : true;\n }\n}\n","import { HttpHandler, HttpInterceptor, HttpRequest, HttpEvent, HttpClient } from '@angular/common/http';\nimport { Observable, PartialObserver } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nexport abstract class AbstractHttpService extends HttpClient {\n\n constructor(\n protected httpHandler: HttpHandler,\n ) {\n super(httpHandler);\n }\n\n /**\n * @example ```ts\n * instanceFactory(handler: HttpHandler) {\n * return new CustomHttpService(handler, this.dependencia) as this;\n * }\n * ```\n */\n abstract instanceFactory(handler: HttpHandler): this;\n\n useBaseUrl(baseUrl: string, ref = 'baseUrl') {\n if (baseUrl) {\n return this.use((req, next) => next.handle(\n req.clone({\n url: `${trimSlash(baseUrl)}/${trimSlash(req.url)}`,\n })\n ), ref);\n } else {\n return this;\n }\n }\n\n use(middleware: HttpInterceptor['intercept'], ref?: string) {\n return this.useInterceptor({\n intercept: middleware,\n }, ref);\n }\n\n useSideEffect(observer: PartialObserver>, beforeRequest?: () => void, ref?: string) {\n return this.use((req, next) => {\n if (beforeRequest) { beforeRequest(); }\n\n return next.handle(req).pipe(\n tap(observer)\n );\n }, ref);\n }\n\n useInterceptor(interceptor: HttpInterceptor, ref?: string): this {\n const handler: HttpHandler = new HttpInterceptorHandler(this.httpHandler, interceptor, ref);\n const result = this.instanceFactory(handler) as this;\n return result;\n }\n\n disableInterceptor(ref: string) {\n if (this.httpHandler instanceof HttpInterceptorHandler) {\n const newHandler = this.httpHandler.clone();\n this.httpHandler = newHandler;\n // tslint:disable-next-line: no-string-literal\n this['handler'] = newHandler;\n }\n\n let handler = this.httpHandler;\n while (handler instanceof HttpHandler) {\n if (handler instanceof HttpInterceptorHandler) {\n if (handler.ref == ref) {\n handler.disable();\n }\n\n handler = handler.next;\n } else {\n handler = null;\n }\n }\n\n return this;\n }\n\n}\n\nclass HttpInterceptorHandler extends HttpHandler {\n enabled = true;\n\n constructor(\n public next: HttpHandler,\n public interceptor: HttpInterceptor,\n public ref?: string,\n ) {\n super();\n }\n\n handle(req: HttpRequest): Observable> {\n if (this.enabled) {\n return this.interceptor.intercept(req, this.next);\n } else {\n return this.next.handle(req);\n }\n }\n\n clone(): HttpInterceptorHandler {\n return new HttpInterceptorHandler(\n this.next instanceof HttpInterceptorHandler ? this.next.clone() : this.next,\n this.interceptor,\n this.ref\n );\n }\n\n disable() {\n this.enabled = false;\n }\n\n enable() {\n this.enabled = true;\n }\n}\n\n/**\n * @example '/teste/teste/' => teste/teste\n */\nfunction trimSlash(text: string = '') {\n return text.replace(/^\\//, '').replace(/\\/$/, '');\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * This service permit just one loading at a time\n */\n\n// Types\nexport interface Loading {\n dismiss: () => void;\n}\n\nexport type LoadingName = 'waves' | 'login';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingService {\n\n loading$ = new Subject();\n private loaders = new Set();\n private loadingCount = 0;\n private timeToDisincrease = 60; // Seconds\n private delayToDismiss = 500;\n private hideTimeout: any;\n\n constructor() { }\n\n /**\n * Show a specific loading\n * @param name choose which loading by name\n * @param delay time in seconds\n */\n show(name: LoadingName = 'waves', delay?: number) {\n clearTimeout(this.hideTimeout);\n const id = this.createLoaderId();\n\n setTimeout(() => {\n this.loading$.next(name);\n this.loadingCount++;\n }, delay);\n\n // Create timeout limit to cancel the loading\n const timeout = this.disincreaseAfterTime(id);\n\n this.loaders.add(id);\n\n // Create the loading to call dismiss\n const loading = new Object() as Loading;\n loading.dismiss = () => {\n clearTimeout(timeout);\n this.hide(id);\n };\n\n return loading;\n }\n\n /**\n * Try hide the loading\n */\n private hide(id: number) {\n this.loaders.delete(id);\n\n if (this.loaders.size === 0) {\n this.hideTimeout = setTimeout(() => {\n this.hideImmediately();\n }, this.delayToDismiss);\n }\n }\n\n /**\n * Cancel all loadings immediately\n */\n hideImmediately() {\n this.loaders.clear();\n this.loading$.next();\n }\n\n /**\n * Set the time to disincrease\n * @param time Receive the time in seconds\n */\n setTimeToDisincrease(time: number) {\n this.timeToDisincrease = time;\n }\n\n private disincreaseAfterTime(id: number) {\n return setTimeout(() => {\n this.hide(id);\n }, this.timeToDisincrease * 1000);\n }\n\n private createLoaderId() {\n return ++this.loadingCount;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n\n /**\n * Subscribe toggle$ to listen notification show or hide events\n */\n toggle$ = new BehaviorSubject(false);\n notifications: any[];\n\n /**\n * Call toggle to show or hide notification menu\n */\n toggle() {\n this.toggle$.next(!this.toggle$.value);\n }\n\n get hasNewNotifications() {\n return false;\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RouteDataService {\n\n data: any;\n\n}\n","import { Injectable } from '@angular/core';\nimport { Storage } from '../shared/decorators/local-storage.decorator';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { ISession } from 'src/app/models/session/session.interface';\nimport { IUser } from 'src/app/models/user/user.interface';\nimport { pluck, switchMap } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SessionService {\n\n @Storage('session')\n // tslint:disable-next-line: variable-name\n private _session: ISession;\n\n // tslint:disable-next-line: variable-name\n private _session$: BehaviorSubject;\n session$: Observable;\n user$: Observable;\n\n constructor(\n ) {\n this._session$ = new BehaviorSubject(this._session);\n this.session$ = this._session$.asObservable();\n this.user$ = this.session$.pipe(switchMap((value) => value ? of(value).pipe(pluck('user')) : of(null)));\n }\n\n setSession(session: ISession) {\n this._session = session;\n this._session$.next(session);\n }\n\n reset() {\n this._session = null;\n this._session$.next(null);\n }\n\n getSession() {\n return this._session;\n }\n\n authorizationHeader(): { Authorization: string }{\n return { Authorization: `Bearer ${this.getSession().accessToken}` };\n }\n\n get user() {\n if (this._session) {\n return this._session.user;\n }\n }\n}\n","import { ControlValueAccessorMixin } from './control-value-accessor-mixin.class';\nimport { QueryList, ElementRef, Injector, Input, AfterContentChecked, Component } from '@angular/core';\nimport { FormGroup, FormControl, ValidatorFn } from '@angular/forms';\n@Component({\n template: ''\n})\nexport class ControlValueAccessorGroupMixin extends ControlValueAccessorMixin implements AfterContentChecked {\n\n @Input() replicateValidators = true;\n @Input() public arrayMode = false;\n\n form: FormGroup;\n formArrayValues: any[];\n\n isControlLastStatusTouched: boolean;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector\n ) {\n super(elementRef, injector);\n this.createAndListenForm();\n }\n\n ngAfterContentChecked() {\n this.checkTouchedStatus();\n }\n\n init(customAcessors: ControlValueAccessorMixin[] | QueryList) {\n this.createAndListenControls(customAcessors);\n\n if (this.replicateValidators) {\n this.control.clearValidators();\n this.control.setValidators(this.validate.bind(this));\n this.control.updateValueAndValidity();\n }\n }\n\n writeValue(value: any) {\n if (value) {\n super.writeValue(value);\n\n if (!this.arrayMode) {\n this.createFormControlsOnForm(value);\n } else {\n this.formArrayValues = value;\n this.form.reset();\n this.matchArrayValuesWithFormControls(value);\n }\n }\n }\n\n matchArrayValuesWithFormControls(value: any[]) {\n if (this.form && this.form.controls) {\n // Search value on form and on array value\n const keys = Object.keys(this.form.controls);\n keys.forEach(key => {\n const externalValue = value.find(elem => key == elem);\n if (externalValue) {\n this.form.get(key).setValue(externalValue);\n }\n });\n }\n }\n\n createArrayValueFromFormControls() {\n const array = new Array();\n\n if (this.form) {\n const keys = Object.keys(this.form.controls);\n keys.forEach(key => {\n if (this.form.get(key).value) {\n array.push(key);\n }\n });\n }\n\n return array;\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n validate(control: FormControl) {\n if (this.control == control && this.isFormInvalid) {\n return {\n errors: this.form.errors\n };\n }\n\n return null;\n }\n\n private checkTouchedStatus() {\n if (this.form.touched && this.control && this.control.untouched && !this.isControlLastStatusTouched) {\n this.isControlLastStatusTouched = true;\n this.control.markAsTouched();\n } else if (this.control && this.control.touched && this.form.untouched) {\n this.form.markAllAsTouched();\n } else if (this.isControlLastStatusTouched && this.control && this.control.untouched) {\n this.isControlLastStatusTouched = false;\n this.form.markAsUntouched();\n }\n }\n\n private createFormControlsOnForm(value: object) {\n for (const key of Object.keys(value)) {\n // Check the control exists before\n const control = this.form.get(key);\n if (!control) {\n // Check need replication validations\n let validators: ValidatorFn;\n if (this.replicateValidators) {\n validators = this.validators;\n }\n\n this.form.setControl(key, new FormControl(null, validators));\n }\n }\n\n this.form.setValue(value);\n }\n\n private createAndListenForm() {\n this.form = new FormGroup({});\n this.form.valueChanges.subscribe((res) => {\n if (!this.arrayMode) {\n this.value = res;\n } else {\n this.value = this.createArrayValueFromFormControls();\n }\n });\n }\n\n createAndListenControls(data: ControlValueAccessorMixin[] | QueryList) {\n // Create each form control to form\n data.forEach(elem => {\n this.createAndConnectFormControlWithCustomControlAndFormControl(elem);\n });\n }\n\n createAndConnectFormControlWithCustomControlAndFormControl(data: ControlValueAccessorMixin) {\n // Check need replication validations\n let validators: ValidatorFn;\n if (this.replicateValidators) {\n validators = this.validators;\n }\n\n // Check the control exists\n // Create if don't exists\n if (!this.form.get(data.name)) {\n const formControl = new FormControl(undefined, validators);\n this.form.setControl(data.name, formControl);\n }\n\n // Get the control\n const control: FormControl = this.form.get(data.name) as FormControl;\n\n if (control) {\n // Check is array mode and set value\n if (this.arrayMode && this.formArrayValues) {\n const externalValue = this.formArrayValues.find(elem => data.name == elem);\n if (externalValue) {\n control.setValue(externalValue);\n }\n }\n\n // Create change function\n data.registerOnChange((value: any) => {\n control.setValue(value);\n });\n\n // Create touched function\n data.registerOnTouched(() => {\n control.markAsTouched();\n });\n\n // Create write value function\n control.valueChanges.subscribe((value: any) => {\n data.writeValue(value);\n });\n\n // Set form control on custom control\n data.control = control;\n\n // update disabled state\n this.setDisabledState(this.isDisabled);\n }\n\n return control;\n }\n\n get isFormInvalid() {\n return this.form && this.form.invalid && (this.form.touched || this.form.dirty);\n }\n\n private get validators() {\n const control = this.control;\n if (control && control.validator) {\n return control.validator;\n }\n }\n\n}\n","import { Input, ElementRef, Injector, ViewChild, HostListener, HostBinding, Component } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormControlDirective, ControlContainer, FormGroup } from '@angular/forms';\nimport { noop } from 'rxjs';\nimport { errorMapper } from './error.map';\nimport { DynamicFieldValidator, DynamicFieldValidationType } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\nimport { ReadOnlyDirective } from '../directives/readonly.directive';\n\n@Component({\n template: ''\n})\nexport class ControlValueAccessorMixin implements ControlValueAccessor {\n\n @ViewChild(FormControlDirective, { static: true }) formControlDirective: FormControlDirective;\n\n @Input() name: string;\n @Input() formControl: FormControl;\n @Input() formControlName: string;\n\n isMouseOver: boolean;\n isOnFocus: boolean;\n get isRequired() {\n const control: FormControl = this.control;\n\n if (control && control.validator) {\n const validators = control.validator(new FormControl());\n\n if (validators && validators.required) {\n return true;\n } else if (validators && validators.dynamicValidator) {\n const dynamicErrors: DynamicFieldValidator[] = validators.dynamicValidator;\n return dynamicErrors.some(elem => elem.type == DynamicFieldValidationType.Required);\n }\n }\n\n return false;\n }\n\n errorParams: any;\n\n constructor(\n private elementRef?: ElementRef,\n private injector?: Injector,\n private readOnlyDirective?: ReadOnlyDirective\n ) {\n }\n\n @HostListener('mouseenter') mouseenter() {\n this.isMouseOver = true;\n }\n\n @HostListener('mouseleave') mouseleave() {\n this.isMouseOver = false;\n }\n\n // The internal data model\n // tslint:disable-next-line: member-ordering\n innerValue: T;\n\n // Placeholders for the callbacks which are later provided\n // by the Control Value Accessor\n // tslint:disable-next-line: member-ordering\n private onTouchedControlAccessorCallback: () => void = noop;\n // tslint:disable-next-line: member-ordering\n private onChangeControlAccessorCallback: (_: T) => void = noop;\n\n // get accessor\n get value(): T {\n return this.innerValue;\n }\n\n // Set accessor including call the onchange callback\n @Input() set value(value: T) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.onChangeCallback(value);\n }\n }\n\n // ControlValueAccessor methods\n writeValue(value: T) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: (_: T) => void) {\n this.onChangeControlAccessorCallback = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedControlAccessorCallback = fn;\n }\n\n onChangeCallback(value: T) {\n this.onChangeControlAccessorCallback(value);\n\n if (this.elementRef) {\n const event = new Event('change');\n this.elementRef.nativeElement.value = value;\n this.elementRef.nativeElement.dispatchEvent(event, value);\n }\n }\n\n onTouchedCallback() {\n this.onTouchedControlAccessorCallback();\n }\n\n @HostBinding('class.-disabled')\n get isDisabled() {\n if (this.control) {\n return this.control.disabled;\n }\n }\n\n focus() {\n this.isOnFocus = true;\n }\n\n blur() {\n this.isOnFocus = false;\n if (this.control) {\n this.control.markAsTouched();\n }\n }\n\n set control(control: FormControl) {\n this.formControl = control;\n this.value = this.control.value;\n }\n\n get control(): FormControl {\n if (this.formControl) {\n return this.formControl;\n } else if (this.formControlName) {\n return (this.controlContainer.control as FormGroup).controls[this.formControlName] as FormControl;\n }\n }\n\n private get controlContainer() {\n // tslint:disable-next-line: deprecation\n return this.injector && this.injector.get(ControlContainer);\n }\n\n @HostBinding('class.-readonly')\n get isReadOnly() {\n return this.readOnlyDirective && this.readOnlyDirective.readonly;\n }\n\n get isInvalidAndTocuhed() {\n return this.control && this.control.invalid && this.control.touched;\n }\n\n get errors() {\n return this.control && this.control.invalid ? Object.entries(this.control.errors).map(\n ([type, param]) => this.getErrorWithParameters(type, this.control, param)) : [];\n }\n\n get hasErrors() {\n return this.errors.length > 0;\n }\n\n private getErrorWithParameters(error: string, control: FormControl, param?: any) {\n return (errorMapper.get(error) || errorMapper.get('custom'))(error, control, param);\n }\n\n}\n","import { NgControl, FormControl } from '@angular/forms';\nimport { DynamicFieldValidator } from 'src/app/lib/dynamic-form/models/dynamic-field.interface';\n\nexport const errorMapper = new Map([\n\n ['greaterThan', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.greaterThan.controlName\n }\n })],\n ['greaterOrEqualThan', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.greaterOrEqualThan.controlName\n }\n })],\n ['lessThan', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.lessThan.controlName\n }\n })],\n ['lessOrEqualThan', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.lessOrEqualThan.controlName\n }\n })],\n\n ['minlength', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.minlength.requiredLength\n }\n })],\n ['maxlength', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.maxlength.requiredLength\n }\n })],\n ['min', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.min.min\n }\n })],\n ['max', (errors: string, control: NgControl | FormControl, param: any) => ({\n type: errors,\n params: {\n value1: control.errors.max.max\n }\n })],\n\n ['onlyInteger', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['required', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['email', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['passwordNotSame', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['cnpj', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['cpf', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n ['pattern', (errors: string, control: NgControl | FormControl, param: any) => ({ type: errors })],\n\n ['custom', (errors: string | DynamicFieldValidator, control: NgControl | FormControl, param: string | DynamicFieldValidator[]) => {\n return {\n type: 'custom',\n params: {\n custom: typeof(param) == 'string' ? param : Array.isArray(param) ? param[0].errorMessage : 'Erro não mapeado no error.map.ts'\n }\n };\n }]\n\n]);\n","import { CategoriaGlobal } from 'src/app/models/api/dados-especificos/categoria-global.interface';\n\nexport const globalCategories: CategoriaGlobal[] = [\n {\n id: '772',\n descricao: 'Adultos'\n },\n {\n id: '412',\n descricao: 'Alimentos, bebidas e tabaco'\n },\n {\n id: '1',\n descricao: 'Animais e suprimentos para animais de estimação'\n },\n {\n id: '8',\n descricao: 'Artes e entretenimento'\n },\n {\n id: '988',\n descricao: 'Artigos esportivos'\n },\n {\n id: '1239',\n descricao: 'Brinquedos e jogos'\n },\n {\n id: '536',\n descricao: 'Casa e jardim'\n },\n {\n id: '111',\n descricao: 'Comercial e industrial'\n },\n {\n id: '141',\n descricao: 'Câmeras e óptica'\n },\n {\n id: '222',\n descricao: 'Eletrônicos'\n },\n {\n id: '632',\n descricao: 'Ferragens'\n },\n {\n id: '537',\n descricao: 'Infantil'\n },\n {\n id: '5181',\n descricao: 'Malas e bolsas'\n },\n {\n id: '922',\n descricao: 'Materiais de escritório'\n },\n {\n id: '5605',\n descricao: 'Material para cerimônias e eventos religiosos'\n },\n {\n id: '783',\n descricao: 'Mídia'\n },\n {\n id: '436',\n descricao: 'Móveis'\n },\n {\n id: '469',\n descricao: 'Saúde e beleza'\n },\n {\n id: '2092',\n descricao: 'Software'\n },\n {\n id: '166',\n descricao: 'Vestuário e acessórios'\n },\n {\n id: '888',\n descricao: 'Veículos e peças'\n }\n];\n","import { Storage } from './local-storage.decorator';\nimport { environment } from 'src/environments/environment';\nimport { ISession } from 'src/app/models/session/session.interface';\n\nclass IsAllowedDecorator {\n\n @Storage('session') session: ISession;\n\n /**\n * Descorator to check if user has a specific permission\n * @param permissionName permission name to check if a user has a permission\n */\n public isAllowed(permissionName: string) {\n return (\n target: any, // The prototype of the class\n key: string // The name of the property\n ) => {\n // get and set methods\n Object.defineProperty(target, key, {\n get: () => {\n if (this.session) {\n const user = this.session.user;\n const userPermissions = user && user.permissions ? user.permissions : [];\n return !!userPermissions.find(elem => elem === permissionName || elem === `${environment.permissionPrefix}.*`);\n } else {\n return false;\n }\n }\n });\n };\n }\n\n}\n\nconst isAllowedDecorator = new IsAllowedDecorator();\n\nexport function IsAllowed(permissionName: string) {\n return isAllowedDecorator.isAllowed(permissionName);\n}\n\n\n","import { environment } from 'src/environments/environment';\n\n/**\n * Decorator utlizado para fazer bind de uma propriedade no LocalStorage ou no SessionStorage dependendo do keepConnected\n * @param customName nome customizado, por padrão o nome ultilizado é o mesmo da propriedade\n * @param isPrefixed Argumento opcional que indica se sera utilizado o prefixo padrão\n */\nexport function Storage(customName?: string, isPrefixed = true) {\n return (\n target: any, // The prototype of the class\n decoratedPropertyName: string // The name of the property\n ) => {\n // get and set methods\n Object.defineProperty(target, decoratedPropertyName, {\n get: () => {\n const keepConnected: boolean = JSON.parse(\n localStorage.getItem(getKeyName('keepConnected', decoratedPropertyName))\n );\n\n const storage = keepConnected ? localStorage : sessionStorage;\n return JSON.parse(storage.getItem(getKeyName(customName, decoratedPropertyName, isPrefixed)));\n },\n set: (newValue) => {\n const keepConnected: boolean = JSON.parse(\n localStorage.getItem(getKeyName('keepConnected', decoratedPropertyName))\n );\n\n const storage = keepConnected ? localStorage : sessionStorage;\n storage.setItem(getKeyName(customName, decoratedPropertyName, isPrefixed), JSON.stringify(newValue));\n }\n });\n };\n}\n\n/**\n * Decorator utlizado para fazer bind de uma propriedade no LocalStorage\n * @param customName nome customizado, por padrão o nome ultilizado é o mesmo da propriedade\n * @param isPrefixed Argumento opcional que indica se sera utilizado o prefixo padrão\n */\nexport function LocalStorage(customName?: string, isPrefixed = true) {\n return (\n target: any, // The prototype of the class\n decoratedPropertyName: string // The name of the property\n ) => {\n\n // get and set methods\n Object.defineProperty(target, decoratedPropertyName, {\n get: () => {\n return JSON.parse(localStorage.getItem(getKeyName(customName, decoratedPropertyName, isPrefixed)));\n },\n set: (newValue) => {\n localStorage.setItem(getKeyName(customName, decoratedPropertyName, isPrefixed), JSON.stringify(newValue));\n }\n });\n };\n}\n\n/**\n * Decorator utlizado para fazer bind de uma propriedade no SessionStorage\n * @param customName nome customizado, por padrão o nome ultilizado é o mesmo da propriedade\n * @param isPrefixed Argumento opcional que indica se sera utilizado o prefixo padrão\n */\nexport function SessionStorage(customName?: string, isPrefixed = true) {\n return (\n target: any, // The prototype of the class\n decoratedPropertyName: string // The name of the property\n ) => {\n\n // get and set methods\n Object.defineProperty(target, decoratedPropertyName, {\n get: () => {\n return JSON.parse(sessionStorage.getItem(getKeyName(customName, decoratedPropertyName, isPrefixed)));\n },\n set: (newValue) => {\n sessionStorage.setItem(getKeyName(customName, decoratedPropertyName, isPrefixed), JSON.stringify(newValue));\n }\n });\n };\n}\n\n/**\n * \"Calcula\" o nome da key usado pelos decorators\n * @param customName nome customizado, por padrão o nome ultilizado é o mesmo da propriedade\n * @param decoratedPropertyName nome da propriedade decorada\n * @param isPrefixed determina se deve ultilizar o prefixo\n * @description este é um método auxiliar, a lógica deste método é usada tanto no decorator de local storage quanto no de session storage\n */\nfunction getKeyName(customName: string, decoratedPropertyName: string, isPrefixed = true) {\n let keyName = customName || decoratedPropertyName;\n if (isPrefixed) {\n keyName = `${environment.localStoragePrefix}_${keyName}`;\n }\n\n return keyName;\n}\n\nexport function setLocalStorage(key: string, value: any) {\n const keyName = `${environment.localStoragePrefix}_${key}`;\n localStorage.setItem(keyName, JSON.stringify(value));\n}\n\nexport function getLocalStorage(key: string) {\n const keyName = `${environment.localStoragePrefix}_${key}`;\n return JSON.parse(localStorage.getItem(keyName));\n}\n","import { Directive, Input, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[aIf]'\n})\nexport class AnimatedIfDirective {\n\n @Input() fadeIn: string;\n @Input() fadeOut: string;\n @Input() startWithAnim = true;\n\n private isVisible: boolean;\n private element: HTMLElement;\n private started: boolean;\n\n constructor(\n private elementRef: ElementRef\n ) {\n this.element = this.elementRef.nativeElement;\n }\n\n @Input()\n set aIf(value: boolean) {\n this.isVisible = value;\n this.updateView();\n this.started = true;\n }\n\n private updateView() {\n if (this.startWithAnim && !this.started && this.isVisible) {\n this.element.classList.add(this.fadeIn);\n } else if (!this.startWithAnim && !this.started && !this.isVisible || this.startWithAnim && !this.started && !this.isVisible) {\n this.element.style.display = 'none';\n } else if (this.started) {\n if (this.isVisible) {\n this.element.classList.add(this.fadeIn);\n this.element.style.display = '';\n } else {\n this.element.classList.add(this.fadeOut);\n }\n }\n }\n\n @HostListener('animationend')\n animationEnd() {\n if (!this.isVisible) {\n this.element.style.display = 'none';\n }\n\n this.element.classList.remove(this.fadeIn);\n this.element.classList.remove(this.fadeOut);\n }\n\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class AreYouSureDialog {\n abstract confirm(message: string): Observable | Promise | boolean;\n}\n\n","import { Directive, Output, EventEmitter, Input, HostListener, Inject, OnDestroy } from '@angular/core';\nimport { isObservable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { QUESTION_DIALOG_FN, QuestionDialogFn } from './are-you-sure.model';\nimport { AreYouSureDialog } from './are-you-sure-dialog.class';\n\n@Directive({\n selector: '[areYouSure]'\n})\nexport class AreYouSureDirective implements OnDestroy {\n private destroy$ = new Subject();\n\n @Input() areYouSure: string;\n\n @Output() then = new EventEmitter();\n @Output() else = new EventEmitter();\n\n private emit = (value: boolean) => {\n if (value) {\n this.then.emit();\n } else {\n this.else.emit();\n }\n }\n\n constructor(\n private dialog: AreYouSureDialog\n ) { }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n @HostListener('click')\n onClick() {\n const value = this.dialog.confirm(this.areYouSure);\n\n if (isObservable(value)) {\n return value.pipe(takeUntil(this.destroy$)).subscribe(this.emit);\n } else if (value instanceof Promise) {\n value.then(this.emit);\n } else if (typeof value === 'boolean') {\n this.emit(value);\n } else {\n throw new Error('Argumento invalido \\nQUESTION_DIALOG_FN deve retornar no padrão do tipo QuestionDialogFn');\n }\n }\n}\n","import { NgModule, ModuleWithProviders, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AreYouSureDirective } from './are-you-sure.directive';\nimport { AreYouSureDialog } from './are-you-sure-dialog.class';\nimport { DefaultAreYouSureDialog } from './default-are-you-sure-dialog.class';\n\n@NgModule({\n declarations: [\n AreYouSureDirective\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n AreYouSureDirective\n ],\n})\nexport class AreYouSureModule {\n\n static forRoot(config?: Type): ModuleWithProviders {\n return {\n ngModule: AreYouSureModule,\n providers: [\n {\n provide: AreYouSureDialog,\n useClass: config || DefaultAreYouSureDialog\n }\n ]\n };\n }\n\n static forChild(): ModuleWithProviders {\n return {\n ngModule: AreYouSureModule,\n };\n }\n}\n","import { AreYouSureDialog } from './are-you-sure-dialog.class';\n\nexport class DefaultAreYouSureDialog extends AreYouSureDialog {\n confirm(message: string) {\n return window.confirm(message);\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[autofocus]'\n})\nexport class AutoFocusDirective {\n\n constructor(\n private elementRef: ElementRef\n ) {\n this.focus();\n }\n\n private focus() {\n setTimeout(() => {\n const event = new Event('focus');\n this.elementRef.nativeElement.dispatchEvent(event);\n });\n }\n}\n","// font: https://stackoverflow.com/a/42643593\nimport { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[clickOutside]'\n})\nexport class ClickOutsideDirective {\n\n constructor(\n private elementRef: ElementRef\n ) {\n }\n\n @Output()\n public clickOutside = new EventEmitter();\n\n @HostListener('document:click', ['$event', '$event.target'])\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\n if (!clickedInside) {\n this.clickOutside.emit(event);\n }\n }\n}\n","import { Directive, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[controlRef]',\n exportAs: 'controlRef'\n})\nexport class ControlRefDirective {\n\n constructor(\n @Optional() public controlRef: NgControl\n ) { }\n\n get changes() {\n return this.controlRef && this.controlRef.valueChanges;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from \"@angular/cdk/overlay\";\n\nimport { ClickOutsideDirective } from './click-outside.directive';\nimport { IsAllowedDirective } from './is-allowed.directive';\nimport { UploadDirective } from './upload.directive';\nimport { DownloadDirective } from './download.directive';\nimport { AreYouSureModule } from './are-you-sure/are-you-sure.module';\nimport { MouseupOutsideDirective } from './mouseup-outside.directive';\nimport { AutoFocusDirective } from './autofocus.directive';\nimport { ReadOnlyDirective } from './readonly.directive';\nimport { AnimatedIfDirective } from './animated-if.directive';\nimport { ConfirmDialogService } from 'src/app/ui/modal/confirm-dialog.service';\nimport { ModalModule } from 'src/app/ui/modal/modal.module';\nimport { MapControlDirective } from './map-control.directive';\nimport { ControlRefDirective } from './control-ref.directive';\nimport { OpenImageDirective } from './open-image.directive';\n\n@NgModule({\n declarations: [\n ClickOutsideDirective,\n IsAllowedDirective,\n UploadDirective,\n DownloadDirective,\n MouseupOutsideDirective,\n AutoFocusDirective,\n ReadOnlyDirective,\n AnimatedIfDirective,\n MapControlDirective,\n ControlRefDirective,\n OpenImageDirective\n ],\n imports: [\n CommonModule,\n ModalModule,\n OverlayModule,\n AreYouSureModule.forRoot(ConfirmDialogService)\n ],\n exports: [\n ClickOutsideDirective,\n IsAllowedDirective,\n UploadDirective,\n DownloadDirective,\n AreYouSureModule,\n MouseupOutsideDirective,\n AutoFocusDirective,\n ReadOnlyDirective,\n AnimatedIfDirective,\n MapControlDirective,\n ControlRefDirective,\n OpenImageDirective\n ]\n})\nexport class DirectivesModule { }\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[download]'\n})\nexport class DownloadDirective {\n\n @Input() download: string;\n\n @HostListener('click')\n onClick(): void {\n this.makeDownload(this.download);\n }\n\n private makeDownload(link: string) {\n const element = document.createElement('a');\n element.href = link;\n element.click();\n }\n\n}\n","import { Directive, Input, ViewContainerRef, TemplateRef, OnInit, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SessionService } from '../../services/session.service';\nimport { environment } from 'src/environments/environment';\n\n@Directive({\n selector: '[isAllowed]'\n})\nexport class IsAllowedDirective implements OnInit, OnDestroy {\n\n private requiredPermission: string | string[];\n private userPermissions: string[];\n private userSubscription: Subscription;\n\n constructor(\n private templateRef: TemplateRef,\n private viewContainer: ViewContainerRef,\n private sessionServ: SessionService\n ) {\n this.userSubscription = this.listenUser();\n }\n\n ngOnInit() {\n this.updateView();\n }\n\n ngOnDestroy() {\n this.userSubscription.unsubscribe();\n }\n\n @Input()\n set isAllowed(value: string | string[]) {\n this.requiredPermission = value;\n }\n\n private listenUser() {\n return this.sessionServ.user$.subscribe(res => {\n this.userPermissions = res && res.permissions ? res.permissions : [];\n this.updateView();\n });\n }\n\n private updateView() {\n this.viewContainer.clear();\n\n if (this.checkUserHasPermission()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n }\n }\n\n private checkUserHasPermission() {\n if (this.userPermissions) {\n if (this.requiredPermission instanceof Array) {\n let permit = false;\n\n this.requiredPermission.forEach(permission => {\n if (this.userPermissions.find(elem => elem === permission || elem === `${environment.permissionPrefix}.*`)) {\n permit = true;\n }\n });\n\n return permit;\n } else {\n const permission = this.userPermissions.find(elem => {\n return elem === this.requiredPermission || elem === `${environment.permissionPrefix}.*`;\n });\n\n if (permission) {\n return true;\n } else {\n return false;\n }\n }\n\n }\n return false;\n }\n\n}\n","import { Directive, AfterViewInit, OnDestroy, Input, Optional } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NgControl, ControlContainer, AbstractControl } from '@angular/forms';\nimport { startWith, map, debounceTime } from 'rxjs/operators';\n\n@Directive({\n selector: '[mapControl], [mapControlName]'\n})\nexport class MapControlDirective implements AfterViewInit, OnDestroy {\n private subscription: Subscription;\n\n @Input() mapControl: NgControl | AbstractControl;\n @Input() mapControlName: string;\n @Input() ignoreStrings: string[];\n\n @Input() mapControlMapper = (value: string) => {\n return value;\n }\n\n constructor(\n private ngControl: NgControl,\n @Optional() private controlContainer: ControlContainer,\n ) {\n }\n\n ngAfterViewInit() {\n if (this.mapControlName) {\n this.mapControl = this.controlContainer.control.get(this.mapControlName);\n }\n\n this.mapControl.valueChanges.pipe(\n startWith(this.mapControl.value),\n // debounceTime(500),\n map( value => { \n //IGNORE STRINGS FROM ignoreStrings\n if(this.ignoreStrings != null \n && this.ngControl != null\n && this.ignoreStrings.length > 0 \n && this.ignoreStrings.indexOf(this.ngControl.value) >= 0){\n return this.ngControl.value;\n }\n\n return this.mapControlMapper(value || '')\n } )\n ).subscribe( value => {\n if (this.ngControl) {\n this.ngControl.control.setValue(value, /*{ emitEvents: false }*/);\n }\n });\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n}\n","import { Directive, ElementRef, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[mouseupOutside]'\n})\nexport class MouseupOutsideDirective {\n\n constructor(\n private elementRef: ElementRef\n ) {\n }\n\n @Output()\n public mouseupOutside = new EventEmitter();\n\n @HostListener('document:mouseup', ['$event', '$event.target'])\n public onMouseup(event: MouseEvent, targetElement: HTMLElement): void {\n if (!targetElement) {\n return;\n }\n\n const mouseupInside = this.elementRef.nativeElement.contains(targetElement);\n if (!mouseupInside) {\n this.mouseupOutside.emit(event);\n }\n }\n}\n","import { ComponentRef, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ENTER, ESCAPE, SPACE } from \"@angular/cdk/keycodes\";\nimport { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\n\nimport { fromEvent, merge, Subject } from \"rxjs\";\nimport { filter, takeUntil } from \"rxjs/operators\";\n\nimport { Img } from \"../../models/api/elements/img\";\nimport { OpenImageComponent, TIME_ANIMATION } from \"../../ui/open-image/open-image.component\";\n\n@Directive({\n selector: '[cOpenImage]'\n})\nexport class OpenImageDirective implements OnInit, OnDestroy{\n @Input('cOpenImage') image: Img;\n\n private stillAlive$ = new Subject();\n private isOpened = false;\n private overlayRef = this.overlay.create({ hasBackdrop: true });\n private reference: ComponentRef;\n\n constructor(private elementRef: ElementRef, private overlay: Overlay){}\n\n ngOnInit(): void {\n this.onOpen();\n this.onClose();\n }\n\n ngOnDestroy(): void {\n this.stillAlive$.next();\n this.stillAlive$.complete();\n\n this.reference = null;\n }\n\n private onClose(): void{\n const events = merge(\n this.overlayRef.backdropClick(),\n fromEvent(document, 'keyup').pipe(filter((event: KeyboardEvent) => event.keyCode === ESCAPE))\n );\n\n events.pipe(takeUntil(this.stillAlive$)).subscribe(() => this.close());\n }\n\n private onOpen(): void {\n const element = this.elementRef.nativeElement;\n\n const events = merge(\n fromEvent(element, 'click'),\n fromEvent(element, 'keyup').pipe(filter((event: KeyboardEvent) => event.keyCode === ENTER || event.keyCode === SPACE))\n );\n\n events.pipe(takeUntil(this.stillAlive$)).subscribe(() => this.open());\n }\n\n private close(): void{\n if(!this.isOpened) return;\n\n this.isOpened = false;\n this.reference.instance.image = null;\n\n setTimeout(() => this.overlayRef.detach(), TIME_ANIMATION);\n }\n\n private open(): void{\n if(this.isOpened) return;\n\n this.isOpened = true;\n this.reference = this.overlayRef.attach(new ComponentPortal(OpenImageComponent));\n this.reference.instance.image = this.image;\n }\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: '[readonly]'\n})\nexport class ReadOnlyDirective {\n\n @Input() readonly = false;\n\n}\n","import { Directive, ElementRef, HostListener, Input, Output, EventEmitter, Host, HostBinding } from '@angular/core';\n\n\n@Directive({\n selector: '[upload]',\n exportAs: 'upload'\n})\nexport class UploadDirective {\n\n private inputElement: HTMLInputElement;\n\n @Input() accept: string;\n @Input() draggable = false;\n @Input() disableClick = false;\n @Input() multiple = true;\n\n @Output() fileChange = new EventEmitter();\n\n @HostBinding('class.dragging') dragging = false;\n\n constructor(\n private elementRef: ElementRef\n ) {\n this.createInput();\n }\n\n @HostListener('click')\n onClick(): void {\n if (!this.disableClick) {\n this.inputElement.accept = this.accept;\n this.inputElement.click();\n }\n }\n\n @HostListener('dragleave', ['$event'])\n dragLeave(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.dragging = false;\n }\n\n @HostListener('dragover', ['$event'])\n dragOver(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.dataTransfer.types.length) {\n this.dragging = true;\n }\n }\n\n @HostListener('drop', ['$event'])\n drop(e: DragEvent) {\n e.preventDefault();\n e.stopPropagation();\n this.dragging = false;\n\n if (this.draggable) {\n this.loadFile(e.dataTransfer.files);\n }\n }\n\n private onChangeCallback(value?: IUploadDirectiveData) {\n if (this.elementRef) {\n const event = new CustomEvent('change', { detail: value });\n this.elementRef.nativeElement.dispatchEvent(event);\n }\n this.fileChange.emit(value);\n }\n\n private createInput() {\n const inputElement = document.createElement('input');\n inputElement.type = 'file';\n\n if (this.multiple) {\n inputElement.setAttribute('multiple', '');\n }\n\n inputElement.onchange = () => {\n this.loadFile(this.inputElement.files);\n };\n\n this.inputElement = inputElement;\n }\n\n private loadFile(files: FileList) {\n for (let i = 0; i < files.length; i++) {\n const file = files.item(i);\n\n const reader = new FileReader();\n reader.onload = (e: any) => {\n this.onChangeCallback({\n rawData: e.target.result,\n file\n });\n };\n\n if (file) {\n reader.readAsDataURL(file); // Read the file as base64\n } else {\n this.onChangeCallback();\n }\n }\n\n this.inputElement.files = undefined;\n this.inputElement.value = '';\n }\n\n}\n\nexport interface IUploadDirectiveData {\n rawData: string;\n file: File;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cnpj'\n})\nexport class CnpjPipe implements PipeTransform {\n\n transform(value: string) {\n return value.padStart(14, '0').replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})/g, '\\$1.\\$2.\\$3/\\$4-\\$5');\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'count'\n})\nexport class CountPipe implements PipeTransform {\n transform(value: number, more: string, one: string, nothing: string): string{\n let message = '';\n\n if(value === 0) message = nothing;\n else if(value === 1) message = `${value} ${one}`;\n else message = `${value} ${more}`;\n\n return message;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cpf'\n})\nexport class CpfPipe implements PipeTransform {\n\n transform(value: string): any {\n if (value && value.length === 11) {\n return value.replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/g, '\\$1.\\$2.\\$3-\\$4');\n } else {\n return value;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'enumToArray'\n})\nexport class EnumToArrayPipe implements PipeTransform {\n\n transform(value: any): { key: string, value: any }[] {\n if (value) {\n const keys = Object.keys(value);\n\n const items = new Array();\n\n for (const key of keys) {\n items.push({ key, value: value[key] });\n }\n\n return items;\n } else {\n return value;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'phone'\n})\nexport class PhonePipe implements PipeTransform {\n\n transform(value: string) {\n if (value) {\n let formatedValue: string;\n\n switch (value.length) {\n case 12:\n // Fax\n formatedValue = value.replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{4})/g, '\\+$1 \\$2 \\$3 \\$4');\n break;\n\n case 11:\n // Cell phone\n formatedValue = value.replace(/(\\d{2})(\\d{1})(\\d{4})(\\d{4})/g, '\\($1) \\$2 \\$3-\\$4');\n break;\n\n case 10:\n // Phone\n formatedValue = value.replace(/(\\d{2})(\\d{4})(\\d{4})/g, '\\($1) \\$2-\\$3');\n break;\n\n case 8:\n // Phone\n formatedValue = value.replace(/(\\d{4})(\\d{4})/g, '\\$1-\\$2');\n break;\n\n default:\n formatedValue = value;\n break;\n }\n\n return formatedValue;\n } else {\n return value;\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CpfPipe } from './cpf.pipe';\nimport { CnpjPipe } from './cnpj.pipe';\nimport { PhonePipe } from './phone.pipe';\nimport { RangeToArrayPipe } from './rangeToArray.pipe';\nimport { SafePipe } from './safe.pipe';\nimport { EnumToArrayPipe } from './enum-to-array.pipe';\nimport { ToStringPipe } from './to-string.pipe';\nimport { CountPipe } from './count.pipe';\n\n@NgModule({\n declarations: [\n CpfPipe,\n CnpjPipe,\n PhonePipe,\n RangeToArrayPipe,\n SafePipe,\n EnumToArrayPipe,\n ToStringPipe,\n CountPipe\n ],\n imports: [\n CommonModule\n ],\n exports: [\n CpfPipe,\n CnpjPipe,\n PhonePipe,\n RangeToArrayPipe,\n SafePipe,\n EnumToArrayPipe,\n ToStringPipe,\n CountPipe\n ]\n})\nexport class PipesModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'rangeToArray'\n})\nexport class RangeToArrayPipe implements PipeTransform {\n\n transform(start: number, end: number) {\n if (start && end) {\n const array: number[] = new Array();\n for (let i = start; i <= end; i++) {\n array.push(i);\n }\n\n return array;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe'\n})\nexport class SafePipe implements PipeTransform {\n\n constructor(\n private sanitizer: DomSanitizer\n ) { }\n\n transform(url: string) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toString'\n})\nexport class ToStringPipe implements PipeTransform{\n transform(value: any): string{\n return value.toString();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { FilterPipeModule } from 'ngx-filter-pipe';\nimport { NgxMaskModule } from 'ngx-mask';\nimport { PipesModule } from './pipes/pipes.module';\nimport { DirectivesModule } from './directives/directives.module';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport { CurrencyMaskModule } from \"ng2-currency-mask\";\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n HttpClientModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule.forChild(),\n PipesModule,\n FilterPipeModule,\n NgxMaskModule.forChild(),\n CurrencyMaskModule,\n DirectivesModule,\n CdkTableModule,\n MatTooltipModule,\n ],\n exports: [\n RouterModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n PipesModule,\n FilterPipeModule,\n NgxMaskModule,\n CurrencyMaskModule,\n DirectivesModule,\n CdkTableModule,\n MatTooltipModule,\n ],\n providers: []\n})\nexport class SharedModule { }\n","/**\n * generate groups of 4 random characters\n * @example getUniqueId(1) : 607f\n * @example getUniqueId(2) : 95ca-361a-f8a1-1e73\n */\nexport function getUniqueId(parts: number): string {\n const stringArr = [];\n for (let i = 0; i < parts; i++) {\n // tslint:disable-next-line:no-bitwise\n const S4 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\n stringArr.push(S4);\n }\n return stringArr.join('-').toUpperCase();\n}\n","export function groupBy(array: T[], property: (x: T) => string): { [key: string]: Array } {\n return array.reduce((memo: { [key: string]: T[] }, x: T) => {\n if (!memo[property(x)]) {\n memo[property(x)] = [];\n }\n memo[property(x)].push(x);\n return memo;\n }, {});\n}\n","export function isFunction(functionToCheck: any): functionToCheck is () => T {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { FormArray, FormGroup } from \"@angular/forms\";\n\nexport const removeValidators = (control: any) => {\n if (control instanceof FormGroup) {\n Object.keys(control.controls).forEach(key => {\n const childControl = control.controls[key];\n removeValidators(childControl);\n childControl.clearValidators();\n });\n } else if (control instanceof FormArray) {\n control.controls.forEach(childControl => {\n removeValidators(childControl);\n childControl.clearValidators();\n });\n } else {\n control.clearValidators();\n }\n control.updateValueAndValidity();\n}","import { FormControl } from '@angular/forms';\n\nexport function validateCep(control: FormControl) {\n if (control.value && control.value.length != 8) {\n return {\n cep: 'Cep inválido'\n };\n }\n return null;\n}\n","import { FormControl } from '@angular/forms';\n\nexport function validateCnpj(control: FormControl) {\n if (control.value != null && control.value != '') {\n let cnpj = control.value.replace(/[^\\d]+/g, '');\n\n if (cnpj.length != 14)\n return { cnpj: true };\n\n // Elimina CNPJs invalidos conhecidos\n if (cnpj == \"00000000000000\" ||\n cnpj == \"11111111111111\" ||\n cnpj == \"22222222222222\" ||\n cnpj == \"33333333333333\" ||\n cnpj == \"44444444444444\" ||\n cnpj == \"55555555555555\" ||\n cnpj == \"66666666666666\" ||\n cnpj == \"77777777777777\" ||\n cnpj == \"88888888888888\" ||\n cnpj == \"99999999999999\")\n return { cnpj: true };\n\n // Valida DVs\n let size = cnpj.length - 2;\n let numbers = cnpj.substring(0, size);\n let digits = cnpj.substring(size);\n let sum = 0;\n let pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2)\n pos = 9;\n }\n let resultado = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (resultado != digits.charAt(0))\n return { cnpj: true };\n\n size = size + 1;\n numbers = cnpj.substring(0, size);\n sum = 0;\n pos = size - 7;\n for (let i = size; i >= 1; i--) {\n sum += numbers.charAt(size - i) * pos--;\n if (pos < 2)\n pos = 9;\n }\n resultado = sum % 11 < 2 ? 0 : 11 - sum % 11;\n if (resultado != digits.charAt(1))\n return { cnpj: true };\n\n return null;\n }\n}","import { FormControl } from '@angular/forms';\n\nconst eanDunRegex = /^(\\d{8}|\\d{12,14})$/;\nconst eanSapRegex = /^(1{1}0{7})\\d{6}$/\n\nexport function validateEanDun() {\n return (control: FormControl) => {\n const value: string = control.value;\n\n if (value == undefined || value.length == 0) {\n return null;\n }\n\n if (eanSapRegex.test(value)) {\n return null;\n }\n\n if (!eanDunRegex.test(value)) {\n return {\n eanDun: 'Deve possuir 8, 12, 13, ou 14 caracteres',\n };\n }\n\n const paddedValue = value.padStart(14, '0');\n const sum = paddedValue.split('')\n .map( (pv, i) => (+pv) * ((i % 2 == 0) ? 3 : 1))\n .reduce( (previous, current) => current + previous, 0 );\n // Valida EAN pelo método aritimético e pelo Range do EAN SAP\n if (!(sum % 10 == 0) && (parseInt(paddedValue) < 10000000000000 || parseInt(paddedValue) > 100000000099999999)) {\n return {\n eanDun: 'Código Inválido',\n };\n }\n };\n}\n","import { FormControl } from '@angular/forms';\n\nexport function onlyInteger() {\n return (control: FormControl) => {\n const value = control.value;\n return Number.isInteger(value) ? null : { onlyInteger: false };\n };\n}\n\n","import { FormControl } from '@angular/forms';\nimport { isFunction } from 'src/app/shared/utils/is-function';\n\nexport function validatePassword(secondControl: (() => FormControl) | FormControl) {\n return (control: FormControl) => {\n const controlToCompare = isFunction(secondControl) ? secondControl() : secondControl;\n\n if (controlToCompare) {\n if (control.value != controlToCompare.value) {\n return {\n passwordNotSame: true\n };\n }\n }\n\n return null;\n };\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-card-title',\n templateUrl: './card-title.component.html',\n styleUrls: ['./card-title.component.scss']\n})\nexport class CardTitleComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CardComponent } from './card/card.component';\nimport { CardTitleComponent } from './card-title/card-title.component';\n\n@NgModule({\n declarations: [\n CardComponent,\n CardTitleComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n CardComponent,\n CardTitleComponent\n ]\n})\nexport class CardModule { }\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'c-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CardComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, ElementRef, Injector, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorGroupMixin } from 'src/app/shared/classes/control-value-accessor-group-mixin.class';\n\n@Component({\n selector: 'c-checkbox-group',\n templateUrl: './checkbox-group.component.html',\n styleUrls: ['./checkbox-group.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxGroupComponent),\n multi: true\n }\n ]\n})\nexport class CheckboxGroupComponent extends ControlValueAccessorGroupMixin {\n\n @Input() label: string;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector\n ) {\n super(elementRef, injector);\n this.arrayMode = true;\n this.replicateValidators = false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { IconModule } from '../icon/icon.module';\nimport { CheckboxGroupComponent } from './checkbox-group/checkbox-group.component';\nimport { InputErrorModule } from '../input-error/input-error.module';\n\n@NgModule({\n declarations: [\n CheckboxComponent,\n CheckboxGroupComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule,\n InputErrorModule\n ],\n exports: [\n CheckboxComponent,\n CheckboxGroupComponent\n ]\n})\nexport class CheckboxModule { }\n","import {\n Component,\n OnInit,\n forwardRef,\n ElementRef,\n HostListener,\n Injector,\n Optional,\n Input,\n HostBinding,\n ChangeDetectionStrategy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\nimport { CheckboxGroupComponent } from '../checkbox-group/checkbox-group.component';\n\n@Component({\n selector: 'c-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckboxComponent extends ControlValueAccessorMixin implements OnInit {\n\n @HostBinding('attr.tabindex') get tabindex() {\n return (this.control && this.control.disabled) || this.isReadOnly ? '-1' : '0';\n }\n\n @Input() name: string;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective: ReadOnlyDirective,\n @Optional() private checkboxGroupComponent: CheckboxGroupComponent,\n private cdr: ChangeDetectorRef\n ) {\n super(elementRef, injector, readOnlyDirective);\n this.innerValue = false;\n }\n\n ngOnInit() {\n if (this.checkboxGroupComponent) {\n this.checkboxGroupComponent.createAndConnectFormControlWithCustomControlAndFormControl(this);\n }\n }\n\n @HostListener('click')\n @HostListener('keyup.enter')\n toggle() {\n if (!this.control || this.control && this.control.enabled && !this.isReadOnly) {\n this.value = !this.value;\n this.onTouchedCallback();\n }\n }\n\n writeValue(value: any) {\n super.writeValue(value);\n this.cdr.detectChanges();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CollapseComponent } from './collapse/collapse.component';\nimport { IconModule } from '../icon/icon.module';\n\n\n\n@NgModule({\n declarations: [CollapseComponent],\n exports: [\n CollapseComponent\n ],\n imports: [\n CommonModule,\n IconModule\n ]\n})\nexport class CollapseModule { }\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { setLocalStorage, getLocalStorage } from 'src/app/shared/decorators/local-storage.decorator';\n\n@Component({\n selector: 'c-collapse',\n templateUrl: './collapse.component.html',\n styleUrls: ['./collapse.component.scss'],\n // changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CollapseComponent implements OnInit {\n\n @Input() id: string;\n @Input() icon: string;\n @Input() title: string;\n\n // tslint:disable-next-line: variable-name\n private _open: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n this.open = getLocalStorage(`collapseComponent_${this.id}`);\n }\n\n toggle() {\n this.open = !this.open;\n }\n\n get open(): boolean {\n return this._open;\n }\n\n @Input()\n set open(value: boolean) {\n setLocalStorage(`collapseComponent_${this.id}`, value);\n this._open = value;\n }\n\n get isOpen() {\n return this._open;\n }\n\n}\n","import { Component, OnInit, Input, HostBinding, HostListener } from '@angular/core';\nimport { ColumnFilterComponent } from '../column-filter.component';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'c-column-filter-item',\n templateUrl: './column-filter-item.component.html',\n styleUrls: ['./column-filter-item.component.scss']\n})\nexport class ColumnFilterItemComponent implements OnInit {\n\n @HostBinding('attr.tabindex') tabindex = '0';\n @Input() value: string | number;\n self = this;\n writeValue$: Subscription;\n\n constructor(\n public columnFilterComponent: ColumnFilterComponent\n ) { }\n\n ngOnInit() {\n this.listenWriteValue();\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keyup.enter', ['$event'])\n toggle() {\n this.columnFilterComponent.toggleItem(this);\n }\n\n private listenWriteValue() {\n this.writeValue$ = this.columnFilterComponent.writeValue$.subscribe((res: any) => {\n this.writeValue(res);\n });\n }\n\n private writeValue(data: any) {\n if (data.includes(this.value)) {\n this.columnFilterComponent.selectedItems.add(this);\n }\n }\n\n}\n","import { Component, forwardRef, Input, ElementRef, Injector, Optional } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\nimport { ColumnFilterItemComponent } from './column-filter-item/column-filter-item.component';\nimport { ReplaySubject } from 'rxjs';\n\n@Component({\n selector: 'c-column-filter',\n templateUrl: './column-filter.component.html',\n styleUrls: ['./column-filter.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ColumnFilterComponent),\n multi: true\n }\n ]\n})\nexport class ColumnFilterComponent extends ControlValueAccessorMixin<(string|number)[]> {\n\n @Input() label: string;\n\n isOpen = false;\n selectedItems: Set = new Set();\n writeValue$ = new ReplaySubject();\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n writeValue(value: any) {\n if (Array.isArray(value) && value.length != 0) {\n super.writeValue(value);\n this.writeValue$.next(value);\n } else {\n this.reset();\n }\n }\n\n toggleItem(item: ColumnFilterItemComponent) {\n // Check if options don't exists\n if (!this.selectedItems.has(item)) {\n this.selectedItems.add(item);\n } else {\n this.selectedItems.delete(item);\n }\n\n this.value = Array.from(this.selectedItems).map( c => c.value );\n }\n\n toggleOpenClosed() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n\n open() {\n if (!this.isDisabled && !this.isReadOnly) {\n this.isOpen = true;\n }\n }\n\n close() {\n if (this.isOpen) {\n this.blur();\n }\n\n this.isOpen = false;\n }\n\n reset() {\n this.value = undefined;\n this.selectedItems.clear();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ColumnFilterComponent } from './column-filter.component';\nimport { InputErrorModule } from '../input-error/input-error.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { IconModule } from '../icon/icon.module';\nimport { CheckboxModule } from '../checkbox/checkbox.module';\nimport { ColumnFilterItemComponent } from './column-filter-item/column-filter-item.component';\n\n\n\n@NgModule({\n declarations: [\n ColumnFilterComponent,\n ColumnFilterItemComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule,\n CheckboxModule,\n InputErrorModule,\n ],\n exports: [\n ColumnFilterComponent,\n ColumnFilterItemComponent\n ]\n})\nexport class ColumnFilterModule { }\n","import { Component, OnInit, forwardRef, Input, Injector, DoCheck, OnDestroy, HostListener } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, FormControl, NG_VALIDATORS, Validator, ValidationErrors, ControlValueAccessor, FormBuilder, FormArray, NgControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { tap, map } from 'rxjs/operators';\nimport { errorMapper } from 'src/app/shared/classes/error.map';\nimport { CompositionInput } from './composition-input';\n\ntype Data = CompositionInput;\ntype OnChangeFn = (data: Data) => any;\ntype OnTouchedFn = () => any;\n\n@Component({\n selector: 'c-composition-input',\n templateUrl: './composition-input.component.html',\n styleUrls: ['./composition-input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CompositionInputComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => CompositionInputComponent),\n multi: true,\n }\n ]\n})\nexport class CompositionInputComponent implements OnInit, OnDestroy, DoCheck, ControlValueAccessor, Validator {\n destroy$ = new Subject();\n\n @Input() options: { description: string; optionId: string }[] = [];\n @Input() rows = 5;\n @Input() maxTotal: number;\n @Input() minTotal: number;\n @Input() symbol = '%';\n @Input() label: string;\n\n private onTouched: OnTouchedFn;\n form: FormArray;\n\n ngControl: NgControl;\n\n touched = false;\n isMouseOver: boolean;\n\n constructor(\n private injector: Injector,\n private fb: FormBuilder\n ) {\n this.form = this.fb.array([]);\n // adicionar validação de min e max\n // console.log(this);\n\n for (let i = 0; i < this.rows; i++) {\n this.form.insert(i, this.createItem());\n }\n }\n\n ngOnInit() {\n // tslint:disable-next-line: deprecation\n this.ngControl = this.injector.get(NgControl);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.unsubscribe();\n }\n\n ngDoCheck() {\n if (this.ngControl && this.touched !== this.ngControl.touched) {\n this.touched = this.ngControl.touched;\n if (this.touched) {\n this.form.markAllAsTouched();\n }\n }\n }\n\n writeValue(data: Data) {\n if (Array.isArray(data)) {\n // patch form value\n data.forEach((item, index) => {\n this.form.get([index]).patchValue(item, { emitEvent: false });\n });\n } else {\n this.reset();\n }\n }\n\n private createItem() {\n return this.fb.group({\n percentage: [0, [Validators.max(this.maxTotal), Validators.min(this.minTotal)]],\n optionId: [undefined]\n });\n }\n\n reset() {\n this.form.reset([]);\n }\n\n registerOnChange(fn: OnChangeFn) {\n // console.log('registerOnChange');\n fn(this.normalizeValue(this.form.value));\n // this.form.valueChanges.subscribe(value => console.log('new value', value));\n this.form.valueChanges.pipe(\n map(this.normalizeValue)\n ).subscribe(fn);\n }\n\n /** quando todos os valores estão sem optionId e sem porcentagem\n * retorna nulo ao invez do objeto, para que o mesmo seja validado quando o input esta como required\n * caso o input contem qualquer valor caira na validação interna do método validate\n */\n private normalizeValue(value: Data) {\n if (value) {\n if (value.every( v => !v.optionId && !v.percentage)) {\n return null;\n }\n }\n\n return value;\n }\n\n registerOnTouched(fn: OnTouchedFn) {\n // console.log('registerOnTouched');\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean) {\n if (disabled) {\n this.form.disable();\n } else {\n this.form.enable();\n }\n }\n\n get isInvalidAndTocuhed() {\n return this.ngControl && this.ngControl.invalid && (this.ngControl.touched || this.form.touched);\n }\n\n get isDisabled() {\n return this.ngControl && this.ngControl.disabled;\n }\n\n get isRequired() {\n const control: any = this.ngControl;\n const validators = control && control.validator('');\n return validators && validators.required;\n }\n\n @HostListener('mouseenter') mouseenter() {\n this.isMouseOver = true;\n }\n\n @HostListener('mouseleave') mouseleave() {\n this.isMouseOver = false;\n }\n\n validate(control: FormControl): ValidationErrors | null {\n const value: Data | null = control.value;\n\n // if (!value || value.every( v => !v.optionId)) {\n // return {\n // required: true\n // };\n // }\n\n if (value) {\n const sum = value.reduce((previous, current) => previous + current.percentage, 0);\n\n if (sum == 0 && value.every( v => !v.optionId)) {\n return null;\n }\n\n if (sum > this.maxTotal) {\n return {\n max: { max: this.maxTotal }\n };\n }\n\n if (sum < this.minTotal) {\n return {\n min: { min: this.minTotal }\n };\n }\n\n const ids = value.map( v => v.optionId ).filter(id => !!id);\n if ((new Set(ids)).size !== ids.length) {\n return {\n duplicatedItens: 'elimine itens duplicados'\n };\n }\n\n if (value.some( v => v.percentage > 0 && !v.optionId)) {\n return {\n invalidItens: 'Itens com valor sem tipo selecionado'\n };\n }\n }\n\n\n return null;\n }\n\n get errors() {\n return this.ngControl && this.ngControl.invalid ? Object.entries(this.ngControl.errors).map(\n ([type, param]) => this.getErrorWithParameters(type, this.ngControl, param)) : [];\n }\n\n private getErrorWithParameters(error: string, control: NgControl, param?: string | string[]) {\n return (errorMapper.get(error) || errorMapper.get('custom'))(error, control, param);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CompositionInputComponent } from './composition-input.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputErrorModule } from '../input-error/input-error.module';\nimport { IconModule } from '../icon/icon.module';\nimport { SelectModule } from '../select/select.module';\nimport { InputModule } from '../input/input.module';\n\n\n\n@NgModule({\n declarations: [CompositionInputComponent],\n imports: [\n CommonModule,\n SharedModule,\n InputModule,\n SelectModule,\n InputErrorModule,\n IconModule,\n ],\n exports: [\n CompositionInputComponent\n ]\n})\nexport class CompositionInputModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-cookies',\n templateUrl: './cookies.component.html',\n styleUrls: ['./cookies.component.scss']\n})\nexport class CookiesComponent {\n\n showCookies = false\n\n constructor() {\n const terms = localStorage.getItem('terms-smart')\n if(!terms) this.showCookies = true\n }\n\n saveCookies(){\n localStorage.setItem('terms-smart', `true`)\n this.showCookies = false\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AreYouSureModule } from 'src/app/shared/directives/are-you-sure/are-you-sure.module';\nimport { IconModule } from '../icon/icon.module';\nimport { CookiesComponent } from './cookies.component';\n\n\n\n@NgModule({\n declarations: [CookiesComponent],\n imports: [\n CommonModule,\n IconModule,\n AreYouSureModule\n ],\n exports: [CookiesComponent]\n})\nexport class CookiesModule { }\n","import { Component, OnInit, Input, Output, EventEmitter, HostListener, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'c-dynamic-tab-item',\n templateUrl: './dynamic-tab-item.component.html',\n styleUrls: ['./dynamic-tab-item.component.scss']\n})\nexport class DynamicTabItemComponent implements OnInit {\n\n @Input() removeAble = true;\n @Input() confirmRemoveMessage = 'Tem certeza que deseja remover este item?';\n\n @Input()\n active: boolean;\n\n @Output() itemRemoved = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'c-dynamic-tab',\n templateUrl: './dynamic-tab.component.html',\n styleUrls: ['./dynamic-tab.component.scss']\n})\nexport class DynamicTabComponent implements OnInit {\n\n @Input() showAdd = true;\n @Output() add = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DynamicTabComponent } from './dynamic-tab.component';\nimport { IconModule } from '../icon/icon.module';\nimport { DynamicTabItemComponent } from './dynamic-tab-item/dynamic-tab-item.component';\nimport { AreYouSureModule } from 'src/app/shared/directives/are-you-sure/are-you-sure.module';\n\n\n\n@NgModule({\n declarations: [DynamicTabComponent, DynamicTabItemComponent],\n imports: [\n CommonModule,\n IconModule,\n AreYouSureModule\n ],\n exports: [DynamicTabComponent, DynamicTabItemComponent]\n})\nexport class DynamicTabModule { }\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'c-empty-pattern',\n templateUrl: './empty-pattern.component.html',\n styleUrls: ['./empty-pattern.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EmptyPatternComponent implements OnInit {\n\n @Input() icon: string;\n @Input() message: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EmptyPatternComponent } from './empty-pattern.component';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [\n EmptyPatternComponent\n ],\n imports: [\n CommonModule,\n IconModule\n ],\n exports: [\n EmptyPatternComponent\n ]\n})\nexport class EmptyPatternModule { }\n","import { Component, OnInit, Input } from '@angular/core';\nimport { WorkflowProduto } from 'src/app/models/api/workflow/workflow-produto.interface';\n\n@Component({\n selector: 'c-general-integration-info',\n templateUrl: './general-integration-info.component.html',\n styleUrls: ['./general-integration-info.component.scss']\n})\nexport class GeneralIntegrationInfoComponent implements OnInit {\n\n @Input() data: WorkflowProduto;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n getApprobationStatusName(value: boolean) {\n if (value != undefined) {\n return value ? 'product.approbation status.approved' : 'product.approbation status.reproved';\n } else {\n return '-';\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GeneralIntegrationInfoComponent } from './general-integration-info.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [\n GeneralIntegrationInfoComponent\n ],\n imports: [\n CommonModule,\n SharedModule\n ],\n exports: [\n GeneralIntegrationInfoComponent\n ]\n})\nexport class GeneralIntegrationInfoModule { }\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'c-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconComponent implements OnInit {\n /** icon name */\n @Input() icon: string;\n /** svg icon source */\n @Input() src = '/assets/icon-sprite.svg';\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from './icon.component';\n\n\n\n@NgModule({\n declarations: [IconComponent],\n imports: [\n CommonModule\n ],\n exports: [\n IconComponent\n ]\n})\nexport class IconModule { }\n","import { Component, OnInit, Input, ElementRef, Injector, forwardRef, Optional } from '@angular/core';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport { IUploadDirectiveData } from 'src/app/shared/directives/upload.directive';\nimport { ApiMidiaService } from 'src/app/services/api/midia/api-midia.service';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\n\n@Component({\n selector: 'c-image-uploader',\n templateUrl: './image-uploader.component.html',\n styleUrls: ['./image-uploader.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ImageUploaderComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => ImageUploaderComponent),\n multi: true,\n }\n ]\n})\nexport class ImageUploaderComponent extends ControlValueAccessorMixin implements OnInit {\n\n @Input() label: string;\n @Input() productId: string;\n @Input() uploadEnabled: boolean;\n @Input() minWidth: number;\n @Input() minHeight: number;\n @Input() maxWidth: number;\n @Input() maxHeight: number;\n @Input() especialUpload: boolean;\n @Input() altaResolucaoUpload: boolean;\n\n images: ImageUploaderData[];\n imageUploaderDataValidationsEnum = ImageUploaderDataValidationsEnum;\n\n private draggingItemIndex: number;\n private latestEnteredItem: ImageUploaderData;\n\n constructor(\n private midiaServ: ApiMidiaService,\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngOnInit() {\n }\n\n writeValue(value: ImageUploaderData[]) {\n if (value) {\n value.forEach(elem => {\n if (typeof (elem) == 'string') {\n this.addImage({\n link: elem\n } as any as ImageUploaderData);\n } else {\n this.addImage(elem);\n }\n });\n }\n }\n\n dragEnterImage(e: DragEvent, i: number, data: ImageUploaderData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n if (this.latestEnteredItem) {\n this.latestEnteredItem.isLeftVisible = false;\n this.latestEnteredItem.isRightVisible = false;\n }\n\n if (this.draggingItemIndex > i) {\n data.isLeftVisible = true;\n } else {\n data.isRightVisible = true;\n }\n\n this.latestEnteredItem = data;\n }\n }\n }\n\n dragLeaveImage(e: DragEvent, i: number, data: ImageUploaderData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n data.isLeftVisible = undefined;\n data.isRightVisible = undefined;\n }\n }\n }\n\n dropImage(e: DragEvent, i: number, data: ImageUploaderData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n // Change item position\n const draggingItem: ImageUploaderData = this.images[this.draggingItemIndex];\n this.images.splice(this.draggingItemIndex, 1);\n this.images.splice(i, 0, draggingItem);\n\n this.draggingItemIndex = undefined;\n data.isLeftVisible = undefined;\n data.isRightVisible = undefined;\n\n this.updateValue();\n }\n }\n }\n\n dragOverImage(e: DragEvent) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n dragStartImage(e: DragEvent, i: number, data: ImageUploaderData) {\n e.stopPropagation();\n this.draggingItemIndex = i;\n }\n\n dragEndImage(e: DragEvent, i: number, data: ImageUploaderData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n this.closeAllLeftAndRightItems();\n }\n }\n\n removeImage(i: number) {\n this.images.splice(i, 1);\n this.updateValue();\n }\n\n async addImage(data: ImageUploaderData, makeUpload?: boolean) {\n if (!this.images) {\n this.images = new Array();\n }\n\n let imageData: ImageUploaderData = data;\n\n if (makeUpload && this.uploadEnabled) {\n imageData = await this.uploadImage(data) as ImageUploaderData;\n }\n\n this.images.push(imageData);\n imageData.validation = await this.checkImageValidation(imageData);\n\n this.updateValue();\n }\n\n private uploadImage(data: ImageUploaderData) {\n if (this.especialUpload) {\n return this.midiaServ.uploadEspecialImage(this.productId, data.file).toPromise();\n } else if (this.altaResolucaoUpload) {\n return this.midiaServ.uploadImageAltaResolucao(this.productId, data.file).toPromise();\n } else {\n return this.midiaServ.uploadImage(this.productId, data.file).toPromise();\n }\n }\n\n private updateValue() {\n this.blur();\n\n if (this.images.length) {\n this.value = this.images.slice().map(elem => {\n const data = {\n ...elem\n };\n\n delete data.isLeftVisible;\n delete data.isRightVisible;\n\n return data;\n });\n } else {\n this.value = undefined;\n }\n }\n\n private closeAllLeftAndRightItems() {\n this.images.forEach(elem => {\n elem.isLeftVisible = false;\n elem.isRightVisible = false;\n });\n }\n\n private checkImageValidation(data: ImageUploaderData): Promise {\n return new Promise(resolve => {\n const source = data && data.link || data && data.rawData;\n\n const img = new Image();\n img.onload = () => {\n if (img.width < this.minWidth || img.height < this.minHeight) {\n resolve(ImageUploaderDataValidationsEnum.error);\n } else if (img.width > this.maxWidth || img.height > this.maxHeight) {\n resolve(ImageUploaderDataValidationsEnum.warning);\n } else {\n resolve(ImageUploaderDataValidationsEnum.valid);\n }\n };\n img.src = source;\n });\n }\n\n validate() {\n if (this.images) {\n const imageWithError = this.images.find(elem => elem.validation == ImageUploaderDataValidationsEnum.error);\n return imageWithError ? { errors: true } : null;\n }\n\n return null;\n }\n\n}\n\nexport interface ImageUploaderData extends IUploadDirectiveData {\n isLeftVisible: boolean;\n isRightVisible: boolean;\n isMouseOver: boolean;\n validation: ImageUploaderDataValidationsEnum;\n link?: string;\n id?: string;\n}\n\nenum ImageUploaderDataValidationsEnum {\n valid = 0,\n error = 1,\n warning = 2\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImageUploaderComponent } from './image-uploader.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { IconModule } from '../icon/icon.module';\nimport { InputErrorModule } from '../input-error/input-error.module';\n\n@NgModule({\n declarations: [\n ImageUploaderComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule,\n InputErrorModule\n ],\n exports: [\n ImageUploaderComponent\n ]\n})\nexport class ImageUploaderModule { }\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n selector: 'c-img',\n templateUrl: './img.component.html',\n styleUrls: ['./img.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImgComponent implements OnInit {\n\n @Input() src = '';\n\n constructor() { }\n\n ngOnInit() {\n }\n\n getImg() {\n return this.src ? `url(${this.src})` : '';\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImgComponent } from './img.component';\n\n@NgModule({\n declarations: [\n ImgComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ImgComponent\n ]\n})\nexport class ImgModule { }\n","import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core';\nimport { trigger, transition, style, group, query, animateChild, animate } from '@angular/animations';\n\n@Component({\n selector: 'c-input-error',\n templateUrl: './input-error.component.html',\n styleUrls: ['./input-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('icon', [\n transition('void => *', [\n style({ opacity: 0 }),\n group([\n animate(150, style({ opacity: 1 }))\n ]),\n ]),\n transition('* => void', [\n style({ opacity: 1 }),\n group([\n animate(100, style({ opacity: 0 }))\n ]),\n ])\n ]),\n trigger('dialog', [\n transition('void => *', [\n style({ opacity: 0 }),\n group([\n animate(150, style({ opacity: 1 }))\n ]),\n ]),\n // transition('* => void', [\n // style({ opacity: 1 }),\n // group([\n // animate(100, style({ opacity: 0 }))\n // ]),\n // ])\n ]),\n ]\n})\nexport class InputErrorComponent implements OnInit {\n\n @Input() showDialog = false;\n @Input() showIcon = true;\n @Input() errors: {\n type: string;\n params: any;\n literal: boolean;\n }[];\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputErrorComponent } from './input-error.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n\n\n@NgModule({\n declarations: [InputErrorComponent],\n imports: [\n CommonModule,\n SharedModule\n ],\n exports: [\n InputErrorComponent\n ]\n})\nexport class InputErrorModule { }\n","import { Component, OnInit, Input } from '@angular/core';\nimport { animate, trigger, transition, style, group } from '@angular/animations';\n\n@Component({\n selector: 'c-input-info',\n templateUrl: './input-info.component.html',\n styleUrls: ['./input-info.component.scss'],\n animations: [\n trigger('dialog', [\n transition('void => *', [\n style({ opacity: 0 }),\n group([\n animate(150, style({ opacity: 1 }))\n ]),\n ]),\n // transition('* => void', [\n // style({ opacity: 1 }),\n // group([\n // animate(100, style({ opacity: 0 }))\n // ]),\n // ])\n ]),\n ]\n})\nexport class InputInfoComponent implements OnInit {\n @Input() showDialog = false;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputInfoComponent } from './input-info.component';\n\n\n\n@NgModule({\n declarations: [InputInfoComponent],\n imports: [\n CommonModule\n ],\n exports: [\n InputInfoComponent\n ]\n})\nexport class InputInfoModule { }\n","import { Component, OnInit, Input, ElementRef } from '@angular/core';\nimport { ControlContainer } from '@angular/forms';\n\n@Component({\n selector: 'c-input-group-container',\n templateUrl: './input-group-container.component.html',\n styleUrls: ['./input-group-container.component.scss']\n})\nexport class InputGroupContainerComponent implements OnInit {\n\n @Input() isRequired: boolean;\n @Input() label: string;\n\n @Input() disableValidation = false;\n\n get isDisabled() {\n return !this.controlContainer.control.enabled;\n }\n\n get isFormInvalid() {\n return this.controlContainer.control.invalid && this.controlContainer.control.touched;\n }\n\n constructor(\n public controlContainer: ControlContainer,\n private ref: ElementRef,\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, ElementRef, Injector, QueryList, ContentChildren, AfterViewInit, forwardRef } from '@angular/core';\nimport { InputComponent } from '../input/input.component';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport { ControlValueAccessorGroupMixin } from 'src/app/shared/classes/control-value-accessor-group-mixin.class';\n\n@Component({\n selector: 'c-input-group',\n templateUrl: './input-group.component.html',\n styleUrls: ['./input-group.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputGroupComponent),\n multi: true\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => InputGroupComponent),\n multi: true,\n }\n ]\n})\nexport class InputGroupComponent extends ControlValueAccessorGroupMixin implements AfterViewInit {\n\n @ContentChildren(InputComponent) inputs: QueryList;\n\n @Input() label: string;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector\n ) {\n super(elementRef, injector);\n }\n\n ngAfterViewInit() {\n this.init(this.inputs);\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputComponent } from './input/input.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputGroupComponent } from './input-group/input-group.component';\nimport { InputErrorModule } from '../input-error/input-error.module';\nimport { IconModule } from '../icon/icon.module';\nimport { InputGroupContainerComponent } from './input-group-container/input-group-container.component';\nimport { InputInfoModule } from '../input-info/input-info.module';\n\n@NgModule({\n declarations: [\n InputComponent,\n InputGroupComponent,\n InputGroupContainerComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n InputErrorModule,\n InputInfoModule,\n IconModule\n ],\n exports: [\n InputComponent,\n InputGroupComponent,\n InputGroupContainerComponent\n ]\n})\nexport class InputModule { }\n","import {\n Component,\n OnInit,\n forwardRef,\n Input,\n ElementRef,\n Injector,\n HostListener,\n ViewChild,\n Optional,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\n\n@Component({\n selector: 'c-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true\n }\n ]\n})\nexport class InputComponent extends ControlValueAccessorMixin implements OnInit {\n\n @Input() label: string;\n @Input() placeholder: string;\n @Input() prefix: string;\n @Input() sufix: string;\n @Input() type = 'text';\n @Input() rows = 1;\n @Input() textMask: string;\n @Input() icon: string;\n @Input() step = 0.1;\n @Input() info: string;\n @Input() red: boolean;\n\n @ViewChild('input1', { static: false }) input1: ElementRef;\n @ViewChild('input2', { static: false }) input2: ElementRef;\n @ViewChild('input3', { static: false }) input3: ElementRef;\n @ViewChild('input4', { static: false }) input4: ElementRef;\n @ViewChild('input5', { static: false }) input5: ElementRef;\n @ViewChild('input6', { static: false }) input6: ElementRef;\n\n valueAsNumber(): number | undefined {\n return typeof (+this.value) === 'number' ? this.value : undefined;\n }\n\n valueAsNumberTax(): number | undefined {\n\n if (this.value === undefined){\n this.value = 0;\n return this.value\n }\n else{\n return typeof (+this.value) === 'number' ? this.value : undefined;\n }\n }\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngOnInit() {\n }\n\n @HostListener('focus')\n focus() {\n const input = this.input1 || this.input2 || this.input3 || this.input4 || this.input5 || this.input6;\n if (input) {\n input.nativeElement.focus();\n }\n super.focus();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-loading-login',\n templateUrl: './loading-login.component.html',\n styleUrls: ['./loading-login.component.scss']\n})\nexport class LoadingLoginComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-loading-wave',\n templateUrl: './loading-wave.component.html',\n styleUrls: ['./loading-wave.component.scss']\n})\nexport class LoadingWaveComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'c-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n\n @Input() loading: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LoadingComponent } from './loading.component';\nimport { LoadingLoginComponent } from './loading-login/loading-login.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { LoadingWaveComponent } from './loading-wave/loading-wave.component';\n\n@NgModule({\n declarations: [\n LoadingComponent,\n LoadingLoginComponent,\n LoadingWaveComponent\n],\n imports: [\n CommonModule,\n SharedModule\n ],\n exports: [\n LoadingComponent\n ]\n})\nexport class LoadingModule { }\n","import { Injectable } from '@angular/core';\nimport { ModalService, ModalConfig } from './modal.service';\nimport { tap } from 'rxjs/operators';\nimport { AlertDialogComponent } from './alert-dialog/alert-dialog.component';\n\n@Injectable()\nexport class AlertDialogService {\n\n constructor(\n private modalService: ModalService\n ) { }\n\n alert(message: string, modalConfig: ModalConfig = {}) {\n const ref = this.modalService.open(AlertDialogComponent, {\n initialState: {\n type: 'dialog'\n },\n contentInitialState: {\n message\n },\n ...modalConfig\n });\n\n return ref.contentComponentRef.instance.confirm.toPromise();\n }\n\n}\n","import { Component, OnInit, OnDestroy, Output, EventEmitter, Input } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\n@Component({\n selector: 'c-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent implements OnInit, OnDestroy {\n @Output() confirm: EventEmitter = new EventEmitter();\n @Input() message: string;\n private subscription: Subscription;\n\n readonly destroy: () => void;\n readonly beforeDestroy = (from: 'container' | 'content' | 'outside') => from != 'content' && this.confirm.next(false);\n\n constructor() { }\n\n ngOnInit() {\n this.subscription = this.confirm.pipe(\n first()\n ).subscribe(() => {\n this.destroy();\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ModalService, ModalConfig } from './modal.service';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { tap, take } from 'rxjs/operators';\nimport { AreYouSureDialog } from 'src/app/shared/directives/are-you-sure/are-you-sure-dialog.class';\n\n@Injectable()\nexport class ConfirmDialogService extends AreYouSureDialog {\n constructor(\n private modalService: ModalService\n ) {\n super();\n }\n\n confirm(message: string, modalConfig: ModalConfig = {}) {\n return new Promise((resolve) => {\n const ref = this.modalService.open(ConfirmDialogComponent, {\n initialState: {\n type: 'dialog'\n },\n contentInitialState: {\n message\n },\n ...modalConfig\n });\n\n ref.contentComponentRef.instance.confirm.pipe(take(1)).subscribe( v => {\n resolve(v);\n });\n });\n\n }\n}\n","import { Component, OnInit, Output, EventEmitter, Input, OnDestroy } from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'c-confirm-dialog',\n templateUrl: './confirm-dialog.component.html',\n styleUrls: ['./confirm-dialog.component.scss']\n})\nexport class ConfirmDialogComponent implements OnInit, OnDestroy {\n @Output() confirm: EventEmitter = new EventEmitter();\n @Input() message: string;\n private subscription: Subscription;\n\n readonly destroy: () => void;\n readonly beforeDestroy = (from: 'container' | 'content' | 'outside') => from != 'content' && this.confirm.next(false);\n\n constructor() { }\n\n ngOnInit() {\n this.subscription = this.confirm.pipe(\n first()\n ).subscribe(() => {\n this.destroy();\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalComponent } from './modal/modal.component';\nimport { ModalService } from './modal.service';\nimport { IconModule } from '../icon/icon.module';\nimport { ConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { AlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { ConfirmDialogService } from './confirm-dialog.service';\nimport { AlertDialogService } from './alert-dialog.service';\n\n@NgModule({\n declarations: [\n ModalComponent,\n ConfirmDialogComponent,\n AlertDialogComponent,\n ],\n imports: [\n CommonModule,\n IconModule\n ],\n providers: [\n ModalService,\n ConfirmDialogService,\n AlertDialogService\n ],\n exports: [\n ModalComponent,\n ConfirmDialogComponent,\n AlertDialogComponent,\n ]\n})\nexport class ModalModule { }\n","/* tslint:disable:no-string-literal */\n\nimport {\n Injectable,\n Injector,\n Type,\n ComponentFactoryResolver,\n TemplateRef,\n} from '@angular/core';\nimport { ModalComponent } from './modal/modal.component';\nimport { ComponentLoaderService, Config } from 'src/app/services/component-loader.service';\n\n// fallback typescript 3.4 (recurso nativo do typescript 3.5)\ntype Omit = Pick>;\n\nexport type Content = string | TemplateRef | Type;\nexport type ModalConfig = Omit, 'component' | 'content'>;\n@Injectable()\nexport class ModalService {\n\n constructor(\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private componentLoaderService: ComponentLoaderService,\n ) { }\n\n open(content?: Content, config?: ModalConfig) {\n return this.openWith(ModalComponent, content, config);\n }\n\n openWith(component: Type, content?: Content, config?: ModalConfig) {\n return this.componentLoaderService.create({\n resolver: this.resolver,\n injector: this.injector,\n component,\n content,\n ...config,\n });\n }\n\n}\n","import { Component, OnInit, Input, HostBinding, Renderer2, ElementRef, HostListener } from '@angular/core';\nimport { trigger, transition, style, animate, state, group, query, animateChild } from '@angular/animations';\n\n@Component({\n selector: 'c-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [\n trigger('modal', [\n transition('void => *', [\n style({ opacity: 0 }),\n group([\n query('@content', animateChild()),\n animate(150, style({ opacity: 1 }))\n ]),\n ]),\n transition('* => void', [\n group([\n query('@content', animateChild()),\n animate(100, style({ opacity: 0 }))\n ]),\n ])\n ]),\n trigger('content', [\n transition('void => *', [\n style({ transform: 'translateY(10%)' }),\n animate('200ms ease-out', style({\n transform: 'translateY(0%)',\n }))\n ]),\n transition('* => void', [\n style({ transform: 'translateY(0%)' }),\n animate('200ms ease-in', style({\n transform: 'translateY(20%)',\n }))\n ]),\n ])\n ],\n // tslint:disable-next-line: no-host-metadata-property\n host: {\n '[@modal]': 'true'\n }\n})\nexport class ModalComponent implements OnInit {\n @HostBinding('attr.type')\n @Input() type?: 'fullscreen' | 'dialog' | 'large';\n\n @HostBinding('attr.hideOverlay')\n @Input() hideOverlay?: boolean;\n\n @HostBinding('attr.hideOverlay')\n @Input() hideCloseButton?: boolean;\n\n // custom styles\n @HostBinding('attr.class')\n @Input() class?: string;\n @Input() contentClass?: string;\n @Input() overlayClass?: string;\n set style(s: {[p: string]: any}) {\n for (const p in s) {\n if (s.hasOwnProperty(p)) {\n this.renderer.setStyle(this.elementRef.nativeElement, p, s[p]);\n }\n }\n }\n @Input() contentStyle?: string;\n @Input() overlayStyle?: string;\n\n readonly destroy: () => void;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2\n ) { }\n\n ngOnInit() {\n }\n\n @HostListener('document:keyup.esc')\n close() {\n this.destroy();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss']\n})\nexport class NavbarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NavbarComponent } from './navbar.component';\n\n@NgModule({\n declarations: [\n NavbarComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n NavbarComponent\n ]\n})\nexport class NavbarModule { }\n","import { Component } from '@angular/core';\n\nimport { Img } from \"../../models/api/elements/img\";\n\ntype OpenImage = Img|null;\n\nexport const TIME_ANIMATION = 250;\n\n@Component({\n selector: 'c-open-image',\n templateUrl: './open-image.component.html',\n styleUrls: ['./open-image.component.scss']\n})\nexport class OpenImageComponent{\n classes = '';\n\n private img: OpenImage = null;\n\n set image(img: OpenImage){\n if(!img) this.applyClass('').then(() => this.img = null);\n else this.img = img;\n }\n\n get image(): OpenImage{\n return this.img;\n }\n\n applyClass(classes: string): Promise{\n return new Promise(resolve => {\n const hasClasses = !!classes;\n\n if(!hasClasses) this.classes = classes;\n\n setTimeout(() => {\n if(hasClasses) this.classes = classes;\n\n resolve();\n }, TIME_ANIMATION);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { OpenImageComponent } from './open-image.component';\n\n@NgModule({\n declarations: [OpenImageComponent],\n imports: [\n CommonModule\n ]\n})\nexport class OpenImageModule{}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-page-title',\n templateUrl: './page-title.component.html',\n styleUrls: ['./page-title.component.scss']\n})\nexport class PageTitleComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PageTitleComponent } from './page-title.component';\n\n@NgModule({\n declarations: [\n PageTitleComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n PageTitleComponent\n ]\n})\nexport class PageTitleModule { }\n","import { Component, OnInit, OnChanges, Output, EventEmitter, Input } from '@angular/core';\n\n@Component({\n selector: 'c-paginator',\n templateUrl: './paginator.component.html',\n styleUrls: ['./paginator.component.scss']\n})\nexport class PaginatorComponent implements OnInit, OnChanges {\n\n @Output() onChange = new EventEmitter();\n\n @Input() total = 0;\n @Input() page = 1;\n @Input() pageLength = 25;\n isLastPage = false;\n pages = 0;\n\n constructor() {\n this.update();\n }\n\n ngOnInit() {\n }\n\n ngOnChanges() {\n this.update();\n }\n\n next() {\n if (this.total && this.total !== 0 || !this.isLastPage) {\n this.page++;\n this.update();\n this.changeEvent();\n }\n }\n\n previous() {\n if (this.page - 1 !== 0) {\n this.page--;\n this.update();\n this.changeEvent();\n }\n }\n\n goToPage(value: number) {\n if (value != this.page && (value >= 1 || value <= this.pages)) {\n this.page = value;\n this.update();\n this.changeEvent();\n }\n }\n\n goToFirst() {\n if (this.page !== 1) {\n this.page = 1;\n this.update();\n this.changeEvent();\n }\n }\n\n goToLast() {\n if (this.total !== 0 && !this.isLastPage) {\n this.page = this.pages;\n this.update();\n this.changeEvent();\n }\n }\n\n changePageLength(value: number) {\n if (this.total !== 0 && value != this.pageLength) {\n this.pageLength = value;\n this.update();\n this.changeEvent();\n }\n }\n\n private update() {\n if (this.total && this.total !== 0) {\n // Calculate the pages\n this.pages = Math.ceil((this.total || 0) / this.pageLength);\n\n // Check is last page\n this.isLastPage = this.page == this.pages;\n } else {\n this.isLastPage = true;\n }\n }\n\n private changeEvent() {\n // Send paginator\n this.onChange.emit({\n total: this.total,\n page: this.page,\n pageLength: this.pageLength,\n isLastPage: this.isLastPage\n });\n }\n\n}\n\nexport interface IPaginator {\n total: number;\n page: number;\n pageLength: number;\n isLastPage: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PaginatorComponent } from './paginator.component';\nimport { SelectModule } from '../select/select.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [\n PaginatorComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n SelectModule,\n IconModule\n ],\n exports: [\n PaginatorComponent\n ]\n})\nexport class PaginatorModule { }\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'c-progress-bar',\n templateUrl: './progress-bar.component.html',\n styleUrls: ['./progress-bar.component.scss']\n})\nexport class ProgressBarComponent implements OnInit {\n\n internalPercentage = 0;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n @Input()\n set percentage(value: number) {\n const formatedValue = value > 100 ? 100 : value < 0 ? 0 : value;\n this.internalPercentage = formatedValue;\n }\n\n get percentage() {\n return this.internalPercentage;\n }\n\n leftCircleStyle() {\n const degrees = this.percentageToDeg();\n const value = degrees > 180 ? degrees : 180;\n return { transform: `rotate(${value}deg)` };\n }\n\n rightCircleStyle() {\n const degrees = this.percentageToDeg();\n const value = degrees > 180 ? 180 : degrees;\n\n return { transform: `rotate(${180 + value}deg)` };\n }\n\n private percentageToDeg() {\n return this.percentage / 100 * 360;\n }\n\n getProductQualityString(value: number): string {\n const ranges = [\n { start: 0, end: 20, text: 'poor' },\n { start: 21, end: 40, text: 'medium' },\n { start: 41, end: 80, text: 'good' },\n { start: 81, end: 100, text: 'excellent' }\n ];\n\n for (const range of ranges) {\n if (value == 0 || !value) {\n return 'no quality';\n }\n\n if (value >= range.start && value <= range.end) {\n return range.text;\n }\n }\n\n return 'poor';\n }\n\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ProgressBarComponent } from './progress-bar.component';\nimport { IconModule } from '../icon/icon.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [\n ProgressBarComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule\n ],\n exports: [\n ProgressBarComponent\n ]\n})\nexport class ProgressBarModule { }\n","import { Component, ElementRef, forwardRef, Input, OnInit, Injector, Optional } from '@angular/core';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RadioComponent } from '../radio/radio.component';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\n\n@Component({\n selector: 'c-radio-group',\n templateUrl: './radio-group.component.html',\n styleUrls: ['./radio-group.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true\n }\n ]\n})\nexport class RadioGroupComponent extends ControlValueAccessorMixin implements OnInit {\n\n @Input() label: string;\n\n selectedRadio: RadioComponent;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngOnInit() {\n\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadioGroupComponent } from './radio-group/radio-group.component';\nimport { RadioComponent } from './radio/radio.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputErrorModule } from '../input-error/input-error.module';\n\n@NgModule({\n declarations: [\n RadioGroupComponent,\n RadioComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n InputErrorModule,\n ],\n exports: [\n RadioGroupComponent,\n RadioComponent\n ]\n})\nexport class RadioModule { }\n","import { Component, Input, HostListener, AfterContentChecked, OnInit, Attribute, HostBinding, Optional } from '@angular/core';\nimport { RadioGroupComponent } from '../radio-group/radio-group.component';\nimport { FormControl } from '@angular/forms';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\n\n@Component({\n selector: 'c-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss']\n})\nexport class RadioComponent implements OnInit, AfterContentChecked {\n @HostBinding('attr.tabindex') get tabindex() {\n return (this.control && this.control.disabled) ? '-1' : '0';\n }\n\n @Input() value: any;\n @Input() selected = false;\n @Input() isDisabled = false;\n self = this;\n\n control: FormControl;\n\n constructor(\n public radioGroup: RadioGroupComponent,\n ) { }\n\n ngOnInit() {\n if (this.selected) {\n this.value = this.radioGroup.value;\n }\n }\n\n ngAfterContentChecked() {\n // Update control\n this.control = this.radioGroup.control;\n\n // Check the radio is selected\n if (this.radioGroup.value != undefined && this.radioGroup.value == this.value) {\n this.radioGroup.selectedRadio = this;\n this.value = this.radioGroup.value;\n }\n }\n\n @HostListener('click')\n @HostListener('keyup.enter')\n toggle() {\n if (!this.control || this.control && this.control.enabled && !this.radioGroup.isReadOnly) {\n this.radioGroup.selectedRadio = this;\n this.radioGroup.value = this.value;\n this.radioGroup.onTouchedCallback();\n }\n }\n\n}\n","import {\n Component, OnInit, Input, ElementRef, Injector, HostListener, ViewChild, forwardRef, AfterContentChecked, Optional\n} from '@angular/core';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\n\n@Component({\n selector: 'c-range',\n templateUrl: './range.component.html',\n styleUrls: ['./range.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RangeComponent),\n multi: true\n }\n ]\n})\nexport class RangeComponent extends ControlValueAccessorMixin implements OnInit, AfterContentChecked {\n\n @Input() label: string;\n @Input() unit: string;\n @Input() unitPlural: string;\n @Input() step = 1;\n @Input() min = 0;\n @Input() max = 50;\n\n @ViewChild('container', { static: true }) private containerRef: ElementRef;\n @ViewChild('controlOne', { static: true }) private controlOneRef: ElementRef;\n @ViewChild('controlTwo', { static: true }) private controlTwoRef: ElementRef;\n\n container: HTMLElement;\n controlOne: HTMLElement;\n controlTwo: HTMLElement;\n isControlOneActive: boolean;\n isControlTwoActive: boolean;\n controlOneCurrentPosition = 0;\n controlTwoCurrentPosition = 0;\n controlOneCurrentPercentage = 0;\n controlTwoCurrentPercentage = 100;\n\n controlOneValue: number;\n controlTwoValue: number;\n private controlOneOldValue: number;\n private controlTwoOldValue: number;\n\n private mouseEventFn: any;\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngOnInit() {\n // Set html elements\n this.controlOne = this.controlOneRef.nativeElement;\n this.controlTwo = this.controlTwoRef.nativeElement;\n this.container = this.containerRef.nativeElement;\n\n // Create mouse event method\n this.mouseEventFn = this.listenMouseX.bind(this);\n\n // Update controls if exist values\n this.updateControlPositionByMinAndMaxScale(this.controlOneValue, this.controlTwoValue);\n }\n\n ngAfterContentChecked() {\n this.updateControlsPosition();\n }\n\n writeValue(value: any) {\n if (value && value.start != undefined && value.end != undefined) {\n this.controlOneValue = this.preventValueOutsideScale(value.start);\n this.controlTwoValue = this.preventValueOutsideScale(value.end);\n this.updateValue();\n\n if (this.totalWidth) {\n this.updateControlPositionByMinAndMaxScale(value.start, value.end);\n }\n }\n }\n\n updateControlsPosition() {\n if (this.totalWidth && this.value && !this.isControlOneActive && !this.isControlTwoActive) {\n if (this.controlOneValue < this.controlTwoValue) {\n this.updateControlPositionByMinAndMaxScale(this.value.start, this.value.end);\n } else {\n this.updateControlPositionByMinAndMaxScale(this.value.end, this.value.start);\n }\n }\n }\n\n @HostListener('mouseup')\n cancelMove() {\n this.fixPositionWhenValuesAreTheSame();\n\n this.isControlOneActive = false;\n this.isControlTwoActive = false;\n this.updateValue();\n\n // Remove listener from method\n document.removeEventListener('mousemove', this.mouseEventFn);\n\n if (this.isOnFocus) {\n this.blur();\n }\n }\n\n moveControl(e: MouseEvent, value: ControlEnum) {\n this.focus();\n\n // Check which control is active\n switch (value) {\n case ControlEnum.one:\n this.isControlOneActive = true;\n break;\n\n case ControlEnum.two:\n this.isControlTwoActive = true;\n break;\n }\n\n // Listen mouse in x axis\n document.addEventListener('mousemove', this.mouseEventFn);\n }\n\n private listenMouseX(e: MouseEvent) {\n if (this.activeControl && (!this.control || this.control && this.control.enabled)) {\n // Get parent width\n const offsetLeft = this.activeControl.parentElement.offsetLeft;\n\n // Get parent limit\n const limitLeft = 0;\n const limitRight = this.totalWidth;\n\n // Get position of control\n let position = e.clientX - offsetLeft;\n\n // Check need block position\n if (position > limitRight) {\n position = limitRight;\n } else if (position < limitLeft) {\n position = limitLeft;\n }\n\n // Move control\n this.updateControlPosition(position);\n }\n }\n\n private fixPositionWhenValuesAreTheSame() {\n if (this.activeControl && this.controlOneValue == this.controlTwoValue) {\n if (this.isControlOneActive) {\n this.controlOneCurrentPosition = this.controlTwoCurrentPosition;\n this.controlOneCurrentPercentage = this.controlTwoCurrentPercentage;\n this.activeControl.style.left = `${this.controlTwoCurrentPercentage}%`;\n } else {\n this.controlTwoCurrentPosition = this.controlOneCurrentPosition;\n this.controlTwoCurrentPercentage = this.controlOneCurrentPercentage;\n this.activeControl.style.left = `${this.controlOneCurrentPercentage}%`;\n }\n }\n }\n\n private convertInternalValuesToMinAndMaxScale() {\n const controlOnePercentage = this.controlOneCurrentPercentage / 100;\n const controlTwoPercentage = this.controlTwoCurrentPercentage / 100;\n\n // Create the max on scale using min and max\n const maxOnScale = this.max - this.min;\n\n this.controlOneValue = Math.round(maxOnScale * controlOnePercentage) + Number(this.min);\n this.controlTwoValue = Math.round(maxOnScale * controlTwoPercentage) + Number(this.min);\n }\n\n private updateControlPositionByMinAndMaxScale(value1: number, value2: number) {\n const maxOnScale = this.max - this.min;\n let firstValue: number = this.preventValueOutsideScale(value1) - this.min;\n let secondValue: number = this.preventValueOutsideScale(value2) - this.min;\n firstValue = firstValue < 0 ? 0 : firstValue;\n secondValue = secondValue < 0 ? 0 : secondValue;\n\n const controlOnePercentage = firstValue * 100 / maxOnScale;\n const controlTwoPercentage = secondValue * 100 / maxOnScale;\n const controlOnePosition = controlOnePercentage / 100 * this.totalWidth;\n const controlTwoPosition = controlTwoPercentage / 100 * this.totalWidth;\n\n this.isControlOneActive = true;\n this.updateControlPosition(controlOnePosition);\n this.isControlOneActive = false;\n\n this.isControlTwoActive = true;\n this.updateControlPosition(controlTwoPosition);\n this.isControlTwoActive = false;\n }\n\n /**\n * @param position Receive a position in pixels\n */\n private updateControlPosition(position: number) {\n if (this.checkPositionIsAValidValueOnMinMaxScale(position)) {\n // Update control current position and percentage\n if (this.isControlOneActive) {\n this.controlOneCurrentPosition = position;\n this.controlOneCurrentPercentage = this.convertPositionToPercentage(position);\n\n this.activeControl.style.left = `${this.controlOneCurrentPercentage}%`;\n } else {\n this.controlTwoCurrentPosition = position;\n this.controlTwoCurrentPercentage = this.convertPositionToPercentage(position);\n\n this.activeControl.style.left = `${this.controlTwoCurrentPercentage}%`;\n }\n\n // Convert values to min and max scale\n this.convertInternalValuesToMinAndMaxScale();\n }\n }\n\n /**\n * @param position Receive a position in pixels\n */\n private convertPositionToPercentage(position: number) {\n const percentage = position * 100 / this.totalWidth;\n return Number(percentage.toFixed(2));\n }\n\n /**\n * @param position Receive a position in pixels\n */\n private checkPositionIsAValidValueOnMinMaxScale(position: number) {\n const maxOnScale = this.max - this.min;\n const percentageFactor = this.convertPositionToPercentage(position) / 100;\n const valueOnScale = Math.ceil(maxOnScale * percentageFactor) + Number(this.min);\n\n // Check the value is the start or end of scale\n if (valueOnScale == this.min || valueOnScale == this.max) {\n return true;\n }\n\n // Check the value respect the step using mod\n if (valueOnScale % this.step == 0) {\n return true;\n }\n\n return false;\n }\n\n\n private updateValue() {\n if (this.controlOneValue != this.controlOneOldValue || this.controlTwoValue != this.controlTwoOldValue) {\n // Update old value\n this.controlOneOldValue = this.controlOneValue;\n this.controlTwoOldValue = this.controlTwoValue;\n\n let start = 0;\n let end = 0;\n\n if (this.controlOneValue < this.controlTwoValue) {\n start = this.controlOneValue;\n end = this.controlTwoValue;\n } else if (this.controlOneValue > this.controlTwoValue) {\n start = this.controlTwoValue;\n end = this.controlOneValue;\n } else {\n start = this.controlOneValue;\n end = this.controlOneValue;\n }\n\n this.value = {\n start: Number(start),\n end: Number(end)\n };\n }\n }\n\n get leftDistanceToBar() {\n if (this.controlOneValue != undefined && this.controlTwoValue != undefined) {\n if (this.controlOneCurrentPercentage < this.controlTwoCurrentPercentage) {\n return `${this.controlOneCurrentPercentage}%`;\n } else {\n return `${this.controlTwoCurrentPercentage}%`;\n }\n }\n }\n\n get rightDistanceToBar() {\n if (this.controlTwoCurrentPercentage > this.controlOneCurrentPercentage) {\n return `${100 - this.controlTwoCurrentPercentage}%`;\n } else {\n return `${100 - this.controlOneCurrentPercentage}%`;\n }\n }\n\n private get activeControl() {\n if (this.isControlOneActive) {\n return this.controlOne;\n } else if (this.isControlTwoActive) {\n return this.controlTwo;\n }\n }\n\n private preventValueOutsideScale(value: number) {\n if (value < this.min) {\n return this.min;\n } else if (value > this.max) {\n return this.max;\n }\n return value;\n }\n\n private get totalWidth() {\n if (this.container && this.controlOne) {\n return this.container.offsetWidth;\n }\n return 0;\n }\n}\n\nenum ControlEnum {\n one = 1,\n two = 2\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RangeComponent } from './range.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { InputErrorModule } from '../input-error/input-error.module';\n\n@NgModule({\n declarations: [\n RangeComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n InputErrorModule,\n ],\n exports: [\n RangeComponent\n ]\n})\nexport class RangeModule { }\n","import { Input, Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'c-select-option'\n})\nexport class SelectOptionDirective {\n @Input() value: any;\n @Input() description: string;\n @Input() label: string;\n @Input() selected = false;\n @Input() group?: string;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SelectComponent } from './select/select.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { SelectOptionDirective } from './select-option.directive';\nimport { IconModule } from '../icon/icon.module';\nimport { CheckboxModule } from '../checkbox/checkbox.module';\nimport { InputErrorModule } from '../input-error/input-error.module';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\n@NgModule({\n declarations: [\n SelectComponent,\n SelectOptionDirective\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule,\n CheckboxModule,\n InputErrorModule,\n ScrollingModule\n ],\n exports: [\n SelectComponent,\n SelectOptionDirective\n ]\n})\nexport class SelectModule { }\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n forwardRef,\n Injector,\n Optional,\n ContentChildren,\n AfterContentInit,\n QueryList,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { SelectOptionDirective } from '../select-option.directive';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\nimport { startWith, map, debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { groupBy } from 'src/app/shared/utils/group-by';\n\n@Component({\n selector: 'c-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true\n }\n ]\n})\nexport class SelectComponent extends ControlValueAccessorMixin implements AfterContentInit {\n\n @Input() label: string;\n @Input() placeholder = 'selecione';\n @Input() isMultiple = false;\n @Input() isGrouped = false;\n @Input() virtualScroll = true;\n @Input() red: boolean;\n\n @ViewChild('searchInput', { static: true }) searchInput: ElementRef;\n @ContentChildren(SelectOptionDirective) selectOptionsComponents: QueryList;\n\n private selectedOption: SelectOptionDirective;\n private selectedOptions: Set;\n selectedGroups: Set;\n isOptionsVisible = false;\n search = new FormControl(undefined);\n\n options$ = new BehaviorSubject([]);\n get options() {\n return this.options$.value;\n }\n\n /** descrição dos valores selecionados */\n description: string;\n\n computedOptions$ = combineLatest([\n this.options$.pipe(\n map(items => {\n const isGrouped = this.isGrouped;\n if (isGrouped) {\n /* separar os grupos => {\n id: [array de item],\n ...\n }*/\n const groupedItems = groupBy(items, (i) => i.group || '');\n /* tranforma-lo em um array => [\n [id: [array de item]],\n ...\n ]*/\n const groupedItemsAsArray = Object.entries(groupedItems);\n /* ordenar os grupos */\n groupedItemsAsArray.sort((a, b) => a[0] > b[0] ? 1 : a[0] < b[0] ? -1 : 0);\n /* ordenar os itens de cada grupo */\n groupedItemsAsArray.forEach(item => item[1].sort(\n (a, b) => a.description > b.description ? 1 : a.description < b.description ? -1 : 0)\n );\n\n return {\n isGrouped,\n grouped: groupedItemsAsArray,\n };\n } else {\n return {\n isGrouped,\n ungrouped: items\n };\n }\n\n })\n ),\n this.search.valueChanges.pipe(\n startWith(this.search.value),\n distinctUntilChanged(),\n debounceTime(150),\n )\n ]).pipe(\n map(([optionsConfig, search]) => {\n // - Filtrar os itens baseado na query\n if (optionsConfig.isGrouped) {\n return optionsConfig.grouped.reduce<({\n type: string;\n item: SelectOptionDirective | { group: string };\n })[]>((acumulado, go) => {\n const groupName = go[0];\n const options = go[1];\n\n // filtra opções do grupo corrente\n const filteredOptions = search ? options.filter(elem => {\n const filterRegex = new RegExp(search.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n return filterRegex.test(elem.description.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '')) ||\n filterRegex.test(elem.group && elem.group.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n }) : options;\n\n const mappedOptions: ({\n type: string;\n item: SelectOptionDirective | { group: string };\n })[] = groupName == '' ?\n filteredOptions.map(o => ({ type: 'normal', item: o })) :\n filteredOptions.map(o => ({ type: 'groupChild', item: o }));\n\n if (groupName != '' && mappedOptions.length > 0) {\n mappedOptions.unshift({\n type: 'groupIndex',\n item: {\n group: mappedOptions[0].item.group,\n }\n });\n }\n\n return [...acumulado, ...mappedOptions];\n }, []);\n } else {\n return search ? optionsConfig.ungrouped.filter(elem => {\n const filterRegex = new RegExp(search.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''), 'i');\n return filterRegex.test(elem.description.normalize('NFD').replace(/[\\u0300-\\u036f]/g, ''));\n }) : optionsConfig.ungrouped;\n }\n }),\n );\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngAfterContentInit() {\n this.selectOptionsComponents.changes.pipe(\n startWith(this.selectOptionsComponents)\n ).subscribe(selectedOptionsComponents => {\n this.options$.next(selectedOptionsComponents.toArray());\n this.trySelectOptionsWithValue();\n });\n }\n\n writeValue(value: any) {\n this.reset();\n super.writeValue(value);\n this.trySelectOptionsWithValue();\n }\n\n trySelectOptionsWithValue() {\n if (this.value != undefined) {\n if (this.isMultiple) {\n this.value.forEach((valueElem => {\n this.options.forEach(optionElem => {\n if (optionElem.value == valueElem) {\n this.selectOption(optionElem, false);\n }\n });\n }));\n } else {\n this.options.forEach(elem => {\n if (elem.value == this.value) {\n this.selectOption(elem, false);\n }\n });\n }\n }\n }\n\n hasOption(data: SelectOptionDirective) {\n if (this.isMultiple && this.selectedOptions) {\n return this.selectedOptions.has(data);\n } else {\n return this.selectedOption == data;\n }\n }\n\n selectOption(data: SelectOptionDirective, propaggateChanges = true) {\n if (this.isMultiple) {\n this.selectMultipleOption(data);\n } else {\n this.selectSingleOption(data);\n this.closeOptions();\n }\n\n // Set value accessor\n if (propaggateChanges) {\n this.value = this.createOptions();\n }\n }\n\n toggleGroup(group: string) {\n if (!this.selectedGroups) {\n this.selectedGroups = new Set();\n }\n if (!this.selectedOptions) {\n this.selectedOptions = new Set();\n }\n // procura todos os itens deste grupo e armazena\n const items = this.options && this.options.filter( o => o.group == group );\n // tem o grupo selecionado no set de itens de grupo?\n if (this.selectedGroups.has(group)) {\n // caso tenha =>\n // - desmarca todos os itens do grupo\n items.forEach( i => this.selectedOptions.delete(i));\n // - remove grupo do set\n this.selectedGroups.delete(group);\n } else {\n // caso não tenha =>\n // - marca todos os itens do grupo\n items.forEach( i => this.selectedOptions.add(i));\n // - adiciona grupo ao set\n this.selectedGroups.add(group);\n }\n this.updateDescription();\n }\n\n showOptions() {\n if (!this.isDisabled && !this.isReadOnly) {\n this.isOptionsVisible = true;\n this.searchInput.nativeElement.focus();\n this.focus();\n }\n }\n\n closeOptions() {\n if (this.isOptionsVisible) {\n this.blur();\n }\n\n this.isOptionsVisible = false;\n this.clearFilter();\n }\n\n clearFilter() {\n this.search.reset(undefined);\n }\n\n private selectMultipleOption(data: SelectOptionDirective) {\n if (!this.selectedOptions) {\n this.selectedOptions = new Set();\n }\n\n // Check if options don't exists\n if (!this.selectedOptions.has(data)) {\n this.selectedOptions.add(data);\n } else {\n this.selectedOptions.delete(data);\n if (this.selectedGroups && this.selectedGroups.has(data.group)) {\n this.selectedGroups.delete(data.group);\n }\n }\n\n this.updateDescription();\n }\n\n private updateDescription() {\n if (this.selectedOption) {\n this.description = this.selectedOption.label || this.selectedOption.description;\n } else if (this.selectedOptions) {\n let description = '';\n this.selectedOptions.forEach((elem) => {\n if (!description) {\n description = `${elem.label || elem.description}`;\n } else {\n description += `, ${elem.label || elem.description}`;\n }\n });\n\n this.description = description;\n } else {\n this.description = '';\n }\n }\n\n private selectSingleOption(data: SelectOptionDirective) {\n this.selectedOption = data;\n this.updateDescription();\n }\n\n private createOptions() {\n if (this.isMultiple) {\n const options = new Array();\n\n this.selectedOptions.forEach(elem => {\n options.push(elem.value);\n });\n\n return options;\n } else {\n return this.selectedOption.value;\n }\n }\n\n private reset() {\n this.innerValue = undefined;\n this.selectedOption = undefined;\n this.description = undefined;\n this.selectedGroups = undefined;\n\n if (this.selectedOptions) {\n this.selectedOptions.clear();\n }\n }\n\n}\n\n\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'c-sidebar-item',\n templateUrl: './sidebar-item.component.html',\n styleUrls: ['./sidebar-item.component.scss']\n})\nexport class SidebarItemComponent implements OnInit {\n\n @Input() icon: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { SidebarItemComponent } from './sidebar-item/sidebar-item.component';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [\n SidebarComponent,\n SidebarItemComponent\n ],\n imports: [\n CommonModule,\n IconModule\n ],\n exports: [\n SidebarComponent,\n SidebarItemComponent\n ]\n})\nexport class SidebarModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.scss']\n})\nexport class SidebarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { TabContentComponent } from '../tab-content/tab-content.component';\n\n@Component({\n selector: 'c-tab-content-item',\n templateUrl: './tab-content-item.component.html',\n styleUrls: ['./tab-content-item.component.scss']\n})\nexport class TabContentItemComponent implements OnInit {\n\n @Input() value: any;\n\n constructor(\n public tabContent: TabContentComponent\n ) { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'c-tab-content',\n templateUrl: './tab-content.component.html',\n styleUrls: ['./tab-content.component.scss']\n})\nexport class TabContentComponent implements OnInit {\n\n @Input() value: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-tab-item-subtitle',\n templateUrl: './tab-item-subtitle.component.html',\n styleUrls: ['./tab-item-subtitle.component.scss']\n})\nexport class TabItemSubtitleComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'c-tab-item-title',\n templateUrl: './tab-item-title.component.html',\n styleUrls: ['./tab-item-title.component.scss']\n})\nexport class TabItemTitleComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input, HostListener } from '@angular/core';\nimport { TabComponent } from '../tab/tab.component';\n\n@Component({\n selector: 'c-tab-item',\n templateUrl: './tab-item.component.html',\n styleUrls: ['./tab-item.component.scss']\n})\nexport class TabItemComponent implements OnInit {\n\n @Input() value: any;\n @Input() selected = false;\n @Input() icon: string;\n\n constructor(\n public tab: TabComponent\n ) { }\n\n ngOnInit() {\n if (this.selected) {\n this.toggle();\n } else if (this.tab.value == undefined) {\n this.toggle();\n }\n }\n\n @HostListener('click')\n toggle() {\n this.tab.value = this.value;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabComponent } from './tab/tab.component';\nimport { TabItemComponent } from './tab-item/tab-item.component';\nimport { TabContentComponent } from './tab-content/tab-content.component';\nimport { TabContentItemComponent } from './tab-content-item/tab-content-item.component';\nimport { TabItemSubtitleComponent } from './tab-item-subtitle/tab-item-subtitle.component';\nimport { TabItemTitleComponent } from './tab-item-title/tab-item-title.component';\nimport { IconModule } from '../icon/icon.module';\n\n@NgModule({\n declarations: [\n TabComponent,\n TabItemComponent,\n TabContentComponent,\n TabContentItemComponent,\n TabItemSubtitleComponent,\n TabItemTitleComponent\n ],\n imports: [\n CommonModule,\n IconModule\n ],\n exports: [\n TabComponent,\n TabItemComponent,\n TabContentComponent,\n TabContentItemComponent,\n TabItemSubtitleComponent,\n TabItemTitleComponent\n ]\n})\nexport class TabModule { }\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'c-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.scss']\n})\nexport class TabComponent implements OnInit {\n\n @Input() value: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit, Input, HostListener } from '@angular/core';\nimport { TableSortDirective } from '../table-sort.directive';\n\n@Component({\n selector: 'c-table-sort-item',\n templateUrl: './table-sort-item.component.html',\n styleUrls: ['./table-sort-item.component.scss']\n})\nexport class TableSortItemComponent implements OnInit {\n\n @Input() column: string;\n direction: number;\n isMouseOver: boolean;\n\n constructor(\n private tableSortDirective: TableSortDirective\n ) { }\n\n ngOnInit() {\n }\n\n @HostListener('click')\n toggle() {\n if (!this.direction) {\n this.direction = 1;\n this.tableSortDirective.setPropertieAscending(this.column);\n } else if (this.direction == 1) {\n this.direction = -1;\n this.tableSortDirective.setPropertieDescending(this.column);\n } else {\n this.direction = 0;\n this.tableSortDirective.removePropertie(this.column);\n }\n }\n\n @HostListener('mouseenter')\n listenMouseEnter() {\n this.isMouseOver = true;\n }\n\n @HostListener('mouseleave')\n listenMouseOut() {\n this.isMouseOver = false;\n }\n\n}\n","import { OnInit, Directive, EventEmitter, Output } from '@angular/core';\n\n@Directive({\n selector: '[table-sort]'\n})\nexport class TableSortDirective implements OnInit {\n\n @Output() changeEvent = new EventEmitter();\n\n private sortProperties = new Map();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n setPropertieAscending(prop: string) {\n this.sortProperties.set(prop, 1);\n this.updateValue();\n }\n\n setPropertieDescending(prop: string) {\n this.sortProperties.set(prop, -1);\n this.updateValue();\n }\n\n removePropertie(prop: string) {\n this.sortProperties.delete(prop);\n this.updateValue();\n }\n\n updateValue() {\n // ATTENTION\n // This code bellow is necessary on this way !!!\n // tslint:disable-next-line: no-string-literal\n this.changeEvent.emit(Object['fromEntries'](this.sortProperties));\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableSortDirective } from './table-sort.directive';\nimport { TableSortItemComponent } from './table-sort-item/table-sort-item.component';\nimport { IconModule } from '../icon/icon.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n declarations: [\n TableSortDirective,\n TableSortItemComponent\n ],\n imports: [\n CommonModule,\n IconModule,\n SharedModule\n ],\n exports: [\n TableSortDirective,\n TableSortItemComponent\n ]\n})\nexport class TableSortModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { trigger, transition, style, sequence, animate } from '@angular/animations';\nimport { ToastType } from './toast.model';\nimport { ToastService } from './toast.service';\n\n@Component({\n selector: 'c-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n animations: [\n trigger('toast', [\n transition(':leave', [\n style({ opacity: '*', transform: 'translateX(0)' }),\n sequence([\n animate('.25s ease', style({ opacity: 0, transform: 'translateX(20px)' })),\n ])\n ]),\n transition(':enter', [\n style({ opacity: '0', transform: 'translateX(20px)', height: 0 }),\n sequence([\n animate('.5s ease', style({ opacity: '.2', transform: 'translateX(20px)', height: '*'})),\n animate('.35s ease', style({ opacity: 1, transform: 'translateX(0)' }))\n ])\n ])\n ])\n ]\n})\nexport class ToastComponent {\n\n // private messagesClass: Map;\n\n toastType = ToastType\n\n constructor(\n public toastService: ToastService\n ) {\n // this.messagesClass = new Map([\n // [undefined, undefined],\n // [ToastType.default, undefined],\n // [ToastType.error, '-error'],\n // [ToastType.info, '-info'],\n // [ToastType.success, '-success'],\n // [ToastType.warning, '-warning'],\n // ]);\n }\n\n // ngOnInit() {\n // }\n\n // getCssClassByType(type: ToastType | number) {\n // return this.messagesClass.get(type);\n // }\n}\n","\nexport enum ToastType {\n default = 0,\n error = 1,\n warning = 2,\n info = 3,\n success = 4,\n}\n\nexport interface Toast {\n type: ToastType;\n description: string;\n}\n\nexport function isToast(toast: any): toast is Toast {\n return toast\n && typeof toast.type == 'number'\n && typeof toast.description == 'string';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToastComponent } from './toast.component';\nimport { ToastService } from './toast.service';\nimport { IconModule } from '../icon/icon.module';\n\n\n\n@NgModule({\n declarations: [ToastComponent],\n providers: [\n ToastService\n ],\n imports: [\n CommonModule,\n IconModule,\n ],\n exports: [\n ToastComponent\n ]\n})\nexport class ToastModule { }\n","import { Injectable, Optional } from '@angular/core';\nimport { isToast, Toast, ToastType } from './toast.model';\n\n@Injectable()\nexport class ToastService {\n\n toasts: Toast[] = [];\n\n constructor() { }\n\n toast(item: Toast | Toast[] | string, type?: ToastType, delay: number = 6000): Toast | Toast[] {\n if (item instanceof Array) {\n return item.map( i => this.toast(i)) as Toast[];\n } else if (isToast(item)) {\n return this.toast(item.description, item.type);\n } else {\n const toast: Toast = {description: item.toString(), type};\n this.toasts.push(toast);\n if (delay > 0) {\n setTimeout( () => {\n this.demiss(toast);\n }, delay);\n }\n return toast;\n }\n }\n\n demiss(item: Toast | Toast[]) {\n if (item instanceof Array) {\n item.forEach( i => this.demiss(i));\n } else {\n const index = this.toasts.indexOf(item);\n if (index != -1) {\n this.toasts.splice(\n this.toasts.indexOf(item),\n 1\n );\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarModule } from './sidebar/sidebar.module';\nimport { NavbarModule } from './navbar/navbar.module';\nimport { CardModule } from './card/card.module';\nimport { CheckboxModule } from './checkbox/checkbox.module';\nimport { LoadingModule } from './loading/loading.module';\nimport { SelectModule } from './select/select.module';\nimport { ImgModule } from './img/img.module';\nimport { RadioModule } from './radio/radio.module';\nimport { IconModule } from './icon/icon.module';\nimport { TabModule } from './tab/tab.module';\nimport { InputModule } from './input/input.module';\nimport { RangeModule } from './range/range.module';\nimport { PageTitleModule } from './page-title/page-title.module';\nimport { PaginatorModule } from './paginator/paginator.module';\nimport { ImageUploaderModule } from './image-uploader/image-uploader.module';\nimport { VideoLinkUploaderModule } from './video-link-uploader/video-link-uploader.module';\nimport { EmptyPatternModule } from './empty-pattern/empty-pattern.module';\nimport { GeneralIntegrationInfoModule } from './general-integration-info/general-integration-info.module';\nimport { ColumnFilterModule } from './column-filter/column-filter.module';\nimport { ProgressBarModule } from './progress-bar/progress-bar.module';\nimport { DynamicTabModule } from './dynamic-tab/dynamic-tab.module';\nimport { TableSortModule } from './table-sort/table-sort.module';\nimport { CookiesComponent } from './cookies/cookies.component';\nimport { CookiesModule } from './cookies/cookies.module';\n\n@NgModule({\n imports: [\n CommonModule,\n IconModule,\n SidebarModule,\n NavbarModule,\n ImgModule,\n CardModule,\n CheckboxModule,\n LoadingModule,\n SelectModule,\n RadioModule,\n TabModule,\n InputModule,\n RangeModule,\n PageTitleModule,\n PaginatorModule,\n ImageUploaderModule,\n VideoLinkUploaderModule,\n EmptyPatternModule,\n GeneralIntegrationInfoModule,\n ColumnFilterModule,\n ProgressBarModule,\n DynamicTabModule,\n TableSortModule,\n CookiesModule\n ],\n exports: [\n IconModule,\n SidebarModule,\n NavbarModule,\n ImgModule,\n CardModule,\n CheckboxModule,\n LoadingModule,\n SelectModule,\n RadioModule,\n TabModule,\n InputModule,\n RangeModule,\n PageTitleModule,\n PaginatorModule,\n ImageUploaderModule,\n VideoLinkUploaderModule,\n EmptyPatternModule,\n GeneralIntegrationInfoModule,\n ColumnFilterModule,\n ProgressBarModule,\n DynamicTabModule,\n TableSortModule,\n CookiesModule\n ],\n declarations: []\n})\nexport class UiModule { }\n","import { Component, OnInit, Input, ElementRef, Injector, forwardRef, Optional } from '@angular/core';\nimport { ControlValueAccessorMixin } from 'src/app/shared/classes/control-value-accessor-mixin.class';\nimport { NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { ReadOnlyDirective } from 'src/app/shared/directives/readonly.directive';\nimport { XhrFactory } from '@angular/common';\n\n@Component({\n selector: 'c-video-link-uploader',\n templateUrl: './video-link-uploader.component.html',\n styleUrls: ['./video-link-uploader.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => VideoLinkUploaderComponent),\n multi: true\n }\n ]\n})\nexport class VideoLinkUploaderComponent extends ControlValueAccessorMixin implements OnInit {\n\n @Input() label: string;\n\n videos: VideoData[];\n\n private draggingItemIndex: number;\n private latestEnteredItem: VideoData;\n linkControl = new FormControl(null);\n\n constructor(\n elementRef: ElementRef,\n injector: Injector,\n @Optional() readOnlyDirective?: ReadOnlyDirective\n ) {\n super(elementRef, injector, readOnlyDirective);\n }\n\n ngOnInit() {\n }\n\n writeValue(value: string[]) {\n if (value) {\n value.forEach(elem => {\n this.addVideo(elem);\n });\n }\n }\n\n dragEnterItem(e: DragEvent, i: number, data: VideoData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n if (this.latestEnteredItem) {\n this.latestEnteredItem.isBorderVisible = false;\n }\n\n data.isBorderVisible = true;\n\n this.latestEnteredItem = data;\n }\n }\n }\n\n dragLeaveItem(e: DragEvent, i: number, data: VideoData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n data.isBorderVisible = undefined;\n }\n }\n }\n\n dropItem(e: DragEvent, i: number, data: VideoData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n\n if (i != this.draggingItemIndex) {\n // Change item position\n const draggingItem: VideoData = this.videos[this.draggingItemIndex];\n this.videos.splice(this.draggingItemIndex, 1);\n this.videos.splice(i, 0, draggingItem);\n\n this.draggingItemIndex = undefined;\n data.isBorderVisible = undefined;\n\n this.updateValue();\n }\n }\n }\n\n dragOverItem(e: DragEvent) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n dragStartItem(e: DragEvent, i: number, data: VideoData) {\n e.stopPropagation();\n this.draggingItemIndex = i;\n }\n\n dragEndItem(e: DragEvent, i: number, data: VideoData) {\n if (!e.dataTransfer.types.length) {\n e.preventDefault();\n e.stopPropagation();\n this.closeAllLeftAndRightItems();\n }\n }\n\n removeVideo(i: number) {\n this.videos.splice(i, 1);\n this.updateValue();\n }\n\n addVideo(url: string) {\n if (!this.videos) {\n this.videos = new Array();\n }\n\n this.videos.push({\n link: this.convertYoutubeLinkToEmbedLink(url),\n isBorderVisible: false\n });\n this.updateValue();\n\n this.linkControl.reset();\n }\n\n private updateValue() {\n this.blur();\n\n this.value = this.videos.slice().map(elem => {\n return elem.link;\n });\n }\n\n private closeAllLeftAndRightItems() {\n this.videos.forEach(elem => {\n elem.isBorderVisible = false;\n });\n }\n\n private convertYoutubeLinkToEmbedLink(link: string): string {\n \n if (!(isYoutubeVideo(link) && linkYoutubeSucess(link))){\n throw new Error('Link do Youtube não é válido!');\n }\n \n const url = new URL(link.trim());\n const urlDefault = 'https://www.youtube.com/embed';\n\n if (url.hostname.indexOf('youtube.com') > -1) {\n let videoId: string;\n\n const params = new URLSearchParams(url.search);\n if (params && params.get('v')) {\n videoId = params.get('v');\n } else {\n videoId = url.search.split('=')[1];\n\n if (!videoId) {\n videoId = url.pathname.split('/')[2];\n }\n }\n\n return `${urlDefault}/${videoId}`;\n }\n\n if (url.hostname === 'youtu.be') {\n return `${urlDefault}/${url.pathname.split('/')[1]}`;\n }\n\n return link;\n }\n\n}\n\nfunction isYoutubeVideo(url) {\n var v = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n return (url.match(v)) ? true : false;\n}\n\nfunction linkYoutubeSucess(theUrl)\n{\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', theUrl, false);\n httpRequest.send;\n\n return httpRequest.onreadystatechange = function(){\n return (httpRequest.readyState ==4 && httpRequest.status ==200) ? true : false\n }\n}\n\ninterface VideoData {\n link: string;\n isBorderVisible: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VideoLinkUploaderComponent } from './video-link-uploader.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { IconModule } from '../icon/icon.module';\nimport { InputModule } from '../input/input.module';\n\n@NgModule({\n declarations: [\n VideoLinkUploaderComponent\n ],\n imports: [\n CommonModule,\n SharedModule,\n IconModule,\n InputModule\n ],\n exports: [\n VideoLinkUploaderComponent\n ]\n})\nexport class VideoLinkUploaderModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nlet environment: any = {\n production: false,\n permissionPrefix: 'rhcdm',\n microservice: {\n autenticacao: 'Autenticacao',\n dadosBasicos: 'DadosBasicos',\n dadosEspecificos: 'DadosEspecificos',\n dadosProdutos: 'DadosProdutos',\n comercial: 'Comercial',\n importador: 'Importador',\n relatorio: 'relatorio-portal',\n midia: 'Midia',\n dadosFiscais: 'DadosFiscais',\n custoPreco: 'CustoPreco',\n historico: 'Historico',\n workflow: 'Workflow',\n xml: 'Relatorio'\n }\n};\n\nif (window.location.hostname == 'portalsmart.gruporihappy.com.br') {\n // Set Prod environment\n environment = {\n ...environment,\n production: true,\n localStoragePrefix: 'rihappy',\n api: 'https://portalsmart.gruporihappy.com.br/api',\n vtexProduto: 'https://rihappy.myvtex.com/admin/Site/ProdutoForm.aspx?id=',\n vtexSku: 'https://rihappy.myvtex.com/admin/Site/SkuForm.aspx?idSku='\n };\n} else if (window.location.hostname == 'portalsmart-qa.gruporihappy.com.br') {\n // Set Qa environment\n environment = {\n ...environment,\n localStoragePrefix: 'rihappy_qa',\n api: 'https://portalsmart-qa.gruporihappy.com.br/api',\n vtexProduto: 'https://rihappyqa.myvtex.com/admin/Site/ProdutoForm.aspx?id=',\n vtexSku: 'https://rihappyqa.myvtex.com/admin/Site/SkuForm.aspx?idSku='\n };\n} else if (\n window.location.hostname == 'a389058f81f5911eaad4b02a19fd31f7-515712bec7e2cc8f.elb.us-east-1.amazonaws.com' ||\n window.location.hostname == 'localhost'\n) {\n // Set Dev environment\n environment = {\n ...environment,\n localStoragePrefix: 'rihappy_dev',\n api: 'https://portalsmart-qa.gruporihappy.com.br/api',\n vtexProduto: 'https://rihappyqa.myvtex.com/admin/Site/ProdutoForm.aspx?id=',\n vtexSku: 'https://rihappyqa.myvtex.com/admin/Site/SkuForm.aspx?idSku='\n };\n}\n\nexport { environment as environment };\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { CoreModule } from './app/core/core.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(CoreModule)\n .catch(err => console.error(err));\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-SG\": 28661,\n\t\"./en-SG.js\": 28661,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":[],"sourceRoot":"webpack:///"}