{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.module.ts","./src/app/auth-config.module.ts","./src/app/components/_layout/footer/footer.component.html","./src/app/components/_layout/footer/footer.component.ts","./src/app/components/_layout/menus/nav-menu/nav-menu.component.ts","./src/app/components/_layout/menus/nav-menu/nav-menu.component.html","./src/app/components/_layout/site-layout/site-layout.component.ts","./src/app/components/_layout/site-layout/site-layout.component.html","./src/app/components/accessdenied/accessdenied.component.ts","./src/app/components/accessdenied/accessdenied.component.html","./src/app/components/app/app.component.ts","./src/app/components/app/app.component.html","./src/app/components/areas/cosmetic/cosmetic-builder/cosmetic-builder.component.ts","./src/app/components/areas/cosmetic/cosmetic-builder/cosmetic-builder.component.html","./src/app/components/areas/products/establishment-modal/establishment-modal.component.ts","./src/app/components/areas/products/establishment-modal/establishment-modal.component.html","./src/app/components/areas/products/ll-form-establishment/ll-form-establishment.component.ts","./src/app/components/areas/products/ll-form-establishment/ll-form-establishment.component.html","./src/app/components/areas/products/ll-form-labeler/ll-form-labeler.component.ts","./src/app/components/areas/products/ll-form-labeler/ll-form-labeler.component.html","./src/app/components/areas/products/ll-form-product-details/ll-form-product-details.component.ts","./src/app/components/areas/products/ll-form-product-details/ll-form-product-details.component.html","./src/app/components/areas/products/ll-form-product-information/ll-form-product-information.component.ts","./src/app/components/areas/products/ll-form-product-information/ll-form-product-information.component.html","./src/app/components/areas/products/ll-form-registrant/ll-form-registrant.component.ts","./src/app/components/areas/products/ll-form-registrant/ll-form-registrant.component.html","./src/app/components/areas/products/product-labeling-listing/product-labeling-listing.component.ts","./src/app/components/areas/products/product-labeling-listing/product-labeling-listing.component.html","./src/app/components/areas/spl-upload/spl-upload.component.ts","./src/app/components/areas/spl-upload/spl-upload.component.html","./src/app/components/business-category/business-category.component.ts","./src/app/components/business-category/business-category.component.html","./src/app/components/common/custom-sidebar/custom-sidebar.component.ts","./src/app/components/common/custom-sidebar/custom-sidebar.component.html","./src/app/components/common/delete-button/delete-button.component.ts","./src/app/components/common/delete-button/delete-button.component.html","./src/app/components/common/error-messages/error-messages.component.html","./src/app/components/common/error-messages/error-messages.component.ts","./src/app/components/common/error/error.component.ts","./src/app/components/common/error/error.component.html","./src/app/components/common/esig-modal/esig-modal.component.ts","./src/app/components/common/esig-modal/esig-modal.component.html","./src/app/components/common/file-upload/file-upload.component.ts","./src/app/components/common/file-upload/file-upload.component.html","./src/app/components/common/forbidden/forbidden.component.ts","./src/app/components/common/forbidden/forbidden.component.html","./src/app/components/common/no-esg-access-modal/no-esg-access-modal.component.ts","./src/app/components/common/no-esg-access-modal/no-esg-access-modal.component.html","./src/app/components/common/page-not-found/product-accordion-item.component.ts","./src/app/components/common/page-not-found/product-accordion-item.component.html","./src/app/components/common/pragmatic-grid-column/pragmatic-grid-column.component.ts","./src/app/components/common/pragmatic-grid-column/pragmatic-grid-column.component.html","./src/app/components/common/warning-icon/warning-icon.component.html","./src/app/components/common/warning-icon/warning-icon.component.ts","./src/app/components/company-dashboard/company-dashboard.component.ts","./src/app/components/company-dashboard/company-dashboard.component.html","./src/app/components/company-details/company-details.component.ts","./src/app/components/company-details/company-details.component.html","./src/app/components/contact-dashboard/contact-dashboard.component.ts","./src/app/components/contact-dashboard/contact-dashboard.component.html","./src/app/components/contact-detail/contact-detail.component.ts","./src/app/components/contact-detail/contact-detail.component.html","./src/app/components/contact/contact.component.ts","./src/app/components/contact/contact.component.html","./src/app/components/create-ll-form/create-ll-form.component.ts","./src/app/components/create-ll-form/create-ll-form.component.html","./src/app/components/customer-selector/customer-selector.component.ts","./src/app/components/customer-selector/customer-selector.component.html","./src/app/components/er-form-dashboard/er-form-dashboard.component.ts","./src/app/components/er-form-dashboard/er-form-dashboard.component.html","./src/app/components/er-form/er-form.component.ts","./src/app/components/er-form/er-form.component.html","./src/app/components/feature/feature.component.html","./src/app/components/feature/feature.component.ts","./src/app/components/grids/fileuploadhistorygrid/fileuploadhistorygrid.component.ts","./src/app/components/grids/fileuploadhistorygrid/fileuploadhistorygrid.component.html","./src/app/components/health-canada-spl-validation/health-canada-spl-validation.component.ts","./src/app/components/health-canada-spl-validation/health-canada-spl-validation.component.html","./src/app/components/home/home.component.html","./src/app/components/home/home.component.ts","./src/app/components/index.ts","./src/app/components/lcr-form-dashboard/lcr-form-dashboard.component.ts","./src/app/components/lcr-form-dashboard/lcr-form-dashboard.component.html","./src/app/components/lcr-form/lcr-form.component.ts","./src/app/components/lcr-form/lcr-form.component.html","./src/app/components/navigator/navigator.component.ts","./src/app/components/navigator/navigator.component.html","./src/app/components/order-admin/order-admin.component.ts","./src/app/components/order-admin/order-admin.component.html","./src/app/components/order-step-1/order-step-1.component.ts","./src/app/components/order-step-1/order-step-1.component.html","./src/app/components/order-step-2/order-step-2.component.ts","./src/app/components/order-step-2/order-step-2.component.html","./src/app/components/order-step-3/order-step-3.component.ts","./src/app/components/order-step-3/order-step-3.component.html","./src/app/components/order-summary/order-summary.component.html","./src/app/components/order-summary/order-summary.component.ts","./src/app/components/order-tracker/order-tracker.component.ts","./src/app/components/order-tracker/order-tracker.component.html","./src/app/components/order/order.component.ts","./src/app/components/order/order.component.html","./src/app/components/page-not-found/page-not-found.component.ts","./src/app/components/page-not-found/page-not-found.component.html","./src/app/components/sidebar-products/sidebar-products.component.ts","./src/app/components/sidebar-products/sidebar-products.component.html","./src/app/components/spl-viewer/spl-viewer.component.ts","./src/app/components/spl-viewer/spl-viewer.component.html","./src/app/components/submission-dashboard/submission-dashboard.component.ts","./src/app/components/submission-dashboard/submission-dashboard.component.html","./src/app/components/substance-lookup/substance-lookup.component.ts","./src/app/components/substance-lookup/substance-lookup.component.html","./src/app/components/support/support.component.ts","./src/app/components/support/support.component.html","./src/app/components/unauthorized/unauthorized.component.ts","./src/app/components/unauthorized/unauthorized.component.html","./src/app/components/version-modal/version-modal.component.ts","./src/app/components/version-modal/version-modal.component.html","./src/app/pipes/date-to-locale.pipe.ts","./src/app/pipes/sanitize-html.pipe.ts","./src/app/pipes/split-words.pipe.ts","./src/app/pipes/utc-to-locale.pipe.ts","./src/app/rt-shared.module.ts","./src/app/shared/directives/control-name.directive.ts","./src/app/shared/directives/cross-validator.ts","./src/app/shared/directives/disable-control.directive.ts","./src/app/shared/directives/forbidden-name.directive.ts","./src/app/shared/directives/hidebyaccess.directive.ts","./src/app/shared/directives/index.ts","./src/app/shared/directives/keyup.directive.ts","./src/app/shared/guards/bncc-form.guard.ts","./src/app/shared/guards/business-category-authorization.guard.ts","./src/app/shared/guards/business-category.guard.ts","./src/app/shared/guards/company-authorization.guard.ts","./src/app/shared/guards/company-edit-guard.ts","./src/app/shared/guards/contact-authorization.guard.ts","./src/app/shared/guards/contact-edit-guard.ts","./src/app/shared/guards/er-form-ca-guard.ts","./src/app/shared/guards/er-form-cd-guard.ts","./src/app/shared/guards/footer-dashboard-guard.ts","./src/app/shared/guards/index.ts","./src/app/shared/guards/label-spl.guard.ts","./src/app/shared/guards/lcr-form-authorization.guard.ts","./src/app/shared/guards/lcr-form-guard.ts","./src/app/shared/guards/ll-form-authorization.guard.ts","./src/app/shared/guards/ll-form-guard.ts","./src/app/shared/guards/order-guard.ts","./src/app/shared/guards/order-step-1-guard.ts","./src/app/shared/guards/order-step-2-guard.ts","./src/app/shared/guards/order-step-3-guard.ts","./src/app/shared/guards/spl-upload.guard.ts","./src/app/shared/guards/submission-authorization.guard.ts","./src/app/shared/guards/substance-lookup.guard.ts","./src/app/shared/helpers/animations.ts","./src/app/shared/helpers/blob-utilitiy.ts","./src/app/shared/helpers/company-type.validator.ts","./src/app/shared/helpers/http-helper.ts","./src/app/shared/helpers/jwt.interceptor.ts","./src/app/shared/helpers/phone-number.validator.ts","./src/app/shared/models/application.model.ts","./src/app/shared/models/bncc-establishment.model.ts","./src/app/shared/models/business-category.model.ts","./src/app/shared/models/business-operation-qualifier-list.model.ts","./src/app/shared/models/business-operations-qualifiers.model.ts","./src/app/shared/models/business-operations.model.ts","./src/app/shared/models/company-detail.model.ts","./src/app/shared/models/company-ndclabeler.model.ts","./src/app/shared/models/contact-company-association.model.ts","./src/app/shared/models/contact-detail.model.ts","./src/app/shared/models/dynamic-schema-data.ts","./src/app/shared/models/er-revision-history.model.ts","./src/app/shared/models/er.model.ts","./src/app/shared/models/establishment.model.ts","./src/app/shared/models/fda-center.ts","./src/app/shared/models/form-type.ts","./src/app/shared/models/importer.model.ts","./src/app/shared/models/index.ts","./src/app/shared/models/lcr.model.ts","./src/app/shared/models/ll-active-ingridient.model.ts","./src/app/shared/models/ll-company.model.ts","./src/app/shared/models/ll-customer-companies-types-wrapper.model.ts","./src/app/shared/models/ll-establishment.model.ts","./src/app/shared/models/ll-form-detail.model.ts","./src/app/shared/models/ll-generic-keys.model.ts","./src/app/shared/models/ll-inactive-ingridient.model.ts","./src/app/shared/models/ll-kit.model.ts","./src/app/shared/models/ll-name-description.model.ts","./src/app/shared/models/ll-package-configs.model.ts","./src/app/shared/models/ll-package-marketing.model.ts","./src/app/shared/models/ll-packages.model.ts","./src/app/shared/models/ll-part.model.ts","./src/app/shared/models/ll-product-base.model.ts","./src/app/shared/models/ll-product.model.ts","./src/app/shared/models/ll-relationship.model.ts","./src/app/shared/models/ll-revision-history.model.ts","./src/app/shared/models/ll-signature.model.ts","./src/app/shared/models/non-latest-company-contact.ts","./src/app/shared/models/order-user.model.ts","./src/app/shared/models/order.model.ts","./src/app/shared/models/pragmatic-validation-status.ts","./src/app/shared/models/revisionHistory.model.ts","./src/app/shared/models/serviceError.ts","./src/app/shared/models/spl-file-storage-result.ts","./src/app/shared/models/spl-merge-input.ts","./src/app/shared/models/spl-message.model.ts","./src/app/shared/models/spl-messages.model.ts","./src/app/shared/models/spl-upload-file-status.ts","./src/app/shared/models/spl-validation.model.ts","./src/app/shared/models/ssdp-contact.model.ts","./src/app/shared/models/user.model.ts","./src/app/shared/models/userAccessPermissions.model.ts","./src/app/shared/models/vocab.models.ts","./src/app/shared/resolvers/bncc-form-resolver.service.ts","./src/app/shared/resolvers/business-category.resolver.ts","./src/app/shared/resolvers/company-resolver.service.ts","./src/app/shared/resolvers/er-dashboard.resolver.ts","./src/app/shared/resolvers/er-form-resolver.service.ts","./src/app/shared/resolvers/index.ts","./src/app/shared/resolvers/lcr-dashboard.resolver.ts","./src/app/shared/resolvers/lcr-form-resolver.service.ts","./src/app/shared/resolvers/ll-dashboard-resolver.service.ts","./src/app/shared/resolvers/ll-form-resolver.service.ts","./src/app/shared/resolvers/order-resolver.service.ts","./src/app/shared/resolvers/product-dashboard-resolver.service.ts","./src/app/shared/resolvers/spl-upload.resolver.ts","./src/app/shared/services/authentication.service.ts","./src/app/shared/services/authorization.service.ts","./src/app/shared/services/bncc-form.service.ts","./src/app/shared/services/company-contact.service.ts","./src/app/shared/services/customer.service.ts","./src/app/shared/services/delete-form.service.ts","./src/app/shared/services/er-form-service.ts","./src/app/shared/services/esg-submission-service.ts","./src/app/shared/services/feature.service.ts","./src/app/shared/services/file-upload.service.ts","./src/app/shared/services/grid-preferences.service.ts","./src/app/shared/services/hc-spl-validation.service.ts","./src/app/shared/services/index.ts","./src/app/shared/services/lcr-form.service.ts","./src/app/shared/services/lcr-validation.service.ts","./src/app/shared/services/ll-dashboard.service.ts","./src/app/shared/services/ll-form.service.ts","./src/app/shared/services/ll-validation.service.ts","./src/app/shared/services/logging.service.ts","./src/app/shared/services/navdl.service.ts","./src/app/shared/services/order.service.ts","./src/app/shared/services/pragmatic-validation.service.ts","./src/app/shared/services/product-dashboard.service.ts","./src/app/shared/services/refdata.service.ts","./src/app/shared/services/session-timeout-absolute.service.ts","./src/app/shared/services/session-timeout.service.ts","./src/app/shared/services/settings.service.ts","./src/app/shared/services/storage-manager.service.ts","./src/app/shared/services/submission-dashboard.service.ts","./src/app/shared/services/substance-lookup.service.ts","./src/app/shared/services/template.service.ts","./src/app/shared/services/utilities.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { ErrorComponent, SupportComponent, AccessdeniedComponent, UnauthorizedComponent,\r\n ForbiddenComponent,\r\n ERFormComponent,\r\n ERFormDashboardComponent,\r\n VersionModalComponent,\r\n EsigModalComponent,\r\n NoEsgAccessModalComponent,\r\n} from './components/index';\r\nimport { CompanyDetailsComponent } from './components/company-details/company-details.component';\r\nimport { ContactComponent } from './components/contact/contact.component';\r\nimport {\r\n CompanyAuthorizationGuard, ContactAuthorizationGuard, ContactEditGuard, CompanyEditGuard, ERFormCAGuard, ERFormCDGuard,\r\n OrderStep1Guard, OrderStep2Guard, OrderStep3Guard, BusinessCategoryAuthorizationGuard, SubmissionAuthorizationGuard,\r\n} from './shared/guards/index';\r\nimport {\r\n CompanyResolverService, ERFormResolverService, OrderResolverService, ERDashboardResolverService, LCRDashboardResolverService, BusinessCategoryResolverService,\r\n} from './shared/resolvers/index';\r\nimport { CompanyDashboardComponent } from './components/company-dashboard/company-dashboard.component';\r\nimport { ContactDashboardComponent } from './components/contact-dashboard/contact-dashboard.component';\r\nimport { CreateLLFormComponent } from './components/create-ll-form/create-ll-form.component';\r\nimport { LCRFormComponent } from './components/lcr-form/lcr-form.component';\r\nimport { OrderStep1Component } from './components/order-step-1/order-step-1.component';\r\nimport { OrderStep2Component } from './components/order-step-2/order-step-2.component';\r\nimport { OrderStep3Component } from './components/order-step-3/order-step-3.component';\r\nimport { OrderTrackerComponent } from './components/order-tracker/order-tracker.component';\r\nimport { LCRFormGuard } from './shared/guards/lcr-form-guard';\r\nimport { LCRFormResolverService } from './shared/resolvers/lcr-form-resolver.service';\r\nimport { LCRFormAuthorizationGuard } from './shared/guards/lcr-form-authorization.guard';\r\nimport { LCRFormDashboardComponent } from './components/lcr-form-dashboard/lcr-form-dashboard.component';\r\nimport { BusinessCategoryComponent } from './components/business-category/business-category.component';\r\nimport { BusinessCategoryEditGuard } from './shared/guards/business-category.guard';\r\nimport { HealthCanadaSplValidationComponent } from './components/health-canada-spl-validation/health-canada-spl-validation.component';\r\nimport { FooterDashboardGuard } from './shared/guards/footer-dashboard-guard';\r\nimport { SiteLayoutComponent } from './components/_layout/site-layout/site-layout.component';\r\nimport { SplViewerComponent } from './components/spl-viewer/spl-viewer.component';\r\nimport { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';\r\nimport { AutoLoginGuard } from 'angular-auth-oidc-client';\r\nimport { SubmissionDashboardComponent } from './components/submission-dashboard/submission-dashboard.component';\r\nimport { SubstanceLookupComponent } from './components/substance-lookup/substance-lookup.component';\r\nimport { SubstanceLookupGuard } from './shared/guards/substance-lookup.guard';\r\nimport { CosmeticBuilderComponent } from './components/areas/cosmetic/cosmetic-builder/cosmetic-builder.component';\r\nimport { SplUploadGuard } from './shared/guards/spl-upload.guard';\r\nimport { SplUploadComponent } from './components/areas/spl-upload/spl-upload.component';\r\nimport { SplUploadResolverService } from './shared/resolvers/spl-upload.resolver';\r\nimport { OrderComponent } from './components/order/order.component';\r\nimport { OrderGuard } from './shared/guards/order-guard';\r\nimport { NavigatorComponent } from './components/navigator/navigator.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: SiteLayoutComponent,\r\n children: [\r\n { path: '', redirectTo: 'order-tracker', pathMatch: 'full' },\r\n { path: 'bncc', loadChildren: () => import('./components/areas/bncc/bncc.module').then(m => m.BNCCModule), canActivate: [AutoLoginGuard] },\r\n { path: 'label-spl', loadChildren: () => import('./components/areas/label-spl/label-spl.module').then(m => m.LabelSPLModule), canActivate: [AutoLoginGuard] },\r\n { path: 'products', loadChildren: () => import('./components/areas/products/product.module').then(m => m.ProductModule), canActivate: [AutoLoginGuard] },\r\n { path: 'cosmetics', loadChildren: () => import('./components/areas/cosmetic/cosmetic-builder.module').then(m => m.CosmeticFileUploadModule), canActivate: [AutoLoginGuard] },\r\n { path: 'home', redirectTo: 'order-tracker', pathMatch: 'full' },\r\n { path: 'accessdenied', component: AccessdeniedComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard] },\r\n { path: 'business-category', component: BusinessCategoryComponent, resolve: { businessCategoryData: BusinessCategoryResolverService }, canActivate: [AutoLoginGuard, BusinessCategoryAuthorizationGuard], canDeactivate: [BusinessCategoryEditGuard] },\r\n { path: 'contact/:contactRevisionId', component: ContactComponent, canActivate: [AutoLoginGuard, ContactAuthorizationGuard], canDeactivate: [ContactEditGuard] },\r\n { path: 'contact', component: ContactComponent, canActivate: [AutoLoginGuard, ContactAuthorizationGuard], canDeactivate: [ContactEditGuard] },\r\n { path: 'company-details/:companyRevisionId', component: CompanyDetailsComponent, resolve: { companyData: CompanyResolverService }, canActivate: [AutoLoginGuard, CompanyAuthorizationGuard], canDeactivate: [CompanyEditGuard] },\r\n { path: 'company-details', component: CompanyDetailsComponent, resolve: { companyData: CompanyResolverService }, canActivate: [AutoLoginGuard, CompanyAuthorizationGuard], canDeactivate: [CompanyEditGuard] },\r\n { path: 'company-dashboard', component: CompanyDashboardComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard, CompanyAuthorizationGuard], canDeactivate: [FooterDashboardGuard] },\r\n { path: 'contact-dashboard', component: ContactDashboardComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard, ContactAuthorizationGuard], canDeactivate: [FooterDashboardGuard] },\r\n { path: 'lcr-form-dashboard', component: LCRFormDashboardComponent, resolve: { formData: LCRDashboardResolverService }, canActivate: [AutoLoginGuard, LCRFormAuthorizationGuard], canDeactivate: [FooterDashboardGuard] },\r\n { path: 'lcr-form/:revisionId', component: LCRFormComponent, resolve: { formData: LCRFormResolverService }, canActivate: [AutoLoginGuard, LCRFormAuthorizationGuard], canDeactivate: [LCRFormGuard] },\r\n { path: 'lcr-form', component: LCRFormComponent, resolve: { formData: LCRFormResolverService }, canActivate: [AutoLoginGuard, LCRFormAuthorizationGuard], canDeactivate: [LCRFormGuard] },\r\n { path: 'create-ll-form', component: CreateLLFormComponent, canActivate: [AutoLoginGuard] },\r\n { path: 'er-form-dashboard', component: ERFormDashboardComponent, resolve: { formData: ERDashboardResolverService }, canActivate: [AutoLoginGuard, ERFormCAGuard] },\r\n { path: 'er-form/:revisionId', component: ERFormComponent, resolve: { formData: ERFormResolverService }, canActivate: [AutoLoginGuard, ERFormCAGuard], canDeactivate: [ERFormCDGuard] },\r\n { path: 'er-form', component: ERFormComponent, resolve: { formData: ERFormResolverService }, canActivate: [AutoLoginGuard, ERFormCAGuard], canDeactivate: [ERFormCDGuard] },\r\n { path: 'order/:orderRevisionId', component: OrderComponent, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard], canDeactivate: [OrderGuard] },\r\n { path: 'order', component: OrderComponent, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard, OrderGuard], canDeactivate: [OrderGuard] },\r\n { path: 'order-step-1/:orderRevisionId', component: OrderStep1Component, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard], canDeactivate: [OrderStep1Guard] },\r\n { path: 'order-step-1', component: OrderStep1Component, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard, OrderStep1Guard], canDeactivate: [OrderStep1Guard] },\r\n { path: 'order-step-2/:orderRevisionId', component: OrderStep2Component, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard, OrderStep2Guard], canDeactivate: [OrderStep2Guard] },\r\n { path: 'order-step-3/:orderRevisionId', component: OrderStep3Component, resolve: { orderDataResolved: OrderResolverService }, canActivate: [AutoLoginGuard, OrderStep3Guard], canDeactivate: [OrderStep3Guard] },\r\n { path: 'order-tracker', component: OrderTrackerComponent, canActivate: [AutoLoginGuard] },\r\n { path: 'health-canada-spl-validation', component: HealthCanadaSplValidationComponent, canActivate: [AutoLoginGuard] },\r\n { path: 'substance-lookup', component: SubstanceLookupComponent, canActivate: [AutoLoginGuard, SubstanceLookupGuard] },\r\n { path: 'submission-dashboard', component: SubmissionDashboardComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard, SubmissionAuthorizationGuard] },\r\n { path: 'support', component: SupportComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard] },\r\n { path: 'navigator', component: NavigatorComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard] },\r\n { path: 'unauthorized', component: UnauthorizedComponent, pathMatch: 'prefix' },\r\n { path: 'forbidden', component: ForbiddenComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard] },\r\n { path: 'no-esg-access', component: NoEsgAccessModalComponent, pathMatch: 'prefix', canActivate: [AutoLoginGuard] },\r\n { path: 'error', component: ErrorComponent },\r\n { path: 'version-modal', component: VersionModalComponent, pathMatch: 'prefix' },\r\n { path: 'esig-modal', component: EsigModalComponent, pathMatch: 'prefix' },\r\n { path: 'cosmetic-builder', component: CosmeticBuilderComponent, canActivate: [AutoLoginGuard, SubstanceLookupGuard] },\r\n { path: 'spl-upload', component: SplUploadComponent, resolve: { splUploadData: SplUploadResolverService }, canActivate: [AutoLoginGuard, SplUploadGuard] },\r\n ],\r\n },\r\n\r\n // no layout\r\n { path: 'spl-viewer', component: SplViewerComponent },\r\n { path: '**', component: PageNotFoundComponent },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule { }\r\n","import { HttpClientModule, HttpClientJsonpModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './components/app/app.component';\r\nimport { SplitWordsPipe } from './pipes/split-words.pipe';\r\nimport { UtcToLocalePipe } from './pipes/utc-to-locale.pipe';\r\nimport { HideByAccessDirective, LabelControlDirective, KeyUpDirective, DisableControlDirective } from './shared/directives/index';\r\nimport { CompanyAuthorizationGuard, ContactAuthorizationGuard, LLFormAuthorizationGuard, LLFormGuard, ERFormCDGuard, ERFormCAGuard, BusinessCategoryAuthorizationGuard } from './shared/guards/index';\r\nimport { ContactEditGuard } from './shared/guards/contact-edit-guard';\r\nimport { CompanyResolverService, LLFormResolverService, ERFormResolverService, OrderResolverService, LLDashboardResolverService, ERDashboardResolverService, LCRDashboardResolverService, BusinessCategoryResolverService } from './shared/resolvers/index';\r\nimport { AuthenticationService } from './shared/services/authentication.service';\r\nimport { AuthorizationService, CustomerService, LoggingService, SettingsService, StorageManagerService, TemplateService, CompanyContactService, LLDashboardService} from './shared/services/index';\r\nimport { SessionTimeoutService } from './shared/services/session-timeout.service';\r\nimport { RefdataService } from './shared/services/refdata.service';\r\nimport { BlockUIModule } from 'ng-block-ui';\r\nimport { LLFormService } from './shared/services/ll-form.service';\r\nimport { OrderService } from './shared/services/order.service';\r\nimport { Utilities } from './shared/services/utilities';\r\nimport {\r\n AccessdeniedComponent, CustomerSelectorComponent, UnauthorizedComponent,\r\n ForbiddenComponent, FooterComponent, HomeComponent, NavMenuComponent, SupportComponent, ContactDetailComponent, CompanyDetailsComponent, ContactComponent,\r\n CompanyDashboardComponent, ContactDashboardComponent,\r\n CreateLLFormComponent, ERFormComponent, ERFormDashboardComponent,\r\n OrderStep1Component, OrderStep2Component, OrderStep3Component, LCRFormDashboardComponent,\r\n OrderSummaryComponent, OrderTrackerComponent, OrderAdminComponent, NoEsgAccessModalComponent } from './components/index';\r\nimport { DatePipe } from '@angular/common';\r\nimport { AbsoluteSessionTimeoutService } from './shared/services/session-timeout-absolute.service';\r\nimport { NavigatorComponent } from './components/navigator/navigator.component';\r\nimport { LCRFormComponent } from './components/lcr-form/lcr-form.component';\r\nimport { SanitizeHtmlPipe } from './pipes/sanitize-html.pipe';\r\nimport { LCRFormAuthorizationGuard } from './shared/guards/lcr-form-authorization.guard';\r\nimport { LCRFormResolverService } from './shared/resolvers/lcr-form-resolver.service';\r\nimport { LCRFormGuard } from './shared/guards/lcr-form-guard';\r\nimport { LCRFormService } from './shared/services/lcr-form.service';\r\nimport { ERFormService } from './shared/services/er-form-service';\r\nimport { OrderGuard } from './shared/guards/order-guard';\r\nimport { OrderStep1Guard } from './shared/guards/order-step-1-guard';\r\nimport { OrderStep2Guard } from './shared/guards';\r\nimport { OrderStep3Guard } from './shared/guards/order-step-3-guard';\r\nimport { SubmissionAuthorizationGuard } from './shared/guards/submission-authorization.guard';\r\nimport { LlValidationService } from './shared/services/ll-validation.service';\r\nimport { LCRValidationService } from './shared/services/lcr-validation.service';\r\nimport { JwtInterceptor } from './shared/helpers/jwt.interceptor';\r\nimport { BusinessCategoryComponent } from './components/business-category/business-category.component';\r\nimport { BusinessCategoryEditGuard } from './shared/guards/business-category.guard';\r\nimport { HealthCanadaSplValidationComponent } from './components/health-canada-spl-validation/health-canada-spl-validation.component';\r\nimport { HCSplValidationService } from './shared/services/hc-spl-validation.service';\r\nimport { IRevisionHistory } from './shared/models/revisionHistory.model';\r\nimport { DeleteFormService } from './shared/services/delete-form.service';\r\nimport { RTSharedModule } from './rt-shared.module';\r\nimport { SiteLayoutComponent } from './components/_layout/site-layout/site-layout.component';\r\nimport { SplViewerComponent } from './components/spl-viewer/spl-viewer.component';\r\nimport { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';\r\nimport { AuthConfigModule } from './auth-config.module';\r\nimport { ESGSubmissionService } from './shared/services/esg-submission-service';\r\nimport { SubmissionDashboardComponent } from './components/submission-dashboard/submission-dashboard.component';\r\nimport { SubmissionDashboardService } from './shared/services/submission-dashboard.service';\r\nimport { SubstanceLookupComponent } from './components/substance-lookup/substance-lookup.component';\r\nimport { SubstanceLookupService } from './shared/services/substance-lookup.service';\r\nimport { SubstanceLookupGuard } from './shared/guards/substance-lookup.guard';\r\nimport { GridPreferencesService } from './shared/services/grid-preferences.service';\r\nimport { PragmaticValidationService } from './shared/services/pragmatic-validation.service';\r\nimport { ColumnChooserService } from '@syncfusion/ej2-angular-grids';\r\nimport { SplUploadGuard } from './shared/guards/spl-upload.guard';\r\nimport { SplUploadComponent } from './components/areas/spl-upload/spl-upload.component';\r\nimport { FeatureService } from './shared/services/feature.service';\r\nimport { FileUploadHistoryGridComponent } from './components/grids/fileuploadhistorygrid/fileuploadhistorygrid.component';\r\nimport { FileUploadService } from './shared/services/file-upload.service';\r\nimport { SplUploadResolverService } from './shared/resolvers/spl-upload.resolver';\r\nimport { AccordionModule } from '@syncfusion/ej2-angular-navigations';\r\nimport { OrderComponent } from './components/order/order.component';\r\nimport { NavDLService } from './shared/services/navdl.service';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n AccessdeniedComponent,\r\n FooterComponent,\r\n HomeComponent,\r\n NavMenuComponent,\r\n SupportComponent,\r\n NavigatorComponent,\r\n CustomerSelectorComponent,\r\n SplitWordsPipe,\r\n UtcToLocalePipe,\r\n SanitizeHtmlPipe,\r\n HideByAccessDirective,\r\n DisableControlDirective,\r\n LabelControlDirective,\r\n KeyUpDirective,\r\n UnauthorizedComponent,\r\n ForbiddenComponent,\r\n NoEsgAccessModalComponent,\r\n ContactDetailComponent,\r\n ContactComponent,\r\n CompanyDashboardComponent,\r\n ContactDashboardComponent,\r\n SubmissionDashboardComponent,\r\n CreateLLFormComponent,\r\n OrderComponent,\r\n OrderStep1Component,\r\n OrderStep2Component,\r\n OrderStep3Component,\r\n OrderSummaryComponent,\r\n OrderTrackerComponent,\r\n OrderAdminComponent,\r\n LCRFormComponent,\r\n LCRFormDashboardComponent,\r\n ERFormComponent,\r\n ERFormDashboardComponent,\r\n BusinessCategoryComponent,\r\n HealthCanadaSplValidationComponent,\r\n SiteLayoutComponent,\r\n SplViewerComponent,\r\n PageNotFoundComponent,\r\n SubstanceLookupComponent,\r\n FileUploadHistoryGridComponent,\r\n SplUploadComponent,\r\n ],\r\n imports: [\r\n RTSharedModule,\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n AuthConfigModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n AccordionModule,\r\n AppRoutingModule,\r\n HttpClientJsonpModule,\r\n ToastrModule.forRoot({\r\n timeOut: 8000,\r\n preventDuplicates: true,\r\n positionClass: 'toast-top-center',\r\n }),\r\n BlockUIModule.forRoot()\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n StorageManagerService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: JwtInterceptor,\r\n multi: true,\r\n },\r\n SettingsService,\r\n AuthenticationService,\r\n LoggingService,\r\n LLDashboardService,\r\n CustomerService,\r\n TemplateService,\r\n CompanyResolverService,\r\n LLFormResolverService,\r\n LLDashboardResolverService,\r\n LCRFormResolverService,\r\n LCRDashboardResolverService,\r\n BusinessCategoryResolverService,\r\n LCRValidationService,\r\n ERFormResolverService,\r\n AuthorizationService,\r\n LlValidationService,\r\n ERDashboardResolverService,\r\n ContactEditGuard,\r\n ContactAuthorizationGuard,\r\n CompanyAuthorizationGuard,\r\n LLFormAuthorizationGuard,\r\n LCRFormAuthorizationGuard,\r\n BusinessCategoryEditGuard,\r\n BusinessCategoryAuthorizationGuard,\r\n LLFormGuard,\r\n LCRFormGuard,\r\n ERFormCAGuard,\r\n ERFormCDGuard,\r\n SessionTimeoutService,\r\n AbsoluteSessionTimeoutService,\r\n Utilities,\r\n CompanyContactService,\r\n LLFormService,\r\n LCRFormService,\r\n ERFormService,\r\n RefdataService,\r\n DatePipe,\r\n OrderService,\r\n SubmissionDashboardService,\r\n OrderResolverService,\r\n OrderGuard,\r\n OrderStep1Guard,\r\n OrderStep2Guard,\r\n OrderStep3Guard,\r\n SubmissionAuthorizationGuard,\r\n LCRValidationService,\r\n LlValidationService,\r\n HCSplValidationService,\r\n IRevisionHistory,\r\n DeleteFormService,\r\n ESGSubmissionService,\r\n SubstanceLookupService,\r\n SubstanceLookupGuard,\r\n GridPreferencesService,\r\n PragmaticValidationService,\r\n ColumnChooserService,\r\n FeatureService,\r\n SplUploadGuard,\r\n FileUploadService,\r\n SplUploadResolverService,\r\n NavDLService,\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule { }\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { AuthModule, OidcConfigService, OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { IServerSettings } from './shared/models';\r\nimport { SettingsService } from './shared/services';\r\n\r\nexport const configureAuth = (httpClient: HttpClient, settingsService: SettingsService, oidcService: OidcConfigService) => {\r\n\r\n const setupAction$ = httpClient\r\n .get('/api/Settings/GetServerSettings')\r\n .pipe(\r\n map((customConfig: IServerSettings) => {\r\n settingsService.serverSettings = customConfig;\r\n return {\r\n stsServer: customConfig.IdentityServiceUrl,\r\n authWellknownEndpoint: `${customConfig.IdentityServiceUrl}/.well-known/openid-configuration`,\r\n redirectUrl: `${window.location.origin}/`,\r\n clientId: 'SSDrugProductsApp',\r\n scope: 'openid profile email offline_access IdentityServiceApi SSDrugProductsApi ApiGateway',\r\n postLogoutRedirectUri: `${window.location.origin}/home`,\r\n responseType: 'code',\r\n triggerAuthorizationResultEvent: true,\r\n startCheckSession: true,\r\n silentRenew: true,\r\n renewTimeBeforeTokenExpiresInSeconds: 60,\r\n useRefreshToken: true,\r\n maxIdTokenIatOffsetAllowedInSeconds: 90,\r\n issValidationOff: false,\r\n autoUserinfo: true,\r\n postLoginRoute: '/home',\r\n forbiddenRoute: '/forbidden',\r\n unauthorizedRoute: '/unauthorized',\r\n customParams: {\r\n prompt: 'select_account', // login, consent\r\n },\r\n };\r\n }), switchMap((config) => oidcService.withConfig(config))\r\n );\r\n\r\n return () => setupAction$.toPromise();\r\n}\r\n\r\n@NgModule({\r\n imports: [AuthModule.forRoot()],\r\n providers: [\r\n OidcSecurityService,\r\n OidcConfigService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureAuth,\r\n deps: [HttpClient, SettingsService, OidcConfigService],\r\n multi: true,\r\n },\r\n ],\r\n exports: [AuthModule],\r\n})\r\nexport class AuthConfigModule {}\r\n","\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.css']\r\n})\r\n\r\nexport class FooterComponent {\r\n currentYear: number;\r\n\r\n @Input() lastLogonDate: string;\r\n\r\n constructor() {\r\n this.currentYear = new Date().getFullYear();\r\n }\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { ICustomer } from '../../../../shared/models';\r\nimport { AuthenticationService } from '../../../../shared/services/authentication.service';\r\nimport { StorageManagerService } from '../../../../shared/services';\r\nimport { Utilities } from '../../../../shared/services/utilities';\r\n\r\n@Component({\r\n selector: 'app-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.scss'],\r\n})\r\nexport class NavMenuComponent implements OnDestroy, AfterViewInit {\r\n // some of the variables are getting set from the parent components.\r\n // please don't remove any variables.\r\n loggedIn: boolean;\r\n // isExpanded: boolean;\r\n hasCurrentCustomer = false;\r\n editCompanyMenu = false;\r\n editContactMenu = false;\r\n editLLFormMenu = false;\r\n editLCRFormMenu = false;\r\n editERFormMenu = false;\r\n editBusinessCategoryMenu = false;\r\n editOrdersMenu = false;\r\n ordersFormMenu = false;\r\n hcValidationFormMenu = false;\r\n editBNCCFormMenu = false;\r\n submissionMenu = false;\r\n ingestBNCC = false;\r\n ingestPLRSPL = false;\r\n substanceLookup = false;\r\n splIngestLLForm = false;\r\n splViewLLForm = false;\r\n selectedCustomer: string;\r\n subscription: Subscription;\r\n userData: any;\r\n isAuthorized: boolean;\r\n customers: any[];\r\n fields: Object = { text: 'customerName', value: 'customerId' };\r\n ddwHeight = '220px';\r\n ddwWidth = '500px';\r\n drpWidth = '350px';\r\n customerId: number;\r\n sub: Subscription;\r\n toggleClientDropdownState: boolean;\r\n defaultHomepageLink = ''; // controlled by app.component\r\n\r\n @Input() currentCustomer: ICustomer;\r\n @Input() userName: string;\r\n @Input() email: string;\r\n @Input() permissionsSet: string[];\r\n @Input() dataScopes: any;\r\n @Input() customerSelectionEnabled = true;\r\n\r\n @Output() changedCustomerEmitter = new EventEmitter();\r\n\r\n height = '220px';\r\n waterMark = 'Select a health authority';\r\n\r\n @ViewChild('switchCustomersddw')\r\n switchCustomersddw: DropDownListComponent;\r\n\r\n dataSourceApi: any;\r\n accessPermissions: any;\r\n dataScopeName: string;\r\n dataScope: string;\r\n dataScopeId: number;\r\n language = 'English';\r\n dataSource: any[] = [];\r\n\r\n public dataScopeFields: Object = { text: 'name', value: 'id' };\r\n\r\n constructor(private authenticationService: AuthenticationService,\r\n private storageManagerService: StorageManagerService,\r\n private utilService: Utilities,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n skipNavigation(e) {\r\n const type = e.type;\r\n\r\n if (type === 'click' || (type === 'keydown' && (e.which === 13 || e.keyCode === 13))) {\r\n const main = document.getElementById('main-heading');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n logout() {\r\n const accessPermissions = this.storageManagerService.read('accessPermissions');\r\n\r\n if (accessPermissions) {\r\n this.authenticationService.captureLogoutEvent(this.email)\r\n .subscribe(res => {\r\n this.authenticationService.logout();\r\n this.storageManagerService.clearAll();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n } else {\r\n this.authenticationService.logout();\r\n this.storageManagerService.clearAll();\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.customerSelectionEnabled) {\r\n // listen for the status change to determine if we need to disable the client dropdown\r\n this.sub = this.utilService.toggoleClientDropdownState$.subscribe(\r\n status => this.toggleClientDropdownState = status,\r\n );\r\n\r\n const sessionCustomers = this.storageManagerService.read('eligibleCustomers');\r\n\r\n const sessionCurrentCustomer = this.storageManagerService.read('currentCustomer');\r\n\r\n this.userData = this.storageManagerService.read('userData');\r\n\r\n if (sessionCustomers && sessionCurrentCustomer) {\r\n this.customers = sessionCustomers;\r\n this.currentCustomer = !this.currentCustomer ? (typeof sessionCurrentCustomer === 'object' ? sessionCurrentCustomer : JSON.parse(sessionCurrentCustomer)) : this.currentCustomer;\r\n\r\n this.switchCustomersddw.value = this.currentCustomer.customerId;\r\n\r\n } else {\r\n if (sessionCustomers) {\r\n this.customers = sessionCustomers;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n\r\n switchClient(event) {\r\n let changedCustomerId: number;\r\n const customers = this.storageManagerService.read('eligibleCustomers');\r\n\r\n if (event && event.itemData) {\r\n changedCustomerId = event.itemData.customerId;\r\n } else {\r\n const sessionCustomerStr = this.storageManagerService.read('currentCustomer');\r\n\r\n if (sessionCustomerStr) {\r\n const currentCustomer = typeof sessionCustomerStr === 'object' ? sessionCustomerStr : JSON.parse(sessionCustomerStr);\r\n\r\n if (currentCustomer) {\r\n changedCustomerId = currentCustomer.customerId;\r\n }\r\n }\r\n }\r\n\r\n const changedCustomer = customers.find(c => c['customerId'] === changedCustomerId);\r\n\r\n if (changedCustomer) {\r\n this.changedCustomerEmitter.emit(changedCustomer);\r\n }\r\n }\r\n}\r\n","
\r\nSkip to Main Content\r\n\r\n\r\n\r\n","import { Component, OnInit, OnDestroy, ViewChild, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { StorageManagerService, AuthorizationService, SettingsService, CustomerService } from '../../../shared/services/index';\r\nimport { ICustomer, IHasPermissionObject } from '../../../shared/models/index';\r\nimport { Subscription, Observable, BehaviorSubject, throwError } from 'rxjs';\r\nimport { AuthenticationService } from '../../../shared/services/authentication.service';\r\nimport { CustomerSelectorComponent, NavMenuComponent, FooterComponent } from '../../index';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { SessionTimeoutService } from '../../../shared/services/session-timeout.service';\r\nimport { AbsoluteSessionTimeoutService } from '../../../shared/services/session-timeout-absolute.service';\r\nimport { Router, NavigationEnd, NavigationCancel, NavigationError, NavigationStart, Event as NavigationEvent } from '@angular/router';\r\nimport { Utilities } from '../../../shared/services/utilities';\r\nimport { OrderTrackerComponent } from '../../order-tracker/order-tracker.component';\r\n\r\n@Component({\r\n selector: 'app-site-layout',\r\n templateUrl: './site-layout.component.html',\r\n styleUrls: ['./site-layout.component.scss']\r\n})\r\nexport class SiteLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '25%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n sessionExpireSecondsLeft: number;\r\n hidden = false;\r\n\r\n title = 'app';\r\n isIframe: boolean;\r\n lastLogonDate: string;\r\n hasPermission: boolean;\r\n isLoggedIn: boolean;\r\n hasCurrentCustomer: boolean;\r\n userName: string;\r\n permissionsSet: string[];\r\n selectedCustomer: string;\r\n subscription: Subscription;\r\n currentCustomer: ICustomer;\r\n email: string;\r\n loggedIn = false;\r\n customerId: number;\r\n userGuid: string;\r\n customers: ICustomer[] = [];\r\n eligibleCustomers: any[] = [];\r\n bHasOnlyOneClient = false;\r\n dataScope: string;\r\n dataSourceApi: any;\r\n dataScopeId: number;\r\n dataSource: any[] = [];\r\n private applicationName = 'SSDrugProducts';\r\n private applicationId = 269;\r\n applications: any[] = [];\r\n absoluteSessionExpireMinutesLeft: number;\r\n bnccUrl = '';\r\n\r\n @ViewChild('customerSelector')\r\n customerSelector: CustomerSelectorComponent;\r\n\r\n @ViewChild('navMenu')\r\n navMenuComponent: NavMenuComponent;\r\n\r\n @ViewChild('footer')\r\n footerComponent: FooterComponent;\r\n\r\n @ViewChild('sessionTimeoutModal')\r\n public sessionTimeoutModal: DialogComponent;\r\n\r\n @ViewChild('absoluteSessionTimeoutModal')\r\n public absoluteSessionTimeoutModal: DialogComponent;\r\n\r\n hasPermissionSubject: BehaviorSubject = new BehaviorSubject(false);\r\n lastLogonDateSourceSubject: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n orderTrackerComponent: OrderTrackerComponent;\r\n dataScopeName: any;\r\n loading: boolean;\r\n isOnLogin: boolean;\r\n\r\n constructor(private authorizationService: AuthorizationService, private storageManagerService: StorageManagerService,\r\n private authenticationService: AuthenticationService, private customerService: CustomerService, private router: Router,\r\n private sessionTimeoutservice: SessionTimeoutService, private cdRef: ChangeDetectorRef, private absoluteSessionTimeoutService: AbsoluteSessionTimeoutService,\r\n private utilService: Utilities, private settingsService: SettingsService) {\r\n\r\n // This is to avoid reload during acquireTokenSilent() because of hidden iframe\r\n this.isIframe = window !== window.parent && !window.opener;\r\n\r\n // Handle the browser refresh\r\n if (this.storageManagerService.read('lastLogonDate')) {\r\n this.lastLogonDate = this.storageManagerService.read('lastLogonDate');\r\n this.authorizationService.lastLogonDateSourceSubject.next(this.lastLogonDate);\r\n }\r\n\r\n if (this.storageManagerService.read('hasPermission')) {\r\n this.hasPermission = this.storageManagerService.read('hasPermission');\r\n this.authorizationService.hasPermissionSubject.next(this.hasPermission);\r\n }\r\n\r\n if (this.storageManagerService.read('accessPermissions')) {\r\n this.permissionsSet = this.storageManagerService.read('accessPermissions');\r\n this.authorizationService.permissionsSetSubject.next(this.permissionsSet);\r\n }\r\n\r\n router.events\r\n .subscribe((routerEvent: NavigationEvent) => {\r\n if (routerEvent instanceof NavigationStart) {\r\n\r\n this.loading = true;\r\n }\r\n if (routerEvent instanceof NavigationEnd ||\r\n routerEvent instanceof NavigationCancel ||\r\n routerEvent instanceof NavigationError) {\r\n\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n onActivate(componentRef) {\r\n\r\n if (componentRef instanceof OrderTrackerComponent) {\r\n this.orderTrackerComponent = componentRef;\r\n }\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n authenticateUsersWithCustomers(userData: any) {\r\n\r\n const cust = this.storageManagerService.read('currentCustomer');\r\n\r\n if (cust) {\r\n this.currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n\r\n this.authenticationService.initPendo(userData.userguid, this.currentCustomer.customerName);\r\n }\r\n\r\n this.userName = userData.name;\r\n this.email = userData.preferred_username;\r\n\r\n if (userData.applications) {\r\n this.applications = JSON.parse(userData.applications);\r\n }\r\n\r\n if (this.orderTrackerComponent) {\r\n this.orderTrackerComponent.loadInitialToolbar();\r\n this.orderTrackerComponent.loadData();\r\n }\r\n\r\n if (this.applications && this.applications.length > 0 && this.applications[0].AName === this.applicationName) {\r\n\r\n if (!this.storageManagerService.read('userGuid')) {\r\n\r\n this.authorizationService.getPermisions(userData.preferred_username)\r\n .subscribe((res: IHasPermissionObject) => {\r\n\r\n const hasApplicationPermissions = res.hasApplicationPermissions;\r\n\r\n this.hasPermissionSubject.next(hasApplicationPermissions);\r\n this.hasPermission = hasApplicationPermissions;\r\n this.authorizationService.hasPermissionSubject.next(this.hasPermission);\r\n\r\n this.storageManagerService.write('hasPermission', hasApplicationPermissions);\r\n\r\n this.lastLogonDateSourceSubject.next(userData.lastlogondate);\r\n this.storageManagerService.write('lastLogonDate', userData.lastlogondate);\r\n\r\n this.storageManagerService.write('userGuid', res.userGuid);\r\n\r\n if (!hasApplicationPermissions) {\r\n\r\n this.router.navigate(['/accessdenied']).then(() => {\r\n return;\r\n });\r\n }\r\n });\r\n } else {\r\n\r\n if (!this.permissionsSet) {\r\n\r\n if (this.currentCustomer) {\r\n\r\n const user = this.storageManagerService.read('userData');\r\n\r\n if (user && user !== '\"\"') {\r\n\r\n const userName = user.preferred_username;\r\n\r\n this.authorizationService.setAccessPermissions(userName).subscribe(res => {\r\n this.permissionsSet = res;\r\n\r\n this.authorizationService.permissionsSetSubject.next(res);\r\n this.storageManagerService.write('accessPermissions', this.permissionsSet);\r\n\r\n if (this.navMenuComponent) {\r\n this.navMenuComponent.permissionsSet = this.permissionsSet;\r\n // this.navMenuComponent.uploadFilesMenu = this.authorizationService.hasPermission('SS.CanUploadFile');\r\n this.manageNavMenuAccess();\r\n }\r\n });\r\n }\r\n } else {\r\n\r\n this.eligibleCustomers = this.storageManagerService.read('eligibleCustomers', []);\r\n\r\n if (this.eligibleCustomers && this.eligibleCustomers.length > 0) {\r\n this.customers = this.eligibleCustomers;\r\n }\r\n }\r\n } else {\r\n if (this.navMenuComponent) {\r\n this.navMenuComponent.permissionsSet = this.permissionsSet;\r\n // this.navMenuComponent.uploadFilesMenu = this.authorizationService.hasPermission('SS.CanUploadFile');\r\n this.manageNavMenuAccess();\r\n\r\n this.authorizationService.permissionsSetSubject.next(this.permissionsSet);\r\n this.storageManagerService.write('accessPermissions', this.permissionsSet);\r\n }\r\n }\r\n }\r\n\r\n this.subscription = this.authenticationService.getIsAuthorized().subscribe(\r\n (isAuthorized: boolean) => {\r\n if (isAuthorized) {\r\n this.absoluteSessionTimeoutService.reset();\r\n }\r\n if (this.navMenuComponent) {\r\n this.navMenuComponent.loggedIn = isAuthorized;\r\n }\r\n });\r\n\r\n this.subscription = this.authorizationService.hasPermissionSubject.subscribe((res) => {\r\n this.hasPermission = res;\r\n });\r\n\r\n this.lastLogonDate = this.storageManagerService.read('lastLogonDate');\r\n\r\n if (!this.lastLogonDate) {\r\n\r\n this.subscription = this.lastLogonDateSourceSubject.subscribe(res => {\r\n this.lastLogonDate = res;\r\n\r\n });\r\n }\r\n // Session Time out\r\n this.sessionTimeoutservice.sessionTimeoutWarning.subscribe(time => {\r\n this.sessionExpireSecondsLeft = time / 1000;\r\n this.displaySessionExpireWarning();\r\n });\r\n this.sessionTimeoutservice.reset();\r\n\r\n // Absolute Session\r\n this.absoluteSessionTimeoutService.sessionTimeoutWarning.subscribe(time => {\r\n this.absoluteSessionExpireMinutesLeft = time / 60000;\r\n this.displayAbsoluteSessionExpireWarning();\r\n });\r\n } else {\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n\r\n getCustomersWithResponse(userData: any) {\r\n return this.getCustomers(userData.userguid).subscribe(async data => {\r\n\r\n this.customers = data;\r\n\r\n if (this.storageManagerService.read('eligibleCustomers', []).length === 0) {\r\n if (this.customers && this.customers.length > 0) {\r\n\r\n for (let cu of this.customers) {\r\n const c = {};\r\n c['customerId'] = cu['customerId'];\r\n c['customerGuid'] = cu['customerGuid'];\r\n c['customerName'] = cu['customerName'];\r\n c['subscribedChannels'] = await this.customerService.getCustomerAppVariants(cu['customerId'], this.applicationId);\r\n\r\n // Only push items into the array if they don't already exist in it\r\n if (this.eligibleCustomers.length === 0 || this.eligibleCustomers.findIndex(x => x.customerId === c['customerId']) === -1) {\r\n this.eligibleCustomers.push(c);\r\n }\r\n }\r\n\r\n this.eligibleCustomers.sort((x, y) => (x.customerName.toLowerCase() > y.customerName.toLowerCase()) ? 1 : ((x.customerName.toLowerCase() < y.customerName.toLowerCase()) ? -1 : 0));\r\n\r\n this.storageManagerService.write('eligibleCustomers', this.eligibleCustomers);\r\n\r\n if (this.customers.length === 1) {\r\n\r\n this.storageManagerService.write('currentCustomer', this.eligibleCustomers[0]);\r\n this.bHasOnlyOneClient = true;\r\n if (userData.preferred_username) {\r\n this.authorizationService.setAccessPermissions(userData.preferred_username).subscribe(res => {\r\n\r\n if (res) {\r\n\r\n this.storageManagerService.write('accessPermissions', res);\r\n this.authorizationService.permissionsSetSubject.next(res);\r\n\r\n if (this.navMenuComponent) {\r\n\r\n this.navMenuComponent.hasCurrentCustomer = true;\r\n this.navMenuComponent.selectedCustomer = this.selectedCustomer;\r\n this.navMenuComponent.customers = this.eligibleCustomers;\r\n this.navMenuComponent.switchCustomersddw.value = this.currentCustomer.customerId;\r\n\r\n this.navMenuComponent.permissionsSet = res;\r\n // this.navMenuComponent.uploadFilesMenu = this.authorizationService.hasPermission('SS.CanUploadFile');\r\n this.manageNavMenuAccess();\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.customers = this.eligibleCustomers[0].customerId;\r\n this.currentCustomer = this.eligibleCustomers[0];\r\n if (this.navMenuComponent) {\r\n this.navMenuComponent.hasCurrentCustomer = true;\r\n this.navMenuComponent.selectedCustomer = this.eligibleCustomers[0].customerName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n if (this.currentCustomer) {\r\n this.authorizationService.setAccessPermissions(userData.preferred_username).subscribe(res => {\r\n\r\n this.permissionsSet = res;\r\n\r\n this.authorizationService.permissionsSetSubject.next(res);\r\n this.storageManagerService.write('accessPermissions', this.permissionsSet);\r\n\r\n if (this.navMenuComponent) {\r\n this.navMenuComponent.permissionsSet = this.permissionsSet;\r\n // this.navMenuComponent.uploadFilesMenu = this.authorizationService.hasPermission('SS.CanUploadFile');\r\n this.manageNavMenuAccess();\r\n }\r\n });\r\n } else {\r\n\r\n this.customers = this.eligibleCustomers;\r\n\r\n if (this.customers && this.customers.length === 0) {\r\n\r\n this.router.navigate(['/accessdenied']);\r\n }\r\n }\r\n\r\n this.authenticateUsersWithCustomers(userData);\r\n }, error => { this.handleError(error) });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n let userData = this.storageManagerService.read('userData');\r\n if (userData) {\r\n this.getCustomersCallback(userData, this);\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n // authentication service can't pull a bearer token on the first pass, need to wait\r\n getCustomersCallback(userData: any, that: any) {\r\n // Need this where it's the app component form and not this where it's the setTimeout local this\r\n if (!that) {\r\n that = this;\r\n }\r\n\r\n if (!that.authenticationService || that.authenticationService.getBearerToken() === '') {\r\n setTimeout(that.getCustomersCallback, 50, userData, that);\r\n } else {\r\n // If on first login don't display the pop-up\r\n that.isOnLogin = (!that.storageManagerService.read('currentCustomer'));\r\n that.subscription = that.getCustomersWithResponse(userData);\r\n }\r\n }\r\n\r\n displaySessionExpireWarning() {\r\n\r\n this.sessionTimeoutModal.show();\r\n }\r\n\r\n displayAbsoluteSessionExpireWarning() {\r\n this.absoluteSessionTimeoutModal.show();\r\n }\r\n\r\n public onAbsoluteContinueClicked(event) {\r\n this.absoluteSessionTimeoutModal.hide();\r\n }\r\n\r\n dlgAbsoluteSessionTimeoutButtons: Object[] = [{\r\n click: this.onAbsoluteContinueClicked.bind(this), buttonModel: { content: 'OK', isPrimary: true }\r\n }];\r\n\r\n getCustomers(userGuid: string): Observable {\r\n const paramsContainer = {\r\n applicationName: this.applicationName,\r\n userGuid: userGuid\r\n };\r\n\r\n return this.customerService.getCustomers(paramsContainer);\r\n }\r\n\r\n changeDataScope(dataScope: any) {\r\n\r\n this.dataScopeName = dataScope['name'];\r\n }\r\n\r\n receiveCustomer(customer: any) {\r\n this.dataSourceApi = [];\r\n\r\n let oldCustomer;\r\n if (this.storageManagerService.read('currentCustomer')) {\r\n // For scenarios where the user only has a single customer the 'currentCustomer' is already an object\r\n // so attmepts to run JSON.parse on it will fail due to 'currentCustomer' not being a valid JSON string.\r\n oldCustomer = typeof this.storageManagerService.read('currentCustomer') !== \"object\"\r\n ? JSON.parse(this.storageManagerService.read('currentCustomer'))\r\n : this.storageManagerService.read('currentCustomer');\r\n }\r\n\r\n this.currentCustomer = customer;\r\n this.selectedCustomer = customer.customerName;\r\n\r\n this.storageManagerService.write(\r\n 'currentCustomer', JSON.stringify(customer));\r\n\r\n this.authenticationService.reviveToken();\r\n\r\n // Get DataScopes and pass to NavMenu\r\n if (this.storageManagerService.read('userData').preferred_username) {\r\n this.authorizationService.setAccessPermissions(this.storageManagerService.read('userData').preferred_username).subscribe(res => {\r\n\r\n if (res) {\r\n\r\n this.storageManagerService.write('accessPermissions', res);\r\n this.authorizationService.permissionsSetSubject.next(this.permissionsSet);\r\n\r\n if (this.navMenuComponent) {\r\n\r\n if (!this.eligibleCustomers || this.eligibleCustomers.length === 0) {\r\n this.eligibleCustomers = this.storageManagerService.read('eligibleCustomers', []);\r\n }\r\n\r\n this.navMenuComponent.customers = this.eligibleCustomers;\r\n\r\n this.navMenuComponent.hasCurrentCustomer = true;\r\n this.navMenuComponent.selectedCustomer = this.selectedCustomer;\r\n this.navMenuComponent.switchCustomersddw.value = this.currentCustomer.customerId;\r\n\r\n this.navMenuComponent.permissionsSet = res;\r\n // this.navMenuComponent.uploadFilesMenu = this.authorizationService.hasPermission('SS.CanUploadFile');\r\n this.manageNavMenuAccess();\r\n }\r\n\r\n if (this.orderTrackerComponent) {\r\n this.orderTrackerComponent.loadInitialToolbar();\r\n this.orderTrackerComponent.loadData();\r\n }\r\n\r\n let currentUrl = '';\r\n if (this.router && this.router.url) {\r\n currentUrl = this.router.url;\r\n }\r\n\r\n // Sometimes the URL has a \"#\" then a bunch of tokens, strip off those.\r\n if (currentUrl.indexOf('#') > -1) {\r\n currentUrl = currentUrl.substring(0, currentUrl.indexOf('#'));\r\n }\r\n\r\n // Remove any numbers from the end of the URL, to catch pages with ID's for example: /product/dashboard/123\r\n let numberStartIndex = currentUrl.slice(0).search(/\\d/);\r\n if (numberStartIndex > -1) {\r\n currentUrl = currentUrl.substring(0, numberStartIndex - 1);\r\n }\r\n\r\n // a user with only the two permissions SSDP.CanValidateSPL-HC SSDP.CanValidateSPL-FDA is the validation specialist role\r\n const validationSpecialist = res.length === 2 && this.navMenuComponent.hcValidationFormMenu;\r\n this.navMenuComponent.defaultHomepageLink = validationSpecialist ? '/health-canada-spl-validation' : '/order-tracker';\r\n\r\n if (validationSpecialist && currentUrl !== '/health-canada-spl-validation') {\r\n return this.router.navigateByUrl('/health-canada-spl-validation');\r\n }\r\n \r\n if (currentUrl.includes('/bncc')) {\r\n if (this.navMenuComponent.editBNCCFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n this.bnccUrl = currentUrl\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n }\r\n\r\n if (this.bnccUrl != '' && currentUrl.includes('/accessdenied')) {\r\n if (this.bnccUrl.includes('/bncc/form') || this.bnccUrl.includes('/bncc/create-step')) {\r\n this.router.navigateByUrl('/bncc');\r\n } else {\r\n this.router.navigateByUrl(this.bnccUrl);\r\n }\r\n }\r\n \r\n switch (currentUrl) {\r\n\r\n case '/company-dashboard':\r\n\r\n if (this.navMenuComponent.editCompanyMenu) {\r\n\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/contact-dashboard':\r\n\r\n if (this.navMenuComponent.editContactMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/products/portfolio':\r\n if (this.navMenuComponent.editLLFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n // If you're on a dashboard need to re-direct back up one level\r\n case '/products/dashboard':\r\n if (this.navMenuComponent.editLLFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n this.router.navigateByUrl('/products/portfolio')\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/lcr-form-dashboard':\r\n\r\n if (this.navMenuComponent.editLCRFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/er-form-dashboard':\r\n\r\n if (this.navMenuComponent.editERFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/submission-dashboard':\r\n\r\n if (this.navMenuComponent.submissionMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n case '/order-tracker':\r\n case 'order':\r\n\r\n if (this.navMenuComponent.ordersFormMenu && this.currentCustomer) {\r\n if (oldCustomer !== undefined && this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n case '/health-canada-spl-validation':\r\n\r\n if (this.navMenuComponent.hcValidationFormMenu) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/spl-upload':\r\n\r\n if (this.navMenuComponent.splIngestLLForm || this.navMenuComponent.splViewLLForm) {\r\n if (this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n window.location.reload();\r\n }\r\n } else {\r\n this.router.navigateByUrl('/accessdenied');\r\n }\r\n break;\r\n\r\n case '/':\r\n case '/home':\r\n case '':\r\n\r\n // if get to \"home\" after login.\r\n if (!oldCustomer) {\r\n\r\n setTimeout(() => this.router.navigate(['/order-tracker']), 200);\r\n } else {\r\n\r\n if (this.currentCustomer && this.currentCustomer.customerId !== oldCustomer.customerId) {\r\n setTimeout(() => this.router.navigate(['/order-tracker']), 200);\r\n } else if (this.bHasOnlyOneClient) { // this customer has only one client\r\n setTimeout(() => this.router.navigate(['/order-tracker']), 200);\r\n }\r\n\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n const userguid = this.storageManagerService.read('userGuid');\r\n this.authenticationService.initPendo(userguid, this.selectedCustomer);\r\n }\r\n\r\n setDataScopes() {\r\n\r\n this.dataSource = [];\r\n\r\n if (this.dataSourceApi && this.dataSourceApi.length > 0) {\r\n\r\n this.dataSourceApi.forEach((element, i) => {\r\n const ds = { id: 0, name: '' };\r\n ds.id = i + 1;\r\n ds.name = element.termValueCode.toUpperCase();\r\n\r\n this.dataSource.push(ds);\r\n });\r\n\r\n this.navMenuComponent.dataScopes = this.dataSource;\r\n }\r\n }\r\n\r\n // Depending on User's access permissions, make the \"Companies\" and \"Contacts\" on the top navigation menu visible/invisible\r\n manageNavMenuAccess() {\r\n this.navMenuComponent.editCompanyMenu = this.authorizationService.hasPermission('SSDP.CanReadCompany') || this.authorizationService.hasPermission('SSDP.CanWriteCompany');\r\n\r\n this.navMenuComponent.editContactMenu = this.authorizationService.hasPermission('SSDP.CanReadContact') || this.authorizationService.hasPermission('SSDP.CanWriteContact');\r\n\r\n this.navMenuComponent.editLLFormMenu = this.authorizationService.hasPermission('SSDP.CanReadLLForm') || this.authorizationService.hasPermission('SSDP.CanWriteLLForm');\r\n\r\n this.navMenuComponent.editLCRFormMenu = this.authorizationService.hasPermission('SSDP.CanReadLCRForm') || this.authorizationService.hasPermission('SSDP.CanWriteLCRForm');\r\n\r\n this.navMenuComponent.editERFormMenu = this.authorizationService.hasPermission('SSDP.CanReadERForm') || this.authorizationService.hasPermission('SSDP.CanWriteERForm');\r\n\r\n this.navMenuComponent.editBusinessCategoryMenu = this.authorizationService.hasPermission('SSDP.CanReadBusinessCategory') || this.authorizationService.hasPermission('SSDP.CanWriteBusinessCategory') || this.authorizationService.hasPermission('SSDP.CanDeleteBusinessCategory');\r\n\r\n this.navMenuComponent.editOrdersMenu = this.authorizationService.hasPermission('SSDP.CanWriteOrder') || this.authorizationService.hasPermission('SSDP.CanCreateOrder');\r\n\r\n this.navMenuComponent.ordersFormMenu = this.authorizationService.hasPermission('SSDP.CanReadOrder') || this.authorizationService.hasPermission('SSDP.CanWriteOrder') || this.authorizationService.hasPermission('SSDP.CanCreateOrder') || this.authorizationService.hasPermission('SSDP.CanDeleteDraftOrder') || this.authorizationService.hasPermission('SSDP.CanCancelOrder') || this.authorizationService.hasPermission('SSDP.CanUploadDocument') || this.authorizationService.hasPermission('SSDP.CanDownloadDocument');\r\n\r\n this.navMenuComponent.hcValidationFormMenu = this.authorizationService.hasPermission('SSDP.CanValidateSPL-HC') || this.authorizationService.hasPermission('SSDP.CanValidateSPL-FDA');\r\n\r\n this.navMenuComponent.editBNCCFormMenu = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-BNCC', this.currentCustomer) &&\r\n (this.authorizationService.hasPermission('SSDP.CanReadBlanketNoChangeForm') || this.authorizationService.hasPermission('SSDP.CanWriteBlanketNoChangeForm'))\r\n\r\n this.navMenuComponent.submissionMenu = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-ESG', this.currentCustomer)\r\n\r\n this.navMenuComponent.ingestBNCC = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-BNCC', this.currentCustomer) &&\r\n this.authorizationService.hasPermission('SSDP.CanIngestBlanketNoChangeForm')\r\n\r\n this.navMenuComponent.ingestPLRSPL = this.authorizationService.hasPermission('SSDP.CanIngestPLRSPLFile');\r\n\r\n this.navMenuComponent.substanceLookup = this.authorizationService.hasPermission('SSDP.CanValidateSubstanceLookup');\r\n this.navMenuComponent.splIngestLLForm = this.authorizationService.hasPermission('SSDP.CanIngestLLForm');\r\n this.navMenuComponent.splViewLLForm = this.authorizationService.hasPermission('SSDP.CanReadLLForm');\r\n }\r\n\r\n public onOverlayClick: EmitType = () => {\r\n this.sessionTimeoutModal.hide();\r\n }\r\n\r\n public onContinueClicked(event) {\r\n this.sessionTimeoutModal.hide();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n dlgButtons: Object[] = [{\r\n click: this.onContinueClicked.bind(this), buttonModel: { content: 'Extend my session', isPrimary: true }\r\n }];\r\n\r\n private handleError(error: any) {\r\n console.log(error);\r\n return throwError(error);\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n 1 && isOnLogin\">\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n

Session Expiring

\r\n
\r\n
\r\n

\r\n Your session will expire in {{ sessionExpireSecondsLeft + 1 | number : '1.0-0' }} seconds.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'app-accessdenied',\r\n templateUrl: './accessdenied.component.html',\r\n styleUrls: ['./accessdenied.component.scss'],\r\n animations: [fadeInOut]\r\n})\r\n\r\nexport class AccessdeniedComponent implements OnInit {\r\n hasApplicationPermission: boolean;\r\n message: string;\r\n\r\n // Constructor\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

We're sorry, but it looks like you don't have permission to access this application.

\r\n\r\n

\r\n Please contact our helpdesk at +1 215-682-8282\r\n (toll free +1 877-888-1559)\r\n or email us anytime at Customer.Support@reedtech.com.\r\n

\r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { SettingsService } from '../../shared/services';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n})\r\nexport class AppComponent {\r\n\r\n constructor (private settingsService: SettingsService) {\r\n\r\n // Initialize datadog RUM\r\n this.settingsService.initDataDogScriptElement()\r\n .then(() => {\r\n settingsService.initDataDogRUM();\r\n })\r\n .catch(); // ignore the exceptions here: There is a chance that you might see \"ERROR Error: Uncaught (in promise): ChunkLoadError: Loading chunk 1 failed.\" when datadog script type is set to \"text/plain\"\r\n }\r\n}\r\n","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SelectedEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { Tooltip } from '@syncfusion/ej2-popups';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IApiResult } from '../../../../shared/models/api-result';\r\nimport { ICosmeticValidationMessage } from '../../../../shared/models/cosmetic-validation-message.model';\r\nimport { AuthenticationService, SettingsService } from '../../../../shared/services';\r\nimport { fadeInOut } from '../../../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'app-cosmetic-builder',\r\n templateUrl: './cosmetic-builder.component.html',\r\n styleUrls: ['./cosmetic-builder.component.scss'],\r\n animations: [fadeInOut],\r\n})\r\nexport class CosmeticBuilderComponent implements OnInit {\r\n loading = false;\r\n uploadStatus = '';\r\n validationStatus = '';\r\n validationFileName = '';\r\n validationStatusClassName = '';\r\n hasValidationErrors = false;\r\n downloadSPLButtonEnabled = false;\r\n downloadSummaryReportEnabled = false;\r\n isHideErrorsWarnings = false;\r\n tooltipObj: TooltipComponent;\r\n errorGrid: GridComponent;\r\n validationMessages: ICosmeticValidationMessage [] = [];\r\n ndcProductsIncludedCount: number;\r\n marketingEndDateRemovedProductsCount: number;\r\n duplicatesProductsRemovedCount: number;\r\n expiredProductsRemovedCount: number;\r\n monographMarketingCategoriesRemovedCount: number;\r\n summaryReportCsv: string;\r\n cosmeticXml: string;\r\n cosmeticXmlFileName: string;\r\n cosmetic: any;\r\n actionButtonText = 'Your file was built successfully. Please download the file below. This file will not be saved. Uploading a new template or refreshing the page will result in lost progress.';\r\n uploadSaveUrl: string;\r\n pragmaticResponseFile: any;\r\n pragmaticValidationResult: any;\r\n pragmaticValidationClass: string;\r\n pragmaticResultsFileName: string;\r\n\r\n constructor(private settingsService: SettingsService, private authService: AuthenticationService, private toastr: ToastrService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.uploadSaveUrl = this.getProcessFormURL();\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n public onFileUploadStart: EmitType = (args: any) => {\r\n this.resetPage();\r\n if (args) {\r\n const authData = this.authService.getAuthData();\r\n\r\n args.currentRequest.setRequestHeader('authorization', this.authService.getBearerToken());\r\n args.currentRequest.setRequestHeader('customerGuid', this.settingsService.getCustomerGuid());\r\n args.currentRequest.setRequestHeader('applicationVariantId', authData.applicationVariantId ? authData.applicationVariantId.toString() : '');\r\n args.currentRequest.setRequestHeader('modifiedByUser', this.settingsService.getUserDataName());\r\n\r\n if (!args.cancel) {\r\n this.loading = true;\r\n }\r\n }\r\n }\r\n\r\n public onFileUploadedSuccess: EmitType = (args: any) => {\r\n this.loading = false;\r\n this.uploadStatus = 'Uploaded Successfully';\r\n\r\n const apiResult = JSON.parse(args.e.currentTarget.response) as IApiResult;\r\n const buildResult = apiResult.data;\r\n this.downloadSPLButtonEnabled = !this.hasValidationErrors;\r\n this.validationFileName = args.file.name;\r\n\r\n this.ndcProductsIncludedCount = apiResult.data.ndcProductsIncludedCount;\r\n this.marketingEndDateRemovedProductsCount = apiResult.data.marketingEndDateRemovedProductsCount;\r\n this.duplicatesProductsRemovedCount = apiResult.data.duplicatesProductsRemovedCount;\r\n this.expiredProductsRemovedCount = apiResult.data.expiredProductsRemovedCount;\r\n this.monographMarketingCategoriesRemovedCount = apiResult.data.monographMarketingCategoriesRemovedCount;\r\n\r\n this.cosmetic = buildResult.data;\r\n this.cosmeticXml = buildResult.xml;\r\n this.cosmeticXmlFileName = buildResult.xmlFileName;\r\n this.pragmaticResponseFile = this.cosmetic.pragmaticResponseFile;\r\n this.pragmaticResultsFileName = this.cosmeticXmlFileName.replace(/\\.xml$/, '.html');\r\n this.pragmaticValidationResult = getpragmaticValidationText(this.cosmetic.pragmaticValidationResult).status;\r\n this.pragmaticValidationClass = getpragmaticValidationText(this.cosmetic.pragmaticValidationResult).class;\r\n }\r\n\r\n public onUploadFailure(args: any): void {\r\n this.loading = false;\r\n }\r\n\r\n private setDownloadClickEvent(url: string, fileName: string): void {\r\n const a = document.createElement('a');\r\n\r\n a.setAttribute('hidden', '');\r\n a.setAttribute('href', url);\r\n a.setAttribute('download', fileName);\r\n\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n\r\n private createBlobURL(data: string, mimeType: string): string {\r\n const blob = new Blob([data], {type: mimeType});\r\n return window.URL.createObjectURL(blob);\r\n }\r\n\r\n public downloadSummaryReport() {\r\n if (!this.summaryReportCsv) {\r\n return;\r\n }\r\n\r\n const blobUrl = this.createBlobURL(this.summaryReportCsv, 'text/csv');\r\n\r\n const today = new Date();\r\n\r\n const companyName = this.cosmetic.legalAuthenticatorCompanyName;\r\n const fullDate = `${today.getMonth() + 1}-${today.getDate()}-${today.getFullYear()}`;\r\n const fileName = `Cosmetic_Summary_Report_${companyName}_${fullDate}.csv`;\r\n\r\n this.setDownloadClickEvent(blobUrl, fileName);\r\n }\r\n\r\n public downloadCosmeticXml() {\r\n if (!this.cosmeticXml || !this.cosmeticXmlFileName) {\r\n return;\r\n }\r\n\r\n const blobUrl = this.createBlobURL(this.cosmeticXml, 'text/xml');\r\n\r\n this.setDownloadClickEvent(blobUrl, this.cosmeticXmlFileName);\r\n }\r\n\r\n public downloadPragmaticResponseFile() {\r\n if (!this.pragmaticResponseFile || !this.pragmaticValidationResult) {\r\n return;\r\n }\r\n\r\n // Decode the base64 string to a regular string\r\n const text = window.atob(this.pragmaticResponseFile);\r\n\r\n // Create a new Blob object using the decoded string and the type of the file\r\n const blob = new Blob([text], { type: 'text/html' });\r\n\r\n // Create a blob URL for the blob object\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n this.setDownloadClickEvent(blobUrl, this.pragmaticResultsFileName);\r\n }\r\n\r\n private resetPage() {\r\n this.validationStatus = '';\r\n this.validationFileName = '';\r\n this.uploadStatus = '';\r\n this.downloadSPLButtonEnabled = false;\r\n this.downloadSummaryReportEnabled = false;\r\n this.hasValidationErrors = false;\r\n this.cosmeticXml = null;\r\n this.pragmaticResponseFile = null;\r\n this.pragmaticValidationResult = null; \r\n }\r\n\r\n getProcessFormURL(): string {\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/CosmeticBuilder/ProcessForm`;\r\n return `${apiUrl}/${action}`;\r\n }\r\n\r\n tooltipValue(args) {\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n grid = this.errorGrid;\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n customiseCell(args: QueryCellInfoEventArgs) {\r\n if (args.data['messageType'] === 'Error') {\r\n args.cell.classList.add('customcssError');\r\n } else if (args.data['messageType'] === 'Warning') {\r\n args.cell.classList.add('customcssWarning');\r\n }\r\n\r\n if (args.column.field == 'fieldName') {\r\n const tooltip: Tooltip = new Tooltip({\r\n content: args.data['fieldName'].toString()\r\n }, args.cell as HTMLTableCellElement);\r\n }\r\n }\r\n\r\n showHideErrorsWarnings() {\r\n this.isHideErrorsWarnings = !this.isHideErrorsWarnings;\r\n }\r\n}\r\n\r\nfunction getpragmaticValidationText(status) {\r\n let returnObj = { status: \"\", class: \"\" };\r\n switch (status) {\r\n case 1: returnObj = { status: \"Pass\", class:\"validation-pass\"};\r\n break;\r\n case 2: returnObj = { status: \"Fail\", class: \"validation-fail\"};\r\n break;\r\n case 3: returnObj = { status: \"TimeOut - Please refresh the page and start the upload process again.\", class: \"\"};\r\n break;\r\n }\r\n return returnObj;\r\n}\r\n","
\r\n
\r\n
\r\n

Upload File - Cosmetic SPL Builder

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

File Name:

\r\n {{validationFileName}}\r\n
\r\n
\r\n

File Status:

\r\n {{uploadStatus}}\r\n
\r\n
\r\n

Pragmatic Validation Status:

\r\n {{pragmaticValidationResult}}\r\n
\r\n\r\n
\r\n

Your file was build successfully. Please download the file bellow. This will not be saved. Uploading a new template or refreshing the page will result in lost progress.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ actionButtonText }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport {\r\n ILLCustomerCompaniesByTypeWrapper, ILLEstablishment, ILLFormDetail, ILLProduct, ILLRelationship, ICompanyDetail,\r\n} from '../../../../shared/models/index';\r\nimport { LLFormService, CompanyContactService } from '../../../../shared/services/index';\r\n\r\n@Component({\r\n selector: 'app-establishment-modal',\r\n templateUrl: './establishment-modal.component.html',\r\n styleUrls: ['./establishment-modal.component.scss'],\r\n})\r\nexport class EstablishmentModalComponent implements OnInit, OnDestroy, OnChanges {\r\n modalValWidth = '500px';\r\n modalValHeight = 'auto';\r\n public modalValVisible = true;\r\n public modalValHidden = false;\r\n\r\n target = '#modalTarget';\r\n ddwFields: Object = { text: 'companyName', value: 'companyRevisionId' };\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '60%';\r\n modalHeight = '80%';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n visible = false;\r\n companyRevisionId: any;\r\n ddwHeight = '220px';\r\n companyDataSource: any[] = [];\r\n estabForm: UntypedFormGroup;\r\n allEstablishmentCompanies: ILLEstablishment[] = [];\r\n revisionEstabCompanies: ILLEstablishment[] = [];\r\n companyCnt: number;\r\n llFormDetails: ILLFormDetail;\r\n availableEstabCompaniesCount: number;\r\n revisionLabelerNdcCode: any;\r\n productInfoForm: any;\r\n labelerForm: any;\r\n establishmentsExist = true;\r\n ddwCompanySelected = false;\r\n warningModalText = '';\r\n iconTypeCompany = true;\r\n company$: Observable | null;\r\n productLabeler: string;\r\n originalEstabForm: UntypedFormGroup;\r\n originalFormData: any;\r\n pageLoaded = false;\r\n\r\n sub: Subscription;\r\n\r\n @ViewChild('modalDialog')\r\n public modalDialog: DialogComponent;\r\n\r\n @ViewChild('dialog')\r\n public dialog: DialogComponent;\r\n\r\n @Input() llFormData: ILLFormDetail;\r\n @Output() modalEstabData = new EventEmitter();\r\n @Input() changedNdcCode: any;\r\n @Input() bDeleteProduct: boolean;\r\n\r\n BtnClick: EmitType = () => {\r\n this.dialog.show();\r\n };\r\n\r\n ndcProductLinkNotAllowed: boolean;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private toastr: ToastrService,\r\n private llFormService: LLFormService,\r\n private companyService: CompanyContactService,\r\n private llService: LLFormService,\r\n ) { }\r\n\r\n dlgButtonClick: EmitType = () => {\r\n this.modalDialog.hide();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n public buttons: Object[] = [{ click: this.dlgButtonClick.bind(this), buttonModel: { content: 'OK', isPrimary: true } }];\r\n\r\n ngOnInit() {\r\n this.llService.llFormEstablishmentSubject.next(null);\r\n this.initializeModal();\r\n\r\n this.formProductLabeler();\r\n\r\n this.estabForm.markAsPristine();\r\n }\r\n\r\n initializeModal() {\r\n this.sub = this.llFormService.llFormLabelerSubject.subscribe(lb => {\r\n this.labelerForm = lb;\r\n });\r\n\r\n this.sub = this.llFormService.llFormProductInformationSubject.subscribe(pi => {\r\n this.productInfoForm = pi;\r\n });\r\n\r\n this.estabForm = this.fb.group({\r\n companies: this.fb.array([this.company]),\r\n });\r\n\r\n this.setCompaniesDdw();\r\n\r\n // Watches changes on the entire form\r\n this.estabForm.valueChanges.subscribe(data => {\r\n\r\n });\r\n\r\n if (this.llFormData && this.llFormData[0].data) {\r\n this.llFormDetails = this.llFormData[0].data;\r\n\r\n this.revisionEstabCompanies = this.llFormDetails.establishments;\r\n\r\n if (this.revisionEstabCompanies && this.revisionEstabCompanies.length > 0) {\r\n this.estabForm.setControl('companies', this.setOrigCompanies(this.revisionEstabCompanies));\r\n } else {\r\n this.establishmentsExist = false;\r\n }\r\n\r\n // For certain FDA Centers, disable or re-enable some options\r\n this.ndcProductLinkNotAllowed = this.llFormDetails.fdaCenter.ndcProductLinkNotAllowed;\r\n }\r\n }\r\n\r\n setBOs() {\r\n if (this.companies && this.companies.length > 0) {\r\n this.companies.controls.forEach((company, c) => {\r\n if (company.value.companyRevisionId) {\r\n this.setOrigBOs(company.value.companyRevisionId, c);\r\n }\r\n });\r\n }\r\n }\r\n\r\n boChkChanged(event, compIndex, boIndex) {\r\n const checked: boolean = event.checked;\r\n\r\n if (!checked && !this.ndcProductLinkNotAllowed) {\r\n const products = (( this.estabForm.controls.companies).at(compIndex).get('busOps') as UntypedFormArray).at(boIndex).get('products') as UntypedFormArray;\r\n\r\n if (products && products.controls.length > 0) {\r\n products.controls.forEach(product => {\r\n product.patchValue({ selected: checked });\r\n });\r\n }\r\n }\r\n }\r\n\r\n productChkChanged(event, ci, bi, pi) {\r\n const checked: boolean = event.checked;\r\n\r\n const company = ( this.estabForm.controls.companies).at(ci) as UntypedFormArray;\r\n const bo = (( this.estabForm.controls.companies).at(ci).get('busOps') as UntypedFormArray).at(bi) as UntypedFormArray;\r\n const products = (( this.estabForm.controls.companies).at(ci).get('busOps') as UntypedFormArray).at(bi).get('products') as UntypedFormArray;\r\n\r\n if (products && products.controls.length > 0) {\r\n products.controls[pi].patchValue({ selected: checked });\r\n\r\n const selectedProducts = products.value.filter(s => s.selected);\r\n\r\n if (selectedProducts && selectedProducts.length) {\r\n (( this.estabForm.controls.companies).at(ci).get('busOps') as UntypedFormArray).at(bi).patchValue({ selected: true });\r\n }\r\n\r\n if (this.llFormData && this.llFormData[0].data) {\r\n if (this.llFormData[0].data.establishments[ci]) {\r\n if (this.llFormData[0].data.establishments[ci].businessOperations[bi]) {\r\n this.llFormData[0].data.establishments[ci].businessOperations[bi] = bo;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n boDisplayed(compIndex, boIndex) {\r\n const bo = (( this.estabForm.controls.companies).at(compIndex).get('busOps') as UntypedFormArray).at(boIndex);\r\n\r\n if (bo.value.busOpCode) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n setOrigCompanies(estabCompanies: ILLEstablishment[]): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n let estabCompany: any;\r\n\r\n estabCompanies.forEach((company, i) => {\r\n estabCompany = this.fb.group({\r\n companyRevisionId: company.establishmentCompany.companyRevisionId,\r\n companyName: company.establishmentCompany.companyName,\r\n confidential: company.confidentiality,\r\n busOps: this.setOrigBOs(company.establishmentCompany.companyRevisionId, i),\r\n });\r\n formArray.push(estabCompany);\r\n });\r\n\r\n this.companyCnt = formArray.length;\r\n return formArray;\r\n }\r\n\r\n get company(): UntypedFormGroup {\r\n return this.fb.group({\r\n companyRevisionId: ['', { updateOn: 'blur' }],\r\n companyName: '',\r\n confidential: ['N', { updateOn: 'blur' }],\r\n busOps: this.fb.array([this.busOp]),\r\n });\r\n }\r\n\r\n companySelectionChanged(event, i) {\r\n if (event.isInteracted) {\r\n if (event.value) {\r\n this.setOrigBOs(event.value, i);\r\n\r\n this.ddwCompanySelected = true;\r\n }\r\n }\r\n }\r\n\r\n setOrigBOs(companyRevisionId, index) {\r\n let company: UntypedFormGroup;\r\n\r\n const BOs: UntypedFormArray = this.setBOForm(companyRevisionId);\r\n\r\n const estab = this.allEstablishmentCompanies.find(c => c.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n const revisionEstab = this.revisionEstabCompanies.find(rc => rc.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n let revisionEstabConfidentiality = false;\r\n\r\n if (revisionEstab) {\r\n switch (revisionEstab.confidentiality.toString()) {\r\n case 'N':\r\n revisionEstabConfidentiality = false;\r\n break;\r\n case 'Y':\r\n revisionEstabConfidentiality = true;\r\n break;\r\n case 'true':\r\n revisionEstabConfidentiality = true;\r\n break;\r\n case 'false':\r\n revisionEstabConfidentiality = false;\r\n break;\r\n }\r\n } else {\r\n revisionEstabConfidentiality = false;\r\n }\r\n\r\n company = this.fb.group({\r\n companyRevisionId: companyRevisionId,\r\n companyName: revisionEstab ? revisionEstab.establishmentCompany.companyName : (estab ? estab.establishmentCompany.companyName : ''),\r\n dunsNumber: revisionEstab ? revisionEstab.establishmentCompany.dunsNumber : (estab ? estab.establishmentCompany.dunsNumber : ''),\r\n confidential: revisionEstabConfidentiality,\r\n busOps: BOs,\r\n });\r\n\r\n this.companies.setControl(index, company);\r\n }\r\n\r\n get busOp(): UntypedFormGroup {\r\n return this.fb.group({\r\n busOpId: [''],\r\n busOpCode: [''],\r\n busOpLabel: [''],\r\n businessOperationsCompanyRevisionId: [''],\r\n selected: [true],\r\n products: this.fb.array([this.product]),\r\n });\r\n }\r\n\r\n get product(): UntypedFormGroup {\r\n return this.fb.group({\r\n ndcProductCode: [''],\r\n selected: [true],\r\n });\r\n }\r\n\r\n setBOForm(companyRevisionId: number): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n let establishment: ILLEstablishment;\r\n\r\n if (this.allEstablishmentCompanies && this.allEstablishmentCompanies.length > 0) {\r\n this.availableEstabCompaniesCount = this.allEstablishmentCompanies.length;\r\n\r\n // check selected busOps and products.\r\n establishment = this.allEstablishmentCompanies.find(c => c.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n if (establishment && establishment.businessOperations && establishment.businessOperations.length > 0) {\r\n establishment.businessOperations = establishment.businessOperations.filter((busOp, index, array) => index === array.findIndex((bo) => busOp.businessOperations.id === bo.businessOperations.id));\r\n\r\n establishment.businessOperations.forEach((b: ILLRelationship) => {\r\n let productsFormArray = new UntypedFormArray([]);\r\n\r\n productsFormArray = this.setProducts(b, companyRevisionId);\r\n\r\n // find if bus op exist in revision estabs\r\n const estab = this.revisionEstabCompanies.find(c => c.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n const busOp = estab && estab.businessOperations.find(bop => bop.businessOperations?.id === b.businessOperations?.id);\r\n\r\n if (productsFormArray && productsFormArray.length > 0) {\r\n let boSelected = false;\r\n\r\n if (!this.establishmentsExist) {\r\n // added establishment\r\n boSelected = true;\r\n } else {\r\n if (busOp && busOp.selected) {\r\n // busOp exist and selected === true\r\n boSelected = true;\r\n } else {\r\n // busop exists in estab company but not in the revision's establishment\r\n // if estab doesn't exist it means that the new company is selected from ddw and it doesn't exist in the revision\r\n boSelected = !estab;\r\n }\r\n }\r\n\r\n const boObject: UntypedFormGroup = this.fb.group({\r\n busOpId: b.businessOperations.id,\r\n busOpCode: b.businessOperations.code,\r\n busOpLabel: b.businessOperations.label,\r\n businessOperationsCompanyRevisionId: b.businessOperations.id,\r\n selected: boSelected, // !this.establishmentsExist ? true : busOp ? busOp && busOp.selected : true,\r\n products: [this.fb.array([this.product])],\r\n });\r\n\r\n boObject.setControl('products', productsFormArray);\r\n\r\n formArray.push(boObject);\r\n }\r\n });\r\n }\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n formProductLabeler() {\r\n this.sub = this.llFormService.llFormProductLabelerCodeSubject.subscribe(data => {\r\n const productProductCode = data;\r\n const productLabelerCode = productProductCode ? productProductCode.split('-')[0] : '';\r\n\r\n this.productLabeler = productLabelerCode;\r\n });\r\n }\r\n\r\n setProducts(bo: ILLRelationship, estabCompanyId: number): UntypedFormArray {\r\n let llProducts: ILLProduct[] = [];\r\n let establishmentsArray: ILLEstablishment[] = [];\r\n const productsFormArray = new UntypedFormArray([]);\r\n let company: ILLEstablishment;\r\n let ndcProductCodes: string[] = [];\r\n let companyBo: any;\r\n\r\n if (this.llFormData && this.llFormData[0].data) {\r\n const llForm: ILLFormDetail = this.llFormData[0].data;\r\n\r\n // enter products from establishments section of dataset\r\n establishmentsArray = llForm.establishments;\r\n\r\n if (establishmentsArray && establishmentsArray.length > 0) {\r\n company = establishmentsArray.find(t => t.establishmentCompany.companyRevisionId === estabCompanyId);\r\n\r\n if (company) {\r\n companyBo = company.businessOperations.find(b => b.businessOperations?.id === bo.businessOperations?.id);\r\n\r\n if (companyBo) {\r\n if (companyBo.ndcProductCode && companyBo.ndcProductCode.length && companyBo.ndcProductCode[0].ndcProductCode) {\r\n const uniqueNdcCodes = companyBo.ndcProductCode.map(item => item.ndcProductCode)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (uniqueNdcCodes) {\r\n ndcProductCodes = uniqueNdcCodes;\r\n }\r\n } else {\r\n ndcProductCodes = companyBo.ndcProductCode;\r\n }\r\n }\r\n }\r\n } else {\r\n // no establishments\r\n company = this.allEstablishmentCompanies.find(t => t.establishmentCompany.companyRevisionId === estabCompanyId);\r\n\r\n companyBo = company.businessOperations.find(b => b.businessOperations.id === bo.businessOperations.id);\r\n\r\n if (companyBo) {\r\n const uniqueNdcCodes = companyBo.ndcProductCode.map(item => item.ndcProductCode ? item.ndcProductCode : item)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n if (uniqueNdcCodes) {\r\n ndcProductCodes = uniqueNdcCodes;\r\n }\r\n }\r\n }\r\n\r\n // enter products from Products array of the llForm\r\n llProducts = llForm.products;\r\n\r\n if (llProducts && llProducts.length > 0) {\r\n // commented out this loop, this logic is not needed.\r\n // Our requirement dictates that user can't open establishment modal popup until they have both labeler code and\r\n // product code for all the products(kits) on the form. With that, user will not be allowed to open this modal popup\r\n // if either of labeler code or product code section contains \"xxxx\".\r\n\r\n // llProducts.forEach((prod, i) => {\r\n\r\n // if product was saved without labeler code - add it.\r\n // prod.ndcProductCode = prod.ndcProductCode.replace('xxxx', llForm.ndcLabelerCode);\r\n\r\n // commented out the line ABOVE. it could potentially copy labeler code into productCode inside ndProductCode in some cases.\r\n // e.g. right after cloning a form, after user selected a labeler company (e.g. labelerCode = \"12345\"), the newly cloned form will have ndcProductCOde\r\n // like this: \"12345-xxxx\", the code above will change ndcProductCode to \"12345-12345\", which is incorrect\r\n // Added logic to make sure only do the replacement for the labeler code section inside the ndcProduct code\r\n // const codes = prod.ndcProductCode.split('-');\r\n // prod.ndcProductCode = `${codes[0].replace('xxxx', llForm.ndcLabelerCode)}-${codes[1] ? codes[1] : ''}`;\r\n // });\r\n\r\n const llProductCodes = llProducts\r\n .map(item => item.ndcProductCode)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n // concat array\r\n ndcProductCodes = ndcProductCodes.filter(p => p.split('-')[0] && p.split('-')[1] && p.split('-')[1] !== 'null' && p.split('-')[0] !== 'xxxx');\r\n\r\n const allCodes = ndcProductCodes.concat(llProductCodes);\r\n\r\n // check uniqueness after both arrays concatenated\r\n const allCodesUnique = allCodes\r\n .map(item => item)\r\n .filter((value, index, self) => self.indexOf(value) === index).filter(c => c).sort();\r\n\r\n if (allCodesUnique && allCodesUnique.length > 0) {\r\n // const productLabeler = this.formProductLabeler();\r\n // if (this.productLabeler) {\r\n // allCodesUnique = allCodesUnique.filter(l => l.split('-')[0] === this.productLabeler);\r\n // }\r\n\r\n allCodesUnique.forEach(element => {\r\n // find if bus op exist in revision estabs\r\n const estab = this.revisionEstabCompanies.find(c => c.establishmentCompany.companyRevisionId === estabCompanyId);\r\n let busOpSelected;\r\n let busOp;\r\n\r\n if (estab) {\r\n busOp = estab.businessOperations.find(bop => bop.businessOperations?.id === bo.businessOperations?.id);\r\n\r\n if (busOp) {\r\n busOpSelected = busOp.selected;\r\n }\r\n } else {\r\n // estab added by the Add Company button\r\n busOpSelected = true;\r\n }\r\n\r\n if (element && element.split('-')[1] && element.split('-')[1] !== 'null') {\r\n const product: UntypedFormGroup = this.fb.group({\r\n ndcProductCode: `${element}`,\r\n selected: this.establishmentsExist ? (!!((ndcProductCodes.indexOf(element) >= 0 || !estab) && busOpSelected && !this.ndcProductLinkNotAllowed)) : !this.ndcProductLinkNotAllowed,\r\n });\r\n\r\n productsFormArray.push(product);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n return productsFormArray;\r\n }\r\n\r\n compare(a, b) {\r\n if (a.establishmentCompany.companyName < b.establishmentCompany.companyName) {\r\n return -1;\r\n }\r\n if (a.establishmentCompany.companyName > b.establishmentCompany.companyName) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n setCompaniesDdw() {\r\n this.companyDataSource = [];\r\n\r\n if (this.llFormData && this.llFormData[2].data) {\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper = this.llFormData[2].data;\r\n\r\n // unique companies\r\n // this.allEstablishmentCompanies = Array.from(new Set(companyTypes.establishments.concat(companyTypes.establishmentsThirdParty))).sort(this.compare);\r\n\r\n this.allEstablishmentCompanies = companyTypes.establishmentOwnedAndEstablishmentThirdParty;\r\n\r\n this.availableEstabCompaniesCount = this.allEstablishmentCompanies.length;\r\n }\r\n\r\n if (this.allEstablishmentCompanies && this.allEstablishmentCompanies.length > 0) {\r\n this.allEstablishmentCompanies.forEach((est: ILLEstablishment) => {\r\n const ds = { companyRevisionId: 0, companyName: '' };\r\n ds.companyRevisionId = +est.establishmentCompany.companyRevisionId;\r\n ds.companyName = est.establishmentCompany.companyName;\r\n\r\n this.companyDataSource.push(ds);\r\n });\r\n }\r\n }\r\n\r\n get companies(): UntypedFormArray {\r\n return this.estabForm.get('companies') as UntypedFormArray;\r\n }\r\n\r\n get companyFormControls() {\r\n return this.companies.controls;\r\n }\r\n\r\n busOpsArray(boIndex: number): UntypedFormArray {\r\n const arr = this.companies.at(boIndex).get('busOps') as UntypedFormArray;\r\n\r\n return arr;\r\n }\r\n\r\n busOpsArrayChkVisible(boIndex: number): boolean {\r\n const arr = this.companies.at(boIndex).get('busOps') as UntypedFormArray;\r\n\r\n const val = arr.controls[0].value.products.filter(p => p.ndcProductCode).length > 0;\r\n\r\n return val;\r\n }\r\n\r\n productsArray(compIndex: number, boIndex: number): UntypedFormArray {\r\n const arr = (( this.estabForm.controls.companies).at(compIndex).get('busOps') as UntypedFormArray).at(boIndex).get('products') as UntypedFormArray;\r\n\r\n return arr;\r\n }\r\n\r\n productsArrayChkVisible(compIndex: number, boIndex: number): boolean {\r\n const arr = (( this.estabForm.controls.companies).at(compIndex).get('busOps') as UntypedFormArray).at(boIndex).get('products') as UntypedFormArray;\r\n\r\n const val = arr.controls[0].value.ndcProductCode;\r\n\r\n return val;\r\n }\r\n\r\n addCompany(): void {\r\n this.companies.push(this.company);\r\n this.companyCnt++;\r\n }\r\n\r\n removeCompany(event, i) {\r\n this.companies.removeAt(i);\r\n this.companyCnt--;\r\n }\r\n\r\n isDuplicateCompanies(): boolean {\r\n let isDuplicate: boolean;\r\n\r\n const valueArr = this.companies.controls.map(function (item) {\r\n return item.value.companyRevisionId;\r\n });\r\n\r\n isDuplicate = valueArr.some(function (item, idx) {\r\n return valueArr.indexOf(item) !== idx;\r\n });\r\n\r\n return isDuplicate;\r\n }\r\n\r\n saveEstab(form: UntypedFormGroup, cancel?: boolean) {\r\n let errorMessage;\r\n\r\n if (this.isDuplicateCompanies()) {\r\n errorMessage = 'Establishments are not unique. Please remove duplicates.';\r\n }\r\n\r\n if (!this.areCompaniesLatest() && !cancel) {\r\n errorMessage = 'One of the establishment companies is missing or not the latest revision.';\r\n }\r\n\r\n if (!errorMessage) {\r\n this.modalEstabData.emit({ estabForm: form.value, originalFormData: this.originalFormData, cancel: cancel });\r\n\r\n this.establishmentsExist = form.value.companies.length > 0;\r\n\r\n this.visible = false;\r\n\r\n this.dialog.hide();\r\n } else {\r\n this.toastr.error(errorMessage);\r\n this.pageLoaded = true;\r\n }\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n areCompaniesLatest() {\r\n const notLatestCompanies = [];\r\n\r\n const valueArr = this.companies.controls.map(function (item) {\r\n return item.value.companyRevisionId;\r\n });\r\n\r\n if (valueArr && valueArr.length) {\r\n valueArr.forEach(element => {\r\n const company = this.allEstablishmentCompanies.find(x => x.establishmentCompany.companyRevisionId === element);\r\n\r\n if (!company) {\r\n notLatestCompanies.push(element);\r\n }\r\n });\r\n }\r\n\r\n return notLatestCompanies.length === 0;\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(companyRevisionId: number) {\r\n if (companyRevisionId) {\r\n const company = this.allEstablishmentCompanies.find(x => x.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n if (!company) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n dlgBtnClick: EmitType = () => {\r\n this.dialog.hide();\r\n };\r\n\r\n estabModalCancel(event) {\r\n this.visible = false;\r\n this.dialog.hide();\r\n\r\n this.saveEstab(this.originalEstabForm, true);\r\n }\r\n\r\n onDialogCreated(event) {\r\n this.estabForm.reset();\r\n this.companies.reset();\r\n this.busOp.reset();\r\n this.product.reset();\r\n }\r\n\r\n onDialogDestroyed(event) {\r\n this.estabForm.reset();\r\n this.companies.reset();\r\n this.busOp.reset();\r\n this.product.reset();\r\n }\r\n\r\n onOverlayClick: EmitType = () => {\r\n this.modalDialog.hide();\r\n };\r\n\r\n onDialogOpen(event) {\r\n this.pageLoaded = false;\r\n\r\n this.initializeModal();\r\n\r\n if (this.companies && this.companies.length > 0) {\r\n this.companies.controls.forEach((company, c) => {\r\n if (company.value.companyRevisionId) {\r\n this.setOrigBOs(company.value.companyRevisionId, c);\r\n }\r\n });\r\n\r\n // store the original state of the form for the canceling event.\r\n this.originalEstabForm = this.llService.cloneAbstractControl(this.estabForm);\r\n this.originalFormData = this.llService.deepCopy(this.llFormData[0].data);\r\n }\r\n\r\n this.pageLoaded = true;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n switch (property) {\r\n case 'changedNdcCode':\r\n // We only update the data when the current ndcProductCode is not empty\r\n if (changes[property].currentValue && changes[property].currentValue.split('|')[1]) {\r\n this.updateEstablishments();\r\n }\r\n break;\r\n\r\n case 'bDeleteProduct':\r\n this.updateEstablishments();\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Update establishment information for LL form\r\n updateEstablishments() {\r\n this.initializeModal();\r\n this.formProductLabeler();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

Missing Ndc Code

\r\n
\r\n
\r\n {{warningModalText}}\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n

Edit Establishment(s)

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n  (\r\n \r\n )\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit, ViewChild, ViewEncapsulation, OnDestroy, OnChanges, SimpleChanges, ChangeDetectorRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ILLEstablishment, ILLFormDetail, ILLGenericKeys, ILLRelationship, ICompanyDetail, ILLCompany, ILLCustomerCompaniesByTypeWrapper } from '../../../../shared/models';\r\nimport { LLFormService, CompanyContactService, StorageManagerService } from '../../../../shared/services';\r\nimport { EstablishmentModalComponent } from '../establishment-modal/establishment-modal.component';\r\nimport { Subscription, Observable, forkJoin, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { RefdataService } from '../../../../shared/services/refdata.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CompanyDetailsComponent } from '../../../index';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\n\r\n@Component({\r\n selector: 'app-ll-form-establishment',\r\n templateUrl: './ll-form-establishment.component.html',\r\n styleUrls: ['./ll-form-establishment.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LLFormEstablishmentComponent implements OnInit, OnDestroy, OnChanges {\r\n\r\n establishmentSectionForm: UntypedFormGroup;\r\n sub: Subscription;\r\n labelerForm: any;\r\n productInfoForm: any;\r\n ndcProductCOde: string;\r\n\r\n @Input() llFormData: any;\r\n @Input() changedNdcCode: any;\r\n @Input() ndcLabelerCode: any;\r\n @Input() prodIndex: number;\r\n @Input() bDeleteProduct: boolean;\r\n @Input() canCreateCompany: boolean;\r\n\r\n @Output() labelerCodeOutput = new EventEmitter();\r\n\r\n @ViewChild('establishmentModal') establishmentModal: EstablishmentModalComponent;\r\n @ViewChild('companyDialog') public companyDialog: DialogComponent;\r\n @ViewChild('companyDetails') public companyDetailsComponent: CompanyDetailsComponent;\r\n\r\n estabCompanyEdited: ILLEstablishment;\r\n newNdcProductCode: any;\r\n oldNdcProductCode: any;\r\n labelerCode: any;\r\n estabCompanies: ILLCompany[] = [];\r\n iconTypeCompany = true;\r\n hidden: Boolean = false;\r\n allEstablishmentCompanies: ILLEstablishment[] = [];\r\n company$: Observable | null;\r\n companyToViewRevisionId: number;\r\n parentComponent: any;\r\n customerGuid: string;\r\n companyData: any;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n\r\n constructor (private fb: UntypedFormBuilder, private llFormService: LLFormService, private cdRef: ChangeDetectorRef, private toastr: ToastrService, private companyService: CompanyContactService, private refDataService: RefdataService, private storageManagerService: StorageManagerService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n const formArray = new UntypedFormArray([]);\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n\r\n if (property === 'ndcLabelerCode' && changes[property].currentValue) {\r\n\r\n if (this.llFormData[0].data.establishments && this.llFormData[0].data.establishments.length > 0) {\r\n\r\n this.llFormData[0].data.establishments.forEach((estab, e) => {\r\n\r\n estab.businessOperations.forEach((bo, b) => {\r\n\r\n bo.ndcProductCode.forEach((prod, p) => {\r\n\r\n if (prod) {\r\n const newCode = `${ this.ndcLabelerCode }-${ prod.split('-')[1] }`;\r\n\r\n this.llFormData[0].data.establishments[e].businessOperations[b].ndcProductCode[p] = newCode;\r\n }\r\n });\r\n });\r\n\r\n formArray.push(this.fb.group({\r\n companyRevisionId: estab.establishmentCompany.companyRevisionId,\r\n companyName: estab.establishmentCompany.companyName,\r\n duns: estab.establishmentCompany.dunsNumber,\r\n busOps: this.flattenBusOps(estab.businessOperations)\r\n }));\r\n });\r\n if (this.establishmentSectionForm) {\r\n this.establishmentSectionForm.setControl('estabCompanyFormArray', formArray);\r\n }\r\n }\r\n }\r\n\r\n if (property === 'changedNdcCode' && changes[property].currentValue) {\r\n\r\n this.oldNdcProductCode = changes[property].currentValue.split('|')[0];\r\n this.newNdcProductCode = changes[property].currentValue.split('|')[1];\r\n\r\n this.modifyExistingEstablishments(this.llFormData[0].data);\r\n }\r\n }\r\n\r\n }\r\n\r\n modifyExistingEstablishments(llForm: ILLFormDetail) {\r\n\r\n const formArray = new UntypedFormArray([]);\r\n const establishmentsArray: ILLEstablishment[] = llForm.establishments;\r\n\r\n if (establishmentsArray && establishmentsArray.length > 0) {\r\n\r\n establishmentsArray.forEach((estab, e) => {\r\n\r\n estab.businessOperations.forEach((bo, b) => {\r\n\r\n bo.ndcProductCode.forEach((prod, p) => {\r\n\r\n const productToReplace = bo.ndcProductCode.find(pr => pr.split('-')[1] === this.oldNdcProductCode);\r\n\r\n if (productToReplace) {\r\n const newCode = `${ prod.split('-')[0] }-${ this.newNdcProductCode }`;\r\n\r\n const deletedProductIndex = bo.ndcProductCode.findIndex(x => x === productToReplace);\r\n\r\n this.llFormData[0].data.establishments[e].businessOperations[b].ndcProductCode.splice(deletedProductIndex, 1);\r\n\r\n this.llFormData[0].data.establishments[e].businessOperations[b].ndcProductCode.push(newCode);\r\n }\r\n });\r\n });\r\n\r\n formArray.push(this.fb.group({\r\n companyRevisionId: estab.establishmentCompany.companyRevisionId,\r\n companyName: estab.establishmentCompany.companyName,\r\n duns: estab.establishmentCompany.dunsNumber,\r\n busOps: this.flattenBusOps(estab.businessOperations)\r\n }));\r\n });\r\n\r\n if (this.establishmentSectionForm) {\r\n this.establishmentSectionForm.setControl('estabCompanyFormArray', formArray);\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.getEstabCompanies();\r\n\r\n this.initializeForm();\r\n\r\n this.patchForm();\r\n\r\n this.checkLabelerMismatch();\r\n }\r\n\r\n checkLabelerMismatch() {\r\n\r\n this.sub = this.llFormService.llFormProductLabelerCodeSubject.subscribe(data => {\r\n\r\n if(data){\r\n const productProductCode = data;\r\n const productLabelerCode = productProductCode ? productProductCode.split('-')[0] : '';\r\n\r\n // if product level labeler code is different, take the product level labeler.\r\n if (this.ndcLabelerCode !== productLabelerCode) {\r\n this.labelerCodeOutput.emit(productLabelerCode);\r\n }\r\n }\r\n\r\n });\r\n }\r\n\r\n getEstabCompanies() {\r\n\r\n if (this.llFormData && this.llFormData[2].data) {\r\n\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper = this.llFormData[2].data;\r\n\r\n // unique companies\r\n this.allEstablishmentCompanies = Array.from(new Set(companyTypes.establishments.concat(companyTypes.establishmentsThirdParty))).sort(this.compare);\r\n }\r\n }\r\n\r\n initializeForm() {\r\n\r\n this.establishmentSectionForm = this.fb.group({\r\n estabCompanyFormArray: this.fb.array([this.addEstabCompanyForm()])\r\n });\r\n this.parentComponent = this;\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n }\r\n\r\n addEstabCompanyForm(): UntypedFormGroup {\r\n\r\n return this.fb.group({\r\n companyRevisionId: [0],\r\n companyName: ['', { validators: [] }],\r\n duns: ['', { validators: [] }],\r\n busOps: ['', { validators: [] }]\r\n });\r\n }\r\n\r\n\r\n get estabCompanyFormArray(): UntypedFormArray {\r\n return this.establishmentSectionForm.get('estabCompanyFormArray');\r\n }\r\n\r\n patchForm() {\r\n\r\n this.establishmentSectionForm.reset();\r\n\r\n this.establishmentSectionForm.setControl('estabCompanyFormArray', this.setEstabCompanyForm());\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n setEstabCompanyForm(): UntypedFormArray {\r\n\r\n const formArray = new UntypedFormArray([]);\r\n let establishmentsArray: ILLEstablishment[] = [];\r\n\r\n if (this.llFormData) {\r\n\r\n if (this.llFormData[0] && this.llFormData[0].data) {\r\n\r\n const llForm: ILLFormDetail = this.llFormData[0].data;\r\n\r\n establishmentsArray = llForm.establishments;\r\n\r\n if (establishmentsArray && establishmentsArray.length > 0) {\r\n\r\n establishmentsArray.forEach(element => {\r\n\r\n formArray.push(this.fb.group({\r\n companyRevisionId: element.establishmentCompany.companyRevisionId,\r\n companyName: element.establishmentCompany.companyName,\r\n duns: element.establishmentCompany.dunsNumber,\r\n busOps: this.flattenBusOps(element.businessOperations)\r\n })\r\n );\r\n\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n this.establishmentSectionForm.markAsPristine();\r\n return formArray;\r\n }\r\n\r\n flattenBusOps(busOps: ILLRelationship[]): any {\r\n\r\n let bo: ILLGenericKeys;\r\n let boString = '';\r\n let selectedBoCounter = 0;\r\n\r\n if (busOps && busOps.length > 0) {\r\n\r\n busOps.forEach((element, i) => {\r\n\r\n bo = element.selected ? element.businessOperations : undefined;\r\n\r\n if (!!bo) {\r\n\r\n if (element.ndcProductCode.length > 0) {\r\n\r\n boString += `${ selectedBoCounter > 0 ? ', ' : '' } ${ bo.label }`;\r\n\r\n if (element.ndcProductCode[0]) {\r\n boString += ` (${ element.ndcProductCode.map(code => `${ code }`) })`;\r\n }\r\n\r\n } else {\r\n boString += `${ selectedBoCounter > 0 ? ', ' : '' } ${ bo.label }(${ bo.code })`;\r\n }\r\n selectedBoCounter++;\r\n }\r\n });\r\n }\r\n\r\n return boString;\r\n }\r\n\r\n\r\n estabModalOpen(event) {\r\n\r\n this.establishmentModal.warningModalText = '';\r\n\r\n this.sub = this.llFormService.llFormProductInformationSubject.subscribe(pi => {\r\n this.productInfoForm = pi;\r\n });\r\n\r\n if (this.llFormData[0] && this.llFormData[0].data) {\r\n\r\n // set entered data on the current product\r\n this.llFormData[0].data.products[this.prodIndex].ndcProductCode = `${ this.productInfoForm.labelerCode }-${ this.productInfoForm.itemCode }`;\r\n\r\n // === 'null' is taken care in DB, no 'null' anymore but just in case.\r\n if (this.llFormData[0].data.products && this.llFormData[0].data.products.length > 0) {\r\n\r\n const missingCodesArray = this.llFormData[0].data.products.filter(prod => !prod.ndcProductCode.split('-')[0] || prod.ndcProductCode.split('-')[0] === 'null' || prod.ndcProductCode.split('-')[0] === null ||\r\n !prod.ndcProductCode.split('-')[1] || prod.ndcProductCode.split('-')[1] === 'null' || prod.ndcProductCode.split('-')[1] === null\r\n || prod.ndcProductCode.split('-')[1] === 'xxxx');\r\n\r\n if (missingCodesArray && missingCodesArray.length > 0) {\r\n this.establishmentModal.warningModalText += `Establishments cannot be created due to missing NdcProductCode or NdcLabelerCode in `;\r\n\r\n this.llFormData[0].data.products.forEach((prod, i) => {\r\n\r\n if (!prod.ndcProductCode.split('-')[0] || prod.ndcProductCode.split('-')[0] === 'null' || prod.ndcProductCode.split('-')[0] === null ||\r\n !prod.ndcProductCode.split('-')[1] || prod.ndcProductCode.split('-')[1] === 'null' || prod.ndcProductCode.split('-')[1] === null\r\n || prod.ndcProductCode.split('-')[1] === 'xxxx') {\r\n\r\n this.establishmentModal.warningModalText += `Product ${ i + 1 }${ i < this.llFormData[0].data.products.length - 1 ? ', ' : '' }`;\r\n }\r\n });\r\n this.establishmentModal.pageLoaded = false;\r\n this.establishmentModal.modalDialog.show();\r\n } else {\r\n this.establishmentModal.pageLoaded = false;\r\n this.establishmentModal.visible = true;\r\n this.establishmentModal.dialog.show();\r\n }\r\n }\r\n }\r\n\r\n\r\n this.establishmentSectionForm.markAsDirty();\r\n }\r\n\r\n\r\n saveModalForm(data) {\r\n\r\n // holding data for saving the ll form\r\n if (!data.cancel) {\r\n this.llFormService.llFormEstablishmentSubject.next(data.estabForm);\r\n }\r\n\r\n this.establishmentSectionForm.reset();\r\n\r\n if (data.cancel) {\r\n this.llFormData[0].data = data.originalFormData;\r\n this.establishmentSectionForm.setControl('estabCompanyFormArray', this.setEstabCompanyForm());\r\n } else {\r\n\r\n this.setEstabCompanyFormEdited(data.estabForm);\r\n }\r\n\r\n this.establishmentSectionForm.markAsDirty();\r\n }\r\n\r\n setEstabCompanyFormEdited(data) {\r\n\r\n const formArray = new UntypedFormArray([]);\r\n let estabCompanyEdited: ILLEstablishment;\r\n let boProducts: any[] = [];\r\n\r\n if (this.llFormData) {\r\n if (this.llFormData[0] && this.llFormData[0].data) {\r\n\r\n const llForm: ILLFormDetail = this.llFormData[0].data;\r\n\r\n // check selected busOps and products.\r\n if (data && data.companies && data.companies.length > 0) {\r\n\r\n this.llFormData[0].data.establishments = [];\r\n const modalCompanies = Array.from(data.companies);\r\n\r\n modalCompanies.forEach(establishmentModal => {\r\n\r\n const flatBusOps: any[] = [];\r\n\r\n if (this.llFormData[2].data) {\r\n\r\n this.allEstablishmentCompanies = Array.from(new Set(this.llFormData[2].data.establishments.concat(this.llFormData[2].data.establishmentsThirdParty)));\r\n\r\n estabCompanyEdited = this.allEstablishmentCompanies.find(t => t.establishmentCompany.companyRevisionId === establishmentModal['companyRevisionId']);\r\n }\r\n\r\n if (estabCompanyEdited) {\r\n\r\n estabCompanyEdited.confidentiality = establishmentModal['confidential'] ? establishmentModal['confidential'] : false;\r\n\r\n const businessOperations = Array.from(establishmentModal['busOps']);\r\n\r\n if (businessOperations && businessOperations.length > 0) {\r\n\r\n estabCompanyEdited.businessOperations = [];\r\n\r\n // get only selected ndcProductCodes\r\n businessOperations.forEach((bp, i) => {\r\n\r\n boProducts = Array.from(bp['products']).filter(p => p['selected'] === true);\r\n\r\n const uniqueNdcCodes = boProducts.map(item => item['ndcProductCode'])\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n estabCompanyEdited.businessOperations[i] = new ILLRelationship();\r\n\r\n estabCompanyEdited.businessOperations[i].selected = bp['selected'];\r\n estabCompanyEdited.businessOperations[i].businessOperationsCompanyRevisionId = bp['businessOperationsCompanyRevisionId'];\r\n estabCompanyEdited.businessOperations[i].ndcProductCode = uniqueNdcCodes;\r\n\r\n estabCompanyEdited.businessOperations[i].businessOperations = new ILLGenericKeys();\r\n\r\n estabCompanyEdited.businessOperations[i].businessOperations.code = bp['busOpCode'];\r\n estabCompanyEdited.businessOperations[i].businessOperations.id = bp['busOpId'];\r\n estabCompanyEdited.businessOperations[i].businessOperations.label = bp['busOpLabel'];\r\n\r\n\r\n flatBusOps.push(bp);\r\n });\r\n\r\n formArray.push(this.fb.group({\r\n companyRevisionId: estabCompanyEdited.establishmentCompany.companyRevisionId,\r\n companyName: estabCompanyEdited.establishmentCompany.companyName,\r\n duns: estabCompanyEdited.establishmentCompany.dunsNumber,\r\n busOps: this.flattenBusOpsEdited(flatBusOps)\r\n }));\r\n\r\n this.llFormData[0].data.establishments.push(estabCompanyEdited);\r\n\r\n }\r\n } else {\r\n\r\n this.toastr.error('The company was added but name not selected from the list.');\r\n }\r\n });\r\n\r\n } else {\r\n\r\n // modal being saved without any establishment companies\r\n this.llFormData[0].data.establishments = [];\r\n }\r\n }\r\n this.establishmentSectionForm.setControl('estabCompanyFormArray', formArray);\r\n }\r\n }\r\n\r\n flattenBusOpsEdited(busOps: any[]): any {\r\n\r\n let boString = '';\r\n let selectedBoCounter = 0;\r\n\r\n if (busOps && busOps.length > 0) {\r\n\r\n busOps.forEach((bo, i) => {\r\n\r\n if (bo && bo.selected) {\r\n\r\n const selectedProducts = bo.products.filter(p => p['selected'] === true);\r\n\r\n if (selectedProducts.length > 0) {\r\n\r\n boString += `${ selectedBoCounter > 0 ? ', ' : '' } ${ bo.busOpLabel } (${ bo.busOpCode }) (${ selectedProducts.map(code => `${ code['ndcProductCode'] }`) }) `;\r\n\r\n selectedBoCounter++;\r\n } else {\r\n\r\n boString += `${ selectedBoCounter > 0 ? ', ' : '' } ${ bo.busOpLabel } (${ bo.busOpCode })`;\r\n\r\n selectedBoCounter++;\r\n }\r\n }\r\n });\r\n }\r\n\r\n return boString;\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(companyRevisionId: number) {\r\n\r\n if (companyRevisionId) {\r\n const company = this.allEstablishmentCompanies.find(x => x.establishmentCompany.companyRevisionId === companyRevisionId);\r\n\r\n if (!company) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n compare(a, b) {\r\n if (a.establishmentCompany.companyName < b.establishmentCompany.companyName) {\r\n return -1;\r\n }\r\n if (a.establishmentCompany.companyName > b.establishmentCompany.companyName) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n\r\n showCompanyDialog(companyRevisionId?: number) {\r\n\r\n this.establishmentSectionForm.markAsDirty();\r\n // this.pageLoading = true;\r\n\r\n if (companyRevisionId) {\r\n\r\n const companyData$ = forkJoin([this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.refDataService.GetAllBusinessOperationQualifier(),\r\n this.companyService.getCompanyRevisionHistory(companyRevisionId),\r\n this.companyService.getBusinessOperationQualifierByCompany(companyRevisionId.toString()),\r\n this.companyService.getCompanyById(companyRevisionId.toString()),\r\n this.companyService.getNDCLabelerCodesByCompany(companyRevisionId.toString())]\r\n ).pipe(catchError(err => of(err)\r\n )).subscribe(data => {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = data;\r\n this.companyDetailsComponent.companyRevisionId = companyRevisionId.toString();\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.getFormControlByName('status').patchValue('Active');\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n } else {\r\n const companyData = [];\r\n\r\n this.sub = this.companyService.getBusinessCategories(false).subscribe(busCat => {\r\n companyData[0] = busCat;\r\n\r\n this.sub = this.companyService.getCountries().subscribe(countries => {\r\n companyData[1] = countries;\r\n\r\n this.sub = this.companyService.getContacts().subscribe(contacts => {\r\n companyData[2] = contacts;\r\n\r\n this.refDataService.GetAllBusinessOperationQualifier().subscribe(busQual => {\r\n\r\n companyData[3] = busQual;\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = companyData;\r\n this.companyDetailsComponent.companyRevisionId = '';\r\n this.companyDetailsComponent.company = null;\r\n this.companyDetailsComponent.companyHistory_grid_data = [];\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n\r\n });\r\n });\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n }\r\n }\r\n\r\n modalCompany(newCompany) {\r\n\r\n this.setSavedEstCompany(newCompany.companyRevisionId);\r\n\r\n this.companyDialogCancelButtonClicked();\r\n }\r\n\r\n\r\n setSavedEstCompany(companyRevisionId: any) {\r\n\r\n this.sub = this.llFormService.getLCompanyTypesByCustomerGuid(this.customerGuid).subscribe(response => {\r\n\r\n const companyTypes = response['data'];\r\n\r\n this.llFormData[2].data = companyTypes;\r\n\r\n this.cdRef.detectChanges();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n\r\n this.establishmentSectionForm.markAsDirty();\r\n }\r\n\r\n companyDialogCancelButtonClicked() {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.companyDialog.hide();\r\n }\r\n\r\n compareName(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.bame) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Establishment(s)\r\n (\r\n edit\r\n )\r\n \r\n Create new company\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

Company Details

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, ChangeDetectorRef, Component, Input, OnInit, ViewChild, ViewEncapsulation, Output, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { Subscription, Observable, forkJoin, of } from 'rxjs';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { ILLCompany, ICompanyDetail, ILLCustomerCompaniesByTypeWrapper, ILLGenericKeys } from '../../../../shared/models';\r\nimport { LLFormService, CompanyContactService, StorageManagerService } from '../../../../shared/services';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { RefdataService } from '../../../../shared/services/refdata.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CompanyDetailsComponent } from '../../../index';\r\n\r\n@Component({\r\n selector: 'app-ll-form-labeler',\r\n templateUrl: './ll-form-labeler.component.html',\r\n styleUrls: ['./ll-form-labeler.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class LLFormLabelerComponent implements OnInit, AfterViewInit, OnChanges {\r\n\r\n labelerForm: UntypedFormGroup;\r\n labeler: ILLCompany = new ILLCompany();\r\n labelerCompanies: ILLCompany[] = [];\r\n companyNdcCodes: ILLGenericKeys[] = [];\r\n lCompanyRevisionId: any;\r\n companyDataSource: any[] = [];\r\n ndcDataSource: any[] = [];\r\n ndcType = 'multi';\r\n ndcLabelerCode: string;\r\n modalWidth = '450px';\r\n\r\n // dialog settings\r\n isModal = true;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n hide: any;\r\n position: object = { X: 'center', Y: 'center' };\r\n target = '#modalTarget';\r\n visible = true;\r\n compHidden = false;\r\n ndcHidden = false;\r\n hidden: Boolean = false;\r\n\r\n @Input() llFormData: any;\r\n @Input() prodIndex: number;\r\n @Input() canCreateCompany: boolean;\r\n @Output() labelerCodeValue = new EventEmitter();\r\n\r\n @ViewChild('confirmDialogCompany')\r\n public confirmDialogCompany: DialogComponent;\r\n\r\n @ViewChild('confirmDialogNDC')\r\n public confirmDialogNDC: DialogComponent;\r\n\r\n ddwHeight = '220px';\r\n waterMark = 'Select one';\r\n companyFields: Object = { text: 'name', value: 'id' };\r\n\r\n @ViewChild('lCompanyDdw') companyDdw: DropDownListComponent;\r\n\r\n ndcFields: Object = { text: 'name' };\r\n @ViewChild('ndcDdw') ndcDdw: DropDownListComponent;\r\n\r\n @ViewChild('companyDialog') public companyDialog: DialogComponent;\r\n @ViewChild('companyDetails') public companyDetailsComponent: CompanyDetailsComponent;\r\n\r\n labelerCompanyCodeChangedObject = {};\r\n ndcCodeChangedObject = {};\r\n ndcUserLabelerCodeBeforeSelectionChanged: any;\r\n missingLabelerError = false;\r\n iconTypeCompany = true;\r\n isCompanyInactive = false;\r\n inactiveLabelerContactName: string;\r\n sub: Subscription;\r\n companyToViewRevisionId: number;\r\n parentComponent: any;\r\n customerGuid: string;\r\n companyData: any;\r\n\r\n ndcProductCodeChangedObject = {};\r\n company$: Observable | null;\r\n\r\n constructor(private fb: UntypedFormBuilder, private llFormService: LLFormService, private toastr: ToastrService,\r\n private companyService: CompanyContactService, private cdref: ChangeDetectorRef,\r\n private refDataService: RefdataService, private storageManagerService: StorageManagerService) { }\r\n\r\n confirmDlgButtonsCompanyBtnClickYes: EmitType = () => {\r\n if (this.confirmDialogCompany) {\r\n\r\n this.confirmDialogCompany.hide();\r\n \r\n this.ndcUserLabelerCodeBeforeSelectionChanged = this.labelerForm.value.userNdcLabelerCode;\r\n\r\n this.lCompanyRevisionId = this.labelerCompanyCodeChangedObject['newLabelerCompanyId'];\r\n this.setNDCddw(this.lCompanyRevisionId);\r\n this.ndcLabelerCode = '';\r\n this.ndcDdw.value = '';\r\n\r\n\r\n this.setChangedLabelerCompany();\r\n\r\n this.labelerCodeValue.emit('');\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n for (const property in changes) {\r\n\r\n if (changes[property].currentValue) {\r\n\r\n switch (property) {\r\n case 'lCompanyRevisionId':\r\n this.enablePrivateNdcInput();\r\n break;\r\n case 'ndcUserLabelerCodeBeforeSelectionChanged':\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n setChangedLabelerCompany() {\r\n\r\n this.setNDCddw(this.lCompanyRevisionId);\r\n this.llFormData[0].data.labelerCompanyRevisionId = this.lCompanyRevisionId;\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId\r\n });\r\n\r\n if (!this.labelerForm.value.userNdcLabelerCode && this.ndcType !== 'single' ) {\r\n\r\n this.labelerCodeValue.emit(this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource && this.ndcDataSource.length ? (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '') : ''));\r\n\r\n if (this.ndcType === 'multi') {\r\n if (this.ndcDdw) {\r\n this.ndcDdw.value = this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource && this.ndcDataSource.length ? (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '') : '');\r\n }\r\n }\r\n this.labelerForm.patchValue({\r\n\r\n ndcLabelerCode: this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource && this.ndcDataSource.length ? (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '') : '')\r\n });\r\n\r\n } else {\r\n\r\n this.labelerCodeValue.emit(this.labelerForm.value.userNdcLabelerCode);\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId,\r\n userNdcLabelerCode: this.labelerForm.value.userNdcLabelerCode\r\n });\r\n }\r\n const changedCompany = this.labelerCompanies.find(c => c.companyRevisionId === this.lCompanyRevisionId);\r\n\r\n if (changedCompany) {\r\n this.llFormData[0].data.labelerCompany = changedCompany;\r\n }\r\n\r\n this.enablePrivateNdcInput();\r\n }\r\n\r\n enablePrivateNdcInput() {\r\n\r\n if (this.lCompanyRevisionId) {\r\n\r\n const privateNdc = document.getElementById('ndcSingle');\r\n\r\n if (privateNdc) {\r\n privateNdc.removeAttribute('disabled');\r\n this.missingLabelerError = false;\r\n }\r\n }\r\n }\r\n\r\n confirmDlgButtonsCompanyBtnClickNo: EmitType = () => {\r\n\r\n if (this.confirmDialogCompany) {\r\n\r\n this.confirmDialogCompany.hide();\r\n\r\n }\r\n\r\n this.ndcUserLabelerCodeBeforeSelectionChanged = this.labelerForm.value.userNdcLabelerCode;\r\n\r\n this.lCompanyRevisionId = this.labelerCompanyCodeChangedObject['oldLabelerCompanyId'];\r\n\r\n this.ndcDdw.value = this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '');\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.labelerCompanyCodeChangedObject['oldLabelerCompanyId'],\r\n ndcType: this.ndcType,\r\n ndcLabelerCode: this.ndcLabelerCode\r\n });\r\n\r\n this.labelerCompanyCodeChangedObject = {};\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n confirmDlgButtonsCompany: Object[] = [{ click: this.confirmDlgButtonsCompanyBtnClickNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.confirmDlgButtonsCompanyBtnClickYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n ngOnInit() {\r\n\r\n this.labelerForm = this.fb.group({\r\n lCompanyRevisionId: ['', { updateOn: 'blur' }],\r\n ndcLabelerCode: ['', { updateOn: 'blur' }],\r\n userNdcLabelerCode: ['', { updateOn: 'blur' }],\r\n ndcType: ['multi', { updateOn: 'blur' }]\r\n });\r\n\r\n this.setCompaniesDdw();\r\n\r\n // Watches changes on the entire form\r\n this.labelerForm.valueChanges.subscribe(data => {\r\n\r\n this.lCompanyRevisionId = data['lCompanyRevisionId'];\r\n this.llFormService.llFormLabelerSubject.next(this.labelerForm.value);\r\n });\r\n\r\n if (this.llFormData) {\r\n\r\n if (this.llFormData[0] && this.llFormData[0].data) {\r\n\r\n this.labeler = this.llFormData[0].data['labelerCompany'];\r\n this.lCompanyRevisionId = this.labeler.companyRevisionId;\r\n this.ndcLabelerCode = this.llFormData[0].data.ndcLabelerCode ? this.llFormData[0].data.ndcLabelerCode : this.labeler.ndcLabelerCode;\r\n\r\n this.setNDCddw(this.lCompanyRevisionId);\r\n\r\n this.enablePrivateNdcInput();\r\n }\r\n }\r\n\r\n this.parentComponent = this;\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n this.patchForm();\r\n\r\n // Check if previously saved company are not the latest revision, display warning message\r\n this.isCompanyLatest(this.labelerCompanies, this.labeler.companyRevisionId);\r\n }\r\n patchForm() {\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.labelerCompanyCodeChangedObject ? this.labelerCompanyCodeChangedObject['oldLabelerCompanyId'] : this.labeler.companyRevisionId,\r\n ndcLabelerCode: this.labeler.ndcLabelerCode ? this.labeler.ndcLabelerCode : this.ndcCodeChangedObject['oldNdcCode']\r\n });\r\n\r\n this.setNDCddw(this.labeler.companyRevisionId);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n if (this.llFormData && this.llFormData[0].data ) {\r\n\r\n this.labeler = this.llFormData[0].data.labelerCompany;\r\n this.lCompanyRevisionId = this.labeler.companyRevisionId;\r\n\r\n if (this.lCompanyRevisionId) {\r\n\r\n this.companyDdw.value = this.lCompanyRevisionId;\r\n\r\n if (this.ndcLabelerCode) {\r\n\r\n this.ndcDdw.value = this.ndcLabelerCode;\r\n } else {\r\n\r\n this.ndcDdw.value = (this.ndcDataSource[0] && this.ndcDataSource[0].length > 0) ? this.ndcDataSource[0]['name'] : '';\r\n }\r\n }\r\n\r\n const formNdcCode = this.llFormData[0].data.ndcLabelerCode;\r\n let privateCode;\r\n\r\n if (formNdcCode) {\r\n privateCode = this.labeler.ndcLabelerCodes.filter(n => n.label === formNdcCode).length === 0;\r\n }\r\n\r\n if (this.lCompanyRevisionId > 0 && privateCode) {\r\n this.labelerForm.patchValue({\r\n ndcType: 'single',\r\n userNdcLabelerCode: formNdcCode\r\n });\r\n\r\n this.ndcLabelerCode = formNdcCode;\r\n\r\n this.ndcDdw.value = formNdcCode;\r\n }\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.labeler.companyRevisionId\r\n });\r\n\r\n this.llFormService.llFormLabelerSubject.next(this.labelerForm.value);\r\n }\r\n }\r\n\r\n setCompaniesDdw() {\r\n\r\n if (this.llFormData && this.llFormData[2].data) {\r\n\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper = this.llFormData[2].data;\r\n this.labelerCompanies = companyTypes.labelers;\r\n }\r\n\r\n if (this.labelerCompanies && this.labelerCompanies.length > 0) {\r\n\r\n this.labelerCompanies.forEach((company: ILLCompany) => {\r\n\r\n const ds = { id: 0, name: '' };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n\r\n this.companyDataSource.push(ds);\r\n });\r\n }\r\n }\r\n\r\n setNDCddw(companyRevisionId: number) {\r\n\r\n this.ndcDataSource = [];\r\n\r\n if (companyRevisionId && this.labelerCompanies && this.labelerCompanies.length > 0) {\r\n\r\n const company = this.labelerCompanies.find((c: ILLCompany) => c.companyRevisionId === companyRevisionId);\r\n\r\n if (company) {\r\n\r\n const ndcCodes: ILLGenericKeys[] = company.ndcLabelerCodes;\r\n this.ndcDataSource.push({ name: '' });\r\n\r\n if (ndcCodes && ndcCodes.length && ndcCodes[0].label) {\r\n\r\n ndcCodes.forEach((element: ILLGenericKeys) => {\r\n\r\n const ds = { name: '' };\r\n ds.name = element.label;\r\n this.ndcDataSource.push(ds);\r\n });\r\n }\r\n\r\n this.ndcLabelerCode = this.llFormData[0].data.ndcLabelerCode ? this.llFormData[0].data.ndcLabelerCode : (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '');\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId,\r\n ndcLabelerCode: this.ndcType === 'multi' ? this.ndcLabelerCode : ''\r\n });\r\n } else {\r\n\r\n // means the company has been updated outside of the LL form.\r\n // set the labeler code from the form.\r\n const formLabeler = this.llFormData[0].data.labelerCompany;\r\n\r\n let ndcCodes: ILLGenericKeys[] = formLabeler.ndcLabelerCodes;\r\n\r\n if (formLabeler.ndcLabelerCodes && formLabeler.ndcLabelerCodes.length) {\r\n ndcCodes = ndcCodes.filter(c => c.code.toLowerCase() === 'active');\r\n }\r\n\r\n this.ndcDataSource.push({ name: '' });\r\n\r\n if (ndcCodes && ndcCodes.length && ndcCodes[0].label) {\r\n\r\n ndcCodes.forEach((element: ILLGenericKeys) => {\r\n\r\n const ds = { name: '' };\r\n ds.name = element.label;\r\n this.ndcDataSource.push(ds);\r\n });\r\n }\r\n if (this.ndcLabelerCode) {\r\n this.ndcDataSource = this.ndcDataSource.filter( c => c.name === this.ndcLabelerCode);\r\n } else {\r\n\r\n const ndcProductCode = this.llFormData[0].data.products[0].ndcProductCode;\r\n const productLabelerCode = ndcProductCode.split('-').length ? ndcProductCode.split('-')[0] : '';\r\n\r\n this.ndcLabelerCode = this.llFormData[0].data.ndcLabelerCode ? this.llFormData[0].data.ndcLabelerCode : (productLabelerCode ? productLabelerCode : '');\r\n }\r\n\r\n this.llFormData[0].data.ndcLabelerCode = this.ndcLabelerCode;\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId,\r\n ndcLabelerCode: this.ndcType === 'multi' ? this.ndcLabelerCode : ''\r\n });\r\n }\r\n }\r\n }\r\n\r\n lCompanySelectionChanged(event) {\r\n\r\n this.missingLabelerError = false;\r\n\r\n if (event.isInteracted) {\r\n\r\n this.labelerCompanyCodeChangedObject = { oldLabelerCompanyId: event.previousItemData ? event.previousItemData.id : '', newLabelerCompanyId: event.value };\r\n\r\n if (this.labelerCompanyCodeChangedObject['oldLabelerCompanyId']) {\r\n this.confirmDialogCompany.show();\r\n } else {\r\n\r\n this.setChangedLabelerCompany();\r\n }\r\n\r\n this.labelerForm.markAsDirty();\r\n }\r\n\r\n this.enablePrivateNdcInput();\r\n }\r\n\r\n ndcRadioChanged(event) {\r\n\r\n this.ndcType = this.ndcType === 'multi' ? 'single' : 'multi';\r\n\r\n if (event.value === 'single') {\r\n\r\n if (!this.lCompanyRevisionId) {\r\n this.missingLabelerError = true;\r\n }\r\n\r\n this.ndcLabelerCode = '';\r\n\r\n this.labelerForm.patchValue({\r\n ndcType: 'single',\r\n userNdcLabelerCode: '',\r\n ndcLabelerCode: ''\r\n });\r\n } else {\r\n\r\n this.ndcUserLabelerCodeBeforeSelectionChanged = '';\r\n\r\n this.labelerForm.patchValue({\r\n ndcType: 'multi',\r\n ndcLabelerCode: '',\r\n userNdcLabelerCode: ''\r\n });\r\n }\r\n\r\n this.labelerForm.markAsDirty();\r\n }\r\n\r\n lNdcSelectionChanged(event) {\r\n\r\n if (event.isInteracted) {\r\n\r\n this.confirmDialogNDC.show();\r\n\r\n this.ndcLabelerCode = event.value ? event.value : 'xxxx' ;\r\n\r\n this.ndcCodeChangedObject = { oldNdcCode: event.previousItemData ? event.previousItemData.name : '', newNdcCode: this.ndcLabelerCode };\r\n\r\n this.ndcType = 'multi';\r\n\r\n this.labelerForm.patchValue({\r\n ndcType: 'multi',\r\n userNdcLabelerCode: ''\r\n });\r\n\r\n this.ndcUserLabelerCodeBeforeSelectionChanged = '';\r\n }\r\n }\r\n\r\n privateNdcCodeKeyUp(event) {\r\n\r\n this.ndcType = 'single';\r\n\r\n this.labelerForm.patchValue({\r\n ndcType: 'single',\r\n ndcLabelerCode: ''\r\n });\r\n }\r\n\r\n privateNdcCodeChanged(event) {\r\n\r\n if (event.target.value && this.ndcUserLabelerCodeBeforeSelectionChanged !== event.target.value) {\r\n this.confirmDialogNDC.show();\r\n }\r\n\r\n this.ndcProductCodeChangedObject['newNdcCode'] = event.target.value;\r\n this.ndcProductCodeChangedObject['oldNdcCode'] = this.ndcUserLabelerCodeBeforeSelectionChanged;\r\n\r\n this.ndcType = 'single';\r\n\r\n this.labelerForm.patchValue({\r\n ndcType: 'single',\r\n ndcLabelerCode: ''\r\n });\r\n }\r\n\r\n\r\n confirmDlgButtonsNDCClickYes: EmitType = () => {\r\n\r\n this.ndcType = 'single';\r\n\r\n if (this.confirmDialogNDC) {\r\n\r\n this.confirmDialogNDC.hide();\r\n }\r\n\r\n if (!this.labelerForm.value.userNdcLabelerCode) {\r\n\r\n this.labelerCodeValue.emit(this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : ''));\r\n this.ndcDdw.value = this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '');\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId ? this.lCompanyRevisionId : this.labeler.companyRevisionId,\r\n ndcLabelerCode: this.ndcLabelerCode ? this.ndcLabelerCode : (this.ndcDataSource[1] ? this.ndcDataSource[1]['name'] : '')\r\n });\r\n\r\n } else {\r\n\r\n this.labelerCodeValue.emit(this.labelerForm.value.userNdcLabelerCode);\r\n this.ndcUserLabelerCodeBeforeSelectionChanged = this.labelerForm.value.userNdcLabelerCode;\r\n\r\n this.labelerForm.patchValue({\r\n lCompanyRevisionId: this.lCompanyRevisionId,\r\n userNdcLabelerCode: this.labelerForm.value.userNdcLabelerCode\r\n });\r\n\r\n\r\n }\r\n\r\n const changedCompany = this.labelerCompanies.find(c => c.companyRevisionId === this.lCompanyRevisionId);\r\n\r\n if (changedCompany) {\r\n this.llFormData[0].data.labelerCompany = changedCompany;\r\n }\r\n }\r\n\r\n confirmDlgButtonsNDCClickNo: EmitType = () => {\r\n\r\n if (this.confirmDialogNDC) {\r\n\r\n this.confirmDialogNDC.hide();\r\n }\r\n\r\n if (!this.ndcUserLabelerCodeBeforeSelectionChanged) {\r\n this.ndcType = 'multi';\r\n }\r\n\r\n this.labelerForm.patchValue({\r\n ndcLabelerCode: this.labeler.ndcLabelerCode ? this.labeler.ndcLabelerCode : this.ndcCodeChangedObject['oldNdcCode'],\r\n userNdcLabelerCode: this.ndcUserLabelerCodeBeforeSelectionChanged,\r\n ndcType: this.ndcType\r\n });\r\n\r\n this.ndcDdw.value = this.ndcType === 'single' ? this.ndcUserLabelerCodeBeforeSelectionChanged : this.llFormData[0].data.ndcLabelerCode;\r\n\r\n this.ndcCodeChangedObject = {};\r\n }\r\n\r\n onTabPressed(event) {\r\n this.privateNdcCodeChanged(event);\r\n}\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n confirmDlgButtonsNDC: Object[] = [{ click: this.confirmDlgButtonsNDCClickNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.confirmDlgButtonsNDCClickYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(companyLov: any[], companyRevisionId: number) {\r\n\r\n if (companyRevisionId) {\r\n const company = companyLov.find(x => x.companyRevisionId === companyRevisionId);\r\n if (!company) {\r\n\r\n this.company$ = this.companyService.getCompanyById(companyRevisionId.toString());\r\n\r\n this.lCompanyRevisionId = companyRevisionId;\r\n // this.ndcLabelerCode = '';\r\n\r\n this.setChangedLabelerCompany();\r\n\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n showCompanyDialog(companyRevisionId?: number) {\r\n\r\n this.labelerForm.markAsDirty();\r\n // this.pageLoading = true;\r\n\r\n if (companyRevisionId) {\r\n\r\n const companyData$ = forkJoin([this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.refDataService.GetAllBusinessOperationQualifier(),\r\n this.companyService.getCompanyRevisionHistory(companyRevisionId),\r\n this.companyService.getBusinessOperationQualifierByCompany(companyRevisionId.toString()),\r\n this.companyService.getCompanyById(companyRevisionId.toString()),\r\n this.companyService.getNDCLabelerCodesByCompany(companyRevisionId.toString())]\r\n ).pipe(catchError(err => of(err)\r\n )).subscribe(data => {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = data;\r\n this.companyDetailsComponent.companyRevisionId = companyRevisionId.toString();\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.getFormControlByName('status').patchValue('Active');\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n });\r\n } else {\r\n const companyData = [];\r\n\r\n this.sub = this.companyService.getBusinessCategories(false).subscribe( busCat => {\r\n companyData[0] = busCat;\r\n\r\n this.sub = this.companyService.getCountries().subscribe( countries => {\r\n companyData[1] = countries;\r\n\r\n this.sub = this.companyService.getContacts().subscribe( contacts => {\r\n companyData[2] = contacts;\r\n\r\n this.refDataService.GetAllBusinessOperationQualifier().subscribe(busQual => {\r\n\r\n companyData[3] = busQual;\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = companyData;\r\n this.companyDetailsComponent.companyRevisionId = '';\r\n this.companyDetailsComponent.company = null;\r\n this.companyDetailsComponent.companyHistory_grid_data = [];\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n\r\n });\r\n });\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error.message ? error.message : this.llFormService.GENERIC_ERROR_MSG);\r\n });\r\n }\r\n }\r\n\r\n modalCompany(newCompany) {\r\n\r\n this.setSavedLabelerCompany(newCompany.companyRevisionId);\r\n\r\n this.companyDialogCancelButtonClicked();\r\n }\r\n\r\n\r\n setSavedLabelerCompany(companyRevisionId: any) {\r\n let company;\r\n\r\n this.sub = this.llFormService.getLCompanyTypesByCustomerGuid(this.customerGuid).subscribe(response => {\r\n\r\n const companyTypes = response['data'];\r\n\r\n this.llFormData[2].data = companyTypes;\r\n this.labelerCompanies = companyTypes['labelers'];\r\n\r\n company = this.labelerCompanies.find(c => c.companyRevisionId === companyRevisionId);\r\n\r\n if (company) {\r\n\r\n this.companyDataSource = [];\r\n\r\n this.labelerForm.patchValue({\r\n companyDdw: companyRevisionId,\r\n });\r\n\r\n this.setCompaniesDdw();\r\n\r\n //this.companyDataSource.sort(this.compare);\r\n\r\n this.companyDdw.dataSource = this.companyDataSource;\r\n this.companyDdw.dataBind();\r\n this.companyDdw.refresh();\r\n\r\n this.companyDdw.value = companyRevisionId;\r\n\r\n this.setNDCddw(companyRevisionId);\r\n }\r\n this.cdref.detectChanges();\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n\r\n this.labelerForm.markAsDirty();\r\n }\r\n\r\n companyDialogCancelButtonClicked() {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.companyDialog.hide();\r\n }\r\n\r\n compare(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.bame) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Labeler\r\n \r\n Create new company\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Labeler company required\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

Labeler Company Update

\r\n
\r\n
\r\n Current labeler code value will be updated with the new labeler code value in the following areas:\r\n
    \r\n
  • NDC Product Code
  • \r\n
  • NDC Packaging Code
  • \r\n
  • NDC Product Code to establishment link
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

Labeler Company Update

\r\n
\r\n
\r\n Current labeler code value will be updated with the new labeler code value in the following areas:\r\n
    \r\n
  • NDC Product Code
  • \r\n
  • NDC Packaging Code
  • \r\n
  • NDC Product Code to establishment link
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

Company Details

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { InPlaceEditorComponent } from '@syncfusion/ej2-angular-inplace-editor';\r\nimport { fadeInOut } from '../../../../shared/helpers/animations';\r\nimport { ILLGenericKeys, ILLProduct } from '../../../../shared/models';\r\nimport { ILLFormDetail } from '../../../../shared/models/ll-form-detail.model';\r\nimport { LLFormService } from '../../../../shared/services/ll-form.service';\r\nimport { Utilities } from '../../../../shared/services/utilities';\r\n\r\n@Component({\r\n selector: 'app-ll-form-product-details',\r\n templateUrl: './ll-form-product-details.component.html',\r\n styleUrls: ['./ll-form-product-details.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LLFormProductDetailsComponent implements OnInit, OnChanges {\r\n selectedDosageValue: string;\r\n\r\n constructor (\r\n private fb: UntypedFormBuilder, private llService: LLFormService, public datepipe: DatePipe,\r\n private utilService: Utilities) {\r\n }\r\n\r\n @ViewChild('inplace_editor_ProprietaryName') public ieProprietaryName: InPlaceEditorComponent;\r\n\r\n @ViewChild('ipeDosage') public ipeDosage: InPlaceEditorComponent;\r\n @ViewChild('inplace_editor_proprietaryNameSuffix') public ipeSuffix: InPlaceEditorComponent;\r\n @ViewChild('inplace_editor_estabGenericNameObj') public ipeGenericName: InPlaceEditorComponent;\r\n\r\n @Input() revisionId: string;\r\n @Input() llFormData: ILLFormDetail;\r\n @Input() prodIndex: number;\r\n @Input() partIndex: number;\r\n @Input() isPart: boolean;\r\n @Input() titleText: string;\r\n @Input() productId: number;\r\n @Output() proprietaryNameOutput = new EventEmitter();\r\n\r\n dataProductDetail: ILLProduct = new ILLProduct();\r\n public frmProductDetails: UntypedFormGroup;\r\n productTypes: ILLGenericKeys[];\r\n dosageFormLOV: ILLGenericKeys[];\r\n allLOV: any[];\r\n errorMessage: string;\r\n dosageFormModel: object;\r\n proprietaryNameModel: object;\r\n proprietaryNameSuffixModel: object;\r\n genericNameModel: object;\r\n submitted = false;\r\n loading = false;\r\n dataLLFormDetail: ILLFormDetail = new ILLFormDetail();\r\n selectedDosageId: any = null;\r\n\r\n ngOnInit(): void {\r\n\r\n this.frmProductDetails = this.fb.group({\r\n proprietaryName: ['', { updateOn: 'blur' }],\r\n proprietaryNameSuffix: ['', { updateOn: 'blur' }],\r\n genericName: ['', { updateOn: 'blur' }],\r\n selectedDosage: ['', { updateOn: 'blur' }]\r\n });\r\n\r\n\r\n this.proprietaryNameModel = {\r\n placeholder: 'Enter Proprietary Name',\r\n created: this.onTextBoxCreateProprietaryName.bind(this)\r\n };\r\n this.proprietaryNameSuffixModel = {\r\n placeholder: 'Enter Proprietary Name Suffix',\r\n created: this.onTextBoxCreateSuffix.bind(this)\r\n };\r\n this.genericNameModel = {\r\n placeholder: 'Enter Established Generic Name',\r\n created: this.onTextBoxCreateGenericName.bind(this)\r\n };\r\n\r\n this.loadData();\r\n\r\n // Watches changes on the entire form\r\n this.frmProductDetails.valueChanges.subscribe(data => {\r\n\r\n this.frmProductDetails.value.genericName = data?.genericName ? this.decodeHtml(data.genericName).toString() : '';\r\n this.frmProductDetails.value.proprietaryName = data?.proprietaryName ? this.decodeHtml(data.proprietaryName).toString() : '';\r\n this.frmProductDetails.value.proprietaryNameSuffix = data?.proprietaryNameSuffix ? this.decodeHtml(data.proprietaryNameSuffix).toString() : '';\r\n\r\n this.llService.llFormProductDetailsSubject.next(this.frmProductDetails.value);\r\n this.proprietaryNameOutput.emit(this.frmProductDetails.value.proprietaryName);\r\n });\r\n\r\n this.llService.llFormProductDetailsSubject.next(this.frmProductDetails.value);\r\n }\r\n public onActionSuccess(args) {\r\n args.value = args.value === null ? '' : this.encodeHtml(args.value);\r\n }\r\n public onTextBoxCreateProprietaryName(args) {\r\n\r\n const val = (this.ieProprietaryName as any).value;\r\n const ctrl = (this.ieProprietaryName as any).containerEle.querySelector('.e-textbox').ej2_instances[0];\r\n ctrl.value = '';\r\n if (val) {\r\n ctrl.value = this.decodeHtml(val);\r\n }\r\n }\r\n\r\n public onTextBoxCreateSuffix(args) {\r\n\r\n const val = (this.ipeSuffix as any).value;\r\n const ctrl = (this.ipeSuffix as any).containerEle.querySelector(\r\n '.e-textbox'\r\n ).ej2_instances[0];\r\n\r\n ctrl.value = '';\r\n if (val) {\r\n ctrl.value = this.decodeHtml(val);\r\n }\r\n }\r\n\r\n public onTextBoxCreateGenericName(args) {\r\n\r\n const val = (this.ipeGenericName as any).value;\r\n const ctrl = (this.ipeGenericName as any).containerEle.querySelector(\r\n '.e-textbox'\r\n ).ej2_instances[0];\r\n\r\n if (val) {\r\n (this.ipeGenericName as any).containerEle.querySelector(\r\n '.e-textbox'\r\n ).ej2_instances[0].value = this.decodeHtml(val);\r\n } else {\r\n ctrl.value = '';\r\n }\r\n }\r\n\r\n public onTextBoxCreateDosage(args) {\r\n (this.ipeDosage as any).containerEle.querySelector(\r\n '.e-ddl'\r\n ).ej2_instances[0].value = this.decodeHtml((this.ipeDosage as any).value);\r\n }\r\n\r\n public encodeHtml(str) {\r\n const buf = [];\r\n if (str) {\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));\r\n }\r\n\r\n return buf.join('');\r\n }\r\n }\r\n\r\n public decodeHtml(str) {\r\n\r\n if (str) {\r\n return str.replace(/&#(\\d+);/g, function (match, dec) {\r\n return String.fromCharCode(dec);\r\n });\r\n }\r\n }\r\n\r\n editorChanged(event) {\r\n const column = event.data.name;\r\n const value = event.data.value;\r\n\r\n switch (column) {\r\n\r\n case 'selectedDosage':\r\n\r\n if (this.partIndex !== null && this.partIndex >= 0) {\r\n\r\n // this is a name of a part, not a Product or a Kit\r\n this.llFormData[0].data.products[this.prodIndex].parts[this.partIndex].dosageForm = value ? this.getGenericKeyObject('dosageform', value) : null;\r\n } else {\r\n\r\n this.llFormData[0].data.products[this.prodIndex].dosageForm = value ? this.getGenericKeyObject('dosageform', value) : null;\r\n }\r\n\r\n this.frmProductDetails.patchValue({\r\n selectedDosage: value\r\n });\r\n\r\n break;\r\n case 'genericName':\r\n\r\n if (this.partIndex !== null && this.partIndex >= 0) {\r\n\r\n // this is a name of a part, not a Product or a Kit\r\n this.llFormData[0].data.products[this.prodIndex].parts[this.partIndex].estGenName = value;\r\n } else {\r\n\r\n this.llFormData[0].data.products[this.prodIndex].estGenName = value;\r\n }\r\n\r\n this.frmProductDetails.patchValue({\r\n genericName: value\r\n });\r\n\r\n break;\r\n\r\n case 'proprietaryNameSuffix':\r\n\r\n if (this.partIndex !== null && this.partIndex >= 0) {\r\n\r\n // this is a name of a part, not a Product or a Kit\r\n this.llFormData[0].data.products[this.prodIndex].parts[this.partIndex].proprietaryNameSuffix = value;\r\n } else {\r\n\r\n this.llFormData[0].data.products[this.prodIndex].proprietaryNameSuffix = value;\r\n }\r\n\r\n this.frmProductDetails.patchValue({\r\n proprietaryNameSuffix: value\r\n });\r\n\r\n break;\r\n\r\n case 'proprietaryName':\r\n\r\n if (this.partIndex !== null && this.partIndex >= 0) {\r\n\r\n // this is a name of a part, not a Product or a Kit\r\n this.llFormData[0].data.products[this.prodIndex].parts[this.partIndex].proprietaryName = value;\r\n } else {\r\n\r\n this.llFormData[0].data.products[this.prodIndex].proprietaryName = value;\r\n }\r\n\r\n this.frmProductDetails.patchValue({\r\n proprietaryName: value\r\n });\r\n break;\r\n }\r\n\r\n this.frmProductDetails.markAsDirty();\r\n }\r\n\r\n\r\n populateControls() {\r\n\r\n if (this.dataProductDetail.dosageForm && +this.dataProductDetail.dosageForm.id) {\r\n\r\n this.selectedDosageValue = this.dataProductDetail.dosageForm.label;\r\n this.selectedDosageId = +this.dataProductDetail.dosageForm.id;\r\n } else {\r\n\r\n this.selectedDosageValue = null;\r\n this.selectedDosageId = null;\r\n }\r\n\r\n if (this.dataProductDetail) {\r\n this.frmProductDetails.patchValue({\r\n proprietaryName: this.encodeHtml(this.dataProductDetail.proprietaryName),\r\n proprietaryNameSuffix: this.encodeHtml(this.dataProductDetail.proprietaryNameSuffix),\r\n genericName: this.encodeHtml(this.dataProductDetail.estGenName),\r\n selectedDosage: this.selectedDosageId\r\n });\r\n }\r\n\r\n if (this.ipeDosage) {\r\n\r\n this.ipeDosage.value = this.selectedDosageId;\r\n }\r\n\r\n this.llService.llFormProductDetailsSubject.next(this.frmProductDetails.value);\r\n }\r\n\r\n\r\n // retrieve data and populate controls on the component\r\n loadData() {\r\n if (this.frmProductDetails) {\r\n this.frmProductDetails.reset();\r\n\r\n if (this.llFormData) {\r\n if (this.llFormData[1] && this.llFormData[1]['data']) {\r\n this.allLOV = this.llFormData[1]['data'];\r\n this.dosageFormLOV = this.getLOVDataByType('dosageform');\r\n\r\n this.dosageFormModel = {\r\n placeholder: 'Select Dosage Form',\r\n dataSource: this.dosageFormLOV,\r\n fields: { value: 'id', text: 'label' },\r\n width: '450px'\r\n // , created: this.onTextBoxCreateDosage.bind(this)\r\n\r\n };\r\n }\r\n\r\n if (this.llFormData[0] && this.llFormData[0]['data']) {\r\n this.dataProductDetail = this.llFormData[0]['data']['products'][this.prodIndex];\r\n if ((this.partIndex || this.partIndex === 0) && this.llFormData[0]['data']['products'][this.prodIndex]['parts']) {\r\n this.dataProductDetail = this.llFormData[0]['data']['products'][this.prodIndex]['parts'][this.partIndex];\r\n }\r\n if (this.dataProductDetail) {\r\n const dosageFormId = this.dataProductDetail.dosageForm ? (+this.dataProductDetail.dosageForm.id === 0 ? null : +this.dataProductDetail.dosageForm.id) : null;\r\n this.selectedDosageId = dosageFormId;\r\n }\r\n\r\n this.populateControls();\r\n }\r\n }\r\n }\r\n }\r\n\r\n // when form data changed from the parent, refresh the component\r\n ngOnChanges(changes: SimpleChanges) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n if (property === 'llFormData' || property === 'prodIndex' || property === 'partIndex' || property === 'productId') {\r\n this.loadData();\r\n }\r\n }\r\n }\r\n\r\n // Get a list of LOVs by doc_type, created a new column that will\r\n // concatenate label and code fields for displaying purpose\r\n getLOVDataByType(type: string): any[] {\r\n const dataLOV = this.allLOV.filter(x => x.vocaB_TYPE === type);\r\n const newLOV = dataLOV.map(item => {\r\n const container = {};\r\n container['id'] = item.id;\r\n container['label'] = `${ item.label } (${ item.code })`;\r\n return container;\r\n });\r\n return newLOV;\r\n }\r\n\r\n getGenericKeyObject(type: string, id: any): ILLGenericKeys {\r\n\r\n let retVal: ILLGenericKeys;\r\n let data: any;\r\n let list: ILLGenericKeys[];\r\n\r\n if (this.llFormData[1]) {\r\n\r\n data = this.llFormData[1]['data'];\r\n\r\n list = data.filter(x => x.vocaB_TYPE === type);\r\n\r\n if (list && list.length > 0) {\r\n\r\n retVal = list.find(v => +v.id === +id);\r\n }\r\n }\r\n\r\n return retVal;\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n {{titleText}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { fadeInOut } from '../../../../shared/helpers/animations';\r\nimport { ILLGenericKeys, ILLProduct } from '../../../../shared/models';\r\nimport { ILLFormDetail } from '../../../../shared/models/ll-form-detail.model';\r\nimport { LLFormService, StorageManagerService } from '../../../../shared/services';\r\nimport { Utilities } from '../../../../shared/services/utilities';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\n\r\n@Component({\r\n selector: 'app-ll-form-product-information',\r\n templateUrl: './ll-form-product-information.component.html',\r\n styleUrls: ['./ll-form-product-information.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class LLFormProductInformationComponent implements OnInit, OnChanges {\r\n\r\n ndcProductCodeChangedObject = {};\r\n newProduct = false;\r\n\r\n constructor (\r\n private fb: UntypedFormBuilder, private llFormService: LLFormService,\r\n public datepipe: DatePipe, private utilService: Utilities, private storage: StorageManagerService) {\r\n }\r\n\r\n @ViewChild('productType') public productType: LLFormProductInformationComponent;\r\n @ViewChild('testForm') public testFormElement;\r\n\r\n @ViewChild('confirmDialog')\r\n public confirmDialog: DialogComponent;\r\n\r\n // dialog settings\r\n isModal: Boolean = true;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n hide: any;\r\n position: object = { X: 'center', Y: 'center' };\r\n target = '#modalTarget';\r\n visible: Boolean = true;\r\n hidden: Boolean = false;\r\n modalWidth = '450px';\r\n\r\n @Input() revisionId: string;\r\n @Input() llFormData: ILLFormDetail;\r\n @Input() prodIndex: number;\r\n @Input() partIndex: number;\r\n @Input() isPart: boolean;\r\n @Input() titleText: string;\r\n @Input() ndcLabelerCode: string;\r\n @Input() productId: number;\r\n @Input() ndcProductCodeInput: any;\r\n @Input() bIsKit: boolean;\r\n\r\n @Output() ndcProductCode = new EventEmitter();\r\n\r\n public frmProductInformation: UntypedFormGroup;\r\n dataProductDetail: ILLProduct = new ILLProduct();\r\n frmDetailData: ILLFormDetail = new ILLFormDetail();\r\n productTypes: ILLGenericKeys[];\r\n deaSchedule: ILLGenericKeys[];\r\n routeAdmin: ILLGenericKeys[];\r\n errorMessage: string;\r\n submitted = false;\r\n loading = false;\r\n labelerCode: string;\r\n canDisplayCertificationStatus: boolean = false;\r\n productTypesLOV: ILLGenericKeys[];\r\n deaScheduleLOV: ILLGenericKeys[];\r\n routeAdminLOV: ILLGenericKeys[];\r\n allLOV: any[];\r\n selectedProductTypes: string[];\r\n inactiveROAsList: any[] = [];\r\n public ddwHeight = '220px';\r\n // maps the appropriate column to fields property\r\n public ddwFields: Object = { text: 'labelAndCode', value: 'id' };\r\n public prodTypesWaterMark = 'Select Product Type';\r\n public deaScheduleWaterMark = 'Select DEA Schedule';\r\n public RouteAdminWaterMark = 'Select Route of Administration';\r\n\r\n newFormObject: Object = {};\r\n\r\n confirmDlgBtnClickYes: EmitType = () => {\r\n this.confirmDialog.hide();\r\n this.ndcProductCode.emit(this.ndcProductCodeChangedObject);\r\n }\r\n\r\n\r\n confirmDlgBtnClickNo: EmitType = () => {\r\n\r\n this.confirmDialog.hide();\r\n this.frmProductInformation.patchValue({\r\n itemCode: this.ndcProductCodeChangedObject['oldNdcCode']\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n confirmDlgButtons: Object[] = [{ click: this.confirmDlgBtnClickNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.confirmDlgBtnClickYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n ngOnInit(): void {\r\n this.frmProductInformation = this.fb.group({\r\n drpProductTypes: [''],\r\n drpRouteAdmin: [''],\r\n drpDeaSchedule: [''],\r\n labelerCode: [''],\r\n itemCode: [''],\r\n srcNDC1: [''],\r\n srcNDC2: [''],\r\n hiddenProductType: ['']\r\n });\r\n\r\n // retrieve data and populate controls on the component\r\n this.loadData();\r\n\r\n // Watches changes on the entire form\r\n this.frmProductInformation.valueChanges.subscribe(data => {\r\n this.llFormService.llFormProductInformationSubject.next(this.frmProductInformation.value);\r\n });\r\n\r\n this.llFormService.llFormProductInformationSubject.next(this.frmProductInformation.value);\r\n }\r\n\r\n // Populate pre-saved data\r\n loadData() {\r\n if (this.frmProductInformation) {\r\n this.frmProductInformation.reset();\r\n if (this.llFormData) {\r\n if (this.llFormData[1] && this.llFormData[1]['data']) {\r\n this.allLOV = this.llFormData[1]['data'];\r\n this.productTypesLOV = this.getLOVDataByTypeForLL('doc_type', 'doc_type_ll', true);\r\n this.deaScheduleLOV = this.getLOVDataByType('dea', true);\r\n this.routeAdminLOV = this.getLOVDataByType('roa', false);\r\n }\r\n\r\n if (this.llFormData[0] && this.llFormData[0]['data']) {\r\n this.frmDetailData = this.llFormData[0]['data'];\r\n\r\n if (this.frmDetailData) {\r\n this.dataProductDetail = this.llFormData[0]['data']['products'][this.prodIndex];\r\n if ((this.partIndex || this.partIndex === 0) && this.llFormData[0]['data']['products'][this.prodIndex]['parts']) {\r\n this.dataProductDetail = this.llFormData[0]['data']['products'][this.prodIndex]['parts'][this.partIndex];\r\n }\r\n if (this.dataProductDetail && !this.dataProductDetail.productId && (!this.partIndex && this.partIndex !== 0)) {\r\n this.newProduct = true;\r\n }\r\n\r\n this.populateControls();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n onOverlayClick: EmitType = () => {\r\n this.confirmDialog.hide();\r\n }\r\n\r\n\r\n // Get a list of LOVs by doc_type, created a new column that will\r\n // concatenate label and code fields for displaying purpose\r\n getLOVDataByType(type: string, bCreateEmptyItem: boolean): any[] {\r\n const emptySelectItem = {};\r\n const dataLOV = this.allLOV.filter(x => x.vocaB_TYPE === type);\r\n const newLOV = dataLOV.map(item => {\r\n const container = {};\r\n container['id'] = item['id'];\r\n container['code'] = item['code'];\r\n container['labelAndCode'] = item['label'] + ' (' + item['code'] + ')';\r\n return container;\r\n });\r\n\r\n // Add an empty selection\r\n if (newLOV && bCreateEmptyItem) {\r\n emptySelectItem['labelAndCode'] = '';\r\n emptySelectItem['code'] = '';\r\n emptySelectItem['id'] = 0;\r\n newLOV.splice(0, 0, emptySelectItem);\r\n }\r\n return newLOV;\r\n }\r\n\r\n // Get a list of LOVs by doc_type, created a new column that will\r\n // concatenate label and code fields for displaying purpose\r\n getLOVDataByTypeForLL(DisplayType: string, formType: string, bCreateEmptyItem: boolean): any[] {\r\n const emptySelectItem = {};\r\n let dataLOV = this.allLOV.filter(x => x.vocaB_TYPE === DisplayType && x.lsP_FORM_TYPE === formType);\r\n const newLOV = dataLOV.map(item => {\r\n const container = {};\r\n container['id'] = item['id'];\r\n container['code'] = item['code'];\r\n container['labelAndCode'] = item['label'] + ' (' + item['code'] + ')';\r\n return container;\r\n });\r\n\r\n // Add an empty selection\r\n if (newLOV && bCreateEmptyItem) {\r\n emptySelectItem['labelAndCode'] = '';\r\n emptySelectItem['code'] = '';\r\n emptySelectItem['id'] = 0;\r\n newLOV.splice(0, 0, emptySelectItem);\r\n }\r\n\r\n return newLOV;\r\n }\r\n\r\n // Populate Product Information Section\r\n populateControls() {\r\n if (this.dataProductDetail) {\r\n if (!this.newProduct) {\r\n const codes = [];\r\n let ndcProductCode = ''\r\n if (this.dataProductDetail.ndcProductCode) {\r\n const codes = this.dataProductDetail.ndcProductCode.split('-');\r\n ndcProductCode = codes.length > 1 && codes[1] && codes[1] !== 'null' ? codes[1].replace('xxxx', '') : '';\r\n }\r\n\r\n if (!ndcProductCode) {\r\n ndcProductCode = this.getNdcProductCode();\r\n }\r\n this.frmProductInformation.patchValue({\r\n itemCode: ndcProductCode\r\n });\r\n\r\n\r\n if (this.frmDetailData) {\r\n this.frmProductInformation.patchValue({\r\n labelerCode: this.isPart ? (this.dataProductDetail.ndcProductCode ? this.dataProductDetail.ndcProductCode.split('-')[0] : '') : this.frmDetailData.ndcLabelerCode\r\n });\r\n }\r\n\r\n if (this.dataProductDetail.sourceNDCCode) {\r\n const codes = this.dataProductDetail.sourceNDCCode.split('-');\r\n this.frmProductInformation.patchValue({\r\n srcNDC1: codes[0],\r\n srcNDC2: codes[1]\r\n });\r\n }\r\n\r\n this.frmProductInformation.patchValue({\r\n drpRouteAdmin: this.dataProductDetail.routeOfAdmins ? this.getSavedMultiSelectIds(this.dataProductDetail.routeOfAdmins) : [],\r\n drpDeaSchedule: this.dataProductDetail.deaSchedule ? +this.dataProductDetail.deaSchedule.id : null,\r\n hiddenProductType: this.partIndex || this.partIndex === 0 ? 'Part' : ''\r\n });\r\n }\r\n\r\n // setting service type applies for either new or existing product\r\n if (this.frmDetailData.setId) {\r\n this.labelerCode = this.isPart ? (this.dataProductDetail.ndcProductCode ? this.dataProductDetail.ndcProductCode.split('-')[0] : '') : this.frmDetailData.ndcLabelerCode;\r\n this.frmProductInformation.patchValue({\r\n drpProductTypes: +this.frmDetailData.serviceType.id\r\n });\r\n // Don't display cert statuses if the product type is not supported or if it's a kit part\r\n this.canDisplayCertificationStatus = this.dataProductDetail.listingRecordCertifiedThroughStatus !== 'Not Supported' && !(this.bIsKit && this.isPart);\r\n }\r\n }\r\n }\r\n\r\n // Get ndc product code for the product\r\n getNdcProductCode() {\r\n let ndcProductCode = '';\r\n\r\n // if this is part and ndcProductCode is null, get the ndcProductCode from packaging section if it exists there\r\n // by looping through all the package configurations and packages inside each configuaration until we found a valid ndcProductCode\r\n if (this.isPart && !ndcProductCode && this.dataProductDetail) {\r\n for (let i = 0; i < this.dataProductDetail.packageConfigurations.length; i++) {\r\n for (let j = 0; j < this.dataProductDetail.packageConfigurations[i].packages.length; j++) {\r\n const singlePackage = this.dataProductDetail.packageConfigurations[i].packages[j];\r\n\r\n if (singlePackage.code) {\r\n const packageCode = singlePackage.code.split('-');\r\n if (packageCode && packageCode.length > 1 && packageCode[1]) {\r\n ndcProductCode = packageCode[1];\r\n break;\r\n }\r\n }\r\n }\r\n if (ndcProductCode) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return ndcProductCode;\r\n }\r\n\r\n // when form data changed from the parent, refresh the component\r\n ngOnChanges(changes: SimpleChanges) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n if (property === 'llFormData' || property === 'prodIndex' || property === 'partIndex' || property === 'productId') {\r\n this.loadData();\r\n }\r\n\r\n // should allow empty space\r\n if (property === 'ndcLabelerCode' && changes[property].currentValue !== undefined && this.frmProductInformation) {\r\n this.labelerCode = this.ndcLabelerCode;\r\n\r\n this.frmProductInformation.patchValue({\r\n labelerCode: this.labelerCode\r\n });\r\n }\r\n // should allow empty space\r\n if (property === 'ndcProductCodeInput' && changes[property].currentValue !== undefined && this.frmProductInformation) {\r\n\r\n this.frmProductInformation.patchValue({\r\n itemCode: changes[property].currentValue\r\n });\r\n }\r\n }\r\n }\r\n\r\n ddwChanged(event) {\r\n this.frmProductInformation.markAsDirty();\r\n }\r\n\r\n // Get a list previously saved Ids from the multi-select dropdown control\r\n getSavedMultiSelectIds(data: ILLGenericKeys[]): number[] {\r\n let arrIds = [];\r\n this.dataProductDetail.routeOfAdmins.forEach(element => {\r\n // if ID existed, add to the list\r\n if (element.id && element.id !== '0') {\r\n arrIds.push(+element.id);\r\n } else {\r\n // If ROA id does not exist, try to match with ROA description\r\n // if still can not find a match, display a warning messaage to the user\r\n const newUOMValue = this.llFormService.checkForLOVSelection(this.routeAdminLOV, element.id, element.label);\r\n if (newUOMValue[0] && newUOMValue[0] !== '0') {\r\n arrIds.push(+newUOMValue[0]);\r\n } else if (newUOMValue[2]) {\r\n this.inactiveROAsList.push(newUOMValue[2]);\r\n }\r\n }\r\n });\r\n\r\n const uniquIds = arrIds.filter(x => x !== 0);\r\n return uniquIds;\r\n }\r\n\r\n ndcProductCodeChanged(event) {\r\n\r\n if (!this.isPart) {\r\n\r\n const oldNdcCode = this.dataProductDetail.ndcProductCode.split('-')[1] ? this.dataProductDetail.ndcProductCode.split('-')[1] : '';\r\n\r\n this.ndcProductCodeChangedObject['newNdcCode'] = event.target.value;\r\n this.ndcProductCodeChangedObject['oldNdcCode'] = oldNdcCode;\r\n\r\n if (oldNdcCode) {\r\n\r\n if (event.target.value !== oldNdcCode) {\r\n this.frmProductInformation.markAsDirty();\r\n\r\n // Suppress popup when NDC Product Code is entered for the first time\r\n if (oldNdcCode === 'xxxx') {\r\n this.ndcProductCode.emit(this.ndcProductCodeChangedObject);\r\n } else {\r\n this.confirmDialog.show();\r\n }\r\n }\r\n\r\n } else {\r\n if (event.target.value !== oldNdcCode) {\r\n this.frmProductInformation.markAsDirty();\r\n this.ndcProductCode.emit(this.ndcProductCodeChangedObject);\r\n }\r\n }\r\n } else {\r\n\r\n this.ndcProductCodeChangedObject['newNdcCode'] = event.target.value;\r\n\r\n if (this.dataProductDetail.ndcProductCode) {\r\n this.ndcProductCodeChangedObject['oldNdcCode'] = this.dataProductDetail.ndcProductCode.split('-')[1] ? this.dataProductDetail.ndcProductCode.split('-')[1] : '';\r\n }\r\n\r\n this.ndcProductCode.emit(this.ndcProductCodeChangedObject);\r\n this.frmProductInformation.markAsDirty();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Product Information {{titleText}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n NDC:\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n NDC:\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

NDC Code Update

\r\n
\r\n
\r\n Current Ndc Product code value will be updated with the new Ndc Product code value in the following areas:\r\n
    \r\n
  • NDC Product Code
  • \r\n
  • NDC Packaging Code
  • \r\n
  • NDC Product Code to establishment link
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewChild, ViewEncapsulation, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { Subscription, forkJoin, of } from 'rxjs';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { ILLCompany, ICompanyDetail, ILLCustomerCompaniesByTypeWrapper } from '../../../../shared/models';\r\nimport { LLFormService, CompanyContactService, StorageManagerService } from '../../../../shared/services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { RefdataService } from '../../../../shared/services/refdata.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CompanyDetailsComponent } from '../../../index';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\n\r\n@Component({\r\n selector: 'app-ll-form-registrant',\r\n templateUrl: './ll-form-registrant.component.html',\r\n styleUrls: ['./ll-form-registrant.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class LLFormRegistrantComponent implements OnInit, AfterViewInit {\r\n\r\n registrantForm: UntypedFormGroup;\r\n registrant: ILLCompany = new ILLCompany();\r\n registrantCompanies: ILLCompany[] = [];\r\n rCompanyRevisionId: number;\r\n companyDataSource: any[] = [];\r\n iconTypeCompany = true;\r\n isCompanyInactive = false;\r\n inactiveLabelerContactName: string;\r\n sub: Subscription;\r\n hidden: Boolean = false;\r\n confidentiality = 'N';\r\n companyToViewRevisionId: number;\r\n parentComponent: any;\r\n customerGuid: string;\r\n companyData: any;\r\n\r\n @Input() llFormData: any;\r\n @Input() canCreateCompany: boolean;\r\n\r\n ddwHeight = '220px';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n\r\n public waterMark = 'Select one';\r\n public companyFields: Object = { text: 'name', value: 'id' };\r\n @ViewChild('rCompanyDdw') companyDdw: DropDownListComponent;\r\n @ViewChild('companyDialog') public companyDialog: DialogComponent;\r\n @ViewChild('companyDetails') public companyDetailsComponent: CompanyDetailsComponent;\r\n\r\n constructor(private fb: UntypedFormBuilder, private llFormService: LLFormService, private toastr: ToastrService,\r\n private companyService: CompanyContactService, private cdref: ChangeDetectorRef,\r\n private refDataService: RefdataService, private storageManagerService: StorageManagerService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.registrantForm = this.fb.group({\r\n rCompanyRevisionId: ['', { updateOn: 'blur' }],\r\n confidentiality: ['N', { updateOn: 'blur' }]\r\n });\r\n\r\n this.setCompaniesDdw();\r\n\r\n // Watches changes on the entire form\r\n this.registrantForm.valueChanges.subscribe(data => {\r\n this.rCompanyRevisionId = data['rCompanyRevisionId'];\r\n this.confidentiality = data['confidentiality'];\r\n\r\n this.llFormService.llFormRegistrantSubject.next(this.registrantForm.value);\r\n });\r\n\r\n if (this.llFormData && this.llFormData[0] && this.llFormData[0].data) {\r\n\r\n this.registrant = this.llFormData[0].data['registrantCompany'];\r\n\r\n this.rCompanyRevisionId = this.registrant.companyRevisionId;\r\n this.confidentiality = this.llFormData[0].data.confidentiality.trim() ? this.llFormData[0].data.confidentiality.trim() : 'N';\r\n\r\n // Check if previously saved company are not the latest revision, display warning message\r\n this.isCompanyInactive = !this.isCompanyLatest(this.registrantCompanies, this.rCompanyRevisionId);\r\n this.parentComponent = this;\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n this.patchForm();\r\n }\r\n\r\n this.llFormService.llFormRegistrantSubject.next(this.registrantForm.value);\r\n }\r\n\r\n patchForm() {\r\n\r\n this.registrantForm.patchValue({\r\n rCompanyRevisionId: this.registrant.companyRevisionId,\r\n confidentiality: this.confidentiality\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.companyDdw.value = this.rCompanyRevisionId;\r\n this.cdref.detectChanges();\r\n }\r\n\r\n setCompaniesDdw() {\r\n\r\n if (this.llFormData && this.llFormData[2].data) {\r\n\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper = this.llFormData[2].data;\r\n\r\n this.registrantCompanies = companyTypes.registrants;\r\n }\r\n\r\n if (this.registrantCompanies && this.registrantCompanies.length > 0) {\r\n\r\n this.companyDataSource.push({ id: 0, name: '' });\r\n\r\n this.registrantCompanies.forEach((company: ILLCompany) => {\r\n\r\n const ds = { id: 0, name: '' };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n\r\n this.companyDataSource.push(ds);\r\n });\r\n }\r\n }\r\n\r\n ddwChange(event) {\r\n\r\n const registrant = this.registrantCompanies.find(c => c.companyRevisionId === event.value);\r\n\r\n this.llFormData[0].data.registrantCompany = registrant;\r\n\r\n this.registrantForm.markAsDirty();\r\n\r\n if (!registrant) {\r\n this.confidentialityChange('');\r\n }\r\n }\r\n\r\n confidentialityChange(value) {\r\n\r\n this.confidentiality = value;\r\n\r\n this.registrantForm.patchValue({\r\n confidentiality: value\r\n });\r\n\r\n this.llFormData[0].data.confidentiality = this.confidentiality;\r\n\r\n this.registrantForm.markAsDirty();\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(companyLov: any[], companyRevisionId: number) {\r\n let returnVal = true;\r\n\r\n if (companyRevisionId) {\r\n const list = companyLov.filter(x => x.companyRevisionId === companyRevisionId);\r\n if (list.length === 0) {\r\n // Get company name and duns number\r\n this.sub = this.companyService.getCompanyById(companyRevisionId.toString()).subscribe(data => {\r\n if (data && data['companyDetails']) {\r\n const companyDetail: ICompanyDetail = data['companyDetails'];\r\n this.inactiveLabelerContactName = `(${ companyDetail.duns }) ${ companyDetail.companyName }`;\r\n // Add this check to avoid error \"Attempt to use a destroyed view: detectChanges\"\r\n if (!this.cdref['destroyed']) {\r\n this.cdref.detectChanges();\r\n }\r\n }\r\n },\r\n error => this.toastr.error(error.errorMessage)\r\n );\r\n\r\n returnVal = false;\r\n }\r\n }\r\n return returnVal;\r\n }\r\n showCompanyDialog(companyRevisionId?: number) {\r\n\r\n this.registrantForm.markAsDirty();\r\n // this.pageLoading = true;\r\n\r\n if (companyRevisionId) {\r\n\r\n const companyData$ = forkJoin([this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.refDataService.GetAllBusinessOperationQualifier(),\r\n this.companyService.getCompanyRevisionHistory(companyRevisionId),\r\n this.companyService.getBusinessOperationQualifierByCompany(companyRevisionId.toString()),\r\n this.companyService.getCompanyById(companyRevisionId.toString()),\r\n this.companyService.getNDCLabelerCodesByCompany(companyRevisionId.toString())]\r\n ).pipe(catchError(err => of(err)\r\n )).subscribe(data => {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = data;\r\n this.companyDetailsComponent.companyRevisionId = companyRevisionId.toString();\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.getFormControlByName('status').patchValue('Active');\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n });\r\n } else {\r\n const companyData = [];\r\n\r\n this.sub = this.companyService.getBusinessCategories(false).subscribe( busCat => {\r\n companyData[0] = busCat;\r\n\r\n this.sub = this.companyService.getCountries().subscribe( countries => {\r\n companyData[1] = countries;\r\n\r\n this.sub = this.companyService.getContacts().subscribe( contacts => {\r\n companyData[2] = contacts;\r\n\r\n this.refDataService.GetAllBusinessOperationQualifier().subscribe(busQual => {\r\n\r\n companyData[3] = busQual;\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = companyData;\r\n this.companyDetailsComponent.companyRevisionId = '';\r\n this.companyDetailsComponent.company = null;\r\n this.companyDetailsComponent.companyHistory_grid_data = [];\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n // this.pageLoading = false;\r\n this.companyDialog.show();\r\n\r\n });\r\n });\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error.message ? error.message : this.llFormService.GENERIC_ERROR_MSG);\r\n });\r\n }\r\n }\r\n\r\n modalCompany(newCompany) {\r\n\r\n this.setSavedRegistrantCompany(newCompany.companyRevisionId);\r\n\r\n this.companyDialogCancelButtonClicked();\r\n }\r\n\r\n\r\n setSavedRegistrantCompany(companyRevisionId: any) {\r\n let company;\r\n\r\n this.sub = this.llFormService.getLCompanyTypesByCustomerGuid(this.customerGuid).subscribe(response => {\r\n\r\n const companyTypes = response['data'];\r\n\r\n this.llFormData[2].data = companyTypes;\r\n this.registrantCompanies = companyTypes['registrants'];\r\n\r\n company = this.registrantCompanies.find(c => c.companyRevisionId === companyRevisionId);\r\n\r\n if (company) {\r\n\r\n this.companyDataSource = [];\r\n this.registrantForm.patchValue({\r\n companyDdw: companyRevisionId,\r\n });\r\n\r\n this.setCompaniesDdw();\r\n\r\n //this.companyDataSource.sort(this.compare);\r\n\r\n this.companyDdw.dataSource = this.companyDataSource;\r\n this.companyDdw.dataBind();\r\n this.companyDdw.refresh();\r\n\r\n this.companyDdw.value = companyRevisionId;\r\n\r\n }\r\n this.cdref.detectChanges();\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n\r\n this.registrantForm.markAsDirty();\r\n }\r\n\r\n companyDialogCancelButtonClicked() {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.companyDialog.hide();\r\n }\r\n\r\n compare(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.bame) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n Registrant\r\n \r\n Create new company\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

Company Details

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnInit, QueryList, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbTabset } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { fadeInOut } from '../../../../shared/helpers/animations';\r\nimport { AuthorizationService, LLDashboardService, StorageManagerService } from '../../../../shared/services';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { DeleteButtonComponent } from '../../../common/delete-button/delete-button.component';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { Utilities } from '../../../../shared/services/utilities';\r\nimport { EsigModalComponent } from '../../../common/esig-modal/esig-modal.component';\r\n\r\n@Component({\r\n selector: 'app-product-labeling-listing',\r\n templateUrl: './product-labeling-listing.component.html',\r\n styleUrls: ['./product-labeling-listing.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class ProductLabelingListingComponent implements OnInit, AfterViewInit {\r\n @ViewChild('LLForm_grid')\r\n public LLForm_grid: GridComponent;\r\n @ViewChild('drafts_grid')\r\n public draftsGrid: GridComponent;\r\n @ViewChild('deliveries_grid')\r\n public deliveriesGrid: GridComponent;\r\n @ViewChild('deleteSPLButton')\r\n public deleteButton: DeleteButtonComponent;\r\n @ViewChild('deleteSPLDraftButton')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n @ViewChild('sendToFDAButton')\r\n public sendToFDAButton: EsigModalComponent;\r\n @ViewChildren(NgbTabset) viewChildren: QueryList;\r\n public tabset: NgbTabset;\r\n\r\n @ViewChild('tooltip')\r\n public tooltip: TooltipComponent;\r\n\r\n LLForm_grid_data = [];\r\n public initialPage: Object;\r\n public sortOptions: Object;\r\n public formatOptions: any;\r\n public toolbarOptions: Object;\r\n count_LLForm: number;\r\n loading = false;\r\n submitted = false;\r\n public searchForm: UntypedFormGroup;\r\n errorMessage: string;\r\n bHasPermission = false;\r\n hasDeletePermission = false;\r\n dashboardDeliveriesData = [];\r\n formData: any;\r\n sub: Subscription;\r\n activeTab = 'LLFormGrid'; // default\r\n selectedLLRevisionId: number | undefined;\r\n selectedLLOrderId: number | undefined;\r\n selectedLLRevisionDraftMode: boolean | undefined;\r\n selectedLLRevisionProductType: string | undefined;\r\n selectedLLRevisionFileName: string | undefined;\r\n selectedLLRevisionVersion: string | undefined;\r\n\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n constructor (private router: Router, private route: ActivatedRoute, private storageManagerService: StorageManagerService,\r\n private fb: UntypedFormBuilder, private authorizationService: AuthorizationService, private toastr: ToastrService, private cdRef: ChangeDetectorRef, private sanitizer: DomSanitizer,\r\n private dashboardService: LLDashboardService) {\r\n }\r\n\r\n toHtml(input): any {\r\n return input ? new DOMParser().parseFromString(input, 'text/html').documentElement.textContent : '';\r\n }\r\n\r\n public encodeHtml(str) {\r\n const buf = [];\r\n if (str) {\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));\r\n }\r\n\r\n return buf.join('');\r\n }\r\n }\r\n\r\n public decodeHtml(str) {\r\n\r\n if (str) {\r\n return str.replace(/&#(\\d+);/g, function (match, dec) {\r\n return String.fromCharCode(dec);\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.sub = this.viewChildren.changes.subscribe((comps: QueryList) => {\r\n this.tabset = comps?.first;\r\n this.cdRef.detectChanges();\r\n\r\n this.activeTab = this.tabset.activeId;\r\n });\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n grid = this.draftsGrid;\r\n break;\r\n case 'deliveries':\r\n grid = this.deliveriesGrid;\r\n break;\r\n\r\n default:\r\n grid = this.LLForm_grid;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltip.cssClass = 'customTooltip';\r\n this.tooltip.content = this.toBrackets(rowData[(rowInfo.column as any).field]);\r\n }\r\n }\r\n\r\n toBrackets(str) {\r\n const retVal = str.split('<').join('<')\r\n .split('>').join('>')\r\n .split('&').join('&');\r\n // .split(''').join(\"'\")\r\n // .split('"').join('\"')\r\n // .split(':').join(':')\r\n // .split('!').join('!')\r\n // .split('/').join('/')\r\n // .split('\').join('\\\\')\r\n // .split('|').join('|')\r\n // .split('?').join('?')\r\n // .split('*').join('*');\r\n\r\n return retVal;\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n const isDeleteAllowedOnTab = this.activeTab !== 'deliveries'\r\n this.llFormGridRowDeselected();\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, isDeleteAllowedOnTab, this.bHasPermission);\r\n this.selectedLLRevisionId = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.searchForm = this.fb.group({\r\n searchText: ['', { validators: [Validators.required], updateOn: 'blur' }]\r\n });\r\n\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.formData = this.route.snapshot.data['formData'];\r\n if (this.formData) {\r\n if (this.formData.error) {\r\n this.toastr.error(this.formData.error);\r\n this.formData = null;\r\n } else if (!Array.isArray(this.formData)) {\r\n this.toastr.error(this.formData);\r\n this.formData = null;\r\n } else {\r\n\r\n if (this.formData[0] && this.formData[0].data) {\r\n this.LLForm_grid_data = this.formData[0].data;\r\n this.count_LLForm = this.LLForm_grid_data.length;\r\n }\r\n\r\n if (this.formData[1] && this.formData[1].data) {\r\n this.dashboardDeliveriesData = this.formData[1].data;\r\n }\r\n }\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n this.checkUserPermission();\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, true, this.bHasPermission);\r\n\r\n // Fix for footer spacing issues\r\n document.getElementsByTagName('footer')[0].classList.add(\"footer-spacing-fix\");\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n downloadFile(filePath: string, fileName: string) {\r\n\r\n this.sub = this.dashboardService.downloadFile(filePath, fileName).subscribe(response => {\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = fileName;\r\n link.click();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'formVersion':\r\n args.currentFilterObject.value = `${ args.currentFilterObject.value }.0`;\r\n break;\r\n case 'modifiedDate':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Display detail of a single LL form\r\n viewFormOrGoToDashboard(llRevisionId: string, isDraftMode: boolean) {\r\n if (llRevisionId) {\r\n const url = isDraftMode ? '/products/ll-form' : '/products/dashboard';\r\n this.router.navigate([url, llRevisionId]);\r\n }\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteLLForm')) {\r\n this.bHasPermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteLLForm')) {\r\n this.hasDeletePermission = true;\r\n }\r\n }\r\n\r\n createCustomToolbarItems(deletePermission : boolean, isDeleteAllowedOnTab: boolean, writePermission: boolean){\r\n let toolbarItems = [];\r\n\r\n if (this.activeTab === 'deliveries' && writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Send to FDA',\r\n tooltipText: 'Send to FDA',\r\n prefixIcon: 'fas fa-paper-plane',\r\n id: 'tool-bar-send'\r\n }\r\n );\r\n }\r\n\r\n if (writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New Product',\r\n tooltipText: 'Add a new Product to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if(deletePermission && isDeleteAllowedOnTab){\r\n toolbarItems.push(\r\n {\r\n text: 'Delete Product',\r\n tooltipText: 'Delete the selected SPL',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n );\r\n }\r\n\r\n toolbarItems.push('Search');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n getStatusClass(status) {\r\n let cssClass;\r\n\r\n if (status) {\r\n\r\n switch (+status) {\r\n\r\n case 3:\r\n\r\n cssClass = 'text-success';\r\n break;\r\n\r\n case 4:\r\n\r\n cssClass = 'text-danger';\r\n break;\r\n }\r\n }\r\n return cssClass;\r\n }\r\n\r\n getStatusIcon(status) {\r\n let cssClass;\r\n\r\n if (status) {\r\n\r\n switch (status) {\r\n\r\n case 1:\r\n case 2:\r\n cssClass = 'fas fa-spinner text-info';\r\n break;\r\n case 3:\r\n\r\n cssClass = 'fas fa-check-circle text-success';\r\n break;\r\n\r\n case 4:\r\n\r\n cssClass = 'fas fa-window-close text-danger';\r\n break;\r\n }\r\n }\r\n return cssClass;\r\n }\r\n\r\n customizeCell(args: QueryCellInfoEventArgs) {\r\n if (args.column.field === 'statusDescription') {\r\n if (args.data['taskStatusId'] === 1 || args.data['taskStatusId'] === 2) {\r\n // args.cell.classList.add('text-info');\r\n (args.cell as any).style.color = '#17a2b8' ;\r\n } else if (args.data['taskStatusId'] === 3) {\r\n (args.cell as any).style.color = '#77b800' ;\r\n } else if (args.data['taskStatusId'] === 4) {\r\n (args.cell as any).style.color = '#a94442' ;\r\n }\r\n }\r\n }\r\n\r\n llFormGridRowSelected(e: any){\r\n this.selectedLLRevisionId = e.data.llRevisionId;\r\n this.selectedLLRevisionDraftMode = e.data.isDraftMode;\r\n\r\n this.selectedLLRevisionProductType = e.data.productType;\r\n this.selectedLLRevisionVersion = e.data.formVersion;\r\n }\r\n\r\n llFormGridRowDeselected() {\r\n this.selectedLLRevisionId = undefined;\r\n this.selectedLLRevisionDraftMode = undefined;\r\n this.selectedLLOrderId = undefined;\r\n this.selectedLLRevisionProductType = undefined;\r\n this.selectedLLRevisionFileName = undefined;\r\n this.selectedLLRevisionVersion = undefined;\r\n }\r\n\r\n llDeliveriesGridRowSelected(e: any){\r\n this.selectedLLRevisionId = e.data.formRevisionId;\r\n this.selectedLLOrderId = e.data.orderId;\r\n this.selectedLLRevisionProductType = e.data.productType;\r\n this.selectedLLRevisionFileName = e.data.fileName;\r\n this.selectedLLRevisionVersion = e.data.formVersion;\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.searchForm.controls; }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n\r\n if (this.LLForm_grid && this.LLForm_grid.getSelectedRecords().length > 0) {\r\n this.LLForm_grid.clearSelection();\r\n } else if (this.deliveriesGrid && this.deliveriesGrid.getSelectedRecords().length > 0) {\r\n this.deliveriesGrid.clearSelection();\r\n }\r\n }\r\n\r\n onSubmitionToFDA(isSuccessfulySubmitted: boolean) {\r\n if (isSuccessfulySubmitted) {\r\n if (this.deliveriesGrid) {\r\n this.deliveriesGrid.clearSelection();\r\n }\r\n }\r\n }\r\n\r\n toolbarClick(args: ClickEventArgs): void {\r\n if (args.item.id === 'create-form-btn' && this.bHasPermission) {\r\n this.router.navigate([\"/create-ll-form\"]);\r\n }\r\n else if (args.item.id === 'tool-bar-delete') {\r\n if(this.LLForm_grid && this.selectedLLRevisionId){\r\n this.deleteButton.revisionId = this.selectedLLRevisionId.toString();\r\n this.deleteButton.openDeleteModal();\r\n }\r\n else if(this.draftsGrid && this.selectedLLRevisionId){\r\n this.deleteButtonDrafts.revisionId = this.selectedLLRevisionId.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n }\r\n else if (this.deliveriesGrid && this.selectedLLRevisionFileName && args.item.id === 'tool-bar-send') {\r\n this.sendToFDAButton.showEsignatureModal();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

Product Portfolio

\r\n

\r\n Find an existing product, or create a brand new product. Select a Product Name to open its product dashboard where you can access all SPL files or edit drug listing metadata.\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Products ({{ count_LLForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{data.formName}}\r\n \r\n \r\n \r\n \r\n {{toHtml(data.proprietaryName)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{data.isDraftMode ? 'Draft' : data.formVersion.toFixed(2) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n SPL Merge Deliveries ({{ dashboardDeliveriesData && dashboardDeliveriesData.length }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{data.fileName}}\r\n Not Available\r\n {{data.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { fadeInOut } from '../../../shared/helpers/animations';\r\nimport { AuthenticationService, AuthorizationService, SettingsService } from './../../../shared/services';\r\nimport { SelectedEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { IApiResult } from '../../../shared/models/api-result';\r\nimport { FeatureService } from '../../../shared/services/feature.service';\r\nimport { FileUploadHistoryGridComponent } from '../../grids/fileuploadhistorygrid/fileuploadhistorygrid.component';\r\n\r\n@Component({\r\n selector: 'app-spl-upload',\r\n templateUrl: './spl-upload.component.html',\r\n styleUrls: ['./spl-upload.component.scss'],\r\n animations: [fadeInOut],\r\n})\r\nexport class SplUploadComponent implements OnInit {\r\n @ViewChild('fileuploadhistorygrid', { static: false }) fileuploadhistorygrid: FileUploadHistoryGridComponent;\r\n\r\n loading = false;\r\n uploadSaveUrl: string;\r\n uploadStatus: string;\r\n isFeatureFlagVisible: boolean = false;\r\n hasIngestPermission: boolean = false;\r\n \r\n constructor(private settingsService: SettingsService, private authService: AuthenticationService, private authorizationService: AuthorizationService, private featureService: FeatureService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.hasIngestPermission = this.authorizationService.hasPermission('SSDP.CanIngestLLForm');\r\n this.uploadSaveUrl = this.getProcessFormURL();\r\n this.initTabIndex();\r\n this.setFeatureFlag('ssdp-spl-upload');\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n const main = document.getElementById(\"firstDiv\");\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n onFileUploadStart: EmitType = (args: any) => {\r\n // this.resetPage();\r\n if (args) {\r\n const authData = this.authService.getAuthData();\r\n \r\n args.currentRequest.setRequestHeader('authorization', this.authService.getBearerToken());\r\n args.currentRequest.setRequestHeader('customerGuid', this.settingsService.getCustomerGuid());\r\n args.currentRequest.setRequestHeader('applicationVariantId', authData.applicationVariantId ? authData.applicationVariantId.toString() : '');\r\n args.currentRequest.setRequestHeader('modifiedByUser', this.settingsService.getUserDataName());\r\n \r\n if (!args.cancel) {\r\n this.loading = true;\r\n }\r\n }\r\n }\r\n\r\n onFileUploadedSuccess: EmitType = (args: any) => {\r\n this.loading = false;\r\n this.uploadStatus = 'Uploaded Successfully';\r\n this.fileuploadhistorygrid.getFileHistoryDashboard();\r\n this.fileuploadhistorygrid.needsToPoll = true;\r\n }\r\n\r\n onUploadFailure(event){\r\n this.loading = false;\r\n }\r\n\r\n getProcessFormURL(): string {\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/SplUpload/Upload`;\r\n return `${apiUrl}/${action}`;\r\n }\r\n\r\n\r\n setFeatureFlag(name: string) {\r\n this.featureService.IsFeatureEnabled(name)\r\n .subscribe(data => {\r\n if (data) {\r\n this.isFeatureFlagVisible = data\r\n }\r\n else {\r\n this.isFeatureFlagVisible = false;\r\n }\r\n }, error => {\r\n // An error has occured. For safe measure, hide the feature.\r\n this.isFeatureFlagVisible = false;\r\n\r\n // Log to the console since we do not want to alert the user to a feature they may not have\r\n console.log(`An error has occured checking if the following feature is enabled: ${name}`)\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

SPL Upload

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n","import { Component, ViewEncapsulation, ViewChild, OnInit, OnDestroy, ViewChildren, QueryList, AfterViewInit, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { AuthorizationService, CompanyContactService, StorageManagerService } from '../../shared/services/index';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { DialogComponent, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { ILLBusinessCategory } from '../../shared/models/business-category.model';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-business-category',\r\n templateUrl: './business-category.component.html',\r\n styleUrls: ['./business-category.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class BusinessCategoryComponent implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n constructor (private router: Router, private toastr: ToastrService,\r\n private fb: UntypedFormBuilder, private authorizationService: AuthorizationService,\r\n private cdRef: ChangeDetectorRef, private activatedRoute: ActivatedRoute,\r\n private utilService: Utilities,\r\n private storageManagerService: StorageManagerService, private companyService: CompanyContactService, private sanitizer: DomSanitizer) {\r\n }\r\n\r\n @ViewChild('businessCategory_grid') public businessCategory_grid: GridComponent;\r\n @ViewChild('EditBCModalDialog') EditBCModalDialog: DialogComponent;\r\n @ViewChildren(TooltipComponent) toolTips: QueryList;\r\n public tooltipObj: TooltipComponent;\r\n public frmEditBusinessCategory: UntypedFormGroup;\r\n businessCategory_grid_data: ILLBusinessCategory[];\r\n public initialPage: Object;\r\n public formatOptions: object;\r\n public toolbarOptions: Object;\r\n currBusinessCategoryId: string;\r\n loading = false;\r\n submitted = false;\r\n errorMessage: string;\r\n bHasPermission = false;\r\n sub: Subscription;\r\n formData: any;\r\n EditBCModalDialogVisible = false;\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '30%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.sub = this.toolTips.changes.subscribe((comps: QueryList) => {\r\n this.tooltipObj = comps?.first;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.formData = this.activatedRoute.snapshot.data['businessCategoryData'];\r\n if (this.formData && this.formData[0]) {\r\n this.businessCategory_grid_data = this.formData[0];\r\n }\r\n\r\n this.frmEditBusinessCategory = this.fb.group({\r\n name: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n description: ['', { updateOn: 'blur' }],\r\n status: ['Active', { validators: [Validators.required], updateOn: 'blur' }],\r\n });\r\n\r\n // Setup the tool bar configuration\r\n this.toolbarOptions = ['Search'];\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n // Check if user has write permission. If no, disable the \"Save\" and \"Add Business Category\" button\r\n this.checkUserPermission();\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n // Open Modal popup to allow user to create/modify business category\r\n openEditModal(categoryId: string) {\r\n // Only display the edit popup window when user has the write permission\r\n if (this.bHasPermission) {\r\n // before open the modal, clear out the controls\r\n this.f.description.setValue('');\r\n this.f.name.setValue('');\r\n this.f.status.setValue('Active');\r\n this.currBusinessCategoryId = '';\r\n this.submitted = false;\r\n\r\n // Modify exsiting business category\r\n if (categoryId) {\r\n const bc = this.businessCategory_grid_data.filter(x => x.categoryId === categoryId);\r\n if (bc && bc.length > 0) {\r\n this.f.description.setValue(bc[0].description);\r\n this.f.name.setValue(bc[0].label);\r\n this.f.status.setValue(bc[0].activeFlag && bc[0].activeFlag === 'A' ? 'Active' : 'Inactive');\r\n this.currBusinessCategoryId = bc[0].categoryId;\r\n }\r\n }\r\n\r\n // show modal to allow user to create/modify business category\r\n this.EditBCModalDialog.show();\r\n }\r\n }\r\n\r\n // Create/Update business category\r\n saveBusinessCategory(): void {\r\n this.submitted = true;\r\n this.loading = true;\r\n this.errorMessage = '';\r\n const businessCategory = new ILLBusinessCategory();\r\n\r\n // stop here if form is invalid\r\n if (this.frmEditBusinessCategory.invalid) {\r\n this.loading = false;\r\n } else {\r\n\r\n if (this.frmEditBusinessCategory.dirty) {\r\n this.EditBCModalDialog.hide();\r\n this.frmEditBusinessCategory.markAsPristine();\r\n businessCategory.description = this.f.description.value;\r\n businessCategory.categoryId = this.currBusinessCategoryId ? this.currBusinessCategoryId : null;\r\n businessCategory.activeFlag = this.f.status.value === 'Active' ? 'A' : 'I';\r\n businessCategory.label = this.f.name.value;\r\n const modifiedByUser = this.storageManagerService.read('userData') ? this.storageManagerService.read('userData').name : '';\r\n\r\n this.sub = this.companyService.createBusinessCategory(businessCategory, modifiedByUser).subscribe(data => {\r\n this.loading = false;\r\n this.submitted = false;\r\n this.toastr.success('Business Category saved successfully.');\r\n // Update the business category list on the form\r\n this.refreshBusinessCategoryGrid();\r\n this.cdRef.detectChanges();\r\n },\r\n error => {\r\n this.loading = false;\r\n this.submitted = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.cdRef.detectChanges();\r\n });\r\n } else {\r\n this.submitted = false;\r\n this.loading = false;\r\n this.toastr.warning('No changes to save.');\r\n this.EditBCModalDialog.hide();\r\n }\r\n }\r\n }\r\n\r\n // Update the business category list on the form\r\n refreshBusinessCategoryGrid() {\r\n this.sub = this.companyService.getBusinessCategories(true).subscribe(data => {\r\n this.businessCategory_grid_data = data;\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n }\r\n\r\n // Close the modal popup\r\n cancelBtnClicked() {\r\n this.EditBCModalDialog.hide();\r\n }\r\n // Check if user has write permission. If no, disable the \"Save\" button\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteBusinessCategory') || this.authorizationService.hasPermission('SSDP.CanDeleteBusinessCategory')) {\r\n this.bHasPermission = true;\r\n }\r\n }\r\n\r\n // Format \"Status\" column on grid\r\n customizeCell(args: QueryCellInfoEventArgs) {\r\n if (args.column.field === 'activeFlag') {\r\n if (args.data['activeFlag'] === 'A') {\r\n args.cell.innerHTML = 'Active';\r\n } else {\r\n args.cell.innerHTML = 'Inactive';\r\n }\r\n }\r\n }\r\n\r\n // Close modal popup\r\n onBuildModalOverlayClick: EmitType = () => {\r\n this.EditBCModalDialog.hide();\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.frmEditBusinessCategory.controls; }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n grid = this.businessCategory_grid;\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.cssClass = 'customTooltip';\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Settings

\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Current Business Categories

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{businessCategory_grid_data.label}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

Business Category

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Name is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Active\r\n
\r\n
\r\n \r\n Inactive\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n Component, Input, ViewChild, ContentChild, ViewEncapsulation, HostListener\r\n} from '@angular/core';\r\nimport { AccordionComponent, SidebarComponent, SidebarType } from '@syncfusion/ej2-angular-navigations';\r\nimport { fadeInOut } from '../../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'app-custom-sidebar',\r\n templateUrl: './custom-sidebar.component.html',\r\n styleUrls: ['./custom-sidebar.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CustomSidebarComponent {\r\n @ViewChild('customSidebar') public sidebar: SidebarComponent;\r\n\r\n // main form area that will be \"pushed\" to the right with transform X\r\n @Input() target = '.main-form';\r\n @Input() sidebarExpanded = false;\r\n\r\n // it should be assumed any accordion nested inside the sidebar will be named 'sidebarAccordion'\r\n @ContentChild('sidebarAccordion') accordionObj: AccordionComponent;\r\n\r\n clickEventArgs: Event;\r\n type: SidebarType = 'Push';\r\n enablePersistence = false;\r\n defaultSideBarTop = 98;\r\n\r\n onCreated(): void {\r\n this.sidebar.show();\r\n }\r\n\r\n openSidebarClick() {\r\n this.sidebar.show();\r\n }\r\n\r\n closeSideBarClick() {\r\n this.sidebar.hide();\r\n }\r\n\r\n expandAll() {\r\n this.sidebarExpanded = true;\r\n this.accordionObj?.expandItem(true);\r\n }\r\n\r\n collapseAll() {\r\n this.sidebarExpanded = false;\r\n this.accordionObj?.expandItem(false);\r\n }\r\n\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll() {\r\n const scrollBarOffset = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n\r\n if (scrollBarOffset > 51) {\r\n this.defaultSideBarTop = 10;\r\n } else {\r\n this.defaultSideBarTop = 98;\r\n }\r\n }\r\n \r\n}\r\n"," \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ChangeDetectorRef, ViewChild, OnInit, Component, Input, Output, EventEmitter, ViewEncapsulation, SimpleChanges } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DeleteFormService } from '../../../shared/services/delete-form.service';\r\nimport { StorageManagerService } from '../../../shared/services/storage-manager.service';\r\n\r\n@Component({\r\n selector: 'app-delete-button',\r\n templateUrl: 'delete-button.component.html',\r\n styleUrls: ['./delete-button.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DeleteButtonComponent implements OnInit {\r\n settings: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef, private router: Router, private toastr: ToastrService,\r\n private deleteService: DeleteFormService, private storageService: StorageManagerService) { }\r\n\r\n @ViewChild('deleteModal') deleteModal: DialogComponent;\r\n @Input() deleteModalMethod: Function = function () { };\r\n @Input() formGroup: UntypedFormGroup = null;\r\n @Input() pageLoading: boolean = false;\r\n @Input() canDelete: boolean = true;\r\n @Input() isDelivery: boolean | undefined = false;\r\n @Output() pageLoadingChange = new EventEmitter();\r\n @Input() isDraft: boolean | undefined;\r\n @Input() revisionId: string;\r\n @Input() apiController: string;\r\n @Input() isSideBar: boolean | undefined = false;\r\n\r\n // Optional inputs\r\n // Page to redirect to after deleting, ex. 'product-labeling-listing'\r\n @Input() redirectPage?: string = '';\r\n @Input() appVariantName?: string = '';\r\n\r\n\r\n //Modal for selecting SPL Version\r\n confirmDialogSelection$: Subject = new Subject();\r\n buildModalDialogVisible: boolean;\r\n sub: Subscription;\r\n\r\n // Modal properties\r\n position: object = { X: 'center', Y: 'center' };\r\n // Slightly wider than standard to not hang text\r\n modalWidth = '32%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n\r\n isBaseRevision: boolean;\r\n\r\n ngOnInit() {\r\n // handle possible undefined\r\n const isDraft = !!this.isDraft;\r\n const isDelivery = !!this.isDelivery;\r\n\r\n // prevent isDraft and isDelivery both being TRUE\r\n this.isDraft = isDraft && !isDelivery;\r\n this.isDelivery = isDelivery && !isDraft\r\n\r\n this.isBaseRevision = !isDraft && !isDelivery;\r\n }\r\n\r\n openDeleteModal() {\r\n // If a revisionId exists, show modal for setting a version and cancel the build if Cancel is seleced.\r\n if(this.revisionId){\r\n this.deleteModal.show();\r\n }\r\n }\r\n\r\n buildDlgBtnYes: EmitType = () => {\r\n const modifiedByUser = typeof this.storageService.read('userData') === 'object' ? this.storageService.read('userData')?.name : '';\r\n\r\n this.pageLoading = true;\r\n this.pageLoadingChange.emit(this.pageLoading);\r\n\r\n this.deleteService.deleteForm(this.revisionId, this.apiController, modifiedByUser, this.appVariantName, this.isDelivery).subscribe((response) => {\r\n this.pageLoading = false;\r\n this.pageLoadingChange.emit(this.pageLoading);\r\n if (response?.isSuccess) {\r\n this.toastr.success(`Successfully Deleted Form: ${this.revisionId}`);\r\n if (this.redirectPage) {\r\n this.router.navigate(['/'.toString() + this.redirectPage]);\r\n } else {\r\n this.onFormDeactivatedSuccessful();\r\n }\r\n } else {\r\n this.toastr.error(`${response?.message}`);\r\n }\r\n },\r\n error => {\r\n this.pageLoading = false;\r\n this.pageLoadingChange.emit(this.pageLoading);\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n\r\n this.deleteModal.hide();\r\n }\r\n\r\n buildDlgBtnNo: EmitType = () => {\r\n\r\n this.deleteModal.hide();\r\n\r\n return this.confirmDialogSelection$.next(false);\r\n }\r\n\r\n buildDlgButtons: Object[] = [{ click: this.buildDlgBtnNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.buildDlgBtnYes.bind(this), buttonModel: { content: 'Confirm', isPrimary: true } }];\r\n\r\n onFormDeactivatedSuccessful() {\r\n // force reload page within router to reload data, but not lose toastr messages\r\n const initialUrl = this.router.url;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([initialUrl]);\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n\r\n let isDraft = this.isDraft;\r\n let isDelivery = this.isDelivery;\r\n\r\n if(property === 'isDraft'){\r\n isDraft = !!changes[property].currentValue;\r\n }\r\n\r\n if(property === 'isDelivery'){\r\n isDelivery = !!changes[property].currentValue;\r\n }\r\n\r\n this.isDraft = isDraft && !isDelivery;\r\n this.isDelivery = isDelivery && !isDraft;\r\n\r\n this.isBaseRevision = !this.isDraft && !this.isDelivery;\r\n }\r\n}\r\n}\r\n","\r\n \r\n\r\n\r\n\r\n   delete form\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n

Are you sure?

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport {\r\n GridComponent,\r\n QueryCellInfoEventArgs,\r\n} from \"@syncfusion/ej2-angular-grids\";\r\nimport { TooltipComponent } from \"@syncfusion/ej2-angular-popups\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ISplMessage, ISplValidation } from \"../../../shared/models\";\r\n\r\n@Component({\r\n selector: \"app-error-messages\",\r\n templateUrl: \"./error-messages.component.html\",\r\n styleUrls: [\"./error-messages.component.scss\"],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ErrorMessagesComponent implements OnChanges, OnDestroy {\r\n splErrorMessages: ISplMessage[] = [];\r\n @ViewChild(\"errorGrid\")\r\n public errorGrid: GridComponent;\r\n @Input() splValidationMessages: ISplValidation;\r\n\r\n // CustomAttributes to handle changing color of the text (Error vs Warning)\r\n public customAttributes: Object;\r\n\r\n @ViewChild(\"tooltip\", { static: true })\r\n public tooltipObj: TooltipComponent;\r\n\r\n isHideErrorsWarnings = false;\r\n sub: Subscription;\r\n public clipmodecolumn = { class: \"e-tooltipcolumn\" };\r\n defaultDisplay = \"hide\";\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n tooltipValue(args) {\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n grid = this.errorGrid;\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n customiseCell(args: QueryCellInfoEventArgs) {\r\n if (args.data[\"messageType\"] === \"Error\") {\r\n args.cell.classList.add(\"customcssError\");\r\n } else if (args.data[\"messageType\"] === \"Warning\") {\r\n args.cell.classList.add(\"customcssWarning\");\r\n }\r\n }\r\n\r\n showMessages(splValidation: ISplValidation) {\r\n if (\r\n splValidation\r\n && splValidation.validationMessages\r\n && splValidation.validationMessages.messages.length > 0\r\n ) {\r\n this.splErrorMessages = splValidation.validationMessages.messages;\r\n }\r\n\r\n this.errorGrid.refresh();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const property in changes) {\r\n if (\r\n property === \"splValidationMessages\" &&\r\n changes[property].currentValue\r\n ) {\r\n if (\r\n this.splValidationMessages &&\r\n this.splValidationMessages.validationMessages &&\r\n this.splValidationMessages.validationMessages.messages.length > 0\r\n ) {\r\n this.splErrorMessages = this.splValidationMessages.validationMessages.messages;\r\n if (!this.splErrorMessages || this.splErrorMessages.length === 0) {\r\n this.defaultDisplay = 'hide';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n showHideErrorsWarnings() {\r\n this.isHideErrorsWarnings = !this.isHideErrorsWarnings;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-error',\r\n templateUrl: './error.component.html',\r\n styleUrls: ['./error.component.css']\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n\r\n message: string;\r\n\r\n // Constructor\r\n constructor(private activatedRoute: ActivatedRoute) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.message = this.activatedRoute.snapshot.paramMap.get('message');\r\n }\r\n\r\n // Sets the message to display\r\n setMessage(message: string) {\r\n this.message = message;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Oops, something went wrong!

\r\n

Message:

\r\n

{{message}}

\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, ViewChild, OnInit, Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { AuthenticationService, AuthorizationService, StorageManagerService } from '../../../shared/services';\r\nimport { Utilities } from '../../../shared/services/utilities';\r\nimport { ESGSubmissionService } from '../../../shared/services/esg-submission-service';\r\nimport { ISubmission } from '../../../shared/models/submission.model';\r\nimport { ISubmissionItem } from '../../../shared/models/submission-item.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-esig-modal',\r\n styleUrls: ['./esig-modal.component.scss'],\r\n templateUrl: 'esig-modal.component.html'\r\n})\r\nexport class EsigModalComponent implements OnInit {\r\n @ViewChild('esigModal') esigModal: any;\r\n @ViewChild('postAuthMessageModal') postAuthMessageModal: any;\r\n @ViewChild('noEsgAccessModal') noEsgAccessModal: any;\r\n @Output() isSuccessfulySubmitted = new EventEmitter(false);\r\n clientName: string;\r\n clientId: number;\r\n clientGuid: string;\r\n @Input() fileName: string;\r\n @Input() documentType: string;\r\n @Input() splVersionNumber: string;\r\n @Input() formRevisionId: string;\r\n @Input() orderId: string;\r\n localFileName: string;\r\n localDocumentType: string;\r\n localSplVersionNumber: string;\r\n localFormRevisionId: string;\r\n localOrderId: string;\r\n \r\n hasEsgAccess: boolean;\r\n userNameField: any;\r\n passwordField: any;\r\n submitterName: string;\r\n submissionDate: string;\r\n submitterUserGuid: string;\r\n submission: ISubmission[] = [];\r\n submissionItem: ISubmissionItem;\r\n showloading: boolean = false;\r\n\r\n // Modal for selecting SPL Version\r\n confirmDialogSelection$: Subject = new Subject();\r\n isBuild: boolean;\r\n invalidSplVersion: boolean;\r\n updatedSPLVersion: string;\r\n sendModalVisible: boolean = false;\r\n sub: Subscription;\r\n formData: any;\r\n\r\n // Modal properties\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '30%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n subscription: any;\r\n eSignatureErrorMessage: any;\r\n\r\n constructor(private cdRef: ChangeDetectorRef,\r\n private storageService: StorageManagerService,\r\n private authService: AuthenticationService,\r\n private submissionService: ESGSubmissionService,\r\n private authorizationService: AuthorizationService,\r\n private route: ActivatedRoute,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.submitterName = typeof this.storageService.read('userData') === 'object' ? this.storageService.read('userData')?.name : '';\r\n this.submissionDate = new Date().toLocaleString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' });\r\n const customer = Utilities.getCustomerFromStorage(this.storageService);\r\n this.clientName = customer ? customer.customerName : '';\r\n this.clientId = customer ? customer.customerId : null;\r\n this.clientGuid = customer ? customer.customerGuid : null;\r\n this.hasEsgAccess = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-ESG', customer);\r\n }\r\n\r\n setLocalVariables() {\r\n this.localFileName = this.fileName ? this.fileName.slice() : '';\r\n this.localDocumentType = this.documentType ? this.documentType.slice() : '';\r\n this.localFormRevisionId = this.formRevisionId ? this.formRevisionId.slice() : '';\r\n this.localSplVersionNumber = this.splVersionNumber ? this.splVersionNumber.slice() : '';\r\n this.localOrderId = this.orderId ? this.orderId.slice() : '';\r\n }\r\n\r\n showEsignatureModal() {\r\n if (!this.fileName) {\r\n return;\r\n }\r\n this.setLocalVariables();\r\n // Clear to initial values\r\n this.userNameField = document.getElementById('txtUserName');\r\n this.passwordField = document.getElementById('txtPassword');\r\n this.userNameField.value = '';\r\n this.passwordField.value = '';\r\n this.eSignatureErrorMessage = '';\r\n\r\n if (this.hasEsgAccess) {\r\n this.sendModalVisible = true;\r\n this.esigModal.show();\r\n }\r\n else {\r\n this.noEsgAccessModal.show();\r\n }\r\n }\r\n\r\n eSigCancel() {\r\n this.esigModal.hide();\r\n }\r\n\r\n confirmClicked() {\r\n const btnConfirm: any = document.getElementById('btnConfirm');\r\n btnConfirm.disabled = true;\r\n this.eSignatureErrorMessage = '';\r\n\r\n const paramsContainer = {};\r\n\r\n if (!this.userNameField.value || !this.passwordField.value) {\r\n btnConfirm.disabled = false;\r\n this.eSignatureErrorMessage = 'Please enter your email and password'\r\n }\r\n else {\r\n this.showloading = true;\r\n paramsContainer['userName'] = this.userNameField.value;\r\n paramsContainer['password'] = this.passwordField.value;\r\n this.subscription = this.authService.eSigConfirmation(paramsContainer)\r\n .subscribe(res => {\r\n btnConfirm.disabled = false;\r\n\r\n if (res?.isSuccess) {\r\n this.buildDrugProductSubmissionModel();\r\n this.submissionService.createDrugProductSubmission(this.submission).subscribe(\r\n async (response) => {\r\n this.showloading = false;\r\n this.postAuthMessageModal.show();\r\n this.esigModal.hide();\r\n this.isSuccessfulySubmitted.next(true);\r\n this.submission = [];\r\n },\r\n error => {\r\n this.showloading = false;\r\n this.toastr.error(`${error && error.errorMessage ? error.errorMessage : error}`);\r\n this.postAuthMessageModal.hide();\r\n this.esigModal.hide();\r\n this.submission = [];\r\n },\r\n );\r\n }\r\n else {\r\n this.showloading = false;\r\n this.eSignatureErrorMessage = res?.message;\r\n this.submission = [];\r\n }\r\n });\r\n }\r\n }\r\n\r\n buildDrugProductSubmissionModel() {\r\n let componentName = this.route.snapshot.component.name;\r\n let submissionItemType: number;\r\n let path: string;\r\n\r\n if (componentName.toLowerCase().startsWith('bncc')) {\r\n submissionItemType = 6; // 6 = SPL-BNCC\r\n path = `BNCC/Build/${this.localFormRevisionId}`;\r\n }\r\n\r\n if (componentName.toLowerCase().startsWith('lcr')) {\r\n submissionItemType = 5; // 5 = SPL-LCR\r\n path = `LCR/Build/${this.localFormRevisionId}`;\r\n }\r\n\r\n if (componentName.toLowerCase().startsWith('er')) {\r\n submissionItemType = 4; // 4 = SPL_ER\r\n path = `ER/Build/${this.localFormRevisionId}`;\r\n }\r\n\r\n if (componentName.toLowerCase().startsWith('product')) { // product labeling and product dashboard uses same path and same item type code\r\n submissionItemType = 3; // 3 = SPL-LL\r\n // If we are sending a submission from LL, use orderId in file path.\r\n path = `ORDER/Delivery/${this.localOrderId}`;\r\n }\r\n\r\n let submissionBuilder = {\r\n submissionId: 0,\r\n submissionGuid: '',\r\n customerId: this.clientId,\r\n distributionChannel: 'US_FDA_SPL', // hard-coded to this string\r\n submissionStatusCode: 4, // hard-coded to 4 = SubmissionInProcess\r\n submissionQueueStatusCode: 2, // hard-coded to 2 = Pending\r\n submissionTypeCode: 11, // hard-coded to 11 = FdaSubmission\r\n submissionItems: [{\r\n submissionId: 0,\r\n submissionItemTypeCode: submissionItemType,\r\n rootId: '',\r\n formRevisionId: this.localFormRevisionId?.toString(),\r\n sourceFilePath: `${this.clientGuid}/${path}`,\r\n sourceFileName: this.localFileName.toString(),\r\n }],\r\n submissionXMLText: '',\r\n submissionXMLFileLocation: '',\r\n submissionCompressedFileCloudLocation: '',\r\n submissionCompressedFileName: '',\r\n createUserGuid: this.submitterUserGuid,\r\n changeUserGuid: this.submitterUserGuid,\r\n customerGuid: this.clientGuid,\r\n createDate: '',\r\n changeDate: '',\r\n submissionStatusDescription: '',\r\n submissionCoreId: '',\r\n submissionItemTypeDescription: '',\r\n rootId: '',\r\n formVersion: '',\r\n formRevisionId: '',\r\n };\r\n\r\n this.submission.push(submissionBuilder);\r\n }\r\n\r\n onEmailBlur(event) {\r\n if (this.userNameField && this.userNameField.value) {\r\n this.submissionService.getFullNameByEmail(this.userNameField.value)\r\n .subscribe(res => {\r\n if (res && res[0]) {\r\n this.submitterName = res[0].firstName + ' ' + res[0].lastName\r\n this.submitterUserGuid = res[0].userGUID;\r\n }\r\n });\r\n }\r\n }\r\n\r\n postAuthClose() {\r\n this.postAuthMessageModal.hide();\r\n }\r\n\r\n noAccessModalClose() {\r\n this.noEsgAccessModal.hide();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

E-signature Required

\r\n
\r\n
\r\n
\r\n

\r\n Submission Summary\r\n

\r\n
\r\n
\r\n
Client Name:
\r\n
{{clientName}}
\r\n
\r\n
\r\n
File Name:
\r\n
{{localFileName}}
\r\n
\r\n
\r\n
Document Type:
\r\n
{{localDocumentType}}
\r\n
\r\n
\r\n
SPL Version Number:
\r\n
{{localSplVersionNumber | number:'1.0-0' }}
\r\n
\r\n
\r\n
FDA Center:
\r\n \r\n
OC
\r\n
\r\n
\r\n
Submission Type:
\r\n \r\n
SPL
\r\n
\r\n
\r\n
Submitter:
\r\n
{{submitterName}}
\r\n
\r\n
\r\n
Submission Date:
\r\n
{{submissionDate}}
\r\n
\r\n
\r\n

\r\n Confirm the submission of this SPL file\r\n

\r\n
\r\n

\r\n By providing your username and password, you are acknowledging that all information is in accordance\r\n with the recipient health authority guidelines and approving the submission to the health authority.\r\n

\r\n
\r\n {{eSignatureErrorMessage}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

FDA Submission Status

\r\n
\r\n
\r\n
\r\n
\r\n Your SPL submission is being packaged and will be submitted to the FDA.\r\n You may track the submission process from the ESG dashboard.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

FDA Submission Status

\r\n
\r\n
\r\n
\r\n
\r\n Your Site is not enabled for ESG submissions to the FDA. Contact pharma@reedtech.com to add this ability.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n Component, OnInit, ViewChild, Input, Output, EventEmitter, AfterViewInit,\r\n} from '@angular/core';\r\nimport { UploaderComponent } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType, detach } from '@syncfusion/ej2-base';\r\nimport { SettingsService } from '../../../shared/services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AsyncSettingsModel } from '@syncfusion/ej2-inputs/src/uploader/uploader-model';\r\nimport { createSpinner } from '@syncfusion/ej2-angular-popups';\r\nimport { showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\n\r\n@Component({\r\n selector: 'app-file-upload',\r\n templateUrl: './file-upload.component.html',\r\n styleUrls: ['./file-upload.component.scss'],\r\n})\r\nexport class FileUploadComponent implements OnInit, AfterViewInit {\r\n @ViewChild('defaultupload')\r\n uploadObj: UploaderComponent;\r\n dropElement: HTMLElement;\r\n uploadSettings: AsyncSettingsModel;\r\n\r\n @Input() saveUrl: string;\r\n @Input() fileMaxSize: number | undefined;\r\n @Input() fileMinSize: number | undefined;\r\n @Input() autoUploadEnabled = true;\r\n @Input() multipleFileMode = false;\r\n @Input() iconClassName = 'fa-file-excel';\r\n @Input() formatDisplayText = 'Zip (.zip) format only';\r\n @Input() allowExtensions = '.zip';\r\n @Input() maxDropAreaHeight;\r\n @Input() sequentialUpload = false;\r\n @Output() uploading: EventEmitter = new EventEmitter();\r\n @Output() success: EventEmitter = new EventEmitter();\r\n @Output() failure: EventEmitter = new EventEmitter();\r\n totalFiles = -1;\r\n uploadedFiles = 0;\r\n\r\n constructor(private settingsService: SettingsService, private toastr: ToastrService) { }\r\n\r\n ngOnInit(): void {\r\n this.uploadSettings = {\r\n saveUrl: this.saveUrl,\r\n };\r\n const settings = this.settingsService.getSettings();\r\n if (!this.fileMinSize) {\r\n this.fileMinSize = settings.FileMinSize;\r\n }\r\n\r\n if (!this.fileMaxSize) {\r\n this.fileMaxSize = settings.FileMaxSize;\r\n }\r\n\r\n this.totalFiles = -1;\r\n this.uploadedFiles = 0;\r\n this.settingsService.UpdateLoading(false);\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.uploadObj) {\r\n this.uploadObj.dropArea = document.getElementById('dropTarget');\r\n\r\n document.getElementById('droppingArea').onclick = (e: any) => {\r\n const target: HTMLElement = e.target;\r\n if (target.classList.contains('e-file-delete-btn')) {\r\n for (let i = 0; i < this.uploadObj.getFilesData().length; i++) {\r\n if (target.parentElement.getAttribute('data-file-name') === this.uploadObj.getFilesData()[i].name) {\r\n this.uploadObj.remove(this.uploadObj.getFilesData()[i]);\r\n }\r\n }\r\n } else if (target.classList.contains('e-file-remove-btn')) {\r\n detach(target.parentElement);\r\n }\r\n };\r\n }\r\n }\r\n\r\n public browseClick() {\r\n document?.getElementsByClassName('e-file-select-wrap')[0]?.querySelector('button')?.click();\r\n return false;\r\n }\r\n\r\n public addHeaders(args: any) {\r\n args.currentRequest.setRequestHeader('Access-Control-Allow-Origin', '*');\r\n }\r\n\r\n public onUploading: EmitType = (args: any) => {\r\n // internal logic\r\n this.addHeaders(args);\r\n\r\n // Check file size\r\n const fileData = args.fileData;\r\n if (fileData.size > this.fileMaxSize || fileData.size < this.fileMinSize) {\r\n this.toastr.show('File size should not be smaller than ' + this.fileMinSize + ' and larger than ' + this.fileMaxSize + 'bytes');\r\n args.cancel = true;\r\n }\r\n\r\n // suppress event if canceling in internal method\r\n if (!args.cancel) {\r\n this.uploading?.emit(args);\r\n }\r\n };\r\n\r\n public onSuccess: EmitType = (args: any) => {\r\n setTimeout(() => {\r\n this.uploadObj.remove(args.file);\r\n\r\n\t\t}, 3000);\r\n\r\n this.success?.emit(args);\r\n this.allFilesUploadedCheck();\r\n };\r\n\r\n public onfailure: EmitType = (args: any) => {\r\n // future internal logic\r\n\r\n this.failure?.emit(args);\r\n this.allFilesUploadedCheck();\r\n };\r\n\r\n onFileSelected: EmitType = (args: any) => {\r\n this.uploadedFiles = 0; \r\n\r\n this.totalFiles = args.filesData.length;\r\n this.settingsService.UpdateLoading(true);\r\n let all = this.uploadObj.getFilesData();\r\n\r\n const filteredList = all.filter(obj1 => {\r\n return args.filesData.some(obj2 => obj1.name === obj2.name);\r\n });\r\n\r\n if (filteredList.length > 0) {\r\n this.uploadObj.remove(filteredList);\r\n }\r\n \r\n }\r\n\r\n public onFailure(args: any): void {\r\n let response = JSON.parse(args.e.currentTarget.response);\r\n args.statusText = response.message;\r\n }\r\n\r\n allFilesUploadedCheck() {\r\n this.uploadedFiles++;\r\n if (this.uploadedFiles === this.totalFiles) {\r\n this.settingsService.UpdateLoading(false);\r\n this.totalFiles = -1;\r\n this.uploadedFiles = 0;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n Drag and drop {{multipleFileMode ? 'files' : 'a file'}} here to upload data
{{formatDisplayText}}\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-forbidden',\r\n templateUrl: 'forbidden.component.html',\r\n})\r\nexport class ForbiddenComponent {\r\n public message: string;\r\n public values: any[];\r\n\r\n constructor() {\r\n this.message = 'ForbiddenComponent constructor';\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Forbidden

\r\n

You have no rights to access the application.

\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\n\r\nimport { fadeInOut } from '../../../shared/helpers/animations';\r\n\r\n\r\n@Component({\r\n selector: 'app-no-esg-access-modal',\r\n templateUrl: 'no-esg-access-modal.component.html',\r\n styleUrls: ['no-esg-access-modal.component.scss'],\r\n animations: [fadeInOut],\r\n})\r\nexport class NoEsgAccessModalComponent implements OnInit{\r\n // Modal properties\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '30%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n subscription: any;\r\n eSignatureErrorMessage: any;\r\n public message: string;\r\n constructor(private router: Router) {\r\n this.message = 'NoEsgAccessModalComponent constructor';\r\n }\r\n\r\n ngOnInit() {\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n noAccessModalClose() {\r\n this.router.navigate(['/home']);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n

FDA Submission Status

\r\n
\r\n
\r\n
\r\n
\r\n Your Site is not enabled for ESG submissions to the FDA. Contact pharma@reedtech.com to add this ability.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ILLProduct } from '../../../shared/models';\r\n\r\n@Component({\r\n selector: 'app-product-accordion-item',\r\n templateUrl: './product-accordion-item.component.html',\r\n styleUrls: ['./product-accordion-item.component.scss']\r\n})\r\nexport class ProductAccordionItemComponent {\r\n\r\n @Input() product: ILLProduct;\r\n @Input() formProdIndex: ILLProduct;\r\n @Output() productToDeleteEmitter = new EventEmitter();\r\n @Output() showPartEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n deleteProductItem() {\r\n\r\n this.productToDeleteEmitter.emit(this.formProdIndex);\r\n }\r\n\r\n showPartItem() {\r\n this.showPartEmitter.emit(this.formProdIndex);\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n Proprietary Name\r\n
\r\n
\r\n {{product.proprietaryName}}\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n Part {{i+1}}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n clone product\r\n
\r\n
\r\n delete product\r\n
\r\n
\r\n delete kit\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Utilities } from '../../../shared/services/utilities';\r\n\r\n@Component({\r\n selector: 'app-pragmatic-grid-column',\r\n templateUrl: './pragmatic-grid-column.component.html',\r\n styleUrls: ['./pragmatic-grid-column.component.scss'],\r\n})\r\n\r\nexport class PragmaticGridColumnComponent implements OnInit {\r\n @Input() data!:any;\r\n @Output() onDownload = new EventEmitter();\r\n formatOptions: { type: string; format: string; };\r\n\r\n ngOnInit(): void {\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() };\r\n }\r\n\r\n downloadFile(filePath: string, fileName: string) {\r\n this.onDownload.emit({filePath, fileName});\r\n }\r\n}\r\n","= 3\">\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Validation {{data.pragmaticValidationStatus == 'Fail' ? 'Failed' : 'Passed'}}\r\n \r\n \r\n \r\n Results\r\n \r\n
\r\n
\r\n Timeout, please retry\r\n\r\n
\r\n
\r\nIn process...\r\n","
\r\n
\r\n \r\n  \r\n \r\n {{name}}\r\n
\r\n \r\n
\r\n \r\n  \r\n \r\n {{name}}\r\n
\r\n \r\n
\r\n \r\n  \r\n \r\n {{name}}\r\n
\r\n \r\n
\r\n \r\n  \r\n \r\n {{name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-warning-icon',\r\n templateUrl: './warning-icon.component.html',\r\n styleUrls: ['./warning-icon.component.scss']\r\n})\r\nexport class WarningIconComponent {\r\n @Input() name: string;\r\n @Input() type: boolean;\r\n @Input() bIsOrder: boolean;\r\n @Input() bIsCheckForLOVEntry: boolean;\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbTabset, NgbTabsetConfig } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ColumnChooserService, GridComponent, PageService, ToolbarService, VirtualScrollService } from '@syncfusion/ej2-angular-grids';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { ICompanyContactStatus, ICompanyDetail } from '../../shared/models/index';\r\nimport { AuthorizationService, CompanyContactService, StorageManagerService } from '../../shared/services/index';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { DeleteButtonComponent } from '../common/delete-button/delete-button.component';\r\nimport { Utilities } from '../../shared/services/utilities';\r\n@Component({\r\n selector: 'app-company-dashboard',\r\n templateUrl: './company-dashboard.component.html',\r\n styleUrls: ['./company-dashboard.component.scss'],\r\n providers: [ToolbarService, ColumnChooserService, PageService, NgbTabsetConfig, VirtualScrollService],\r\n animations: [fadeInOut]\r\n})\r\n\r\nexport class CompanyDashboardComponent implements OnInit {\r\n @ViewChild('company_grid')\r\n public company_grid: GridComponent;\r\n @ViewChild('drafts_grid')\r\n public draftsGrid: GridComponent;\r\n @ViewChild('tabset', { static: true })\r\n public tabset: NgbTabset;\r\n @ViewChild('tooltip')\r\n public tooltip: TooltipComponent;\r\n @ViewChild('deleteCompany')\r\n public deleteButton: DeleteButtonComponent;\r\n @ViewChild('deleteDraftCompany')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n\r\n @Input() company_grid_data: ICompanyDetail[];\r\n @Input() drafts_grid_data: ICompanyDetail[];\r\n public initialPage: Object;\r\n public toolbarOptions: Object;\r\n errorMessage: string;\r\n count_company: number;\r\n count_draftcompany: number;\r\n FORM_STATUS_ACTIVE = 'A';\r\n FORM_STATUS_DRAFT = 'D';\r\n companyStatus: ICompanyContactStatus;\r\n loading = true;\r\n public formatOptions: any;\r\n activeTab: string;\r\n sub: Subscription;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n hasWritePermission = false;\r\n hasDeletePermission = false;\r\n selectedCompanyRevisionId: number | undefined;\r\n\r\n constructor(private router: Router, private toastr: ToastrService, private companySvc: CompanyContactService, private sanitizer: DomSanitizer,\r\n private storageManagerService: StorageManagerService, private authorizationService: AuthorizationService, ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.checkUserPermission();\r\n\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.hasWritePermission);\r\n\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n // clear out previously saved info\r\n sessionStorage['currentCompanyId'] = null;\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n this.getCompanies();\r\n\r\n this.activeTab = 'company';\r\n\r\n // Fix for footer spacing issues\r\n document.getElementsByTagName('footer')[0].classList.add(\"footer-spacing-fix\");\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteCompany')) {\r\n this.hasWritePermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteCompany')) {\r\n this.hasDeletePermission = true;\r\n }\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n this.selectedCompanyRevisionId = undefined;\r\n }\r\n\r\n createCustomToolbarItems(deletePermission: boolean, writePermission: boolean) {\r\n let toolbarItems = [];\r\n\r\n if (writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New Company',\r\n tooltipText: 'Add a new company to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if(deletePermission){\r\n toolbarItems.push(\r\n {\r\n text: 'Delete Company',\r\n tooltipText: 'Delete the selected company',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n )\r\n }\r\n\r\n toolbarItems.push('Search');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n grid = this.draftsGrid;\r\n break;\r\n case 'company':\r\n grid = this.company_grid;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltip.cssClass = 'customTooltip';\r\n this.tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n // Grid toolbar click event handler\r\n toolbarClick(args: ClickEventArgs): void {\r\n if (args.item.id === 'create-form-btn') {\r\n this.router.navigate(['company-details']);\r\n }\r\n if (args.item.id === 'tool-bar-delete' && this.selectedCompanyRevisionId) {\r\n if(this.company_grid){\r\n this.deleteButton.revisionId = this.selectedCompanyRevisionId.toString();\r\n this.deleteButton.openDeleteModal();\r\n }\r\n else if(this.draftsGrid){\r\n this.deleteButtonDrafts.revisionId = this.selectedCompanyRevisionId.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n }\r\n }\r\n\r\n // Retrieve a list of companies\r\n getCompanies() {\r\n this.companySvc.GetCompanyDashboard().subscribe(data => {\r\n if (data && data.length) {\r\n this.loading = false;\r\n\r\n this.drafts_grid_data = data.filter(p => p.isDraftMode === true);\r\n this.count_draftcompany = this.drafts_grid_data.length;\r\n\r\n this.company_grid_data = data.filter(p => p.isDraftMode === false);\r\n this.count_company = this.company_grid_data.length;\r\n\r\n } else {\r\n this.loading = false; // no data so stop the spinner\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.toastr.error(error.message);\r\n }\r\n );\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'version':\r\n args.currentFilterObject.value = `${args.currentFilterObject.value}.0`;\r\n break;\r\n case 'modified':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Display detail of a single company\r\n viewCompany(companyRevisionId: string, companyId: string) {\r\n if (companyRevisionId) {\r\n sessionStorage['currentCompanyRevisionId'] = companyRevisionId;\r\n\r\n this.router.navigate(['/company-details', companyRevisionId]);\r\n }\r\n }\r\n\r\n companyGridRowSelected(e: any){\r\n this.selectedCompanyRevisionId = e.data.companyRevisionId;\r\n }\r\n\r\n companyGridRowDeselected() {\r\n this.selectedCompanyRevisionId = undefined;\r\n }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n const currentGrid = this.activeTab === 'company' ? this.company_grid : this.draftsGrid;\r\n if (currentGrid.getSelectedRecords().length) {\r\n currentGrid.clearSelection();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Companies

\r\n

\r\n Maintain and store your entire portfolio of companies in a single location. Enter once and reuse many times.\r\n Locate your companies in the grid below or click search options to update a stored company. Click 'Create new company' to create a new company for use.\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Companies ({{ count_company }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{this.company_grid_data.companyName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Drafts ({{ count_draftcompany }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{this.drafts_grid_data.companyName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, QueryList, ViewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CheckBoxComponent } from '@syncfusion/ej2-angular-buttons';\r\nimport { DropDownListComponent, MultiSelectComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { DialogComponent, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { CheckBox } from '@syncfusion/ej2-buttons';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { selectCompanyTypeValidator } from '../../shared/helpers/company-type.validator';\r\nimport { IContactCompany } from '../../shared/models/contact-company-association.model';\r\nimport { IBusinessOperationQualifier, IBusinessOperationQualifierList, ICompany, ICompanyDetail, ICompanyTypeInfo, IContactDetail, IContactForSave, IEntity, ILLBusinessCategory, INdcLabeler } from '../../shared/models/index';\r\nimport { NonLatestCompanyContact } from '../../shared/models/non-latest-company-contact';\r\nimport { AuthenticationService } from '../../shared/services/authentication.service';\r\nimport { AuthorizationService, CompanyContactService } from '../../shared/services/index';\r\nimport { RefdataService } from '../../shared/services/refdata.service';\r\nimport { StorageManagerService } from '../../shared/services/storage-manager.service';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { ContactDetailComponent, ERFormComponent, LCRFormComponent, LLFormEstablishmentComponent, LLFormLabelerComponent, LLFormRegistrantComponent } from '../index';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-company-details',\r\n templateUrl: './company-details.component.html',\r\n styleUrls: ['./company-details.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class CompanyDetailsComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {\r\n public toolTipControl: TooltipComponent;\r\n public companyForm: UntypedFormGroup;\r\n public businessOperations: UntypedFormArray;\r\n public pageTitle: string;\r\n public companies: Object;\r\n private sub: Subscription;\r\n\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n errorMessage: string;\r\n @ViewChild('establishment') public establishment: CheckBoxComponent;\r\n @Input() companyHistory_grid_data: ICompanyDetail[];\r\n @Input() company_grid_data: ICompanyDetail[];\r\n @Input() contactData: IContactDetail[];\r\n @ViewChild('ejDialog') public ejDialog: DialogComponent;\r\n @ViewChild('dialogConfirmation') public dialogConfirmation: DialogComponent;\r\n @ViewChildren('BusinessOperQ') boq_mdrp: QueryList;\r\n @ViewChild('contactDetail') contact: ContactDetailComponent;\r\n\r\n @ViewChild('countryRegionDdw') countryRegionDdw: DropDownListComponent;\r\n\r\n @ViewChild('tooltipCompanies') tooltipCompanies: TooltipComponent;\r\n\r\n @ViewChild('tooltipError') tooltipError: TooltipComponent;\r\n\r\n @ViewChild('companyHistory_grid') companyHistoryGrid: GridComponent;\r\n\r\n @ViewChild('errorGrid') errorGrid: GridComponent;\r\n\r\n msArray: MultiSelectComponent[] = [];\r\n companyData: any;\r\n public initialPage: Object;\r\n public sortOptions: Object;\r\n countries: IEntity[];\r\n regions$: Observable;\r\n regions: IEntity[];\r\n businessCategories: ILLBusinessCategory[];\r\n businessOperationsQualifierList: IBusinessOperationQualifier[][] = [];\r\n selectedBusinessCategoryId: any;\r\n selectedCountryId: string;\r\n selectedRegionId: string;\r\n selectedDrpRegionId: string;\r\n buttonText: string;\r\n contactId: string;\r\n submitted = false;\r\n loading = false;\r\n disableUpdateCompanyButton = true;\r\n company: ICompanyDetail;\r\n companyId: string;\r\n companyRevisionId: string;\r\n contactRevisionId: string;\r\n version: string;\r\n formStatus: string;\r\n COUNTRY_USA = '185'; // Country code for United States\r\n countryRegion: any;\r\n country: any;\r\n countryId: any;\r\n companyForCreation: ICompany;\r\n lstCompanyAssociations: IContactForSave[] = [];\r\n lstBusiOperQualifiers: IBusinessOperationQualifier[] = [];\r\n companyAssociations: IContactCompany[] = [];\r\n contactValidationTitleMsg: string;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n hide: any;\r\n public visible: Boolean = true;\r\n public hidden: Boolean = false;\r\n public confirmCloseIcon: Boolean = true;\r\n public showCloseIcon: Boolean = true;\r\n contacts: IEntity[];\r\n selectedContact: string;\r\n public selectedContact_est: string;\r\n selectedContact_3rdParty_est: string;\r\n selectedContactId_Importer: string;\r\n selectedContactId_Labeler: string;\r\n selectedContactId_Registrant: string;\r\n selectedContactId_usAgent: string;\r\n regionFromDrp: string;\r\n public companyType: string;\r\n showEditLink_Est = false;\r\n showEditLink_3rdParty_Est = false;\r\n showEditLink_Importer = false;\r\n showEditLink_Labeler = false;\r\n showEditLink_USAgent = false;\r\n showEditLink_Registrant = false;\r\n isEstablishmentChecked = false;\r\n is3rdPartyEstablishmentChecked = false;\r\n bIsDraftMode: boolean;\r\n bHasPermission = false;\r\n bHasDeletePermission = false;\r\n public businessOperationsPlaceholder: String = 'Select option(s)';\r\n public animationSettings_dialog: Object = { effect: 'Fade' };\r\n businessOperationArray: IBusinessOperationQualifier[] = [];\r\n labelers: INdcLabeler[] = [];\r\n boArr: number[] = [];\r\n iconTypeContact = false;\r\n splValidationMessages: any[];\r\n bValidationErrorExist = false;\r\n bIsInternationalCompany = false;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n @Output() cancelButtonClickedOutput = new EventEmitter();\r\n @Output() companyOutput = new EventEmitter();\r\n @Input() parentComponentInput: LCRFormComponent | ERFormComponent | LLFormLabelerComponent | LLFormEstablishmentComponent | LLFormRegistrantComponent;\r\n\r\n // Business Operations\r\n businessOperationsTermList: IBusinessOperationQualifier[];\r\n nonLatestCompanyContact = new NonLatestCompanyContact();\r\n\r\n // maps the appropriate column to fields property\r\n public companyTypes: ICompanyTypeInfo[] = [{\r\n type: 'Establishment_Owned',\r\n ckName: 'isEstablishmentOwner',\r\n dbField: 'establishmentOwner',\r\n dropdownCtrlName: 'contact_Est'\r\n },\r\n {\r\n type: 'Establishment_Third_Party',\r\n ckName: 'isThirdPartyEstablishment',\r\n dbField: 'isThirdPartyEstablishment',\r\n dropdownCtrlName: 'contact_3rdParty_Est'\r\n },\r\n {\r\n type: 'Importer',\r\n ckName: 'isImporter',\r\n dbField: 'importer',\r\n dropdownCtrlName: 'contact_Importer'\r\n },\r\n {\r\n type: 'Labeler',\r\n ckName: 'isLabeler',\r\n dbField: 'labeler',\r\n dropdownCtrlName: 'contact_Labeler'\r\n },\r\n {\r\n type: 'Registrant',\r\n ckName: 'isRegistrant',\r\n dbField: 'registrant',\r\n dropdownCtrlName: 'contact_Registrant'\r\n },\r\n {\r\n type: 'US_Agent',\r\n ckName: 'isUSAgent',\r\n dbField: 'usAgent',\r\n dropdownCtrlName: 'contact_usAgent'\r\n }\r\n ];\r\n\r\n public companyTypeCtrlNames: string[] = ['isEstablishmentOwner', 'isThirdPartyEstablishment', 'isImporter', 'isLabeler', 'isRegistrant', 'isUSAgent'];\r\n // maps the appropriate column to fields property\r\n public businessCategoryFields: Object = {\r\n text: 'label',\r\n value: 'categoryId'\r\n };\r\n public businessOperationFields: Object = {\r\n text: 'parentTermValueName',\r\n value: 'parentTermValueCode'\r\n };\r\n public businessOperationsQualifierField: Object = {\r\n text: 'childTermValueName',\r\n value: 'childTermValueCode'\r\n };\r\n public countryFields: Object = {\r\n text: 'label',\r\n value: 'id'\r\n };\r\n public stateFields: Object = {\r\n text: 'regionAndAbbreviation',\r\n value: 'regionAndAbbreviation'\r\n };\r\n public contactFields: Object = {\r\n text: 'contactName',\r\n value: 'contactRevisionId'\r\n };\r\n\r\n // set the placeholder to DropDownList input elements\r\n public businessCategoryWaterMark = 'Select a business category';\r\n public businessOperationWaterMark = 'Select a business operation';\r\n public businessOperationQualifierWaterMark = 'Select a business operation Qualifier';\r\n public stateWaterMark = 'Select a state/province';\r\n public countryWaterMark = 'Select a country';\r\n public contactWaterMark = 'Select a contact';\r\n formErrors = {\r\n address: '',\r\n city: '',\r\n countryId: '',\r\n countryRegion: '',\r\n zip: '',\r\n companyName: '',\r\n businessCategoryId: '',\r\n status: '',\r\n duns: '',\r\n fei: '',\r\n businessOperations: '',\r\n isLabeler: '',\r\n isRegistrant: '',\r\n isUSAgent: '',\r\n isImporter: '',\r\n isEstablishmentOwner: '',\r\n isThirdPartyEstablishment: '',\r\n labelerCodes: '',\r\n contactEst: '',\r\n contact3rdPartyEst: '',\r\n contactImporter: '',\r\n contactLabeler: '',\r\n contactRegistrant: ''\r\n };\r\n\r\n validationMessages = {\r\n companyName: {\r\n required: 'Company name is required.'\r\n },\r\n city: {\r\n required: 'City is required.'\r\n },\r\n address: {\r\n required: 'Street address is required.'\r\n },\r\n countryId: {\r\n required: 'Country is required.'\r\n },\r\n countryRegion: {\r\n required: 'State/Province is required'\r\n },\r\n zip: {\r\n required: 'Postal code is required',\r\n pattern: 'Invalid postal code'\r\n },\r\n duns: {\r\n pattern: 'Cannot contain special characters',\r\n minlength: 'Must be 9 digits',\r\n required: 'DUNS number is required'\r\n },\r\n businessCategoryId: {\r\n required: 'Business category is required'\r\n },\r\n businessOperations: {\r\n required: 'business Operations is required.'\r\n },\r\n status: {\r\n required: 'Status is required'\r\n }\r\n };\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router, private cdRef: ChangeDetectorRef,\r\n private authService: AuthenticationService,\r\n private authorizationService: AuthorizationService,\r\n private toastr: ToastrService, private storageManagerService: StorageManagerService,\r\n private companyService: CompanyContactService,\r\n private utilService: Utilities,\r\n private refDataService: RefdataService, private sanitizer: DomSanitizer) { }\r\n\r\n // set the height of the popup element\r\n public ddwHeight = '220px';\r\n public ddwWdith = '240px';\r\n public ddwWdithContact = '300px';\r\n public msDdwHeight = '100px';\r\n\r\n ngOnInit(): void {\r\n\r\n this.companyForm = this.fb.group({\r\n companyName: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n duns: ['', { validators: [Validators.required, Validators.pattern(/^[0-9]*$/), Validators.minLength(9), Validators.maxLength(9)], updateOn: 'blur' }],\r\n fei: ['', { validators: [Validators.pattern(/^(?=(?:.{7}|.{10})$)[0-9]*$/)], updateOn: 'blur' }],\r\n address: ['', { updateOn: 'blur' }],\r\n city: ['', { updateOn: 'blur' }],\r\n countryId: ['', { updateOn: 'blur' }],\r\n countryRegion: ['', { updateOn: 'blur' }],\r\n zip: ['', { updateOn: 'blur' }],\r\n contact_Est: ['', { updateOn: 'blur' }],\r\n contact_3rdParty_Est: ['', { updateOn: 'blur' }],\r\n contact_Labeler: ['', { updateOn: 'blur' }],\r\n contact_Importer: ['', { updateOn: 'blur' }],\r\n contact_Registrant: ['', { updateOn: 'blur' }],\r\n contact_usAgent: ['', { updateOn: 'blur' }],\r\n contact_allCompanyTypes: ['', { updateOn: 'blur' }],\r\n status: ['Active', { validators: [Validators.required], updateOn: 'blur' }],\r\n businessCategoryId: ['', { updateOn: 'blur' }],\r\n ndcLabelerCodes: this.fb.array([this.addLabelerFormGroup()]),\r\n businessOperationsForm: this.fb.array([this.createItem(true)]),\r\n allCompanyTypes: [''],\r\n isLabeler: [''],\r\n isRegistrant: [''],\r\n isUSAgent: [''],\r\n isImporter: [''],\r\n isThirdPartyEstablishment: [''],\r\n isEstablishmentOwner: ['']\r\n }, { validator: selectCompanyTypeValidator('isEstablishmentOwner', 'isThirdPartyEstablishment', 'isLabeler', 'isRegistrant', 'isUSAgent', 'isImporter') });\r\n\r\n this.companyRevisionId = this.activatedRoute.snapshot.params.companyRevisionId;\r\n this.companyData = this.activatedRoute.snapshot.data['companyData'];\r\n sessionStorage['tab'] = 'company';\r\n sessionStorage['fromCompanyPage'] = false;\r\n this.errorMessage = '';\r\n this.contactValidationTitleMsg = '';\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.clearEditFlags();\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n\r\n if (this.parentComponentInput && (this.parentComponentInput instanceof LCRFormComponent || this.parentComponentInput instanceof ERFormComponent || this.parentComponentInput instanceof LLFormEstablishmentComponent || this.parentComponentInput instanceof LLFormLabelerComponent || this.parentComponentInput instanceof LLFormRegistrantComponent)) {\r\n\r\n const type = this.parentComponentInput instanceof ERFormComponent ? 'Labeler' : 'Establishment_Owned';\r\n\r\n this.selectCompanyTypeFromModal(type);\r\n } else {\r\n\r\n this.populateDataFromResolver();\r\n }\r\n\r\n this.setButtons();\r\n\r\n // check for user access priviledge\r\n this.checkUserPermission();\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n setButtons() {\r\n // For new company\r\n if (!this.companyRevisionId) {\r\n this.buttonText = 'Create company';\r\n this.pageTitle = 'Create company';\r\n // Set company status default to \"Active\"\r\n this.getFormControlByName('status').patchValue('Active');\r\n this.version = '';\r\n this.formStatus = '';\r\n this.selectedBusinessCategoryId = '';\r\n this.selectedCountryId = '';\r\n this.selectedRegionId = '';\r\n } else { // Modify existing company\r\n this.buttonText = 'Update company';\r\n this.pageTitle = 'Update company';\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n populateDataFromResolver() {\r\n if (this.companyData.error) {\r\n this.toastr.error(this.companyData.error);\r\n } else {\r\n if (this.companyData) {\r\n if (this.companyData[0]) { // Business category\r\n this.businessCategories = this.companyData[0];\r\n }\r\n if (this.companyData[1]) { // countries\r\n this.countries = this.companyData[1]['countryList'];\r\n }\r\n if (this.companyData[2]) { // list of contacts\r\n this.contacts = this.companyData[2]['latestAvailableContactsList'];\r\n }\r\n if (this.companyData[3]) { // business operation qualifiers\r\n // Cache business operation qualifier info\r\n this.storageManagerService.write('businessOperationQualifiers', this.companyData[3]);\r\n this.businessOperationsTermList = this.refDataService.GetBusinessOperationsList();\r\n }\r\n\r\n if (this.companyData[5]) { // Previously saved business operation qualifiers\r\n this.businessOperationArray = this.companyData[5];\r\n }\r\n if (this.companyData[6]) { // company detail\r\n this.company = this.companyData[6]['companyDetails'];\r\n this.bIsDraftMode = this.company.isDraftMode;\r\n this.companyAssociations = this.companyData[6]['associatedContacts'];\r\n this.companyId = this.company.companyId;\r\n this.displayCompany(this.company);\r\n this.selectedCountryId = +this.company.countryId === 0 || this.company.countryId === null || this.company.countryId === undefined ? '' : this.company.countryId;\r\n this.bIsInternationalCompany = this.isInternationalCompany(+this.selectedCountryId);\r\n this.selectedBusinessCategoryId = this.company.businessCategory && this.company.businessCategory.categoryId ? this.company.businessCategory.categoryId : null;\r\n this.getFormControlByName('countryId').patchValue(this.selectedCountryId);\r\n // this.getFormControlByName('businessCategoryId').patchValue(+this.selectedBusinessCategoryId);\r\n this.companyForm.patchValue({\r\n businessCategoryId: this.selectedBusinessCategoryId\r\n });\r\n\r\n this.selectedRegionId = this.company.countryRegion;\r\n this.regionFromDrp = this.company.countryRegion;\r\n\r\n this.version = this.company.version;\r\n this.formStatus = 'Form Status: ' + this.company.formActiveFlag;\r\n\r\n this.companyForm.patchValue({\r\n countryRegion: this.company.countryRegion\r\n });\r\n\r\n this.regions = [];\r\n if (this.selectedCountryId) {\r\n this.regions$ = this.getRegionsByCountry(this.selectedCountryId);\r\n\r\n this.sub = this.regions$.subscribe(data => {\r\n this.regions = data;\r\n });\r\n }\r\n\r\n if (this.companyData[7]) { // Previously saved business operation qualifiers\r\n this.labelers = this.companyData[7];\r\n // Populate Labeler forms\r\n\r\n this.companyForm.setControl(\r\n 'ndcLabelerCodes',\r\n this.setLabelerForm(this.labelers)\r\n );\r\n }\r\n } else {\r\n this.regions = [];\r\n }\r\n\r\n if (this.companyData[4]) { // company historical data\r\n this.companyHistory_grid_data = this.companyData[4];\r\n // Check if a draft version exists if this is a major version\r\n if (!this.company.isDraftMode && this.companyHistory_grid_data) {\r\n const draftData = this.companyHistory_grid_data.filter(p => p.isDraftMode === true);\r\n if (draftData && draftData.length > 0) {\r\n this.toastr.warning('A draft version of this form already exists. It is recommended you complete the current draft version before creating a new draft otherwise those changes will be lost.');\r\n }\r\n }\r\n }\r\n }\r\n this.companyForm.markAsPristine();\r\n }\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Update Contact\" button\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteCompany')) {\r\n this.bHasPermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteCompany')) {\r\n this.bHasDeletePermission = true;\r\n }\r\n }\r\n\r\n // Check if the company is an international company\r\n isInternationalCompany(countryID: number) {\r\n let bRet = false;\r\n if (countryID !== +this.COUNTRY_USA) {\r\n bRet = true;\r\n }\r\n\r\n return bRet;\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n this.initBusinessOperationQualifier();\r\n\r\n if (this.countryRegionDdw) {\r\n this.countryRegionDdw.value = this.selectedRegionId;\r\n }\r\n\r\n this.companyForm.patchValue({\r\n\r\n countryRegion: this.selectedRegionId\r\n });\r\n\r\n this.cdRef.detectChanges();\r\n}\r\n\r\n getCompanyId() {\r\n this.companyRevisionId = this.activatedRoute.snapshot.params.companyRevisionId;\r\n }\r\n\r\n // Retrieve a list of available contacts\r\n getContactList(): void {\r\n\r\n this.sub = this.companyService.getContacts().subscribe(data => {\r\n if (data) {\r\n this.contacts = data['latestAvailableContactsList'];\r\n // pre-select from the contact dropdown\r\n const currentContact = data['latestAvailableContactsList'].filter(x => x.contactId === +sessionStorage['ValidatedContactId']);\r\n if (currentContact && currentContact[0]) {\r\n const selectedContact = this.getFormControlByName(sessionStorage['selectedContact_dropdownCtrlName']);\r\n if (selectedContact) {\r\n selectedContact.patchValue(currentContact[0].contactRevisionId);\r\n this.contactRevisionId = currentContact[0].contactRevisionId;\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Get detail information for a specific contact\r\n getContactById(): void {\r\n this.sub = this.companyService.getContactById(this.contactRevisionId).subscribe(data => {\r\n if (data) {\r\n this.contactData = data['contactDetail'];\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Retrieve a list of Regions/States based on the country selected by the user\r\n getRegionsByCountry(countryCode: string): Observable {\r\n\r\n this.regions$ = this.companyService.getRegionsByCountry(countryCode);\r\n\r\n return this.regions$;\r\n }\r\n\r\n // Retrieve historical company records\r\n getCompanyRevisionHistory(): void {\r\n this.sub = this.companyService.getCompanyRevisionHistory(Number(this.companyRevisionId)).subscribe(data => {\r\n if (data) {\r\n this.companyHistory_grid_data = data;\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // if the region code is not valid, set to empty\r\n validateRegion(regionCode: string) {\r\n if (this.regions) {\r\n const match = this.regions.filter(x => x.regionAndAbbreviation === regionCode);\r\n return match.length > 0 ? regionCode : '';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n // Format \"Version\" column on company history grid\r\n customizeCell(args: QueryCellInfoEventArgs) {\r\n if (args.column.field === 'version') {\r\n if (args.data['activeFlagFormatted'] === 'Active') {\r\n args.cell.innerHTML = args.data['version'] + ' current';\r\n }\r\n }\r\n }\r\n\r\n // Get the state/regions for the country selected\r\n countrySelectionChanged(event) {\r\n\r\n if (event.itemData) {\r\n\r\n this.regions$ = this.getRegionsByCountry(event.itemData.id);\r\n this.bIsInternationalCompany = this.isInternationalCompany(event.itemData.id);\r\n this.sub = this.regions$.subscribe(data => {\r\n\r\n this.regions = data;\r\n this.cdRef.detectChanges();\r\n });\r\n } else {// selection being removed\r\n\r\n this.regionFromDrp = '';\r\n this.selectedRegionId = '';\r\n this.companyForm.controls['countryRegion'].patchValue('');\r\n\r\n this.countryRegionDdw.dataSource = [];\r\n this.countryRegionDdw.dataBind();\r\n this.countryRegionDdw.refresh();\r\n this.countryRegionDdw.value = null;\r\n this.bIsInternationalCompany = false;\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n\r\n stateSelectionChanged(event) {\r\n this.regionFromDrp = '';\r\n if (event.itemData) {\r\n this.regionFromDrp = event.itemData.regionAndAbbreviation;\r\n\r\n this.companyForm.controls['countryRegion'].patchValue(event.itemData.regionAndAbbreviation);\r\n } else {\r\n\r\n this.regionFromDrp = '';\r\n this.selectedRegionId = '';\r\n this.companyForm.controls['countryRegion'].patchValue('');\r\n\r\n this.countryRegionDdw.value = null;\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n // when user selecting contact to be associated with certain type of companu\r\n contactDrpSelectionChanged(event, type) {\r\n const associatedContact = new IContactCompany();\r\n associatedContact.associationType = type;\r\n associatedContact.associationActiveFlag = true;\r\n\r\n // Get the company Type for this contactf\r\n this.companyType = type;\r\n if (event.itemData) {\r\n // Get Contact Id\r\n this.contactRevisionId = event.itemData.contactRevisionId;\r\n this.contactId = event.itemData.contactId;\r\n associatedContact.contactRevisionId = this.contactRevisionId;\r\n\r\n // Call API to validate if the selected contact has sufficient data for the company type it is being assigned to\r\n // if contact being selected does not have required data for the company type, allow user to enter contact info\r\n const currentCompanyTypeInfo = this.companyTypes.filter(x => x.type === type)[0];\r\n sessionStorage['selectedContact_dropdownCtrlName'] = currentCompanyTypeInfo.dropdownCtrlName;\r\n if (sessionStorage['ValidatedContactSave'] === 'null' || sessionStorage['ValidatedContactSave'] === undefined) {\r\n this.ValidateContactAssociation(associatedContact);\r\n } else {\r\n sessionStorage['ValidatedContactSave'] = null;\r\n }\r\n // Show Contact Detail link ( don't show if Company is opened in the modal)\r\n if (!this.parentComponentInput) {\r\n this.showEditLinkFlags(type);\r\n }\r\n\r\n } else { // remove selection\r\n // hide contact detail link\r\n this.hideEditLinkFlags(type);\r\n }\r\n }\r\n\r\n // Validate if a contact has required information for a specific type of company\r\n ValidateContactAssociation(contact: IContactCompany): void {\r\n this.sub = this.companyService.ValidateContactAssociation(contact).subscribe(data => {\r\n if (data) {\r\n if (!data.isValid) {\r\n this.contactValidationTitleMsg = data.errorMessage;\r\n sessionStorage['ValidatedContactId'] = this.contactId;\r\n sessionStorage['ValidatedContactSave'] = null;\r\n this.dialogConfirmation.show();\r\n }\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Save/Update company info\r\n saveCompany(formValues): void {\r\n this.submitted = true;\r\n this.errorMessage = '';\r\n this.bValidationErrorExist = false;\r\n\r\n if (this.companyForm.valid) {\r\n this.companyForm.markAsPristine();\r\n this.prepareDataForSave(formValues);\r\n\r\n const uniqueLabelers = this.removeDuplicatesLabelersFromArray(formValues.ndcLabelerCodes);\r\n\r\n const companyForCreation: ICompany = {\r\n companyDetails: formValues,\r\n CompanyContactAssociation: this.getSelectedContactsForSave(),\r\n businessOperQualifier: this.getSelectedBusinessOperQualifiersForSave(),\r\n ndcLabelerCodes: uniqueLabelers\r\n };\r\n\r\n this.sub = this.companyService.createCompany(companyForCreation).subscribe(data => {\r\n // Check for Busness Operations validate errors\r\n if (data && data.isValid === false) {\r\n this.splValidationMessages = data['validationMessages'];\r\n this.bValidationErrorExist = true;\r\n this.cdRef.detectChanges();\r\n } else {\r\n\r\n if (!this.parentComponentInput) {\r\n if (!this.bIsDraftMode) {\r\n this.router.navigate(['/company-dashboard']);\r\n return data;\r\n } else {\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate(['/company-details', data.companyRevId]);\r\n }\r\n } else {\r\n\r\n if (this.parentComponentInput && (this.parentComponentInput instanceof LCRFormComponent || this.parentComponentInput instanceof ERFormComponent || this.parentComponentInput instanceof LLFormLabelerComponent\r\n || this.parentComponentInput instanceof LLFormRegistrantComponent || this.parentComponentInput instanceof LLFormEstablishmentComponent)) {\r\n this.companyForm.reset();\r\n this.companyOutput.emit(data);\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n // this.errorMessage = error && error['data'] ? error['data'].toString() : (error ? error.message : 'Internal Error!');\r\n // this.toastr.error(this.errorMessage);\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // Formate Business Operations validation errors\r\n customizeErrorCell(args: QueryCellInfoEventArgs) {\r\n\r\n if (args.data['messageType'] === 'Error') {\r\n args.cell.classList.add('customcssError');\r\n } else if (args.data['messageType'] === 'Warning') {\r\n args.cell.classList.add('customcssWarning');\r\n }\r\n }\r\n\r\n removeDuplicatesLabelersFromArray(formArray): INdcLabeler[] {\r\n\r\n const uniqueArray = formArray\r\n .map(item => item.ndcLabelerCode)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n\r\n const uniqueFormArray: INdcLabeler[] = [];\r\n\r\n uniqueArray.forEach(code => {\r\n\r\n const labeler = new INdcLabeler();\r\n labeler.ndcLabelerCode = code;\r\n\r\n uniqueFormArray.push(labeler);\r\n });\r\n\r\n return uniqueFormArray;\r\n }\r\n\r\n // Check if the current company is either establishment owned or establishment 3rd party\r\n isEstablishment(): boolean {\r\n this.isEstablishmentChecked = this.getFormControlByName('isEstablishmentOwner').value;\r\n this.is3rdPartyEstablishmentChecked = this.getFormControlByName('isThirdPartyEstablishment').value;\r\n if (this.isEstablishmentChecked || this.is3rdPartyEstablishmentChecked) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Get user selected contacts for various company types and generate a list for save\r\n getSelectedContactsForSave(): IContactForSave[] {\r\n this.lstCompanyAssociations = [];\r\n this.companyTypeCtrlNames.forEach((ckName) => {\r\n const currentCompanyTypeInfo = this.companyTypes.filter(x => x.ckName === ckName)[0];\r\n const ctrlCheckbox = this.getFormControlByName(ckName);\r\n const ctrlContactDrp = this.getFormControlByName(currentCompanyTypeInfo.dropdownCtrlName);\r\n if (ctrlCheckbox != null && ctrlCheckbox.value) {\r\n // Check if user has selected any contact\r\n if (ctrlContactDrp.value) {\r\n const contact: IContactForSave = {\r\n companyContactRoleCode: currentCompanyTypeInfo.type,\r\n contactRevisionId: ctrlContactDrp.value,\r\n associationActiveFlag: true\r\n };\r\n this.lstCompanyAssociations.push(contact);\r\n }\r\n }\r\n });\r\n\r\n return this.lstCompanyAssociations;\r\n }\r\n\r\n // Get user selected business operation qualifiers and generate a list for save\r\n getSelectedBusinessOperQualifiersForSave(): IBusinessOperationQualifierList {\r\n this.lstBusiOperQualifiers = [];\r\n\r\n // only do this for est owned and estab. third party\r\n if (this.isEstablishment()) {\r\n this.businessOperationsForms.value.forEach((bo) => {\r\n // skip when no business operation is being select\r\n if (bo.businessOperations && bo.businessOperations.length > 0) {\r\n // if no business operation qualifier exists for this business operation, add an entry to the list\r\n if (bo.businessOperationsQualifiers && bo.businessOperationsQualifiers.length === 0) {\r\n const qualifier = new IBusinessOperationQualifier();\r\n qualifier.parentTermValueCode = bo.businessOperations;\r\n qualifier.parentTermValueName = this.refDataService.GetBussinesOperationDescByCode(bo.businessOperations);\r\n this.lstBusiOperQualifiers.push(qualifier);\r\n } else {\r\n // Loop through a list of qualifiers for this business operation\r\n if (bo.businessOperationsQualifiers) {\r\n bo.businessOperationsQualifiers.forEach((boq) => {\r\n const qualifier = new IBusinessOperationQualifier();\r\n qualifier.parentTermValueCode = bo.businessOperations;\r\n qualifier.parentTermValueName = this.refDataService.GetBussinesOperationDescByCode(bo.businessOperations);\r\n qualifier.childTermValueCode = boq;\r\n qualifier.childTermValueName = this.refDataService.GetBussinesOperationQualifierDescByCode(bo.businessOperations, boq);\r\n // avoid duplicates\r\n if (!this.checkForDuplicate(this.lstBusiOperQualifiers, bo.businessOperations, boq)) {\r\n this.lstBusiOperQualifiers.push(qualifier);\r\n }\r\n // }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n const IBusiOperQuals: IBusinessOperationQualifierList = {\r\n businessOperationBusinessOperationQualifierList: this.lstBusiOperQualifiers\r\n };\r\n return IBusiOperQuals;\r\n }\r\n\r\n // Check if this qualifier already exixt\r\n checkForDuplicate(qualifier: IBusinessOperationQualifier[], busOperCode: string, qualCode: string): boolean {\r\n const boq = qualifier.filter(x => x.parentTermValueCode === busOperCode && x.childTermValueCode === qualCode);\r\n const bFound = boq.length === 0 ? false : true;\r\n return bFound;\r\n }\r\n\r\n\r\n // Populate the company form\r\n displayCompany(company: ICompanyDetail) {\r\n this.companyForm.patchValue({\r\n companyName: company.companyName,\r\n duns: company.duns,\r\n fei: company.fei,\r\n address: company.address,\r\n city: company.city,\r\n zip: company.zip,\r\n isEstablishmentOwner: company.establishmentOwner === 'Y' ? true : false,\r\n isThirdPartyEstablishment: company.thirdPartyEstablishment === 'Y' ? true : false,\r\n isLabeler: company.labeler === 'Y' ? true : false,\r\n isRegistrant: company.registrant === 'Y' ? true : false,\r\n isImporter: company.importer === 'Y' ? true : false,\r\n isUSAgent: company.usAgent === 'Y' ? true : false\r\n });\r\n\r\n // Check if \"Company Type\" checkbox has been selected, if yes, enable the \"Update Company\" button, otherwise, disable it\r\n this.setUpdateCompanyButtonStatus();\r\n\r\n // Preselect company type checkboxes and pre-populate company contacts\r\n if (this.companyAssociations != null && this.companyAssociations.length > 0) {\r\n this.companyAssociations.forEach((element) => {\r\n // Find this element by type from the companyTypes array\r\n const currentCompanyTypeInfo = this.companyTypes.filter(x => x.type === element.contactType)[0];\r\n const ctrlContactDrp = this.getFormControlByName(currentCompanyTypeInfo.dropdownCtrlName);\r\n ctrlContactDrp.patchValue(element.contactRevisionId);\r\n // Show Contact Detail link\r\n this.contactRevisionId = element.contactRevisionId;\r\n\r\n // don't need to display \"Edit info\" on the modal\r\n if (!this.parentComponentInput) {\r\n this.showEditLinkFlags(element.contactType);\r\n }\r\n\r\n // Perform a check to see if the associated contact is no longer the latest (if it is not the latest it will not be pre-selected since it is not present in the LatestContacts list)\r\n if (!this.IsAssociatedContactLatest(element)) {\r\n switch (element.contactType) {\r\n case 'Establishment_Owned':\r\n this.nonLatestCompanyContact.EstablishmentContactOwned = element.contactName;\r\n this.showEditLink_Est = false;\r\n break;\r\n case 'Establishment_Third_Party':\r\n this.nonLatestCompanyContact.EstablishmentThirdPartyContact = element.contactName;\r\n this.showEditLink_3rdParty_Est = false;\r\n break;\r\n case 'Importer':\r\n this.nonLatestCompanyContact.ImporterContact = element.contactName;\r\n this.showEditLink_Importer = false;\r\n break;\r\n case 'Labeler':\r\n this.nonLatestCompanyContact.LabelerContact = element.contactName;\r\n this.showEditLink_Labeler = false;\r\n break;\r\n case 'Registrant':\r\n this.nonLatestCompanyContact.RegistrantContact = element.contactName;\r\n this.showEditLink_Registrant = false;\r\n break;\r\n case 'US_Agent':\r\n this.nonLatestCompanyContact.USAgentContact = element.contactName;\r\n this.showEditLink_USAgent = false;\r\n break;\r\n default:\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Populate business operations if applicable\r\n this.companyForm.setControl(\r\n 'businessOperationsForm',\r\n this.setBusinessOperationForm(this.businessOperationArray)\r\n );\r\n }\r\n\r\n // Check if \"Company Type\" checkbox has been selected, if yes, enable the \"Update Company\" button, otherwise, disable it\r\n setUpdateCompanyButtonStatus() {\r\n this.disableUpdateCompanyButton = true;\r\n for (let i = 0; i < this.companyTypes.length; i++) {\r\n if (this.getFormControlByName(this.companyTypes[i].ckName).value === true) {\r\n this.disableUpdateCompanyButton = false;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n IsAssociatedContactLatest(contact: IContactCompany): Boolean {\r\n // Check to see if the associated contact is the latest. If so, it will be apart of the CompanyData latestAvailableContactsList property(position 2 in the companyData array)\r\n let isFound = false;\r\n this.companyData[2].latestAvailableContactsList.forEach((availableContact) => {\r\n if (contact.contactRevisionId === availableContact.contactRevisionId) {\r\n isFound = true;\r\n }\r\n });\r\n return isFound;\r\n }\r\n\r\n // pre-select the business operations and business operations qualifiers dropdowns\r\n setBusinessOperationForm(businessOperationsArray: IBusinessOperationQualifier[]): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n\r\n if (businessOperationsArray && businessOperationsArray.length > 0) {\r\n businessOperationsArray.forEach((c, i) => {\r\n const busOperQual = c.childTermValueCode != null ? c.childTermValueCode.replace(' ', '').split(',') : [];\r\n formArray.push(\r\n this.fb.group({\r\n businessOperations: c.parentTermValueCode,\r\n businessOperationsQualifiers: this.fb.array(busOperQual)\r\n })\r\n );\r\n this.businessOperationsQualifierList[i] = this.refDataService.GetQualifierByBusOper(c.parentTermValueCode);\r\n });\r\n } else {\r\n formArray.push(\r\n this.fb.group({\r\n businessOperations: ['', Validators.required],\r\n businessOperationsQualifiers: this.fb.array([''])\r\n })\r\n );\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n // Get the object ready before being saved\r\n prepareDataForSave(formValues) {\r\n const sessionCurrentCustomer = this.storageManagerService.read('currentCustomer');\r\n const currentCustomer = typeof sessionCurrentCustomer === 'object' ? sessionCurrentCustomer : JSON.parse(sessionCurrentCustomer);\r\n const authData = this.authService.getAuthData();\r\n\r\n formValues['isDraftMode'] = this.bIsDraftMode;\r\n formValues['FormActiveFlag'] = 'A';\r\n formValues['modifiedBy'] = authData.name;\r\n // formValues['businessCategoryId'] = this.f.businessCategoryId.value === '' ? this.selectedBusinessCategoryId : this.f.businessCategoryId.value;\r\n // formValues['businessCategory'] = formValues['businessCategoryId'];\r\n formValues['businessCategory'] = this.getGenericKeyObjectForBC(this.businessCategories, this.f.businessCategoryId.value === '' ? this.selectedBusinessCategoryId : this.f.businessCategoryId.value);\r\n formValues['countryRegion'] = this.f.countryRegion.value === '' ? this.selectedRegionId : this.f.countryRegion.value;\r\n formValues['countryRegion'] = this.validateRegion(formValues['countryRegion']);\r\n formValues['countryId'] = this.f.countryId.value === '' ? this.selectedCountryId : this.f.countryId.value;\r\n formValues['country'] = formValues['countryId'];\r\n formValues['UserId'] = currentCustomer.customerGuid;\r\n formValues['isRegistrantConfidentiality'] = 'N';\r\n formValues['isEstablishmentConfidentality'] = 'N';\r\n formValues['isImporter'] = formValues['isImporter'] === true || formValues['isImporter'] === 'Y' ? 'Y' : 'N';\r\n formValues['isLabeler'] = formValues['isLabeler'] === true || formValues['isLabeler'] === 'Y' ? 'Y' : 'N';\r\n formValues['isRegistrant'] = formValues['isRegistrant'] === true || formValues['isRegistrant'] === 'Y' ? 'Y' : 'N';\r\n formValues['isUSAgent'] = formValues['isUSAgent'] === true || formValues['isUSAgent'] === 'Y' ? 'Y' : 'N';\r\n formValues['isEstablishmentOwner'] = formValues['isEstablishmentOwner'] === true || formValues['isEstablishmentOwner'] === 'Y' ? 'Y' : 'N';\r\n formValues['isThirdPartyEstablishment'] = formValues['isThirdPartyEstablishment'] === true || formValues['isThirdPartyEstablishment'] === 'Y' ? 'Y' : 'N';\r\n\r\n // if we are creating a new company, we need to clear out the companyId\r\n if (this.companyRevisionId) {\r\n formValues['companyRevisionId'] = this.companyRevisionId;\r\n formValues['companyId'] = this.companyId;\r\n formValues['parentVersion'] = this.company.parentVersion;\r\n\r\n // Determine what to use for parentVersion\r\n formValues['parentVersion'] = this.company.version;\r\n } else {\r\n formValues['companyRevisionId'] = null;\r\n sessionStorage['currentCompanyId'] = null;\r\n sessionStorage['currentCompanyRevisionId'] = null;\r\n formValues['parentVersion'] = '0.0';\r\n }\r\n }\r\n\r\n // Build an ILLBusinessCategory object for Business Category\r\n getGenericKeyObjectForBC(list: any[], id: any): ILLBusinessCategory {\r\n const retVal = new ILLBusinessCategory();\r\n\r\n if (list && id) {\r\n list = list.filter(x => x['categoryId'] === id);\r\n if (list && list.length > 0) {\r\n retVal.categoryId = id && id !== '0' ? id : '';\r\n retVal.label = list[0]['label'];\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n // Display confirmation message\r\n showMessage() {\r\n sessionStorage['currentContactId'] = this.contactId;\r\n this.dialogConfirmation.hide();\r\n this.ejDialog.show();\r\n }\r\n\r\n editContactInfo(event) {\r\n if (event.itemData) {\r\n this.contactRevisionId = event.itemData.contactRevisionId;\r\n sessionStorage['fromCompanyPage'] = true;\r\n sessionStorage['currentContactId'] = event.itemData.contactId;\r\n sessionStorage['ValidatedContactId'] = event.itemData.contactId;\r\n sessionStorage['currentContactRevisionId'] = event.itemData.contactRevisionId;\r\n this.getContactById();\r\n this.contact.clearForm();\r\n this.ejDialog.show();\r\n }\r\n }\r\n\r\n closeConfirmDialog() {\r\n this.dialogConfirmation.hide();\r\n }\r\n\r\n // reset the contact dropdown selection\r\n selectCompanyType(event: any): void {\r\n const type = event.target.value;\r\n const currentCompanyTypeInfo = this.companyTypes.filter(x => x.type === type)[0];\r\n const ctrlContactDrp = this.getFormControlByName(currentCompanyTypeInfo.dropdownCtrlName);\r\n ctrlContactDrp.patchValue(null);\r\n\r\n if (this.isEstablishment()) {\r\n this.changeFormArrayControlStatus(true);\r\n\r\n } else {\r\n this.changeFormArrayControlStatus(false);\r\n this.clearBusOpAndQualifiers();\r\n }\r\n this.setUpdateCompanyButtonStatus();\r\n }\r\n\r\n // Clear out Business Operations & qualifiers section\r\n clearBusOpAndQualifiers() {\r\n\r\n for (let i = this.businessOperationsForms.controls.length - 1; i > 0; i--) {\r\n this.businessOperationsForms.removeAt(i);\r\n }\r\n if (this.businessOperationsForms.controls && this.businessOperationsForms.controls.length > 0) {\r\n const busOp = this.businessOperationsForms.controls[0].get('businessOperations');\r\n busOp.setValue('');\r\n busOp.setValidators([Validators.required]);\r\n busOp.updateValueAndValidity();\r\n }\r\n\r\n this.bValidationErrorExist = false;\r\n }\r\n\r\n // Clear out user's previous Business Operation selection\r\n setEmptyBusOpForm() {\r\n const formArray = new UntypedFormArray([]);\r\n formArray.push(\r\n this.fb.group({\r\n businessOperations: [''],\r\n businessOperationsQualifiers: this.fb.array([''])\r\n })\r\n );\r\n return formArray;\r\n }\r\n\r\n // Make sure Business Operations dropdown is required\r\n setBusOpFormRequired() {\r\n const formArray = new UntypedFormArray([]);\r\n formArray.push(\r\n this.fb.group({\r\n businessOperations: ['', Validators.required],\r\n businessOperationsQualifiers: this.fb.array([''])\r\n })\r\n );\r\n return formArray;\r\n }\r\n\r\n selectCompanyTypeFromModal(type): void {\r\n\r\n const currentCompanyTypeInfo = this.companyTypes.filter(x => x.type === type)[0];\r\n const ctrlContactDrp = this.getFormControlByName(currentCompanyTypeInfo.dropdownCtrlName);\r\n ctrlContactDrp.patchValue(null);\r\n\r\n if (type === 'Labeler') {\r\n this.changeFormArrayControlStatus(false);\r\n } else {\r\n this.changeFormArrayControlStatus(true);\r\n }\r\n }\r\n\r\n // Enable/Disable all the controls on the FormArray\r\n changeFormArrayControlStatus(status: boolean) {\r\n this.businessOperationsForms.controls.forEach((ctrl) => {\r\n if (status) {\r\n ctrl.enable();\r\n } else {\r\n ctrl.disable();\r\n }\r\n });\r\n }\r\n\r\n selectAllCompanyTypes(event: any): void {\r\n }\r\n\r\n // Get a form control by name\r\n getFormControlByName(controlName: string): UntypedFormControl {\r\n return this.companyForm.get(controlName);\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.companyForm.controls; }\r\n\r\n // when cancel button is being clicked\r\n cancelBtnClicked() {\r\n\r\n if (!this.parentComponentInput) {\r\n\r\n this.router.navigateByUrl('/company-dashboard');\r\n } else {\r\n this.companyForm.clearValidators();\r\n this.companyForm.reset();\r\n this.cancelButtonClickedOutput.emit();\r\n }\r\n }\r\n\r\n // This is a known bug by syncFusion where a popup will open by default, the following is the suggested workaround\r\n onCreated() {\r\n this.ejDialog.hide();\r\n }\r\n\r\n closeDialog() {\r\n // If user updated contact info, then we need to reload the contact list with the newly saved contact info\r\n if (sessionStorage['ValidatedContactSave'] === 'true') {\r\n this.getContactList();\r\n }\r\n\r\n this.ejDialog.hide();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n\r\n get businessOperationsForms(): UntypedFormArray {\r\n return this.companyForm.get('businessOperationsForm');\r\n }\r\n\r\n initBusinessOperationQualifier() {\r\n this.msArray = this.boq_mdrp.toArray();\r\n if (this.businessOperationArray && this.businessOperationArray.length > 0) {\r\n this.businessOperationArray.forEach((bo, i) => {\r\n if (this && this.msArray[i] && this.msArray[i] !== undefined) {\r\n const busQ = bo.childTermValueCode.replace(' ', '');\r\n if (busQ) {\r\n this.msArray[i].value = bo.childTermValueCode != null ? busQ.split(',') : [];\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Disable business operation dropdowns\r\n if (!this.isEstablishment()) {\r\n this.changeFormArrayControlStatus(false);\r\n }\r\n }\r\n\r\n // Get the business operations qualifiers based on the business operation being selected\r\n boSelectionChanged(event, i) {\r\n this.companyForm.markAsDirty();\r\n this.companyForm.markAsTouched();\r\n\r\n if (event.itemData) {\r\n this.businessOperationsQualifierList[i] = this.refDataService.GetQualifierByBusOper(event.itemData.parentTermValueCode);\r\n // clear out the previous selected qualifiers\r\n this.msArray = this.boq_mdrp.toArray();\r\n this.msArray[i].value = [];\r\n } else {// selection being removed\r\n this.businessOperationsQualifierList[i] = [];\r\n }\r\n }\r\n\r\n // Change event for business operations qualifiers\r\n boqSelectionChanged(event, i) {\r\n this.businessOperationsForms.value[i].businessOperationsQualifiers = event.value;\r\n }\r\n\r\n boQualifierSelectionChanged(event) {\r\n this.companyForm.markAsDirty();\r\n this.companyForm.markAsTouched();\r\n }\r\n\r\n /**\r\n * Watches selection of multiselect dropdown chip selected\r\n * @param {} e - element\r\n * @param {} i - index\r\n */\r\n chipSelected(e, i) {\r\n this.companyForm.markAsDirty();\r\n this.companyForm.markAsTouched();\r\n\r\n if (e.itemData !== undefined) {\r\n if (this.businessOperationsForms.value[i].businessOperationsQualifiers.length > 0 && this.businessOperationsForms.value[i].businessOperationsQualifiers[0] === '') {\r\n this.businessOperationsForms.value[i].businessOperationsQualifiers.splice(0, 1);\r\n }\r\n this.businessOperationsForms.value[i].businessOperationsQualifiers.push(e.itemData.childTermValueCode);\r\n }\r\n }\r\n\r\n /**\r\n * Watches selection of multiselect dropdown chip removed\r\n * @param {} e - element\r\n * @param {} i - index\r\n */\r\n chipRemoved(e, i) {\r\n this.businessOperationsForms.value[i].businessOperationsQualifiers.splice(i, 1);\r\n this.companyForm.markAsDirty();\r\n this.companyForm.markAsTouched();\r\n }\r\n\r\n createItem(bRequired: boolean): UntypedFormGroup {\r\n if (bRequired) {\r\n return this.fb.group({\r\n businessOperations: ['', Validators.required],\r\n businessOperationsQualifiers: this.fb.array([''])\r\n });\r\n } else {\r\n return this.fb.group({\r\n businessOperations: [''],\r\n businessOperationsQualifiers: this.fb.array([''])\r\n });\r\n }\r\n\r\n }\r\n\r\n addItem(): void {\r\n this.businessOperationsForms.push(this.createItem(this.businessOperationsForms.length === 0));\r\n this.businessOperationsForms.markAsDirty();\r\n this.businessOperationsForms.markAsTouched();\r\n }\r\n\r\n removeItem(i) {\r\n this.businessOperationsForms.removeAt(i);\r\n this.businessOperationsQualifierList.splice(i, 1);\r\n if (this.businessOperationsForms.length === 1) {\r\n this.changeFormArrayControlStatus(true);\r\n }\r\n this.companyForm.markAsDirty();\r\n this.companyForm.markAsTouched();\r\n }\r\n\r\n // Display detail of a single company\r\n viewCompany(companyRevisionId: string, companyId: string) {\r\n if (companyRevisionId) {\r\n sessionStorage['currentCompanyRevisionId'] = companyRevisionId;\r\n // sessionStorage['currentCompanyId'] = companyId;\r\n\r\n // reload with new data\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.router.navigate(['/company-details', companyRevisionId]));\r\n }\r\n }\r\n\r\n setEditLinkFlags(type: string, flag: boolean) {\r\n this.clearEditFlags();\r\n switch (type) {\r\n case '3rdPartyEstablishment':\r\n this.showEditLink_3rdParty_Est = flag;\r\n break;\r\n case 'Establishment':\r\n this.showEditLink_Est = flag;\r\n break;\r\n case 'Importer':\r\n this.showEditLink_Importer = flag;\r\n break;\r\n case 'Labeler':\r\n this.showEditLink_Labeler = flag;\r\n break;\r\n case 'US_Agent':\r\n this.showEditLink_USAgent = flag;\r\n break;\r\n case 'Registrant':\r\n this.showEditLink_Registrant = flag;\r\n break;\r\n }\r\n }\r\n\r\n\r\n // Removve \"Edit Contact Info\" link for contact selected for associating to a company\r\n clearEditFlags() {\r\n this.showEditLink_Est = false;\r\n this.showEditLink_3rdParty_Est = false;\r\n this.showEditLink_Importer = false;\r\n this.showEditLink_Labeler = false;\r\n this.showEditLink_USAgent = false;\r\n this.showEditLink_Registrant = false;\r\n }\r\n\r\n // Display \"Edit Contact Info\" link for contact selected for associating to a company\r\n showEditLinkFlags(type: string) {\r\n switch (type) {\r\n case 'Establishment_Owned':\r\n this.showEditLink_Est = true;\r\n break;\r\n case 'Establishment_Third_Party':\r\n this.showEditLink_3rdParty_Est = true;\r\n break;\r\n case 'Importer':\r\n this.showEditLink_Importer = true;\r\n break;\r\n case 'Labeler':\r\n this.showEditLink_Labeler = true;\r\n break;\r\n case 'US_Agent':\r\n this.showEditLink_USAgent = true;\r\n break;\r\n case 'Registrant':\r\n this.showEditLink_Registrant = true;\r\n break;\r\n }\r\n }\r\n\r\n // Hide \"Edit Contact Info\" link for contact selected for associating to a company\r\n hideEditLinkFlags(type: string) {\r\n switch (type) {\r\n case 'Establishment':\r\n this.showEditLink_Est = false;\r\n break;\r\n case 'Importer':\r\n this.showEditLink_Importer = false;\r\n break;\r\n case 'Labeler':\r\n this.showEditLink_Labeler = false;\r\n break;\r\n case 'US_Agent':\r\n this.showEditLink_USAgent = false;\r\n break;\r\n case 'Registrant':\r\n this.showEditLink_Registrant = false;\r\n break;\r\n }\r\n }\r\n\r\n // set the form as draft mode\r\n setDraftMode(event) {\r\n this.bIsDraftMode = true;\r\n // event.target.disabled = true;\r\n }\r\n\r\n // set the form as active mode\r\n setActiveMode() {\r\n this.bIsDraftMode = false;\r\n window.scroll(0, document.body.scrollHeight);\r\n }\r\n\r\n addLabelerFormGroup(): UntypedFormGroup {\r\n return this.fb.group({\r\n ndcLabelerCode: ['', { updateOn: 'blur' }]\r\n });\r\n }\r\n\r\n get labelerFormsArray(): UntypedFormArray {\r\n return this.companyForm.get('ndcLabelerCodes');\r\n }\r\n\r\n addLabelerFormGroupButtonClick(): void {\r\n this.labelerFormsArray.push(this.addLabelerFormGroup());\r\n this.labelerFormsArray.markAsDirty();\r\n this.labelerFormsArray.markAsTouched();\r\n }\r\n\r\n removeLabelerFormGroupButtonClick(index: number): void {\r\n this.labelerFormsArray.removeAt(index);\r\n this.labelerFormsArray.markAsDirty();\r\n this.labelerFormsArray.markAsTouched();\r\n }\r\n\r\n isLabelerCodeDuplicate(): boolean {\r\n let isDuplicate: boolean;\r\n\r\n // Check length greater than 1 because if 1 cannot be duplicated\r\n if (\r\n this.labelerFormsArray &&\r\n this.labelerFormsArray.controls &&\r\n this.labelerFormsArray.controls.length > 1\r\n ) {\r\n const valueArr = this.labelerFormsArray.controls.map(function (item) {\r\n return item.value.labelerCode;\r\n });\r\n\r\n isDuplicate = valueArr.some(function (item, idx) {\r\n return valueArr.indexOf(item) !== idx;\r\n });\r\n }\r\n\r\n return isDuplicate;\r\n }\r\n\r\n setLabelerForm(labelerCodes: any[]): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n\r\n if (labelerCodes && labelerCodes.length > 0) {\r\n labelerCodes.forEach((c, i) => {\r\n formArray.push(\r\n this.fb.group({\r\n ndcLabelerCode: c.ndcLabelerCode\r\n })\r\n );\r\n });\r\n } else {\r\n formArray.push(\r\n this.fb.group({\r\n ndcLabelerCode: ''\r\n })\r\n );\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n let currentGridId;\r\n let tooltip: TooltipComponent;\r\n\r\n currentGridId = args.event.currentTarget.firstChild.id;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n if (currentGridId) {\r\n switch (currentGridId) {\r\n case 'companyHistoryGrid':\r\n grid = this.companyHistoryGrid;\r\n tooltip = this.tooltipCompanies;\r\n break;\r\n case 'errorGrid':\r\n grid = this.errorGrid;\r\n tooltip = this.tooltipError;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n tooltip.cssClass = 'customTooltip';\r\n tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * The function drills to down from the FormGroup or FormArray down\r\n * to the AbstractControl in order to check if the value is entered.\r\n * Populates the FormErrors object based on the Validators attached to the formControls.\r\n * @param {FormGroup} group passed by the form validation.\r\n */\r\n logValidationErrors(group: UntypedFormGroup = this.companyForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n\r\n this.formErrors[key] = '';\r\n if (\r\n abstractControl &&\r\n !abstractControl.valid &&\r\n (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n\r\n if (abstractControl instanceof UntypedFormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n }\r\n\r\n // We need this additional check to get to the FormGroup\r\n // in the FormArray and then recursively call this\r\n // logValidationErrors() method to fix the broken validation\r\n if (abstractControl instanceof UntypedFormArray) {\r\n for (const control of abstractControl.controls) {\r\n if (control instanceof UntypedFormGroup) {\r\n this.logValidationErrors(control);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Add Company

\r\n

{{company.companyName}}

\r\n

\r\n Version: {{version}} \r\n current\r\n

\r\n
\r\n
\r\n
\r\n
\r\n  NOT CURRENT VERSION - Any changes made could overwrite a newer version of this form.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Please select at least one Company Type.\r\n
\r\n
\r\n Estab. (Owned) and Estab. (3rd Party) cannot be selected together.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Company name is required\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
DUNS number is required
\r\n
\r\n Cannot contain special characters\r\n
\r\n
Must be 9 digits
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Street address is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
City is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Country is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n State/Region is required\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Postal code is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Business category is\r\n required\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ formErrors?.labelerCodes }}\r\n
\r\n
\r\n\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Must be numeric value that is 7 or 10\r\n digits\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n

Company contacts

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit\r\n Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit\r\n Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit\r\n Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit\r\n Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Edit\r\n Contact Info\r\n \r\n \r\n \r\n \r\n
\r\n
{{contacts.contactName}}
\r\n
\r\n {{contacts.emailAddress}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n

Company history

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{this.companyHistory_grid_data.companyName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Business Operations is required\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Cancel\r\n \r\n \r\n \r\n \r\n {{errorMessage}}\r\n
\r\n
\r\n
\r\n
\r\n Validation errors\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n

Contact Details

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n Error\r\n
\r\n
\r\n

\r\n The contact you selected is missing required information. Please update, or\r\n choose ‘Cancel’ and select a different contact.
\r\n

\r\n

{{contactValidationTitleMsg}}

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbTabset, NgbTabsetConfig } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ColumnChooserService, GridComponent, PageService, ToolbarService, VirtualScrollService } from '@syncfusion/ej2-angular-grids';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { ICompanyContactStatus, IContact } from '../../shared/models/index';\r\nimport { AuthorizationService, CompanyContactService, StorageManagerService } from '../../shared/services/index';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { DeleteButtonComponent } from '../common/delete-button/delete-button.component';\r\nimport { Utilities } from '../../shared/services/utilities';\r\n\r\n@Component({\r\n selector: 'app-contact-dashboard',\r\n templateUrl: './contact-dashboard.component.html',\r\n styleUrls: ['./contact-dashboard.component.scss'],\r\n providers: [ToolbarService, ColumnChooserService, PageService, NgbTabsetConfig, VirtualScrollService],\r\n animations: [fadeInOut]\r\n})\r\n\r\nexport class ContactDashboardComponent implements OnInit {\r\n\r\n @ViewChild('contact_grid')\r\n public contactGrid: GridComponent;\r\n @ViewChild('drafts_grid')\r\n public draftsGrid: GridComponent;\r\n @ViewChild('tabset', { static: true })\r\n public tabset: NgbTabset;\r\n @ViewChild('tooltip')\r\n public tooltip: TooltipComponent;\r\n @ViewChild('deleteContact')\r\n public deleteButton: DeleteButtonComponent;\r\n @ViewChild('deleteDraftContact')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n\r\n @Input() drafts_grid_data: IContact[];\r\n @Input() contact_grid_data: IContact[];\r\n public initialPage: Object;\r\n public toolbarOptions: Object;\r\n errorMessage: string;\r\n count_contact: number;\r\n count_drafts: number;\r\n FORM_STATUS_ACTIVE = 'A';\r\n contactStatus: ICompanyContactStatus;\r\n loading = true;\r\n public formatOptions: any;\r\n activeTab: string;\r\n sub: Subscription;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n selectedContactRevisionId: number | undefined;\r\n hasWritePermission = false;\r\n hasDeletePermission = false;\r\n\r\n constructor(private router: Router, private companySvc: CompanyContactService, private toastr: ToastrService,\r\n private sanitizer: DomSanitizer, private storageManagerService: StorageManagerService, private authorizationService: AuthorizationService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.checkUserPermission();\r\n\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.hasWritePermission);\r\n\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n // clear out previously saved info\r\n sessionStorage['currentContactId'] = null;\r\n\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n this.getContacts();\r\n\r\n this.activeTab = 'contact';\r\n\r\n // Fix for footer spacing issues\r\n document.getElementsByTagName('footer')[0].classList.add(\"footer-spacing-fix\");\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n createCustomToolbarItems(deletePermission : boolean, writePermission: boolean) {\r\n let toolbarItems = [];\r\n\r\n if (writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New Contact',\r\n tooltipText: 'Add a new contact to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if(deletePermission){\r\n toolbarItems.push(\r\n {\r\n text: 'Delete Contact',\r\n tooltipText: 'Delete the selected contact',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n )\r\n }\r\n\r\n toolbarItems.push('Search');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteContact')) {\r\n this.hasWritePermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteContact')) {\r\n this.hasDeletePermission = true;\r\n }\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n this.selectedContactRevisionId = undefined;\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n grid = this.draftsGrid;\r\n break;\r\n case 'contact':\r\n grid = this.contactGrid;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltip.cssClass = 'customTooltip';\r\n this.tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n // Grid toolbar click event handler\r\n toolbarClick(args: ClickEventArgs): void {\r\n if (args.item.id === 'create-form-btn') {\r\n this.router.navigate(['contact']);\r\n }\r\n if (args.item.id === 'tool-bar-delete' && this.selectedContactRevisionId) {\r\n if(this.contactGrid){\r\n this.deleteButton.revisionId = this.selectedContactRevisionId.toString();\r\n this.deleteButton.openDeleteModal();\r\n }\r\n else if(this.draftsGrid){\r\n this.deleteButtonDrafts.revisionId = this.selectedContactRevisionId.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n }\r\n }\r\n\r\n // Retrieve a list of contacts\r\n getContacts() {\r\n this.companySvc.GetContactDashboard().subscribe(data => {\r\n if (data && data.length) {\r\n this.loading = false;\r\n\r\n this.drafts_grid_data = data.filter(p => p.isDraftMode == true);\r\n this.count_drafts = this.drafts_grid_data.length;\r\n\r\n const mappedData = data.map(d => Object.assign(d, { status$: d.loAFlag ? 'Inactive' : 'Active' }));\r\n this.contact_grid_data = mappedData.filter(p => p.isDraftMode == false);\r\n this.count_contact = this.contact_grid_data.length;\r\n\r\n } else {\r\n this.loading = false; // no data so stop the spinner\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error.error);\r\n }\r\n );\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'version':\r\n args.currentFilterObject.value = `${ args.currentFilterObject.value }.0`;\r\n break;\r\n case 'modified':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n viewContact(contactRevisionId: string, contactId: string) {\r\n if (contactRevisionId) {\r\n\r\n this.router.navigate(['contact', contactRevisionId]);\r\n }\r\n }\r\n\r\n contactGridRowSelected(e: any){\r\n this.selectedContactRevisionId = e.data.contactRevisionId;\r\n }\r\n\r\n contactGridRowDeselected() {\r\n this.selectedContactRevisionId = undefined;\r\n }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n const currentGrid = this.activeTab === 'contact' ? this.contactGrid : this.draftsGrid;\r\n if (currentGrid.getSelectedRecords().length) {\r\n currentGrid.clearSelection();\r\n }\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

Contacts

\r\n

\r\n Maintain and store your entire portfolio of contacts in a single location. Enter once and reuse many times.\r\n Locate your contacts in the grid below or click search options to update a stored contact. Click 'Create new contact' to create a new contact for use.\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Contacts ({{ count_contact }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{contact_grid_data.contactName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Drafts ({{ count_drafts }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{drafts_grid_data.contactName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewEncapsulation, Input, SimpleChanges, OnChanges, OnDestroy, Output, EventEmitter, SecurityContext } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators, UntypedFormControl } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { StorageManagerService } from '../../shared/services/storage-manager.service';\r\nimport { IContactDetail, IEntity, ILLBusinessCategory } from '../../shared/models/index';\r\nimport { CompanyContactService, AuthorizationService } from '../../shared/services/index';\r\nimport { AuthenticationService } from '../../shared/services/authentication.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { phoneNumberValidator } from '../../shared/helpers/phone-number.validator';\r\nimport { LCRFormComponent, ERFormComponent } from '../index';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-contact-detail',\r\n templateUrl: './contact-detail.component.html',\r\n styleUrls: ['./contact-detail.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ContactDetailComponent implements OnInit, OnChanges, OnDestroy {\r\n @Input() contactRevisionId: string;\r\n @Input() contactData: IContactDetail;\r\n @Input() companyType: string;\r\n\r\n @Input() parentComponentInput: LCRFormComponent | ERFormComponent;\r\n\r\n @Output() cancelButtonClickedOutput = new EventEmitter();\r\n @Output() contactOutput = new EventEmitter();\r\n @Output() contactRetrievedOutput = new EventEmitter();\r\n\r\n\r\n sub: Subscription;\r\n public contact: IContactDetail;\r\n public contactForm: UntypedFormGroup;\r\n public pageTitle: string;\r\n countries: IEntity[];\r\n regions: IEntity[];\r\n businessCategories: ILLBusinessCategory[];\r\n // Use with the generic validation message class\r\n displayMessage: { [key: string]: string } = {};\r\n errorMessage: string;\r\n selectedBusinessCategoryId: string;\r\n selectedCountryId: string;\r\n selectedRegionId: string;\r\n regionFromDrp: string;\r\n buttonText: string;\r\n contactId: string;\r\n submitted = false;\r\n bFirstTime = true;\r\n loading = false;\r\n isFormDraftFlag = false;\r\n version: string;\r\n formStatus: string;\r\n COUNTRY_USA = '185'; // Country code for United States\r\n countryRegion: any;\r\n country: any;\r\n countryId: any;\r\n businessCategoryId: any;\r\n bFromCompanyPage: boolean;\r\n bFromCompanyPageEditLink = false;\r\n bSavedContact: boolean;\r\n bIsDraftMode: boolean;\r\n bHasPermission = false;\r\n bHasDeletePermission = false;\r\n\r\n // Company Types\r\n COMPANY_TYPE_EST = 'Establishment_Owned';\r\n COMPANY_TYPE_IMPORTER = 'Importer';\r\n COMPANY_TYPE_LABELER = 'Labeler';\r\n COMPANY_TYPE_REGISTRANT = 'Registrant';\r\n COMPANY_TYPE_US_AGENT = 'US_Agent';\r\n // maps the appropriate column to fields property\r\n public businessCategoryFields: Object = {\r\n text: 'label',\r\n value: 'categoryId'\r\n };\r\n public countryFields: Object = {\r\n text: 'label',\r\n value: 'id'\r\n };\r\n public stateFields: Object = {\r\n text: 'regionAndAbbreviation',\r\n value: 'regionAndAbbreviation'\r\n };\r\n\r\n // set the placeholder to DropDownList input elements\r\n public businessCategoryWaterMark = 'Select a Business Category';\r\n public stateWaterMark = 'Select a State/Region';\r\n public countryWaterMark = 'Select a Country';\r\n\r\n formErrors = {\r\n email: '',\r\n firstName: '',\r\n lastName: '',\r\n isActive: '',\r\n address: '',\r\n city: '',\r\n countryRegion: '',\r\n zip: '',\r\n countryId: '',\r\n businessCategoryId: '',\r\n status: '',\r\n phoneExt: '',\r\n areaCode: '',\r\n dialCode: '',\r\n phoneNumber: ''\r\n };\r\n\r\n constructor (\r\n private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router, private authorizService: AuthorizationService,\r\n private authService: AuthenticationService,\r\n private toastr: ToastrService, private storageManagerService: StorageManagerService,\r\n private utilService: Utilities,\r\n private contactService: CompanyContactService, private sanitizer: DomSanitizer) { }\r\n\r\n // set the height of the popup element\r\n public ddwHeight = '220px';\r\n public ddwWdith = '240px';\r\n\r\n ngOnInit(): void {\r\n this.contactForm = this.fb.group({\r\n firstName: ['', { validators: [Validators.required, Validators.pattern(/^[^0-9]*$/)], updateOn: 'blur' }],\r\n lastName: ['', { validators: [Validators.required, Validators.pattern(/^[^0-9]*$/)], updateOn: 'blur' }],\r\n email: ['', { validators: [Validators.required, this.emailValidator], updateOn: 'blur' }],\r\n phoneNumber: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n address: ['', { updateOn: 'blur' }],\r\n city: ['', { updateOn: 'blur' }],\r\n countryId: ['', { updateOn: 'blur' }],\r\n countryRegion: ['', { updateOn: 'blur' }],\r\n zip: ['', { updateOn: 'blur' }],\r\n businessCategoryId: [''],\r\n phoneExt: ['', { validators: [Validators.pattern(/^[0-9]*$/)], updateOn: 'blur' }],\r\n dialCode: ['', { validators: [Validators.required, Validators.pattern(/^\\+?[0-9-]*$/)], updateOn: 'blur' }],\r\n areaCode: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n status: ['Active', { validators: [Validators.required], updateOn: 'blur' }],\r\n saveAsDraft: ['']\r\n }, { validator: phoneNumberValidator('dialCode', 'areaCode', 'phoneNumber') });\r\n\r\n // Initialize some variables\r\n this.initParams();\r\n\r\n if (!this.contactRevisionId) {\r\n // Set contact status default to \"Active\"\r\n this.getFormControlByName('status').patchValue('Active');\r\n this.isFormDraftFlag = false;\r\n this.version = '';\r\n this.formStatus = '';\r\n this.selectedBusinessCategoryId = '';\r\n this.selectedCountryId = '';\r\n this.selectedRegionId = '';\r\n }\r\n\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.contactForm.controls; }\r\n\r\n // Check if user has write permission. If no, disable the \"Update Contact\" button\r\n checkUserPermission() {\r\n if (this.authorizService.hasPermission('SSDP.CanWriteContact')) {\r\n this.bHasPermission = true;\r\n }\r\n if (this.authorizService.hasPermission('SSDP.CanDeleteContact')) {\r\n this.bHasDeletePermission = true;\r\n }\r\n }\r\n\r\n // Get detail information for a specific contact\r\n getContactById(): void {\r\n\r\n if (this.contactRevisionId) {\r\n this.contactService.getContactById(this.contactRevisionId).subscribe(data => {\r\n if (data) {\r\n this.countries = data['countries'];\r\n this.regions = data['regions'];\r\n this.contact = data['contactDetail'];\r\n this.contactId = this.contact.contactId;\r\n this.bIsDraftMode = this.contact.isDraftMode;\r\n this.displayContact(this.contact);\r\n\r\n this.contactRetrievedOutput.emit(this.contact);\r\n\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n // Retrieve list of all the business categoy\r\n getBusinessCategory(): void {\r\n this.contactService.getBusinessCategories(false).subscribe(data => {\r\n if (data) {\r\n this.businessCategories = data;\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Build an ILLBusinessCategory object for Business Category\r\n getGenericKeyObjectForBC(list: any[], id: any): ILLBusinessCategory {\r\n const retVal = new ILLBusinessCategory();\r\n\r\n if (list && id) {\r\n list = list.filter(x => x['categoryId'] === id);\r\n if (list && list.length > 0) {\r\n retVal.categoryId = id && id !== '0' ? id : '';\r\n retVal.label = list[0]['label'];\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n // Retrieve list of countries, default country to \"United States\"\r\n getCountries(): void {\r\n this.contactRevisionId = this.activatedRoute.snapshot.params.contactRevisionId;\r\n this.contactService.getCountries().subscribe(data => {\r\n if (data) {\r\n this.countries = data['countryList'];\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Retrieve a list of Regions/States based on the country selected by the user\r\n getRegionsByCountry(countryCode: string): void {\r\n this.contactService.getRegionsByCountry(countryCode).subscribe(data => {\r\n if (data) {\r\n this.regions = data;\r\n // Pre select the drop down to the user's countryRegion\r\n this.selectedRegionId = this.contact && this.contact.countryRegion ? this.contact.countryRegion : '';\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Get the state/regions for the country selected\r\n countrySelectionChanged(event) {\r\n if (event.itemData) {\r\n this.getRegionsByCountry(event.itemData.id);\r\n this.contactForm.controls['countryRegion'].setValue('');\r\n if (!this.bFirstTime) {\r\n this.regionFromDrp = '';\r\n this.selectedRegionId = '';\r\n }\r\n } else {// selection being removed\r\n this.regions = [];\r\n }\r\n this.bFirstTime = false;\r\n }\r\n\r\n stateSelectionChanged(event) {\r\n this.regionFromDrp = '';\r\n if (event.itemData) {\r\n this.regionFromDrp = event.itemData.regionAndAbbreviation;\r\n }\r\n }\r\n\r\n // Populate the form\r\n displayContact(contact: IContactDetail): void {\r\n this.contactForm.reset();\r\n this.setcontactForm(contact);\r\n }\r\n\r\n public clearForm() {\r\n this.contactForm.reset();\r\n }\r\n\r\n // if the region code is not valid, set to empty\r\n validateRegion(regionCode: string) {\r\n if (this.regions) {\r\n const match = this.regions.filter(x => x.regionAndAbbreviation === regionCode);\r\n return match.length > 0 ? regionCode : '';\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n // Save/Update contact info to the database\r\n saveContact(formValues): void {\r\n this.submitted = true;\r\n this.loading = true;\r\n this.errorMessage = '';\r\n const sessionCurrentCustomer = this.storageManagerService.read('currentCustomer');\r\n const currentCustomer = typeof sessionCurrentCustomer === 'object' ? sessionCurrentCustomer : JSON.parse(sessionCurrentCustomer);\r\n const authData = this.authService.getAuthData();\r\n\r\n // stop here if form is invalid\r\n if (this.contactForm.invalid) {\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n if (this.contactForm.valid) {\r\n\r\n this.contactForm.markAsPristine();\r\n this.prepareDataForSave(formValues);\r\n\r\n this.contactService.createContact(formValues)\r\n .subscribe(data => {\r\n\r\n this.loading = false;\r\n this.bSavedContact = true;\r\n\r\n if (!this.bFromCompanyPage) {\r\n if (!this.bIsDraftMode) {\r\n if (!this.parentComponentInput) {\r\n this.router.navigate(['/contact-dashboard']);\r\n return data;\r\n } else {\r\n\r\n if (this.parentComponentInput && (this.parentComponentInput instanceof LCRFormComponent || this.parentComponentInput instanceof ERFormComponent)) {\r\n this.contactForm.reset();\r\n this.contactOutput.emit(data);\r\n }\r\n }\r\n } else {\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate(['/contact', data]);\r\n }\r\n } else {\r\n sessionStorage['ValidatedContactSave'] = 'true';\r\n this.toastr.success('Contact saved successfully.');\r\n // Update the version number on the form\r\n this.getLatestContactVersion();\r\n }\r\n return data;\r\n },\r\n error => {\r\n this.loading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n\r\n }\r\n );\r\n\r\n }\r\n }\r\n\r\n // set the form as draft mode\r\n setDraftMode() {\r\n this.bIsDraftMode = true;\r\n }\r\n\r\n // set the form as active mode\r\n setActiveMode() {\r\n this.bIsDraftMode = false;\r\n }\r\n\r\n // Populate the contact form\r\n setcontactForm(contact: IContactDetail) {\r\n this.contactForm.patchValue({\r\n // firstName: this.sanitizedValue(contact.firstName),\r\n firstName: contact.firstName,\r\n lastName: contact.lastName,\r\n email: contact.email,\r\n phoneNumber: contact.phoneNumber,\r\n address: contact.address,\r\n city: contact.city,\r\n zip: contact.zip,\r\n phoneExt: contact.phoneExtension,\r\n dialCode: contact.dialCode,\r\n areaCode: contact.areaCode,\r\n status: contact.loAFlag === true ? 'Inactive' : 'Active'\r\n });\r\n\r\n this.selectedCountryId = +this.contact.countryId === 0 || this.contact.countryId === null || this.contact.countryId === undefined ? '' : this.contact.countryId;\r\n this.selectedRegionId = this.contact.countryRegion ? this.contact.countryRegion : '';\r\n // this.selectedBusinessCategoryId = this.contact.businessCategoryId ? this.contact.businessCategoryId : '';\r\n this.selectedBusinessCategoryId = this.contact.businessCategory && this.contact.businessCategory.categoryId ? this.contact.businessCategory.categoryId : null;\r\n this.contactForm.patchValue({\r\n businessCategoryId: this.selectedBusinessCategoryId\r\n });\r\n\r\n this.getFormControlByName('countryId').setValue(this.selectedCountryId);\r\n // this.getFormControlByName('businessCategoryId').setValue(this.selectedBusinessCategoryId);\r\n this.getFormControlByName('countryRegion').setValue(this.selectedRegionId);\r\n this.regionFromDrp = this.selectedRegionId;\r\n this.isFormDraftFlag = this.contact.formActiveFlag === 'Active' ? false : true;\r\n this.version = this.contact.version;\r\n this.formStatus = 'Form status: ' + this.contact.formActiveFlag;\r\n }\r\n\r\n sanitizedValue(value): SafeHtml {\r\n\r\n return this.sanitizer.sanitize(SecurityContext.HTML, value);\r\n }\r\n\r\n // Get the object ready before being saved\r\n prepareDataForSave(formValues) {\r\n const sessionCurrentCustomer = this.storageManagerService.read('currentCustomer');\r\n const currentCustomer = typeof sessionCurrentCustomer === 'object' ? sessionCurrentCustomer : JSON.parse(sessionCurrentCustomer);\r\n const authData = this.authService.getAuthData();\r\n\r\n formValues['modifiedBy'] = authData.name;\r\n formValues['loAFlag'] = formValues['status'] === 'Inactive' ? true : false;\r\n formValues['IsDraftMode'] = this.bIsDraftMode === true ? true : false;\r\n // formValues['businessCategoryId'] = this.f.businessCategoryId.value === '' ? this.selectedBusinessCategoryId : this.f.businessCategoryId.value;\r\n // formValues['businessCategory'] = formValues['businessCategoryId'];\r\n formValues['businessCategory'] = this.getGenericKeyObjectForBC(this.businessCategories, this.f.businessCategoryId.value === '' ? this.selectedBusinessCategoryId : this.f.businessCategoryId.value);\r\n\r\n formValues['countryRegion'] = this.f.countryRegion.value === '' ? this.selectedRegionId : this.f.countryRegion.value;\r\n formValues['countryRegion'] = this.validateRegion(formValues['countryRegion']);\r\n formValues['countryId'] = this.f.countryId.value === '' ? this.selectedCountryId : this.f.countryId.value;\r\n formValues['country'] = formValues['countryId'];\r\n formValues['userId'] = currentCustomer.customerGuid;\r\n // if we are creating a new contact, we need to clear out the contactId\r\n if (this.contactRevisionId === null || this.contactRevisionId === undefined || this.contactRevisionId === '') {\r\n formValues['contactRevisionId'] = null;\r\n sessionStorage['currentContactId'] = null;\r\n formValues['parentVersion'] = '0.0';\r\n } else {\r\n formValues['contactRevisionId'] = this.contactRevisionId;\r\n formValues['contactId'] = this.contactId;\r\n formValues['parentVersion'] = this.contact.version;\r\n }\r\n }\r\n\r\n\r\n cancelBtnClicked() {\r\n\r\n if (!this.parentComponentInput) {\r\n\r\n this.router.navigateByUrl('/contact-dashboard');\r\n } else {\r\n this.contactForm.clearValidators();\r\n this.contactForm.reset();\r\n this.cancelButtonClickedOutput.emit();\r\n }\r\n }\r\n\r\n // Get a form control by name\r\n getFormControlByName(controlName: string): UntypedFormControl {\r\n return this.contactForm.get(controlName);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.bFromCompanyPageEditLink = sessionStorage['fromCompanyPage'] === 'true' ? true : false;\r\n this.bFromCompanyPage = this.bFromCompanyPageEditLink;\r\n this.bSavedContact = false;\r\n\r\n for (const property in changes) {\r\n if (property === 'contactRevisionId') {\r\n if (this.contactRevisionId != undefined) {\r\n this.buttonText = 'Update contact';\r\n this.bFromCompanyPage = true;\r\n this.selectedBusinessCategoryId = '';\r\n this.selectedCountryId = '';\r\n this.selectedRegionId = '';\r\n this.regionFromDrp = '';\r\n this.errorMessage = '';\r\n this.getContactById();\r\n } else {\r\n this.getBusinessCategory();\r\n this.getCountries();\r\n }\r\n }\r\n }\r\n if (this.bFromCompanyPageEditLink) {\r\n this.pageTitle = this.contact.contactName;\r\n this.buttonText = 'Update contact';\r\n this.contactRevisionId = sessionStorage['currentContactRevisionId'];\r\n this.displayContact(this.contactData);\r\n }\r\n }\r\n\r\n isRequiredTypes(country: any): boolean {\r\n\r\n let retVal = false;\r\n\r\n if (this.companyType) {\r\n retVal = (this.companyType === this.COMPANY_TYPE_EST || this.companyType === this.COMPANY_TYPE_LABELER || this.companyType === this.COMPANY_TYPE_REGISTRANT) && country === +this.COUNTRY_USA;\r\n } else {\r\n retVal = country === +this.COUNTRY_USA;\r\n }\r\n return retVal;\r\n }\r\n\r\n // get the latest version number of the current contact\r\n getLatestContactVersion() {\r\n this.contactService.getContacts().subscribe(data => {\r\n if (data) {\r\n const currentContact = data['latestAvailableContactsList'].filter(x => x.contactId === +sessionStorage['ValidatedContactId']);\r\n if (currentContact && currentContact[0]) {\r\n // this.version = currentContact[0].version.substring(0, currentContact[0].version.length - 1);\r\n this.version = currentContact[0].version;\r\n }\r\n\r\n }\r\n },\r\n error => this.toastr.error(error.errorMessage)\r\n );\r\n }\r\n\r\n // Initialization\r\n initParams() {\r\n this.contactForm.reset();\r\n this.getBusinessCategory();\r\n this.getCountries();\r\n this.errorMessage = '';\r\n sessionStorage['fromCompanyPage'] = false;\r\n this.utilService.toggleClientDropdownState(true);\r\n this.checkUserPermission();\r\n this.errorMessage = '';\r\n }\r\n\r\n /**\r\n * Function to duplicate the Validators.Email\r\n * @param {AbstractControl} control - the control to validate\r\n */\r\n emailValidator(control) {\r\n if (control.value) {\r\n const matches = control.value.match(/[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[A-Za-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?/);\r\n return matches ? null : { 'invalidEmail': true };\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n onSaveComplete(): void {\r\n this.contactForm.reset();\r\n this.router.navigate(['/conpany-contact-list']);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n sessionStorage['fromCompanyPage'] = false;\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

Add Contact

\r\n

{{this.contact.firstName}} {{this.contact.lastName}}

\r\n

\r\n Version: {{this.version}}\r\n current\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n  NOT CURRENT VERSION - Any changes made could overwrite a newer version of this form.\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Contact first name is required
\r\n
Contact first name is invalid
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Contact last name is required
\r\n
Contact last name is invalid
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Email address is required
\r\n
Email address is invalid
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Country code is required
\r\n
Country code is invalid
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Area code is required
\r\n
Area code is invalid
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Subscriber number is required
\r\n
Subscriber number is invalid
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Extension is invalid
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Subscriber number is invalid\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Area Code is invalid\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
Street address is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
City is required
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Country is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
State/Region is required
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
Postal code is required
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Status is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{errorMessage}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription } from 'rxjs';\r\nimport { IContactCompany, IContactDetail } from '../../shared/models/index';\r\nimport { CompanyContactService, StorageManagerService } from '../../shared/services/index';\r\nimport { ContactDetailComponent, ERFormComponent, LCRFormComponent } from '../index';\r\n\r\n@Component({\r\n selector: 'app-contact',\r\n templateUrl: './contact.component.html',\r\n styleUrls: ['./contact.component.scss']\r\n})\r\nexport class ContactComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('contactDetail') contactDetailComponent: ContactDetailComponent;\r\n @Input() contactHistory_grid_data: IContactDetail[];\r\n @Input() company_grid_data: IContactCompany[];\r\n public initialPage: Object;\r\n public sortOptions: Object;\r\n contact: IContactDetail;\r\n contactId: string;\r\n contactRevisionId: string;\r\n loading = false;\r\n errorMessage: string;\r\n isNewContact = false;\r\n referrerUrl: string;\r\n sub: Subscription;\r\n\r\n @ViewChild('tooltipCompany') tooltipCompany: TooltipComponent;\r\n @ViewChild('tooltipContact') tooltipContact: TooltipComponent;\r\n\r\n @ViewChild('contactHistoryGrid') contactHistoryGrid: GridComponent;\r\n @ViewChild('company_grid') company_grid: GridComponent;\r\n\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n @Input() parentComponentInput: LCRFormComponent | ERFormComponent;\r\n @Output() cancelButtonClickedOutput = new EventEmitter();\r\n @Output() contactOutput = new EventEmitter();\r\n @Output() contactRetrievedOutput = new EventEmitter();\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute, private storageManagerService: StorageManagerService,\r\n private router: Router, private toastr: ToastrService,\r\n private contactService: CompanyContactService, private sanitizer: DomSanitizer) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.sortOptions = {\r\n columns: [{ field: 'companyName', direction: 'Ascending' }]\r\n };\r\n\r\n sessionStorage['tab'] = 'contact';\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n\r\n // Get Contact detail\r\n this.getContactRevisionId();\r\n if (!this.isNewContact) {\r\n this.getContactRevisionHistory();\r\n this.getContactById(this.contactRevisionId);\r\n }\r\n\r\n this.activatedRoute.queryParams.subscribe( ref => {\r\n this.referrerUrl = ref['referrerUrl'];\r\n });\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n let currentGridId;\r\n let tooltip: TooltipComponent;\r\n\r\n currentGridId = args.event.currentTarget.firstChild.id;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n if (currentGridId) {\r\n switch (currentGridId) {\r\n case 'contactHistoryGrid':\r\n grid = this.contactHistoryGrid;\r\n tooltip = this.tooltipContact;\r\n break;\r\n case 'company_grid':\r\n grid = this.company_grid;\r\n tooltip = this.tooltipCompany;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n tooltip.cssClass = 'customTooltip';\r\n tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n }\r\n\r\n\r\n // Format \"Version\" column on company history grid\r\n customizeCell(args: QueryCellInfoEventArgs) {\r\n if (args.column.field === 'version') {\r\n if (args.data['activeFlagFormatted'] === 'Active') {\r\n args.cell.innerHTML = args.data['version'] + ' current';\r\n\r\n }\r\n }\r\n }\r\n\r\n getContactRevisionId() {\r\n\r\n if (!this.parentComponentInput) {\r\n this.contactRevisionId = this.activatedRoute.snapshot.params.contactRevisionId;\r\n if (!this.contactRevisionId) {\r\n this.isNewContact = true;\r\n }\r\n }\r\n }\r\n\r\n getContactById(contactRevisionId: string): void {\r\n\r\n if (contactRevisionId) {\r\n this.contactService.getContactById(contactRevisionId).subscribe(data => {\r\n if (data) {\r\n this.contact = data['contactDetail'];\r\n this.contactId = this.contact.contactId;\r\n this.company_grid_data = data['associatedCompanies'];\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // Display detail of a single company\r\n viewCompany(companyRevisionId: string, companyId: string) {\r\n if (companyRevisionId) {\r\n sessionStorage['currentCompanyId'] = companyId;\r\n this.router.navigate(['/company-details', companyRevisionId]);\r\n }\r\n }\r\n\r\n // Display detail of a single contact\r\n viewContact(contactRevisionId: string, contactId: string) {\r\n if (contactRevisionId) {\r\n // sessionStorage['currentContactId'] = contactId;\r\n // reload with new data\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() =>\r\n this.router.navigate(['/contact', contactRevisionId]));\r\n }\r\n }\r\n\r\n cancelBtnClicked() {\r\n\r\n if (!this.parentComponentInput) {\r\n\r\n this.router.navigateByUrl('/company-contact-maintenance');\r\n } else {\r\n\r\n this.cancelButtonClickedOutput.emit();\r\n }\r\n }\r\n // Retrieve historical contact records\r\n getContactRevisionHistory(): void {\r\n\r\n if (this.contactRevisionId) {\r\n this.contactService.getContactRevisionHistory(Number(this.contactRevisionId)).subscribe(data => {\r\n if (data) {\r\n this.contactHistory_grid_data = data;\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n savedContact(contact) {\r\n this.contactOutput.emit(contact);\r\n }\r\n\r\n contactRetrieved(contact) {\r\n this.contactRetrievedOutput.emit(contact);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Associated companies

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{this.company_grid_data.companyName}}\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Contact history

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {{this.contactHistory_grid_data.contactName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { DatePickerComponent } from '@syncfusion/ej2-angular-calendars';\r\nimport { Subscription } from 'rxjs';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { ILLFormDetail, ILLGenericKeys, ILLKit, ILLProduct } from '../../shared/models/index';\r\nimport { LLFormService, StorageManagerService } from '../../shared/services/index';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-create-ll-form',\r\n templateUrl: './create-ll-form.component.html',\r\n styleUrls: ['./create-ll-form.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CreateLLFormComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('effDate') public effectiveDate: DatePickerComponent;\r\n\r\n sub: Subscription;\r\n public wizardForm: UntypedFormGroup;\r\n\r\n errorMessage: string;\r\n selectedProductType: string;\r\n submitted = false;\r\n loading = false; productTypeId: any;\r\n productTypesLov: ILLGenericKeys[] = [];\r\n productTypesDataSource: any[] = [];\r\n public dateValue: Date = new Date();\r\n llForm: ILLFormDetail = new ILLFormDetail();\r\n dateFormat: any;\r\n\r\n // set the height of the popup element\r\n public ddwHeight = '220px';\r\n\r\n // maps the appropriate column to fields property\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n public productTypeFields: Object = {\r\n text: 'label',\r\n value: 'id'\r\n };\r\n\r\n // set the placeholder to DropDownList input elements\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n public productTypeWaterMark = 'Select a Product Type';\r\n\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n formErrors = {\r\n formName: '',\r\n productTypeId: ''\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n validationMessages = {\r\n formName: {\r\n required: 'Form name is required'\r\n },\r\n productTypeId: {\r\n required: 'Product type is required'\r\n }\r\n };\r\n\r\n\r\n constructor (\r\n private fb: UntypedFormBuilder, private router: Router,\r\n private llService: LLFormService, private toastr: ToastrService,\r\n private utilService: Utilities, private storageManagerService: StorageManagerService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.wizardForm = this.fb.group({\r\n formName: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n productTypeId: ['', { validators: [Validators.required], updateOn: 'blur' }],\r\n effectiveDate: ['', { updateOn: 'blur' }],\r\n isKit: ['No', { updateOn: 'blur' }]\r\n });\r\n\r\n this.initParams();\r\n\r\n // Watches changes on the entire form\r\n this.wizardForm.valueChanges.subscribe(data => {\r\n\r\n this.logValidationErrors(this.wizardForm);\r\n });\r\n\r\n this.dateFormat = Utilities.getLocaleDateString();\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n initParams() {\r\n this.wizardForm.reset();\r\n // disable the company dropdown to prevent the user from switching client on the form\r\n this.utilService.toggleClientDropdownState(true);\r\n this.getProductTypes();\r\n this.getFormControlByName('isKit').patchValue('No');\r\n}\r\n\r\n // Retrieve list of all the available product types\r\n getProductTypes(): void {\r\n this.llService.getProductTypes().subscribe(data => {\r\n if (data) {\r\n this.productTypesLov = data['data'].filter(x => x.lsP_FORM_TYPE === 'doc_type_ll');\r\n\r\n this.productTypesLov.forEach((type: ILLGenericKeys) => {\r\n\r\n const ds = { id: 0, label: '' };\r\n ds.id = +type.id;\r\n ds.label = type.label + ' (' + type.code + ')';\r\n\r\n this.productTypesDataSource.push(ds);\r\n });\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n productTypeSelectionChanged(event) {\r\n if (event.itemData) {\r\n this.productTypeId = event.value;\r\n\r\n this.selectedProductType = this.getProductTypeDesc(this.productTypeId);\r\n }\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.wizardForm.controls; }\r\n\r\n // Save/Update contact info to the database\r\n createLLForm(): void {\r\n\r\n // stop here if form is invalid\r\n if (this.wizardForm.invalid) {\r\n\r\n if (!this.f.formName.value) {\r\n\r\n this.formErrors.formName = this.validationMessages.formName.required;\r\n }\r\n\r\n if (!this.f.productTypeId.value) {\r\n\r\n this.formErrors.productTypeId = this.validationMessages.productTypeId.required;\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (this.wizardForm.valid) {\r\n\r\n this.loading = true;\r\n\r\n if (this.wizardForm.dirty) {\r\n\r\n this.llForm.formName = this.wizardForm.value.formName;\r\n this.llForm.effectiveDate = this.effectiveDate.value;\r\n this.llForm.splVersion = '1';\r\n this.llForm.serviceType = this.productTypesLov.find(p => p.id === this.productTypeId);\r\n if (this.llForm.serviceType) {\r\n this.llForm.serviceType.label =`${this.llForm.serviceType.label} (${this.llForm.serviceType.code})`;\r\n }\r\n\r\n if (this.wizardForm.value.isKit === 'No') {\r\n\r\n const product = new ILLProduct();\r\n\r\n product.proprietaryName = '';\r\n product.$type = 'RTCD_LLProduct';\r\n\r\n this.llForm.products = [];\r\n this.llForm.products.push(product);\r\n }\r\n\r\n if (this.wizardForm.value.isKit === 'Yes') {\r\n\r\n const kit = new ILLKit();\r\n kit.parts = [];\r\n let part = new ILLProduct();\r\n part.$type = \"RTCD_LLPart\";\r\n kit.parts.push(part); // we need to create an empty part initially\r\n kit.$type = 'RTCD_LLKit';\r\n this.llForm.products = [];\r\n this.llForm.products.push(kit);\r\n }\r\n\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n const newProductListing: Object = {\r\n form: this.llForm,\r\n kit: this.wizardForm.value.isKit\r\n };\r\n\r\n this.llService.saveLLForm(this.llForm, modifiedByUser, true).subscribe((response) => {\r\n this.loading = false;\r\n this.router.navigate([`/products/ll-form/${ response?.data?.llRevisionId }`]);\r\n },\r\n error => {\r\n this.loading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n getProductTypeDesc(id: string): string {\r\n return this.productTypesLov.filter(x => x.id === id)[0].label;\r\n }\r\n\r\n onOpen(e: any) {\r\n this.wizardForm.markAsDirty();\r\n this.wizardForm.markAsTouched();\r\n }\r\n\r\n cancelBtnClicked() {\r\n this.router.navigateByUrl('/products/portfolio');\r\n }\r\n\r\n // Get a form control by name\r\n getFormControlByName(controlName: string): UntypedFormControl {\r\n return this.wizardForm.get(controlName);\r\n }\r\n\r\n onBlur() {\r\n\r\n this.wizardForm.patchValue({\r\n formName: this.wizardForm.value.formName ? this.wizardForm.value.formName.trim() : ''\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n\r\n /**\r\n * The function drills to down from the FormGroup or FormArray down\r\n * to the AbstractControl in order to check if the value is entered.\r\n * Populates the FormErrors object based on the Validators attached to the formControls.\r\n * @param {FormGroup} group passed by the form validation.\r\n */\r\n logValidationErrors(group: UntypedFormGroup = this.wizardForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n\r\n this.formErrors[key] = '';\r\n if (\r\n abstractControl &&\r\n !abstractControl.valid &&\r\n (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages[errorKey] + ' ';\r\n }\r\n }\r\n }\r\n\r\n if (abstractControl instanceof UntypedFormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n }\r\n\r\n // We need this additional check to get to the FormGroup\r\n // in the FormArray and then recursively call this\r\n // logValidationErrors() method to fix the broken validation\r\n if (abstractControl instanceof UntypedFormArray) {\r\n for (const control of abstractControl.controls) {\r\n if (control instanceof UntypedFormGroup) {\r\n this.logValidationErrors(control);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

New Product Labeling/Listing

\r\n

\r\n The fields below are required to start a new Product Labeling/Listing form. If you haven't already, make sure you have completed the following prerequisites to make the completion of your Product Labeling/Listing form a lot easier: a Labeler Code Request, added Companies and Contacts, and created an Establishment Registration.\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{formErrors?.formName}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{formErrors?.productTypeId}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n {{errorMessage}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output, Input, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ICustomer } from '../../shared/models/customer.model';\r\nimport { StorageManagerService } from '../../shared/services/index';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { Utilities } from '../../shared/services/utilities';\r\n\r\n\r\n@Component({\r\n\tselector: 'app-customer-selector',\r\n\ttemplateUrl: './customer-selector.component.html',\r\n\tstyleUrls: ['./customer-selector.component.scss'],\r\n\tencapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class CustomerSelectorComponent implements OnInit {\r\n\r\n\tselectedCustomer: string;\r\n\theader = 'Select';\r\n\tanimationSettings: Object = { effect: 'None' };\r\n\thide: any;\r\n\tfields: Object = { text: 'customerName', value: 'customerId' };\r\n\tcustomersWaterMark = 'Select one';\r\n\tddwHeight = '220px';\r\n\tddwWidth = '384px';\r\n\r\n userGuid: string;\r\n\r\n\t@Input() customers: ICustomer[];\r\n @Output() currentCustomer = new EventEmitter();\r\n\r\n @ViewChild('csCustomersddw')\r\n\tcsCustomersddw: DropDownListComponent;\r\n\r\n @ViewChild('dialog')\r\n\tdialog: DialogComponent;\r\n\tBtnClick: EmitType = () => {\r\n\t\tthis.dialog.show();\r\n\t}\r\n\r\n\r\n constructor(private storageManagerService: StorageManagerService, private utilService: Utilities) {}\r\n\r\n ngOnInit() {\r\n if (this.customers && this.customers.length > 0 && this.dialog) {\r\n this.dialog.hide();\r\n }\r\n }\r\n\r\n\tdlgBtnClick: EmitType = () => {\r\n\r\n\t\tif (this.selectedCustomer) {\r\n\t\t\tthis.processCustomer(+this.selectedCustomer);\r\n\t\t\tthis.dialog.hide();\r\n\t\t}\r\n\t}\r\n\r\n\tdlgButtons: Object[] = [{\r\n\t\tclick: this.dlgBtnClick.bind(this), buttonModel: { content: 'Get started', isPrimary: true, cssClass: 'e-disabled' }\r\n\t}];\r\n\r\n\tprocessCustomer(customerToFind: number) {\r\n\r\n\t\tlet customer;\r\n\r\n\t\tif (this.customers && this.customers.length > 0) {\r\n\r\n\t\t\tcustomer = this.customers.find(c => c.customerId === customerToFind);\r\n\r\n\t\t\tif (customer) {\r\n\r\n\t\t\t\tthis.currentCustomer.emit(customer);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcustomerChanged(event) {\r\n\t\tthis.selectedCustomer = event.itemData.customerId;\r\n\r\n\t\tif (this.selectedCustomer) {\r\n\t\t\tconst button = this.dialog.getButtons()[0];\r\n\r\n\t\t\tif (button) {\r\n\t\t\t\tbutton.cssClass = '';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","\r\n\r\n
\r\n
\r\n

Select a company

\r\n
\r\n
\r\n

Before you start, let's pick a company to work with.

\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, ViewEncapsulation, ViewChild, OnInit, OnDestroy } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbTabset } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { AuthorizationService, OrderService, SettingsService, StorageManagerService } from '../../shared/services/index';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { DeleteButtonComponent } from '../common/delete-button/delete-button.component';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { EsigModalComponent } from '../common/esig-modal/esig-modal.component';\r\nimport { PragmaticValidationService } from '../../shared/services/pragmatic-validation.service';\r\nimport { RTCDPragmaticValidation } from '../../shared/models/rtcd_pragmatic_validation.model';\r\nimport { ERFormService } from '../../shared/services/er-form-service';\r\nimport { FormType } from '../../shared/models/form-type';\r\n\r\n@Component({\r\n selector: 'app-er-form-dashboard',\r\n templateUrl: './er-form-dashboard.component.html',\r\n styleUrls: ['./er-form-dashboard.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\n\r\nexport class ERFormDashboardComponent implements OnInit, OnDestroy {\r\n @ViewChild('ERForm_grid')\r\n public ERForm_grid: GridComponent;\r\n @ViewChild('drafts_grid')\r\n public draftsGrid: GridComponent;\r\n @ViewChild('deliveries_grid')\r\n public deliverieGrid: GridComponent;\r\n @ViewChild('tabset', { static: true })\r\n public tabset: NgbTabset;\r\n @ViewChild('tooltipER')\r\n public tooltipER: TooltipComponent;\r\n @ViewChild('tooltipDrafts')\r\n public tooltipDrafts: TooltipComponent;\r\n @ViewChild('tooltipDeliveries')\r\n public tooltipDeliveries: TooltipComponent;\r\n ERForm_grid_data: any[];\r\n ERDraftForm_grid_data: any[];\r\n ERDeliveries_grid_data: any[];\r\n public initialPage: Object;\r\n public sortOptions: Object;\r\n public formatOptions: object;\r\n public toolbarOptions: Object;\r\n count_ERForm: number;\r\n count_draftERForm: number;\r\n count_deliveriesERForm: number;\r\n submitted = false;\r\n public searchForm: UntypedFormGroup;\r\n errorMessage: string;\r\n bHasPermission = false;\r\n sub: Subscription;\r\n formData: any;\r\n loading = false;\r\n activeTab: string;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n hasDeletePermission = false;\r\n selectedErRevisionId: number | undefined;\r\n @ViewChild('deleteERButton')\r\n public deleteButton: DeleteButtonComponent;\r\n @ViewChild('deleteERDraftButton')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n @ViewChild('deleteERDeliveryButton')\r\n public deleteButtonDelivery: DeleteButtonComponent;\r\n @ViewChild('sendToFDAButton')\r\n public sendToFDAButton: EsigModalComponent;\r\n selectedERRevisionDraftMode: boolean | undefined;\r\n selectedERRevisionProductType: string | undefined;\r\n selectedERRevisionFileName: string | undefined;\r\n selectedERRevisionVersion: string | undefined;\r\n\r\n needsToPoll: boolean = true;\r\n\r\n constructor (private router: Router, private storageManagerService: StorageManagerService,\r\n private orderService: OrderService, private toastr: ToastrService,\r\n private fb: UntypedFormBuilder, private authorizationService: AuthorizationService,\r\n private activatedRoute: ActivatedRoute, private sanitizer: DomSanitizer,\r\n private pragmaticValidationService: PragmaticValidationService,\r\n private settingsService: SettingsService, private erFormService: ERFormService,\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.pollData();\r\n\r\n this.searchForm = this.fb.group({\r\n searchText: ['', { validators: [Validators.required], updateOn: 'blur' }]\r\n });\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n this.checkUserPermission();\r\n\r\n // Setup the tool bar configuration\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.bHasPermission);\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.activeTab = 'ERFormGrid';\r\n }\r\n\r\n pollData() {\r\n this.getDeliveryDashboard(true); // Start polling immeditely\r\n // Poll every minute (60000 milliseconds) only if needsToPoll = true\r\n this.sub = interval(60000).subscribe(() => {\r\n if (this.needsToPoll) {\r\n this.getDeliveryDashboard(false);\r\n }\r\n });\r\n }\r\n\r\n getDeliveryDashboard(isInitialCall) {\r\n if (isInitialCall) {\r\n this.formData = this.activatedRoute.snapshot.data['formData'];\r\n this.gridDataSetup();\r\n } else {\r\n this.erFormService.getERDelilveries().subscribe({\r\n next: (result: any) => {\r\n if(result && result.data.length) {\r\n this.processDeliveryDashboardData(result);\r\n this.gridDataSetup('deliveries');\r\n }\r\n else{\r\n this.loading = false\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n processDeliveryDashboardData(result: any) {\r\n const today: Date = new Date();\r\n const numberOfDaysAgo: Date = new Date(today.getTime() - parseInt(this.settingsService.pragmaticValidatorAutoRefreshDays, 10) * 24 * 60 * 60 * 1000);\r\n\r\n this.ERDeliveries_grid_data = result.data.map(x => {\r\n if (x.pragmaticValidationDate) {\r\n x.pragmaticValidationDate = new Date(x.pragmaticValidationDate);\r\n }\r\n return x;\r\n });\r\n\r\n const filteredDataPragmaticTaskStatusInProgress = this.ERDeliveries_grid_data.filter(item => item.pragmaticTaskStatusCode === 1);\r\n this.loading = false;\r\n const filteredDataWithConfigDaysAgo = filteredDataPragmaticTaskStatusInProgress.some(item => {\r\n const createDate: Date = new Date(item.pragmaticValidationDate);\r\n return createDate >= numberOfDaysAgo;\r\n });\r\n\r\n if (!filteredDataWithConfigDaysAgo) {\r\n this.needsToPoll = false;\r\n }\r\n this.formData[1].data = this.ERDeliveries_grid_data;\r\n }\r\n\r\n gridDataSetup(gridName?: string) {\r\n // ER form list\r\n if (this.formData) {\r\n if (this.formData.error) {\r\n this.toastr.error(this.formData.error);\r\n this.formData = null;\r\n } else if (!Array.isArray(this.formData)) {\r\n this.toastr.error(this.formData);\r\n this.formData = null;\r\n } else {\r\n if (this.formData[0]) {\r\n this.ERForm_grid_data = this.formData[0].data.filter(x => x.isDraftMode === false);\r\n this.count_ERForm = this.ERForm_grid_data.length;\r\n this.ERDraftForm_grid_data = this.formData[0].data.filter(x => x.isDraftMode === true);\r\n this.count_draftERForm = this.ERDraftForm_grid_data.length;\r\n }\r\n }\r\n }\r\n\r\n // Merge Deliveries\r\n if (this.formData && this.formData[1]) {\r\n this.ERDeliveries_grid_data = this.formData[1].data;\r\n this.count_deliveriesERForm = this.ERDeliveries_grid_data.length;\r\n\r\n if (this.deliverieGrid) {\r\n this.deliverieGrid.refresh();\r\n }\r\n }\r\n this.searchForm = this.fb.group({\r\n searchText: ['', { validators: [Validators.required], updateOn: 'blur' }]\r\n });\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n this.checkUserPermission();\r\n\r\n // Setup the tool bar configuration\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.bHasPermission);\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.activeTab = gridName?? 'ERFormGrid';\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n // Setup the tool bar configuration\r\n this.erFormGridRowDeselected();\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.bHasPermission);\r\n this.selectedErRevisionId = undefined;\r\n }\r\n\r\n pragmaticValidation() {\r\n let foundItemIndex = this.ERDeliveries_grid_data.findIndex(x => x.fileName === this.selectedERRevisionFileName);\r\n if (this.ERDeliveries_grid_data[foundItemIndex].pragmaticTaskStatusCode === 1) {\r\n this.toastr.warning(`Pragmatic validation is already in process.`, '', { closeButton: true });\r\n return; \r\n }\r\n\r\n if (foundItemIndex != -1 ) {\r\n const customerGuid = this.settingsService.getCustomerGuid();\r\n let pragmaticData: RTCDPragmaticValidation = {\r\n formRevisionId: this.ERDeliveries_grid_data[foundItemIndex].erRevisionId,\r\n sourceFilePath: this.ERDeliveries_grid_data[foundItemIndex].filePath,\r\n sourceFileName: this.ERDeliveries_grid_data[foundItemIndex].fileName,\r\n fileType: FormType.ER,\r\n createUser: this.storageManagerService.read('userData').userguid,\r\n changeUser: this.storageManagerService.read('userData').userguid,\r\n customerGuid,\r\n }\r\n\r\n this.pragmaticValidationService.pragmaticValidation(pragmaticData).subscribe({\r\n next: (result) => {\r\n this.ERDeliveries_grid_data[foundItemIndex].pragmaticTaskStatusCode = 1;\r\n this.ERDeliveries_grid_data[foundItemIndex].pragmaticTaskStatus = 'InProgress';\r\n this.deliverieGrid.refresh();\r\n this.needsToPoll = true;\r\n },\r\n error: (error) => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n },\r\n });\r\n }\r\n }\r\n\r\n getActiveGrid() {\r\n let grid;\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n grid = this.draftsGrid;\r\n break;\r\n case 'deliveries':\r\n grid = this.deliverieGrid;\r\n break;\r\n case 'ERFormGrid':\r\n grid = this.ERForm_grid;\r\n break;\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n let tooltip: TooltipComponent;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n grid = this.getActiveGrid();\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n tooltip = this.tooltipDrafts;\r\n break;\r\n case 'deliveries':\r\n tooltip = this.tooltipDeliveries;\r\n break;\r\n case 'ERFormGrid':\r\n tooltip = this.tooltipER;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n tooltip.cssClass = 'customTooltip';\r\n tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n // Download spl files\r\n downloadFile(filePath: string, fileName: string) {\r\n\r\n this.sub = this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n // non-IE\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = fileName;\r\n link.click();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'formVersion':\r\n args.currentFilterObject.value = `${ args.currentFilterObject.value }.0`;\r\n break;\r\n case 'formatedModifiedDate':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Display detail of a single ER form\r\n viewERForm(erRevisionId: string) {\r\n if (erRevisionId) {\r\n this.router.navigate(['/er-form', erRevisionId]);\r\n }\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteERForm')) {\r\n this.bHasPermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteERForm')) {\r\n this.hasDeletePermission = true;\r\n }\r\n }\r\n\r\n createCustomToolbarItems(deletePermission: boolean, writePermission: boolean) {\r\n let toolbarItems = [];\r\n\r\n if (this.activeTab === 'deliveries' && writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Send to FDA',\r\n tooltipText: 'Send to FDA',\r\n prefixIcon: 'fas fa-paper-plane',\r\n id: 'tool-bar-send'\r\n }\r\n );\r\n }\r\n\r\n if (writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New ER',\r\n tooltipText: 'Add a new ER to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if (deletePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Delete ER',\r\n tooltipText: 'Delete the selected ER',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n )\r\n }\r\n\r\n if (this.activeTab === 'deliveries' && writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Pragmatic',\r\n tooltipText: 'Validate the file with Pragmatic',\r\n prefixIcon: 'fal fa-circle-parking',\r\n id: 'validation-form-btn'\r\n }\r\n );\r\n }\r\n\r\n toolbarItems.push('Search');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n onSubmitionToFDA(isSuccessfulySubmitted: boolean) {\r\n if (isSuccessfulySubmitted) {\r\n if (this.deliverieGrid) {\r\n this.deliverieGrid.clearSelection();\r\n }\r\n }\r\n }\r\n\r\n // Grid toolbar click event handler\r\n toolbarClick(args: ClickEventArgs): void {\r\n if (args.item.id === 'create-form-btn' && this.bHasPermission) {\r\n this.router.navigate([\"/er-form\"]);\r\n }\r\n else if (!this.selectedErRevisionId) {\r\n this.toastr.warning(`No Row(s) selected.`, '', { closeButton: true });\r\n return;\r\n }\r\n else if (args.item.id === 'tool-bar-delete' && this.selectedErRevisionId) {\r\n if (this.ERForm_grid) {\r\n this.deleteButton.revisionId = this.selectedErRevisionId.toString();\r\n this.deleteButton.openDeleteModal();\r\n }\r\n else if (this.draftsGrid) {\r\n this.deleteButtonDrafts.revisionId = this.selectedErRevisionId.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n else if (this.deliverieGrid) {\r\n this.deleteButtonDelivery.revisionId = this.selectedErRevisionId.toString();\r\n this.deleteButtonDelivery.openDeleteModal();\r\n }\r\n }\r\n else if (this.deliverieGrid && this.selectedERRevisionFileName && args.item.id === 'tool-bar-send') {\r\n this.sendToFDAButton.showEsignatureModal();\r\n } else if (this.deliverieGrid && this.selectedERRevisionFileName && args.item.id === 'validation-form-btn') {\r\n this.pragmaticValidation();\r\n }\r\n }\r\n\r\n erFormGridRowSelected(e: any) {\r\n this.selectedErRevisionId = e.data.erRevisionId;\r\n\r\n this.selectedERRevisionProductType = e.data.documentType;\r\n this.selectedERRevisionFileName = e.data.fileName;\r\n this.selectedERRevisionVersion = e.data.formVersion;\r\n }\r\n\r\n erFormGridRowDeselected() {\r\n this.selectedErRevisionId = undefined;\r\n\r\n this.selectedERRevisionProductType = undefined;\r\n this.selectedERRevisionFileName = undefined;\r\n this.selectedERRevisionVersion = undefined;\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.searchForm.controls; }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n const currentGrid = this.getActiveGrid();\r\n if (currentGrid?.getSelectedRecords().length) {\r\n currentGrid.clearSelection();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Establishment Registrations (ER)

\r\n

\r\n You can create a new Establishment Registrations form, find an existing form,\r\n or browse through all the forms you have in the system with the helpful\r\n grid below.\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n ER ({{ count_ERForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{this.ERForm_grid_data.formName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Drafts ({{ count_draftERForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{this.ERForm_grid_data.formName}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n ER Deliveries ({{ count_deliveriesERForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ERDeliveries_grid_data.formName}}\r\n \r\n \r\n \r\n \r\n \r\n  {{ERDeliveries_grid_data.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { AfterViewInit, ChangeDetectorRef, Component, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport {\r\n UntypedFormArray,\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators,\r\n AbstractControl,\r\n} from \"@angular/forms\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport { ExpandEventArgs } from '@syncfusion/ej2-angular-navigations';\r\nimport {\r\n DialogComponent,\r\n TooltipComponent,\r\n} from \"@syncfusion/ej2-angular-popups\";\r\nimport { closest, EmitType } from \"@syncfusion/ej2-base\";\r\nimport { UUID } from \"angular2-uuid\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Subject, Subscription, of, forkJoin } from \"rxjs\";\r\nimport { fadeInOut } from \"../../shared/helpers/animations\";\r\nimport {\r\n IEntity,\r\n IER,\r\n IErRevisionHistory,\r\n IEstablishment,\r\n IImporter,\r\n ILLCompany,\r\n ILLCustomerCompaniesByTypeWrapper,\r\n ILLBusinessCategory,\r\n ILLEstablishment,\r\n ILLGenericKeys,\r\n ISplValidation,\r\n ISSDPConctact,\r\n} from \"../../shared/models/index\";\r\nimport { ERFormService } from \"../../shared/services/er-form-service\";\r\nimport {\r\n AuthorizationService,\r\n CompanyContactService,\r\n StorageManagerService,\r\n LLFormService,\r\n} from \"../../shared/services/index\";\r\nimport { Utilities } from \"../../shared/services/utilities\";\r\nimport {\r\n ErrorMessagesComponent,\r\n ContactComponent,\r\n DeleteButtonComponent,\r\n} from \"../index\";\r\nimport { DatePipe } from \"@angular/common\";\r\nimport { CompanyDetailsComponent } from \"../company-details/company-details.component\";\r\nimport { RefdataService } from \"../../shared/services/refdata.service\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"app-er-form\",\r\n templateUrl: \"./er-form.component.html\",\r\n styleUrls: [\"./er-form.component.scss\"],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class ERFormComponent\r\n implements OnInit, AfterViewInit, OnDestroy, OnChanges\r\n{\r\n @ViewChild(\"buildModalDialog\") buildModalDialog: DialogComponent;\r\n @ViewChild(\"revHistoryDialog\") revHistoryDialog: DialogComponent;\r\n @ViewChild(\"busOpsDialog\") busOpsDialog: DialogComponent;\r\n @ViewChild(\"registrantDdw\") registrantDdw: DropDownListComponent;\r\n @ViewChild(\"estabCompanyDdw\") estabCompanyDdw: DropDownListComponent;\r\n @ViewChild(\"companyDialog\") public companyDialog: DialogComponent;\r\n @ViewChild(\"companyDetails\")\r\n public companyDetailsComponent: CompanyDetailsComponent;\r\n @ViewChild(\"contactDialog\") public contactDialog: DialogComponent;\r\n @ViewChild(\"contact\") public contactComponent: ContactComponent;\r\n @ViewChild(\"deleteButton\") deleteButton: DeleteButtonComponent;\r\n\r\n errorMessagesComponent: ErrorMessagesComponent;\r\n position: object = { X: \"center\", Y: \"center\" };\r\n modalWidth = \"30%\";\r\n modalHeight = \"auto\";\r\n animationSettings: Object = { effect: \"Zoom\" };\r\n isModal = true;\r\n\r\n ddwFields: Object = { text: \"name\", value: \"id\" };\r\n splSubmissionTypeFields: Object = { text: \"labelAndCode\", value: \"id\" };\r\n public ddwHeight = \"220px\";\r\n public ddwWidth = \"450px\";\r\n ddwWaterMark = \"Select One\";\r\n splValidationMessages: ISplValidation = new ISplValidation();\r\n showValidationMessages: boolean;\r\n pageLoading = false;\r\n // Button Spinners\r\n buildLoading = false;\r\n validateLoading = false;\r\n saveLoading = false;\r\n updatedVersion: string;\r\n\r\n erRevisionId: string;\r\n formData: any;\r\n formDetailData = new IER();\r\n bHasPermission = false;\r\n hasDeletePermission: boolean = false;\r\n formName: string;\r\n allLOV: any[] = [];\r\n splSubmissionTypeDdwDS: any[] = [];\r\n erRevisions: IErRevisionHistory[] = [];\r\n revisionCurrentRevision: IErRevisionHistory;\r\n registrantCompany: ILLCompany;\r\n registrantCompanies: ILLCompany[] = [];\r\n estabUsAgentCompanies: ILLCompany[] = [];\r\n estabImporterCompanies: ILLCompany[] = [];\r\n registrantCompaniesDdwDS: any[] = [];\r\n registrantContact = {};\r\n estabCompaniesDdwDS = [];\r\n estabUsAgentCompaniesDdwDS = [];\r\n estabImporterCompaniesDdwDS = [];\r\n erData: IER;\r\n estabCompanies: ILLEstablishment[] = [];\r\n businessOperations: ILLGenericKeys[] = [];\r\n establishments: IEstablishment[] = [];\r\n rules = { setId: { required: true } };\r\n\r\n iconTypeCompany = true;\r\n\r\n sub: Subscription;\r\n confirmDialogSelection$: Subject = new Subject();\r\n setId: string;\r\n status: string;\r\n splVersion: string;\r\n lastModifiedBy: string;\r\n lastModifiedDate: string;\r\n splSubmissionTypeMissing: boolean;\r\n revisionDateMissing = true;\r\n current: boolean;\r\n versionToDisplay: any;\r\n businessCategoryModel: object;\r\n erForm: UntypedFormGroup;\r\n registrantCompanyRevisionId: any;\r\n dunsNumber: string;\r\n setIdModel: object;\r\n revHistoryVisible = false;\r\n buildModalDialogVisible = false;\r\n public type = \"Push\";\r\n public enablePersistence = false;\r\n public clickEventArgs: Event;\r\n countries: IEntity[] = [];\r\n regions: IEntity[] = [];\r\n\r\n public hidden: Boolean = false;\r\n buildERComplete = false;\r\n\r\n parentComponent: any;\r\n customerGuid: string;\r\n companyData: any;\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n formErrors = {\r\n splServiceTypeId: \"\",\r\n registrantCompanyRevisionId: \"\",\r\n missingCompanyRevisionId: \"\",\r\n effectiveTime: \"\",\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n validationMessages = {\r\n splServiceTypeId: {\r\n required: \"SPL Service type is required\",\r\n },\r\n registrantCompanyRevisionId: {\r\n required: \"Registrant company is required\",\r\n },\r\n missingCompanyRevisionId: {\r\n required: \"Missing company details\",\r\n },\r\n effectiveTime: {\r\n required: \"Build SPL requires SPL revision date\",\r\n },\r\n };\r\n\r\n companyDetailUrl: string;\r\n registrantContactRevisionId: any;\r\n contactDetailUrl: string;\r\n ignoreWarnings = false;\r\n errorMessage: string;\r\n // estabCompanyRevisionId: number;\r\n estabCompany: ILLCompany;\r\n estabContactRevisionId: any;\r\n busOpsDialogVisible = false;\r\n companyName: any;\r\n splServiceTypeId: any;\r\n estabUSAgentCompanyRevisionId: any;\r\n estabImporterCompanyRevisionId: any;\r\n businessCategoryId: any;\r\n usBasedCode: string;\r\n usUMICode: string;\r\n contacts: any[] = [];\r\n isSaving = false;\r\n modalCompanyType: string;\r\n modifiedCompanyOldRevisionId: number;\r\n estabIndex: any;\r\n importerIndex: any;\r\n submitted = false;\r\n isDraftMode: boolean = false;\r\n invalidSplVersion = false;\r\n ddwSubmissionTypePreviousData: any;\r\n isEditMode: boolean = false;\r\n canCreateCompany: boolean = false;\r\n\r\n @ViewChild(\"tooltipObj\") public tooltipObj: TooltipComponent;\r\n restrictedSplSubmissionType = false;\r\n @ViewChild(\"confirmDialog\")\r\n public confirmDialog: DialogComponent;\r\n @ViewChild(\"ddwSubmissionType\")\r\n public ddwSubmissionType: DropDownListComponent;\r\n\r\n splSubmissionTypeName: any;\r\n dateFormat: string;\r\n\r\n confirmDlgBtnClickYes: EmitType = () => {\r\n this.confirmDialog.hide();\r\n };\r\n\r\n confirmDlgBtnClickNo: EmitType = () => {\r\n if (this.ddwSubmissionType) {\r\n this.ddwSubmissionType.value = this.ddwSubmissionTypePreviousData\r\n ? this.ddwSubmissionTypePreviousData.id\r\n : 0;\r\n }\r\n\r\n this.confirmDialog.hide();\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n confirmDlgButtons: Object[] = [\r\n {\r\n click: this.confirmDlgBtnClickNo.bind(this),\r\n buttonModel: { content: \"Cancel\" },\r\n },\r\n {\r\n click: this.confirmDlgBtnClickYes.bind(this),\r\n buttonModel: { content: \"Continue\", isPrimary: true },\r\n },\r\n ];\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private router: Router,\r\n private erService: ERFormService,\r\n public datepipe: DatePipe,\r\n private llService: LLFormService,\r\n private toastr: ToastrService,\r\n private storageManagerService: StorageManagerService,\r\n private authorizationService: AuthorizationService,\r\n private utilService: Utilities,\r\n private companyService: CompanyContactService,\r\n private cdRef: ChangeDetectorRef,\r\n private http: HttpClient,\r\n private refDataService: RefdataService\r\n ) {}\r\n\r\n get estabFormGroup(): UntypedFormGroup {\r\n return this.fb.group({\r\n establishmentId: [0],\r\n establishmenName: [\"\"],\r\n sequence: [0],\r\n establishmentCompany: [\r\n \"\",\r\n { validators: [Validators.required], updateOn: \"blur\" },\r\n ],\r\n estabCompanyRevisionId: [0],\r\n establishmentContact: [\"\"],\r\n usAgentCompany: [\"\"],\r\n usAgentCompanyRevisionId: [0],\r\n usAgentContact: [\"\"],\r\n importers: this.fb.array([this.importerFormGroup]),\r\n });\r\n }\r\n\r\n get importerFormGroup(): UntypedFormGroup {\r\n return this.fb.group({\r\n importerId: [0],\r\n sequence: [0],\r\n importerCompanyRevisionId: [0],\r\n importerCompany: [\"\"],\r\n importerContact: [\"\"],\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n for (const property in changes) {\r\n if (\r\n changes[property].currentValue ||\r\n changes[property].currentValue === \"\" ||\r\n changes[property].currentValue === 0\r\n ) {\r\n switch (property) {\r\n case \"registrantCompanyRevisionId\":\r\n this.erForm.patchValue({\r\n registrantCompanyRevisionId: changes[property].currentValue,\r\n });\r\n break;\r\n case \"splServiceTypeId\":\r\n this.erForm.patchValue({\r\n splServiceTypeId: changes[property].currentValue,\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.erForm = this.fb.group({\r\n erId: [0],\r\n erRevisionId: [0],\r\n formName: [\"\"],\r\n majorRevision: [0],\r\n splTitle: [\"\"],\r\n splServiceTypeId: [\r\n 0,\r\n { validators: [Validators.required], updateOn: \"blur\" },\r\n ],\r\n splServiceType: [\"\"],\r\n setId: [\"\"],\r\n dunsNumber: [\"\"],\r\n versionNumber: [\"\"],\r\n effectiveTime: [\"\"],\r\n // busCategory: [new ILLBusinessCategory()],\r\n ipeBusinessCategory: [\"\"],\r\n splVersion: [0],\r\n registrantCompanyRevisionId: [\r\n 0,\r\n { validators: [Validators.required], updateOn: \"blur\" },\r\n ],\r\n registrantCompany: [\"\"],\r\n registrantContact: [\"\"],\r\n registrantContactRevisionId: [0],\r\n establishmentCompanyId: [0],\r\n establishments: this.fb.array([this.estabFormGroup]),\r\n });\r\n // Initialiaztion\r\n this.initParams();\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n // Populate the controls with previously saved data\r\n this.populateDataFromResolver();\r\n\r\n // Validation error handling\r\n this.initValidation();\r\n\r\n // Watches changes on the entire form\r\n this.sub = this.erForm.valueChanges.subscribe((data) => {\r\n this.logValidationErrors(this.erForm);\r\n });\r\n\r\n this.erForm.markAsPristine();\r\n\r\n // Fix for footer spacing issues\r\n document\r\n .getElementsByTagName(\"footer\")[0]\r\n .classList.add(\"footer-spacing-fix\");\r\n\r\n this.dateFormat = Utilities.getLocaleDateString();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n setERForm(formData: any) {\r\n if (formData) {\r\n this.erForm.patchValue({\r\n erId: formData.erId,\r\n erRevisionId: formData.erRevisionId,\r\n formName: formData.registrantCompany.companyName,\r\n majorRevision: formData.majorRevision,\r\n splTitle: formData.companyName,\r\n splServiceTypeId: formData.splServiceType.id\r\n ? +formData.splServiceType.id\r\n : \"\",\r\n splServiceType: formData.splServiceType,\r\n setId: formData.setId,\r\n dunsNumber: formData.dunsNumber,\r\n versionNumber: formData.versionNumber,\r\n effectiveTime: formData.effectiveTime,\r\n // busCategory: formData.busCategory,\r\n // businessCategoryId: formData.busCategory ? (formData.busCategory.categoryId ? +formData.busCategory.categoryId : null) : null,\r\n ipeBusinessCategory: this.businessCategoryId,\r\n splVersion: formData.splVersion,\r\n registrantCompany: formData.registrantCompany,\r\n registrantCompanyRevisionId:\r\n formData.registrantCompany.companyRevisionId,\r\n registrantCompanyId: formData.registrantCompany.companyId,\r\n registrantContact: formData.registrantContact,\r\n registrantContactRevisionId:\r\n formData.registrantContact.contactRevisionId,\r\n });\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(formData.establishments)\r\n );\r\n }\r\n }\r\n\r\n setEstabForm(estabs: IEstablishment[]): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n\r\n if (estabs && estabs.length > 0) {\r\n estabs.forEach((e, i) => {\r\n formArray.push(\r\n e.establishmentCompany\r\n ? this.fb.group({\r\n establishmentId: e.establishmentId,\r\n establishmenName: e.establishmentName,\r\n sequence: e.sequence,\r\n establishmentCompany: e.establishmentCompany,\r\n estabCompanyRevisionId:\r\n e.establishmentCompany.companyRevisionId,\r\n establishmentContact: e.establishmentContact,\r\n usAgentCompany: e.usAgentCompany ? e.usAgentCompany : \"\",\r\n usAgentCompanyRevisionId: e.usAgentCompany\r\n ? e.usAgentCompany.companyRevisionId\r\n : \"\",\r\n usAgentContact: e.usAgentContact,\r\n importers: this.addImporters(e.importers),\r\n })\r\n : this.fb.group({\r\n establishmentId: [0],\r\n establishmenName: [\"\"],\r\n sequence: [0],\r\n establishmentCompany: [\"\"],\r\n estabCompanyRevisionId: [0],\r\n establishmentContact: [\"\"],\r\n usAgentCompany: [\"\"],\r\n usAgentCompanyRevisionId: [0],\r\n usAgentContact: [\"\"],\r\n importers: this.addImporters([]),\r\n })\r\n );\r\n });\r\n } else {\r\n formArray.push(\r\n this.fb.group({\r\n establishmentId: [0],\r\n establishmenName: [\"\"],\r\n sequence: [0],\r\n establishmentCompany: [\"\"],\r\n estabCompanyRevisionId: [0],\r\n establishmentContact: [\"\"],\r\n usAgentCompany: [\"\"],\r\n usAgentCompanyRevisionId: [0],\r\n usAgentCompanyId: [\"\"],\r\n usAgentContact: [\"\"],\r\n importers: this.addImporters([]),\r\n })\r\n );\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n addImporters(importers: any): UntypedFormArray {\r\n const formArray = new UntypedFormArray([]);\r\n\r\n if (importers && importers.length > 0) {\r\n importers.forEach((e, i) => {\r\n formArray.push(\r\n e.importerCompany\r\n ? this.fb.group({\r\n importerId: e.importerId,\r\n sequence: e.sequence,\r\n importerCompanyRevisionId: e.importerCompany.companyRevisionId,\r\n importerCompany: e.importerCompany,\r\n importerContact: e.importerContact,\r\n })\r\n : this.fb.group({\r\n importerId: [0],\r\n sequence: [0],\r\n importerCompanyRevisionId: [0],\r\n importerCompany: [\"\"],\r\n importerContact: [\"\"],\r\n })\r\n );\r\n });\r\n } else {\r\n formArray.push(\r\n this.fb.group({\r\n importerId: [0],\r\n sequence: [0],\r\n importerCompanyRevisionId: [0],\r\n importerCompany: [\"\"],\r\n importerContact: [\"\"],\r\n })\r\n );\r\n }\r\n\r\n return formArray;\r\n }\r\n\r\n get estabs(): UntypedFormArray {\r\n return this.erForm.get(\"establishments\") as UntypedFormArray;\r\n }\r\n\r\n get estabFormControls() {\r\n return this.estabs.controls;\r\n }\r\n\r\n importersArray(estabIndex: number): UntypedFormArray {\r\n const arr = this.estabs.at(estabIndex).get(\"importers\") as UntypedFormArray;\r\n return arr;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n public onClick(e) {\r\n this.clickEventArgs = e.originalEvent;\r\n }\r\n\r\n // set the ignore warning flag for building SPL\r\n ignoreWarningsToggle() {\r\n this.ignoreWarnings = !this.ignoreWarnings;\r\n }\r\n\r\n initParams() {\r\n this.parentComponent = this;\r\n\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n this.formData = this.activatedRoute.snapshot.data[\"formData\"];\r\n this.erRevisionId = this.activatedRoute.snapshot.params[\"revisionId\"];\r\n\r\n const parsedRevisionId = parseInt(this.erRevisionId);\r\n this.isEditMode = !isNaN(parsedRevisionId) && parsedRevisionId > 0;\r\n\r\n this.checkUserPermission();\r\n\r\n const currentCustomerStr =\r\n this.storageManagerService.read(\"currentCustomer\");\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer =\r\n typeof currentCustomerStr === \"object\"\r\n ? currentCustomerStr\r\n : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n }\r\n\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission(\"SSDP.CanWriteERForm\")) {\r\n this.bHasPermission = true;\r\n }\r\n\r\n if (this.authorizationService.hasPermission(\"SSDP.CanDeleteERForm\")) {\r\n this.hasDeletePermission = true;\r\n }\r\n\r\n if (this.authorizationService.hasPermission(\"SSDP.CanWriteCompany\")) {\r\n this.canCreateCompany = true;\r\n }\r\n }\r\n\r\n saveERForm(\r\n isDraft: boolean,\r\n isValidate: boolean,\r\n isBuild: boolean,\r\n isIngestion: boolean\r\n ) {\r\n this.submitted = true;\r\n this.isDraftMode = isDraft;\r\n\r\n const duplicateCompanies = this.isDuplicateCompanies(\r\n this.erForm.value.establishments\r\n );\r\n\r\n if (!duplicateCompanies) {\r\n this.f.effectiveTime.clearValidators();\r\n this.f.effectiveTime.updateValueAndValidity();\r\n\r\n // Establishment details not mandatory, while save as draft\r\n if (this.formErrors.missingCompanyRevisionId && !isDraft) {\r\n this.erForm.setErrors({ invalid: true });\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.erForm.invalid) {\r\n this.setFormErrors();\r\n return;\r\n }\r\n\r\n const modifiedByUser = this.storageManagerService.read(\"userData\").name;\r\n\r\n if (this.erForm.touched || this.erForm.dirty) {\r\n this.prepareDataForSave(this.erForm.value);\r\n\r\n this.sub = this.erService\r\n .saveERForm(this.erData, modifiedByUser, isDraft, isIngestion)\r\n .subscribe(\r\n (response) => {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n if (response?.isSuccess) {\r\n this.toastr.success(`${response?.message}`);\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.isDraftMode = false; //reset isDraftMode to false, to enable \"Missing company..\" validation, in case \"Validate/Build SPL\" button(s) clicked immediately after this.\r\n\r\n this.isSaving = true;\r\n\r\n this.router.navigate([\r\n `/er-form/${response?.data?.erRevisionId}`,\r\n ]);\r\n } else {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.errorMessage =\r\n response && response.message\r\n ? response.message\r\n : \"Form creation failed!\";\r\n this.toastr.error(this.errorMessage);\r\n }\r\n },\r\n (error) => {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.toastr.error(\r\n error.errorMessage ? error.errorMessage : error\r\n );\r\n }\r\n );\r\n this.erForm.markAsPristine();\r\n } else {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.toastr.warning(\"No changes to save.\");\r\n }\r\n } else {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.toastr.error(\"Duplicate companies are not allowed\");\r\n }\r\n }\r\n\r\n setFormErrors(sentFromBuildSpl?: boolean) {\r\n if (!this.f.splServiceTypeId.value) {\r\n this.formErrors.splServiceTypeId =\r\n this.validationMessages.splServiceTypeId.required;\r\n }\r\n\r\n if (!this.f.registrantCompanyRevisionId.value) {\r\n this.formErrors.registrantCompanyRevisionId =\r\n this.validationMessages.registrantCompanyRevisionId.required;\r\n }\r\n\r\n if (!this.f.effectiveTime.value) {\r\n this.formErrors.effectiveTime =\r\n this.validationMessages.effectiveTime.required;\r\n }\r\n }\r\n\r\n getClass(field) {\r\n let retVal;\r\n let valid: boolean;\r\n\r\n const control: AbstractControl = this.f[field];\r\n\r\n if (control) {\r\n valid = control.status.toLowerCase() === \"valid\";\r\n\r\n if (!valid) {\r\n retVal = \"is-invalid required\";\r\n }\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n isDuplicateCompanies(estabs): boolean {\r\n let estabDuplicate: boolean;\r\n let importerDuplicate: boolean;\r\n let retVal = false;\r\n\r\n const valueArr = estabs.map(function (estab) {\r\n return estab.establishmentCompany.companyRevisionId;\r\n });\r\n\r\n estabDuplicate = valueArr.some(function (estab, idx) {\r\n return valueArr.indexOf(estab) !== idx;\r\n });\r\n\r\n if (!estabDuplicate) {\r\n retVal = false;\r\n\r\n estabs.forEach((estab) => {\r\n const impArr = estab.importers.map(function (importer) {\r\n return importer.importerCompanyRevisionId;\r\n });\r\n\r\n importerDuplicate = impArr.some(function (importer, idx) {\r\n return impArr.indexOf(importer) !== idx;\r\n });\r\n\r\n if (importerDuplicate) {\r\n retVal = true;\r\n }\r\n });\r\n } else {\r\n retVal = true;\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n prepareDataForSave(data) {\r\n this.erData = new IER();\r\n\r\n this.erData.erId = data.erId;\r\n this.erData.erRevisionId = data.erRevisionId ? data.erRevisionId : 0;\r\n this.erData.majorRevision = data.majorRevision ? data.majorRevision : 0;\r\n this.erData.splTitle = data.splTitle;\r\n this.erData.splVersion = this.splVersion ? this.splVersion : \"1\";\r\n this.erData.splServiceType = this.getGenericKeyObject(\r\n this.splSubmissionTypeDdwDS,\r\n data.splServiceTypeId,\r\n \"label\",\r\n \"id\"\r\n );\r\n this.erData.setId = this.setId;\r\n this.erData.dunsNumber = data.dunsNumber;\r\n this.erData.versionNumber = data.versionNumber;\r\n if (data.effectiveTime !== \"\") {\r\n this.erData.effectiveTime =\r\n data.effectiveTime instanceof Date\r\n ? data.effectiveTime.toDateString()\r\n : data.effectiveTime;\r\n }\r\n this.erData.busCategory = this.getGenericKeyObjectForBC(\r\n this.formData[3],\r\n this.businessCategoryId\r\n );\r\n\r\n this.erData.registrantCompany = new ILLCompany();\r\n this.erData.registrantCompany.companyRevisionId = data.registrantCompany\r\n ? data.registrantCompany.companyRevisionId\r\n : 0;\r\n this.erData.registrantCompany.companyName =\r\n data.registrantCompany.companyName;\r\n\r\n this.erData.registrantContact = new ISSDPConctact();\r\n this.erData.registrantContact.contactRevisionId = data.registrantContact\r\n .contactRevisionId\r\n ? data.registrantContact.contactRevisionId\r\n : 0;\r\n\r\n if (data.establishments && data.establishments.length > 0) {\r\n this.erData.establishments = [];\r\n\r\n data.establishments.forEach((estab) => {\r\n const establishment = new IEstablishment();\r\n\r\n establishment.establishmentId = estab.establishmentId\r\n ? estab.establishmentId\r\n : 0;\r\n establishment.establishmentName = estab.establishmentCompany\r\n ? estab.establishmentCompany.companyName\r\n : \"\";\r\n establishment.sequence = estab.sequence ? estab.sequence : 0;\r\n\r\n const estabCompany = new ILLCompany();\r\n estabCompany.companyRevisionId = estab.establishmentCompany\r\n .companyRevisionId\r\n ? estab.establishmentCompany.companyRevisionId\r\n : 0;\r\n establishment.establishmentCompany = estabCompany;\r\n\r\n const estabContact = new ISSDPConctact();\r\n estabContact.contactRevisionId = estab.establishmentContact\r\n .contactRevisionId\r\n ? estab.establishmentContact.contactRevisionId\r\n : 0;\r\n establishment.establishmentContact = estabContact;\r\n\r\n const usAgentCompany = new ILLCompany();\r\n const usAgentContact = new ISSDPConctact();\r\n\r\n if (\r\n estab.usAgentCompany &&\r\n Object.keys(estab.usAgentCompany).length > 0 &&\r\n estab.usAgentCompany.companyRevisionId\r\n ) {\r\n usAgentCompany.companyRevisionId =\r\n estab.usAgentCompany.companyRevisionId;\r\n usAgentContact.contactRevisionId =\r\n estab.usAgentContact.contactRevisionId;\r\n\r\n establishment.usAgentCompany = usAgentCompany;\r\n establishment.usAgentContact = usAgentContact;\r\n }\r\n\r\n if (estab.importers && estab.importers.length > 0) {\r\n establishment.importers = [];\r\n\r\n estab.importers.forEach((imp) => {\r\n if (imp.importerCompany && imp.importerCompany.companyRevisionId) {\r\n const importer = new IImporter();\r\n importer.importerId = imp.importerId ? imp.importerId : 0;\r\n importer.sequence = imp.sequence ? imp.sequence : 0;\r\n\r\n importer.importerCompany = new ILLCompany();\r\n importer.importerCompany.companyRevisionId =\r\n imp.importerCompany.companyRevisionId;\r\n importer.importerContact = new ISSDPConctact();\r\n importer.importerContact.contactRevisionId =\r\n imp.importerContact.contactRevisionId;\r\n\r\n establishment.importers.push(importer);\r\n }\r\n });\r\n }\r\n\r\n this.erData.establishments.push(establishment);\r\n });\r\n }\r\n }\r\n // Build an ILLBusinessCategory object for Business Category\r\n getGenericKeyObjectForBC(list: any[], id: any): ILLBusinessCategory {\r\n const retVal = new ILLBusinessCategory();\r\n\r\n if (list && id) {\r\n list = list.filter((x) => x[\"categoryId\"] === id.toString());\r\n if (list && list.length > 0) {\r\n retVal.categoryId = id && id !== \"0\" ? id : \"\";\r\n retVal.label = list[0][\"label\"];\r\n }\r\n }\r\n return retVal;\r\n }\r\n\r\n get f() {\r\n return this.erForm.controls;\r\n }\r\n\r\n // Validation error handling\r\n initValidation() {\r\n // Now, read the validation errors from local storage (if present)\r\n if (this.storageManagerService.read(\"showValidationMessages\")) {\r\n this.splValidationMessages = this.storageManagerService.read(\r\n \"splValidationMessages\"\r\n );\r\n }\r\n this.storageManagerService.write(\"showValidationMessages\", false);\r\n this.storageManagerService.write(\"splValidationMessages\", {});\r\n this.erForm.markAsPristine();\r\n }\r\n\r\n ddwSelectionChanged(event, name, index?: number, innerIndex?: number) {\r\n let contact = new ISSDPConctact();\r\n let company = new ILLCompany();\r\n\r\n let contactRevisionId;\r\n\r\n if (name !== \"splSubmissionTypeId\" && event.value) {\r\n // establishment has different structure than other companies\r\n if (name === \"establishments\" || name === \"establishmentsThirdParty\") {\r\n if (\r\n this.formData[2].data[name].find(\r\n (x) => x.establishmentCompany.companyRevisionId === event.value\r\n )\r\n ) {\r\n company = this.formData[2].data[name].find(\r\n (x) => x.establishmentCompany.companyRevisionId === event.value\r\n ).establishmentCompany;\r\n }\r\n } else {\r\n company = this.formData[2].data[name].find(\r\n (x) => x.companyRevisionId === event.value\r\n );\r\n }\r\n\r\n if (company) {\r\n this.formErrors.missingCompanyRevisionId = \"\";\r\n this.submitted = false;\r\n\r\n if (company.contacts && company.contacts.length > 0) {\r\n contactRevisionId = company.contacts[0].contactRevisionId;\r\n contact = company.contacts[0];\r\n }\r\n\r\n if (contact) {\r\n switch (name.toLowerCase()) {\r\n case \"registrants\":\r\n this.registrantCompanyRevisionId = event.value;\r\n this.registrantCompany = company ? company : new ILLCompany();\r\n this.registrantContactRevisionId = contactRevisionId\r\n ? contactRevisionId\r\n : 0;\r\n this.registrantContact = contact ? contact : new ISSDPConctact();\r\n\r\n this.erForm.patchValue({\r\n registrantCompany: this.registrantCompany,\r\n registrantCompanyRevisionId: this.registrantCompanyRevisionId,\r\n registrantContactRevisionId: this.registrantContactRevisionId,\r\n formName: this.registrantCompany.companyName,\r\n registrantContact: contact,\r\n });\r\n\r\n break;\r\n case \"establishments\":\r\n this.formDetailData.establishments[index].establishmentCompany =\r\n company ? company : new ILLCompany();\r\n this.formDetailData.establishments[index].establishmentContact =\r\n contact ? contact : new ISSDPConctact();\r\n\r\n if (\r\n company.country &&\r\n +company.country.id !== +this.usBasedCode &&\r\n +company.country.id !== +this.usUMICode\r\n ) {\r\n if (\r\n !this.formDetailData.establishments[index].importers ||\r\n this.formDetailData.establishments[index].importers.length ===\r\n 0\r\n ) {\r\n this.formDetailData.establishments[index].importers = [];\r\n this.formDetailData.establishments[index].importers.push(\r\n new IImporter()\r\n );\r\n }\r\n } else {\r\n this.formDetailData.establishments[index].usAgentCompany =\r\n new ILLCompany();\r\n this.formDetailData.establishments[index].usAgentContact =\r\n new ISSDPConctact();\r\n this.formDetailData.establishments[index].importers = [];\r\n }\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n break;\r\n\r\n case \"usagents\":\r\n this.formDetailData.establishments[index].usAgentCompany = company\r\n ? company\r\n : new ILLCompany();\r\n this.formDetailData.establishments[index].usAgentContact = contact\r\n ? contact\r\n : new ISSDPConctact();\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n break;\r\n\r\n case \"importers\":\r\n if (\r\n this.formDetailData.establishments[index].importers &&\r\n this.formDetailData.establishments[index].importers.length > 0\r\n ) {\r\n this.formDetailData.establishments[index].importers[\r\n innerIndex\r\n ].importerCompany = company ? company : new ILLCompany();\r\n this.formDetailData.establishments[index].importers[\r\n innerIndex\r\n ].importerContact = contact ? contact : new ISSDPConctact();\r\n } else {\r\n const importer = new IImporter();\r\n\r\n importer.importerCompany = company ? company : new ILLCompany();\r\n importer.importerContact = contact\r\n ? contact\r\n : new ISSDPConctact();\r\n\r\n this.formDetailData.establishments[index].importers.push(\r\n importer\r\n );\r\n }\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n } else {\r\n if (name === \"splSubmissionTypeId\") {\r\n this.splServiceTypeId = event.value;\r\n\r\n this.erForm.patchValue({\r\n splServiceTypeId: event.value,\r\n });\r\n }\r\n\r\n if (!event.value) {\r\n this.ddwOnClear(name, index, innerIndex);\r\n } else {\r\n if (\r\n (event.value === this.erService.ER_SPL_NO_CHANGE_NOTIFICATION ||\r\n event.value ===\r\n this.erService.ER_SPL_OUT_OF_BUSINESS_NOTIFICATION) &&\r\n this.erRevisionId\r\n ) {\r\n this.restrictedSplSubmissionType = true;\r\n\r\n this.splSubmissionTypeName = event.itemData.labelAndCode;\r\n\r\n this.ddwSubmissionTypePreviousData = event.previousItemData;\r\n\r\n this.confirmDialog.show();\r\n } else {\r\n this.restrictedSplSubmissionType = false;\r\n }\r\n }\r\n }\r\n\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n getState(countryRegion: any): any {\r\n let code;\r\n\r\n if (countryRegion && countryRegion.indexOf(\"(\") > 0) {\r\n code = countryRegion.split(\"(\")[1].split(\")\")[0];\r\n }\r\n\r\n return code ? code : countryRegion;\r\n }\r\n\r\n getCountryCode(countryId: any): string {\r\n let country;\r\n let retVal;\r\n\r\n if (countryId) {\r\n country = this.countries.find((c) => +c.id === +countryId);\r\n retVal = country.code;\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n getGenericKeyObject(\r\n list: any[],\r\n id: any,\r\n TextFieldName: string,\r\n idFieldName: string\r\n ): ILLGenericKeys {\r\n const retVal = new ILLGenericKeys();\r\n\r\n list = list.filter((x) => x[idFieldName] === +id);\r\n if (list && list.length > 0) {\r\n retVal.id = id;\r\n retVal.code = this.getCode(list[0][\"labelAndCode\"]);\r\n retVal.label = list[0][TextFieldName];\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n // get code from description\r\n getCode(desc: string): string {\r\n let code = \"\";\r\n\r\n if (desc) {\r\n const pos = desc.indexOf(\"(\");\r\n if (pos || pos === 0) {\r\n code = desc.substring(pos + 1, desc.length - 1);\r\n }\r\n }\r\n return code;\r\n }\r\n\r\n // Dynamically generate new GUID\r\n generateGUID() {\r\n this.setId = UUID.UUID();\r\n\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n // Get data from the resolver and populate the controls\r\n populateDataFromResolver() {\r\n if (this.formData.error) {\r\n this.toastr.error(this.formData.error);\r\n } else {\r\n if (this.formData) {\r\n if (this.formData[0] && this.formData[0].data) {\r\n this.formDetailData = this.formData[0].data;\r\n\r\n if (\r\n this.formDetailData.splServiceType &&\r\n (+this.formDetailData.splServiceType.id ===\r\n this.erService.ER_SPL_NO_CHANGE_NOTIFICATION ||\r\n +this.formDetailData.splServiceType.id ===\r\n this.erService.ER_SPL_OUT_OF_BUSINESS_NOTIFICATION) &&\r\n this.erRevisionId\r\n ) {\r\n this.restrictedSplSubmissionType = true;\r\n }\r\n\r\n if (this.formDetailData.registrantCompany) {\r\n this.registrantCompany = this.formDetailData.registrantCompany;\r\n this.registrantCompanyRevisionId =\r\n this.formDetailData.registrantCompany.companyRevisionId;\r\n }\r\n if (this.formDetailData.registrantContact) {\r\n this.registrantContact = this.formDetailData.registrantContact;\r\n this.registrantContactRevisionId =\r\n this.formDetailData.registrantContact.contactRevisionId;\r\n }\r\n\r\n if (this.formDetailData.establishments) {\r\n this.establishments = this.formDetailData.establishments;\r\n }\r\n\r\n // this.businessCategoryId = this.formDetailData.busCategory ? (this.formDetailData.busCategory.categoryId ? this.formDetailData.busCategory.categoryId : null) : null;\r\n } else {\r\n this.formDetailData = new IER();\r\n this.formDetailData.registrantCompany = new ILLCompany();\r\n this.formDetailData.registrantContact = new ISSDPConctact();\r\n // this.formDetailData.busCategory = new ILLBusinessCategory();\r\n this.formDetailData.splServiceType = new ILLGenericKeys();\r\n this.formDetailData.establishments = [];\r\n this.formDetailData.establishments.push(new IEstablishment());\r\n }\r\n\r\n // Submission types\r\n if (this.formData && this.formData[1]) {\r\n this.allLOV = this.formData[1].data;\r\n this.splSubmissionTypeDdwDS = this.getLOVDataByType(\"doc_type_er\");\r\n }\r\n\r\n // Revision History\r\n if (this.formData[4] && this.formData[4].data) {\r\n this.erRevisions = this.formData[4].data;\r\n if (this.erRevisions && this.erRevisions.length > 0) {\r\n this.revisionCurrentRevision = this.erRevisions[0];\r\n this.current =\r\n this.erRevisions[0][\"erRevisionId\"] === +this.erRevisionId;\r\n const revision = this.erRevisions.find(\r\n (r) => r.erRevisionId === +this.erRevisionId\r\n );\r\n if (revision) {\r\n this.versionToDisplay = this.erRevisions.find(\r\n (r) => r.erRevisionId === +this.erRevisionId\r\n ).formVersion;\r\n }\r\n }\r\n }\r\n\r\n // Business Categories\r\n if (this.formData[3]) {\r\n this.businessCategoryModel = {\r\n placeholder: \"Select Business Category\",\r\n dataSource: this.formData[3],\r\n fields: { value: \"categoryId\", text: \"label\" },\r\n width: \"200px\",\r\n };\r\n }\r\n\r\n // Country list\r\n if (this.formData[5]) {\r\n this.countries = this.formData[5].countryList;\r\n this.regions = this.formData[5].regionList;\r\n\r\n this.usBasedCode = this.countries.find((c) => c.code === \"USA\").id;\r\n this.usUMICode = this.countries.find((c) => c.code === \"UMI\").id;\r\n }\r\n\r\n // Contacts list\r\n if (this.formData[6]) {\r\n this.contacts = this.formData[6][\"latestAvailableContactsList\"];\r\n }\r\n\r\n // populate the Registrant Company dropdown\r\n if (this.formData && this.formData[2]) {\r\n this.setCompaniesDdw();\r\n }\r\n }\r\n\r\n this.populateHeaders();\r\n\r\n this.setERForm(this.formDetailData ? this.formDetailData : \"\");\r\n }\r\n }\r\n\r\n ddwOnClear(name, outerIndex?: number, innerIndex?: number) {\r\n switch (name.toLowerCase()) {\r\n case \"registrants\":\r\n this.registrantCompanyRevisionId = 0;\r\n this.erForm.patchValue({\r\n registrantCompanyRevisionId: \"\",\r\n registrantCompany: \"\",\r\n });\r\n break;\r\n case \"establishments\":\r\n this.formDetailData.establishments[outerIndex].establishmentCompany =\r\n new ILLCompany();\r\n\r\n this.formDetailData.establishments[outerIndex].establishmentContact =\r\n new ISSDPConctact();\r\n\r\n this.formDetailData.establishments[outerIndex].usAgentCompany =\r\n new ILLCompany();\r\n\r\n this.formDetailData.establishments[outerIndex].importers = [];\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n break;\r\n\r\n case \"usagents\":\r\n this.formDetailData.establishments[outerIndex].usAgentCompany =\r\n new ILLCompany();\r\n\r\n this.formDetailData.establishments[outerIndex].usAgentContact =\r\n new ISSDPConctact();\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n break;\r\n\r\n case \"importers\":\r\n this.formDetailData.establishments[outerIndex].importers[\r\n innerIndex\r\n ].importerCompany = new ILLCompany();\r\n\r\n this.formDetailData.establishments[outerIndex].importers[\r\n innerIndex\r\n ].importerContact = new ISSDPConctact();\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n break;\r\n }\r\n }\r\n\r\n editorChanged(event) {\r\n const column = event.data.name;\r\n const value = event.data.value;\r\n\r\n switch (column) {\r\n case \"setId\":\r\n this.setId = value;\r\n\r\n this.erForm.patchValue({\r\n setId: value,\r\n });\r\n break;\r\n case \"ipeBusinessCategory\":\r\n if (value) {\r\n // const busCat = this.formData[3].find(b => b.categoryId === value);\r\n\r\n // const modifiedBusOp: ILLBusinessCategory = new ILLBusinessCategory();\r\n // modifiedBusOp.categoryId = busCat.categoryId;\r\n // modifiedBusOp.label = busCat.label;\r\n\r\n // this.erForm.patchValue({\r\n // businessCategoryId: +value,\r\n // busCategory: modifiedBusOp\r\n // });\r\n\r\n this.businessCategoryId = +value;\r\n }\r\n\r\n break;\r\n }\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n setCompaniesDdw() {\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper =\r\n this.formData[2].data;\r\n\r\n this.registrantCompanies = companyTypes.registrants;\r\n this.estabCompanies = companyTypes.establishments;\r\n this.estabUsAgentCompanies = companyTypes.usAgents;\r\n this.estabImporterCompanies = companyTypes.importers;\r\n\r\n if (this.registrantCompanies && this.registrantCompanies.length > 0) {\r\n this.registrantCompanies.forEach((company: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n this.registrantCompaniesDdwDS.push(ds);\r\n });\r\n\r\n //this.registrantCompaniesDdwDS.sort(this.compare);\r\n }\r\n\r\n if (this.estabCompanies && this.estabCompanies.length > 0) {\r\n this.estabCompanies.forEach((company: ILLEstablishment) => {\r\n const ds = { id: 0, name: \"\", cId: \"\" };\r\n ds.id = +company.establishmentCompany.companyRevisionId;\r\n ds.name = company.establishmentCompany.companyName;\r\n this.estabCompaniesDdwDS.push(ds);\r\n });\r\n\r\n //this.estabCompaniesDdwDS.sort(this.compare);\r\n }\r\n\r\n if (this.estabUsAgentCompanies && this.estabUsAgentCompanies.length > 0) {\r\n this.estabUsAgentCompanies.forEach((company: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n this.estabUsAgentCompaniesDdwDS.push(ds);\r\n });\r\n\r\n //this.estabUsAgentCompaniesDdwDS.sort(this.compare);\r\n }\r\n\r\n if (this.estabImporterCompanies && this.estabImporterCompanies.length > 0) {\r\n this.estabImporterCompanies.forEach((company: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n this.estabImporterCompaniesDdwDS.push(ds);\r\n });\r\n\r\n //this.estabImporterCompaniesDdwDS.sort(this.compare);\r\n }\r\n }\r\n\r\n // Get a list of LOVs by doc_type, created a new column that will\r\n // concatenate label and code fields for displaying purpose\r\n getLOVDataByType(type: string): any[] {\r\n const dataLOV = this.allLOV.filter((x) => x.lsP_FORM_TYPE === type);\r\n const newLOV = dataLOV.map((item) => {\r\n const container = {};\r\n container[\"id\"] = item[\"id\"];\r\n container[\"label\"] = item[\"label\"];\r\n container[\"labelAndCode\"] = item[\"label\"] + \" (\" + item[\"code\"] + \")\";\r\n return container;\r\n });\r\n\r\n return newLOV;\r\n }\r\n\r\n // populate Header Section\r\n populateHeaders() {\r\n if (this.formDetailData) {\r\n if (this.erRevisionId) {\r\n this.setId = this.formDetailData.setId;\r\n this.isDraftMode = this.versionToDisplay === \"Draft\";\r\n this.status =\r\n this.formDetailData.isDraftMode === true ? \"Draft\" : \"Active\";\r\n this.splVersion = this.formDetailData.splVersion;\r\n this.lastModifiedBy = this.formDetailData.modifiedByUser;\r\n this.lastModifiedDate = this.datepipe.transform(\r\n this.formDetailData.modifiedByDate,\r\n \"MMM d, y\"\r\n );\r\n this.splSubmissionTypeMissing =\r\n +this.formDetailData.splServiceType.id === 0 ? false : true;\r\n this.splServiceTypeId = +this.formDetailData.splServiceType.id;\r\n this.revisionDateMissing = this.erForm.controls.effectiveTime.value\r\n ? false\r\n : true;\r\n this.businessCategoryId = this.formDetailData.busCategory\r\n ? this.formDetailData.busCategory.categoryId\r\n ? +this.formDetailData.busCategory.categoryId\r\n : null\r\n : null;\r\n }\r\n this.setIdModel = {\r\n placeholder: \"Enter setId\",\r\n };\r\n }\r\n }\r\n\r\n buildDlgBtnYes: EmitType = () => {\r\n if (\r\n +this.updatedVersion > 0 ||\r\n (this.versionToDisplay === \"Draft\" && this.updatedVersion === \"1\")\r\n ) {\r\n this.formDetailData.splVersion = \"\" + this.updatedVersion;\r\n\r\n this.erForm.patchValue({\r\n splVersion: \"\" + this.updatedVersion,\r\n });\r\n this.buildModalDialog.hide();\r\n return this.confirmDialogSelection$.next(true);\r\n } else {\r\n this.invalidSplVersion = true;\r\n }\r\n };\r\n\r\n buildDlgBtnNo: EmitType = () => {\r\n this.invalidSplVersion = false;\r\n\r\n const splInput = document.getElementById(\"splVersionModalInput\");\r\n if (splInput) {\r\n (splInput as any).value = \"\";\r\n }\r\n this.buildModalDialog.hide();\r\n return this.confirmDialogSelection$.next(false);\r\n };\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n buildDlgButtons: Object[] = [\r\n {\r\n click: this.buildDlgBtnNo.bind(this),\r\n buttonModel: { content: \"Cancel\" },\r\n },\r\n {\r\n click: this.buildDlgBtnYes.bind(this),\r\n buttonModel: { content: \"Continue\", isPrimary: true },\r\n },\r\n ];\r\n\r\n onBuildModalOverlayClick: EmitType = () => {\r\n this.buildModalDialog.hide();\r\n };\r\n\r\n // Increase SPL version by 1\r\n splVersionModalOpen() {\r\n const splInput = document.getElementById(\"splVersionModalInput\");\r\n if (splInput) {\r\n if (this.erRevisions && this.erRevisions.length > 0) {\r\n if (\r\n this.erRevisions.length === 1 &&\r\n this.erRevisions[0].formVersion.toLowerCase() === \"draft\"\r\n ) {\r\n (splInput as any).value = \"1\";\r\n } else {\r\n (splInput as any).value = `${+this.formDetailData.splVersion + 1}`;\r\n }\r\n } else {\r\n (splInput as any).value = \"1\";\r\n }\r\n this.updatedVersion = (splInput as any).value;\r\n }\r\n }\r\n\r\n validateSplVersionInput(event) {\r\n this.invalidSplVersion = false;\r\n\r\n if (event.target.value) {\r\n this.updatedVersion = parseInt(event.target.value, 10).toString();\r\n } else {\r\n this.updatedVersion = \"\";\r\n }\r\n }\r\n\r\n // Validate SPL version: has to be a whole number\r\n formatSplVersion(version) {\r\n return !isNaN(version)\r\n ? (parseFloat(version) + 1).toFixed(1)\r\n : (0).toFixed(1);\r\n }\r\n\r\n public expanding(e: ExpandEventArgs) {\r\n if (this.clickEventArgs) {\r\n const header = closest(\r\n this.clickEventArgs.target as Element,\r\n \".e-acrdn-header\"\r\n );\r\n const checkboxEle = closest(\r\n this.clickEventArgs.target as HTMLInputElement,\r\n \"label\"\r\n );\r\n if (header && checkboxEle) {\r\n e.cancel = true;\r\n }\r\n }\r\n }\r\n\r\n // Create an overlay effect for verision history modal popup\r\n onOverlayClick() {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n onBusOpsOverlayClick() {\r\n this.busOpsDialog.hide();\r\n this.busOpsDialogVisible = false;\r\n }\r\n\r\n onSPLTypeOverlayClick: EmitType = () => {\r\n this.confirmDialog.hide();\r\n };\r\n\r\n // custom validation method to make sure SPL version number is a whole number that is greater than zero\r\n customValidateFn(args) {\r\n let ret = false;\r\n if (args.value) {\r\n const matches = args.value.match(/^[1-9]+[0-9]*$/);\r\n ret = matches ? true : false;\r\n }\r\n return ret;\r\n }\r\n\r\n buildERModal() {\r\n this.submitted = true;\r\n\r\n this.f.effectiveTime.setValidators([Validators.required]);\r\n this.f.effectiveTime.updateValueAndValidity();\r\n\r\n if (this.formErrors.missingCompanyRevisionId) {\r\n this.erForm.setErrors({ invalid: true });\r\n }\r\n\r\n if (this.erForm.invalid) {\r\n this.setFormErrors(true);\r\n\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n } else {\r\n // show modal for setting a version and cancel the build if Cancel is seleced.\r\n this.buildModalDialog.show();\r\n\r\n this.sub = this.confirmDialogSelection$.subscribe((choice) => {\r\n if (!choice) {\r\n this.buildLoading = false;\r\n this.pageLoading = false;\r\n } else {\r\n this.erForm.markAsDirty();\r\n this.buildLoading = true;\r\n this.pageLoading = true;\r\n this.cdRef.detectChanges();\r\n\r\n if (!this.buildERComplete) {\r\n this.buildERspl();\r\n this.buildERComplete = true;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n buildERspl() {\r\n const modifiedByUser = this.storageManagerService.read(\"userData\").name;\r\n\r\n const duplicateCompanies = this.isDuplicateCompanies(\r\n this.erForm.value.establishments\r\n );\r\n\r\n if (!duplicateCompanies) {\r\n this.prepareDataForSave(this.erForm.value);\r\n\r\n // Call endpoint to build SPL\r\n this.sub = this.erService\r\n .buildERspl(\r\n this.erData,\r\n modifiedByUser,\r\n this.ignoreWarnings,\r\n +this.updatedVersion\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (response?.isSuccess) {\r\n this.toastr.success(`${response.message}`);\r\n this.buildLoading = false;\r\n this.saveLoading = false;\r\n this.pageLoading = false;\r\n this.storageManagerService.write(\"showValidationMessages\", true);\r\n this.cdRef.detectChanges();\r\n // store this in localStorage so that we can display them on page load\r\n this.storageManagerService.write(\r\n \"splValidationMessages\",\r\n response?.data?.validationMessages\r\n );\r\n this.isSaving = true;\r\n\r\n if (response?.data?.validationMessages) {\r\n this.router.navigate([\r\n `/er-form/${response.data?.erRevisionId}`,\r\n ]);\r\n } else {\r\n this.toastr.success(\r\n \"Your SPL XML file is being generated. When the process is complete, the file will be available on the Deliveries tab.\"\r\n );\r\n this.router.navigate([`/er-form-dashboard`]);\r\n }\r\n } else {\r\n this.toastr.error(`${response?.message}`);\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.cdRef.detectChanges();\r\n }\r\n },\r\n (error) => {\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.pageLoading = false;\r\n this.toastr.error(\r\n error && error.errorMessage ? error.errorMessage : error\r\n );\r\n this.cdRef.detectChanges();\r\n }\r\n );\r\n } else {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.toastr.error(\"Duplicate companies are not allowed\");\r\n }\r\n }\r\n\r\n validateERform() {\r\n this.submitted = true;\r\n\r\n // First we need to save the current ER as a draft (if Form is dirty) so that all data is saved.\r\n const modifiedByUser = this.storageManagerService.read(\"userData\").name;\r\n\r\n let hasChanges = false;\r\n const ignoreWarningsValidate = false;\r\n const erRevisionId = this.activatedRoute.snapshot.params.revisionId;\r\n\r\n const duplicateCompanies = this.isDuplicateCompanies(\r\n this.erForm.value.establishments\r\n );\r\n\r\n if (!duplicateCompanies) {\r\n this.prepareDataForSave(this.erForm.value);\r\n\r\n this.validateLoading = true;\r\n this.pageLoading = true;\r\n if (this.erForm.touched || this.erForm.dirty) {\r\n hasChanges = true;\r\n }\r\n\r\n if (this.formErrors.missingCompanyRevisionId) {\r\n this.erForm.setErrors({ invalid: true });\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.erForm.invalid) {\r\n this.setFormErrors();\r\n\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n } else {\r\n this.sub = this.erService\r\n .validateERform(\r\n this.erData,\r\n erRevisionId,\r\n modifiedByUser,\r\n hasChanges,\r\n ignoreWarningsValidate\r\n )\r\n .subscribe(\r\n (response) => {\r\n if (response?.isSuccess) {\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n\r\n if (hasChanges) {\r\n this.toastr.success(\r\n `Successfully Saved Draft Form: ${response?.data?.erRevisionId}`\r\n );\r\n // The form has changed so reload the page and show the Validation Messages\r\n this.storageManagerService.write(\r\n \"showValidationMessages\",\r\n true\r\n );\r\n\r\n // store this in localStorage so that we can display them on page load\r\n this.storageManagerService.write(\r\n \"splValidationMessages\",\r\n response?.data?.validationMessages\r\n );\r\n\r\n this.isSaving = true;\r\n\r\n this.router.navigate([\r\n `/er-form/${response?.data?.erRevisionId}`,\r\n ]);\r\n } else {\r\n this.toastr.success(\r\n `Successfully Validated Form: ${erRevisionId}`\r\n );\r\n this.splValidationMessages = response?.data;\r\n this.showValidationMessages =\r\n Object.keys(this.splValidationMessages.validationMessages)\r\n .length > 0;\r\n\r\n if (this.showValidationMessages) {\r\n if (this.errorMessagesComponent) {\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.errorMessagesComponent.showMessages(\r\n this.splValidationMessages\r\n );\r\n }\r\n }\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n this.toastr.error(`${response?.message}`);\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.cdRef.detectChanges();\r\n }\r\n },\r\n (error) => {\r\n this.toastr.error(\r\n error && error.errorMessage ? error.errorMessage : error\r\n );\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.cdRef.detectChanges();\r\n }\r\n );\r\n }\r\n } else {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n this.toastr.error(\"Duplicate companies are not allowed\");\r\n }\r\n }\r\n\r\n // SPL Revision Date datapicker is being clicked\r\n onOpen(e: any) {\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n revisionDateChanged(event) {\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n canDeactivate() {\r\n if (this.erForm.touched && !this.isSaving) {\r\n return confirm(\r\n `Are you sure you want to navigate away and discard your changes?`\r\n );\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Display version history\r\n displayRevisionHistory(event) {\r\n const classList = Array.from(event.target.classList);\r\n\r\n if (classList.indexOf(\"version\") >= 0) {\r\n this.revHistoryVisible = true;\r\n this.revHistoryDialog.show();\r\n }\r\n }\r\n\r\n // close version history modal popup\r\n revisionHistoryClose(event) {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n // display revision\r\n goToRevision(revisionId: number) {\r\n if (this.revHistoryDialog) {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n if (revisionId) {\r\n this.router.navigate([`/er-form/${revisionId}`]);\r\n }\r\n }\r\n\r\n /**\r\n * The function drills to down from the FormGroup or FormArray down\r\n * to the AbstractControl in order to check if the value is entered.\r\n * Populates the FormErrors object based on the Validators attached to the formControls.\r\n * @param {FormGroup} group passed by the form validation.\r\n */\r\n logValidationErrors(group: UntypedFormGroup = this.erForm): void {\r\n Object.keys(group.controls).forEach((key: string) => {\r\n const abstractControl = group.get(key);\r\n\r\n this.formErrors[key] = \"\";\r\n if (\r\n abstractControl &&\r\n !abstractControl.valid &&\r\n (abstractControl.touched || abstractControl.dirty)\r\n ) {\r\n const messages = this.validationMessages[key];\r\n\r\n for (const errorKey in abstractControl.errors) {\r\n if (errorKey) {\r\n this.formErrors[key] += messages ? messages[errorKey] + \" \" : \"\";\r\n }\r\n }\r\n }\r\n\r\n if (abstractControl instanceof UntypedFormGroup) {\r\n this.logValidationErrors(abstractControl);\r\n }\r\n\r\n // We need this additional check to get to the FormGroup\r\n // in the FormArray and then recursively call this\r\n // logValidationErrors() method to fix the broken validation\r\n if (abstractControl instanceof UntypedFormArray) {\r\n for (const control of abstractControl.controls) {\r\n if (control instanceof UntypedFormGroup) {\r\n this.logValidationErrors(control);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n showBusOps(company) {\r\n this.companyName = company.value.establishmentCompany.companyName;\r\n this.businessOperations =\r\n company.value.establishmentCompany.businessOperations;\r\n this.busOpsDialog.show();\r\n }\r\n\r\n onBusOpsCloseClicked() {\r\n this.busOpsDialog.hide();\r\n this.busOpsDialogVisible = false;\r\n }\r\n\r\n addEstab() {\r\n this.submitted = false;\r\n\r\n this.formDetailData.establishments.push(new IEstablishment());\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n this.erForm.markAllAsTouched();\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n removeEstab(i) {\r\n this.submitted = false;\r\n this.formDetailData.establishments.splice(i, 1);\r\n\r\n // Clear the error flag if all establishment company dropdown controls are being populated\r\n let bMissingEstCompany = false;\r\n this.formDetailData.establishments.forEach((estab: IEstablishment) => {\r\n if (!estab.establishmentCompany) {\r\n bMissingEstCompany = true;\r\n }\r\n });\r\n if (!bMissingEstCompany) {\r\n this.formErrors.missingCompanyRevisionId = \"\";\r\n }\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n this.erForm.markAsDirty();\r\n this.erForm.markAsTouched();\r\n }\r\n\r\n addImporter(i) {\r\n this.submitted = false;\r\n\r\n this.formDetailData.establishments[i].importers.push(new IImporter());\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n this.erForm.markAllAsTouched();\r\n this.erForm.markAsDirty();\r\n }\r\n\r\n removeImporter(estabIndex, importerIndex) {\r\n if (this.formDetailData.establishments[estabIndex].importers.length === 1) {\r\n this.formDetailData.establishments[estabIndex].importers[0] = new IImporter();\r\n } else {\r\n this.formDetailData.establishments[estabIndex].importers.splice(\r\n importerIndex,\r\n 1\r\n );\r\n }\r\n this.submitted = false;\r\n\r\n this.erForm.setControl(\r\n \"establishments\",\r\n this.setEstabForm(this.formDetailData.establishments)\r\n );\r\n\r\n this.erForm.markAsDirty();\r\n this.erForm.markAsTouched();\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(\r\n companyType,\r\n companyRevisionId,\r\n estabIndex?: number,\r\n importerIndex?: number\r\n ) {\r\n let company;\r\n\r\n // when company data changed and company not found it passes 0, for the new company it sends null.\r\n if (companyRevisionId) {\r\n if (\r\n companyType === \"establishments\" ||\r\n companyType === \"establishmentsThirdParty\"\r\n ) {\r\n company = this.formData[2].data[companyType].find(\r\n (x) => x.establishmentCompany.companyRevisionId === companyRevisionId\r\n );\r\n } else {\r\n company = this.formData[2].data[companyType].find(\r\n (x) => x.companyRevisionId === companyRevisionId\r\n );\r\n }\r\n\r\n if (company) {\r\n return false;\r\n }\r\n } else {\r\n switch (companyType) {\r\n case \"establishments\":\r\n case \"establishmentsThirdParty\":\r\n if (\r\n this.formDetailData &&\r\n this.formDetailData.establishments &&\r\n !this.formDetailData.establishments[estabIndex].establishmentCompany\r\n ) {\r\n return false;\r\n }\r\n\r\n break;\r\n case \"registrants\":\r\n if (this.formDetailData && this.formDetailData.registrantCompany) {\r\n if (!this.formDetailData.registrantCompany.companyRevisionId) {\r\n return false;\r\n }\r\n }\r\n break;\r\n case \"usAgents\":\r\n if (\r\n this.formDetailData &&\r\n this.formDetailData.establishments &&\r\n this.formDetailData.establishments[estabIndex].usAgentCompany\r\n ) {\r\n if (\r\n !this.formDetailData.establishments[estabIndex].usAgentCompany\r\n .companyRevisionId\r\n ) {\r\n return false;\r\n }\r\n }\r\n\r\n break;\r\n\r\n case \"importers\":\r\n if (\r\n this.formDetailData &&\r\n this.formDetailData.establishments &&\r\n this.formDetailData.establishments[estabIndex].importers &&\r\n this.formDetailData.establishments[estabIndex].importers.length >\r\n 0 &&\r\n this.formDetailData.establishments[estabIndex].importers[\r\n importerIndex\r\n ].importerCompany\r\n ) {\r\n if (\r\n this.formDetailData &&\r\n this.formDetailData.establishments &&\r\n !this.formDetailData.establishments[estabIndex].importers[\r\n importerIndex\r\n ].importerCompany.companyRevisionId\r\n ) {\r\n return false;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // Check if the previously saved contact for the company is the latest version\r\n isContactLatest(contactRevisionId) {\r\n if (this.contacts && this.contacts.length > 0) {\r\n const contact = this.contacts.find(\r\n (x) => x.contactRevisionId === contactRevisionId\r\n );\r\n\r\n if (contact) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n companyDialogCancelButtonClicked() {\r\n if (this.companyDetailsComponent) {\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.companyDialog.hide();\r\n }\r\n\r\n contactDialogCancelButtonClicked() {\r\n if (this.contactComponent) {\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.contactDialog.hide();\r\n }\r\n\r\n showContactDialog(contactRevisionId) {\r\n this.erForm.markAsDirty();\r\n this.pageLoading = true;\r\n\r\n if (this.contactComponent) {\r\n this.contactComponent.contactRevisionId = contactRevisionId;\r\n this.contactComponent.ngOnInit();\r\n\r\n this.contactComponent.contactDetailComponent.contactRevisionId =\r\n contactRevisionId;\r\n\r\n this.contactComponent.contactDetailComponent.getContactById();\r\n this.contactComponent.contactDetailComponent.ngOnInit();\r\n this.pageLoading = false;\r\n }\r\n }\r\n\r\n contactRetrieved(contact) {\r\n if (contact) {\r\n this.contactDialog.show();\r\n }\r\n }\r\n\r\n modalContact(updatedContact) {\r\n this.setSavedContact(updatedContact.contactRevisionId);\r\n\r\n this.contactDialogCancelButtonClicked();\r\n }\r\n\r\n setSavedContact(contactRevisionId: any) {\r\n this.contactDialogCancelButtonClicked();\r\n }\r\n\r\n showCompanyDialog(\r\n type: string,\r\n companyRevisionId?: number,\r\n index?: number,\r\n innerIndex?: number\r\n ) {\r\n this.erForm.markAsDirty();\r\n this.pageLoading = true;\r\n\r\n this.modalCompanyType = type;\r\n this.modifiedCompanyOldRevisionId = companyRevisionId;\r\n this.estabIndex = index;\r\n this.importerIndex = innerIndex;\r\n\r\n if (companyRevisionId) {\r\n const companyData$ = forkJoin([\r\n this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.refDataService.GetAllBusinessOperationQualifier(),\r\n this.companyService.getCompanyRevisionHistory(companyRevisionId),\r\n this.companyService.getBusinessOperationQualifierByCompany(\r\n companyRevisionId.toString()\r\n ),\r\n this.companyService.getCompanyById(companyRevisionId.toString()),\r\n this.companyService.getNDCLabelerCodesByCompany(\r\n companyRevisionId.toString()\r\n ),\r\n ])\r\n .pipe(catchError((err) => of(err)))\r\n .subscribe((data) => {\r\n if (this.companyDetailsComponent) {\r\n this.companyDetailsComponent.companyData = data;\r\n this.companyDetailsComponent.companyRevisionId =\r\n companyRevisionId.toString();\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent\r\n .getFormControlByName(\"status\")\r\n .patchValue(\"Active\");\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n this.pageLoading = false;\r\n this.companyDialog.show();\r\n });\r\n } else {\r\n const companyData = [];\r\n\r\n this.sub = this.companyService.getBusinessCategories(false).subscribe(\r\n (busCat) => {\r\n companyData[0] = busCat;\r\n\r\n this.sub = this.companyService.getCountries().subscribe(\r\n (countries) => {\r\n companyData[1] = countries;\r\n\r\n this.sub = this.companyService\r\n .getContacts()\r\n .subscribe((contacts) => {\r\n companyData[2] = contacts;\r\n\r\n this.refDataService\r\n .GetAllBusinessOperationQualifier()\r\n .subscribe(\r\n (busQual) => {\r\n companyData[3] = busQual;\r\n\r\n if (this.companyDetailsComponent) {\r\n this.companyDetailsComponent.companyData =\r\n companyData;\r\n this.companyDetailsComponent.companyRevisionId = \"\";\r\n this.companyDetailsComponent.company = null;\r\n this.companyDetailsComponent.companyHistory_grid_data =\r\n [];\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.checkUserPermission();\r\n }\r\n\r\n this.pageLoading = false;\r\n this.companyDialog.show();\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n });\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n modalCompany(newCompany) {\r\n switch (this.modalCompanyType) {\r\n case \"registrants\":\r\n this.setSavedRegistrantCompany(newCompany.companyRevisionId);\r\n break;\r\n case \"establishments\":\r\n this.setSavedEstabCompany(newCompany.companyRevisionId);\r\n break;\r\n case \"usAgents\":\r\n this.setSavedUSAgentCompany(newCompany.companyRevisionId);\r\n break;\r\n case \"importers\":\r\n this.setSavedImportersCompany(newCompany.companyRevisionId);\r\n break;\r\n }\r\n\r\n this.companyDialogCancelButtonClicked();\r\n }\r\n setSavedImportersCompany(companyRevisionId: any) {\r\n let contact;\r\n let estabFormGroup;\r\n let company;\r\n let importerFormGroup;\r\n\r\n this.sub = this.llService\r\n .getLCompanyTypesByCustomerGuid(this.customerGuid)\r\n .subscribe(\r\n (response) => {\r\n if (this.modifiedCompanyOldRevisionId) {\r\n const companyTypes = response[\"data\"];\r\n\r\n this.formData[2].data = companyTypes;\r\n this.estabImporterCompanies = companyTypes[\"importers\"];\r\n\r\n company = this.estabImporterCompanies.find(\r\n (c) => c.companyRevisionId === companyRevisionId\r\n );\r\n\r\n if (company) {\r\n if (this.estabFormControls && this.estabFormControls.length) {\r\n estabFormGroup = this.estabFormControls[\r\n this.estabIndex\r\n ] as UntypedFormGroup;\r\n\r\n importerFormGroup = estabFormGroup.get(\"importers\").controls[\r\n this.importerIndex\r\n ] as UntypedFormGroup;\r\n\r\n if (importerFormGroup) {\r\n this.estabImporterCompaniesDdwDS = [];\r\n\r\n if (company.contacts && company.contacts.length) {\r\n contact = company.contacts[0];\r\n }\r\n\r\n importerFormGroup.patchValue({\r\n importerCompany: company,\r\n importerCompanyRevisionId: companyRevisionId,\r\n importerContact: contact,\r\n });\r\n\r\n estabFormGroup.get(\"importers\").controls[this.importerIndex] =\r\n importerFormGroup;\r\n this.estabs.controls[this.estabIndex] = estabFormGroup;\r\n\r\n this.erForm.setControl(\"establishments\", this.estabs);\r\n\r\n if (\r\n this.estabImporterCompanies &&\r\n this.estabImporterCompanies.length\r\n ) {\r\n this.estabImporterCompanies.forEach((estab: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +estab.companyRevisionId;\r\n ds.name = `${estab.companyName}`;\r\n this.estabImporterCompaniesDdwDS.push(ds);\r\n });\r\n }\r\n\r\n //this.estabImporterCompaniesDdwDS.sort(this.compare);\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n }\r\n setSavedUSAgentCompany(companyRevisionId: any) {\r\n let contact;\r\n let estabFormGroup;\r\n let company;\r\n let estabFormGroupIndex;\r\n\r\n this.sub = this.llService\r\n .getLCompanyTypesByCustomerGuid(this.customerGuid)\r\n .subscribe(\r\n (response) => {\r\n if (this.modifiedCompanyOldRevisionId) {\r\n const companyTypes = response[\"data\"];\r\n\r\n this.formData[2].data = companyTypes;\r\n this.estabUsAgentCompanies = companyTypes[\"usAgents\"];\r\n\r\n company = this.estabUsAgentCompanies.find(\r\n (c) => c.companyRevisionId === companyRevisionId\r\n );\r\n\r\n if (company) {\r\n if (this.estabFormControls && this.estabFormControls.length) {\r\n estabFormGroup = this.estabFormControls.find(\r\n (c) =>\r\n c.value.usAgentCompanyRevisionId ===\r\n this.modifiedCompanyOldRevisionId\r\n ) as UntypedFormGroup;\r\n\r\n estabFormGroupIndex = this.estabFormControls.findIndex(\r\n (c) =>\r\n c.value.usAgentCompanyRevisionId ===\r\n this.modifiedCompanyOldRevisionId\r\n );\r\n\r\n if (estabFormGroup) {\r\n this.estabUsAgentCompaniesDdwDS = [];\r\n\r\n if (company.contacts && company.contacts.length) {\r\n contact = company.contacts[0];\r\n }\r\n\r\n estabFormGroup.patchValue({\r\n usAgentCompany: company,\r\n usAgentCompanyRevisionId: companyRevisionId,\r\n usAgentContact: contact,\r\n });\r\n\r\n this.estabs[estabFormGroupIndex] = estabFormGroup;\r\n\r\n this.erForm.setControl(\"establishments\", this.estabs);\r\n\r\n if (\r\n this.estabUsAgentCompanies &&\r\n this.estabUsAgentCompanies.length\r\n ) {\r\n this.estabUsAgentCompanies.forEach(\r\n (usagent: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +usagent.companyRevisionId;\r\n ds.name = usagent.companyName;\r\n this.estabUsAgentCompaniesDdwDS.push(ds);\r\n }\r\n );\r\n }\r\n\r\n //this.estabUsAgentCompaniesDdwDS.sort(this.compare);\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n }\r\n\r\n setSavedEstabCompany(companyRevisionId: any) {\r\n let contact;\r\n let estabFormGroup;\r\n let company;\r\n let estabFormGroupIndex;\r\n\r\n this.sub = this.llService\r\n .getLCompanyTypesByCustomerGuid(this.customerGuid)\r\n .subscribe(\r\n (response) => {\r\n if (this.modifiedCompanyOldRevisionId) {\r\n const companyTypes = response[\"data\"];\r\n\r\n this.formData[2].data = companyTypes;\r\n this.estabCompanies = companyTypes[\"establishments\"];\r\n\r\n company = this.estabCompanies.find(\r\n (c) =>\r\n c.establishmentCompany.companyRevisionId === companyRevisionId\r\n );\r\n\r\n if (company) {\r\n if (this.estabFormControls && this.estabFormControls.length) {\r\n estabFormGroup = this.estabFormControls.find(\r\n (c) =>\r\n c.value.estabCompanyRevisionId ===\r\n this.modifiedCompanyOldRevisionId\r\n ) as UntypedFormGroup;\r\n\r\n estabFormGroupIndex = this.estabFormControls.findIndex(\r\n (c) =>\r\n c.value.estabCompanyRevisionId ===\r\n this.modifiedCompanyOldRevisionId\r\n );\r\n\r\n if (estabFormGroup) {\r\n this.estabCompaniesDdwDS = [];\r\n\r\n if (\r\n company.establishmentCompany.contacts &&\r\n company.establishmentCompany.contacts.length\r\n ) {\r\n contact = company.establishmentCompany.contacts[0];\r\n }\r\n\r\n estabFormGroup.patchValue({\r\n establishmentCompany: company,\r\n estabCompanyRevisionId: companyRevisionId,\r\n establishmentContact: contact,\r\n establishmenName: company.establishmentCompany.companyName,\r\n });\r\n\r\n this.estabs[estabFormGroupIndex] = estabFormGroup;\r\n\r\n this.erForm.setControl(\"establishments\", this.estabs);\r\n\r\n if (this.estabCompanies && this.estabCompanies.length) {\r\n this.estabCompanies.forEach((estab: ILLEstablishment) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +estab.establishmentCompany.companyRevisionId;\r\n ds.name = estab.establishmentCompany.companyName;\r\n this.estabCompaniesDdwDS.push(ds);\r\n });\r\n }\r\n\r\n //this.estabCompaniesDdwDS.sort(this.compare);\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n }\r\n\r\n setSavedRegistrantCompany(companyRevisionId: any) {\r\n let contact;\r\n let company;\r\n\r\n this.sub = this.llService\r\n .getLCompanyTypesByCustomerGuid(this.customerGuid)\r\n .subscribe(\r\n (response) => {\r\n const companyTypes = response[\"data\"];\r\n\r\n this.formData[2].data = companyTypes;\r\n this.registrantCompanies = companyTypes[\"registrants\"];\r\n\r\n company = this.registrantCompanies.find(\r\n (c) => c.companyRevisionId === companyRevisionId\r\n );\r\n\r\n if (company) {\r\n this.registrantCompanyRevisionId = companyRevisionId;\r\n this.registrantCompany = company;\r\n\r\n this.registrantCompaniesDdwDS = [];\r\n\r\n if (company.contacts && company.contacts.length > 0) {\r\n this.registrantContactRevisionId =\r\n company.contacts[0].contactRevisionId;\r\n contact = company.contacts[0];\r\n }\r\n\r\n this.registrantContact = contact ? contact : new ISSDPConctact();\r\n\r\n this.erForm.patchValue({\r\n registrantCompanyRevisionId: companyRevisionId,\r\n registrantCompany: this.registrantCompany,\r\n registrantContactRevisionId: this.registrantContactRevisionId,\r\n formName: this.registrantCompany.companyName,\r\n registrantContact: contact,\r\n });\r\n\r\n if (\r\n this.registrantCompanies &&\r\n this.registrantCompanies.length > 0\r\n ) {\r\n this.registrantCompanies.forEach((comp: ILLCompany) => {\r\n const ds = { id: 0, name: \"\" };\r\n ds.id = +comp.companyRevisionId;\r\n ds.name = `${comp.companyName} (${comp.dunsNumber})`;\r\n this.registrantCompaniesDdwDS.push(ds);\r\n });\r\n }\r\n\r\n //this.registrantCompaniesDdwDS.sort(this.compare);\r\n\r\n this.registrantDdw.dataSource = this.registrantCompaniesDdwDS;\r\n this.registrantDdw.dataBind();\r\n this.registrantDdw.refresh();\r\n\r\n this.registrantDdw.value = companyRevisionId;\r\n }\r\n this.cdRef.detectChanges();\r\n },\r\n (error) => {\r\n this.toastr.error(error.message);\r\n this.pageLoading = false;\r\n }\r\n );\r\n }\r\n\r\n compare(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.bame) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n showToolTip(event) {\r\n if (this.isEllipsisActive(event)) {\r\n event.target.setAttribute(\"title\", event.target.textContent);\r\n }\r\n }\r\n\r\n showSFToolTip(event) {\r\n if (this.isEllipsisActive(event)) {\r\n if (this.tooltipObj) {\r\n this.tooltipObj.content = event.target.outerText;\r\n this.tooltipObj.width = `${event.target.scrollWidth}px`;\r\n\r\n this.tooltipObj.open();\r\n }\r\n }\r\n }\r\n\r\n hideSFToolTip(event) {\r\n if (this.tooltipObj) {\r\n this.tooltipObj.close();\r\n }\r\n }\r\n\r\n hideToolTip(event) {\r\n event.target.removeAttribute(\"title\");\r\n }\r\n\r\n isEllipsisActive(e) {\r\n return e.target.offsetWidth < e.target.scrollWidth;\r\n }\r\n\r\n missingCompanyRevisionId(companyType, index: number, innerIndex?: number) {\r\n let companyRevisionId;\r\n\r\n if (index >= 0) {\r\n if (this.estabs && this.estabs.length) {\r\n switch (companyType.toLowerCase()) {\r\n case \"establishments\":\r\n companyRevisionId =\r\n this.estabs.controls[index].value.establishmentCompany\r\n .companyRevisionId;\r\n break;\r\n case \"usagents\":\r\n companyRevisionId =\r\n this.estabs.controls[index].value.usAgentCompanyRevisionId;\r\n break;\r\n case \"importers\":\r\n companyRevisionId =\r\n this.importersArray(index).controls[innerIndex].value\r\n .importerCompanyRevisionId;\r\n break;\r\n }\r\n\r\n if (!companyRevisionId) {\r\n // this.validationMessages.missingCompanyRevisionId.required = companyType === 'establishments' ? 'Missing Establishment company' : companyType === 'usagents' ? 'Missing US Agent company' : 'Missing Importer company';\r\n this.validationMessages.missingCompanyRevisionId.required =\r\n companyType === \"establishments\"\r\n ? \"Missing Establishment company\"\r\n : companyType === \"usagents\"\r\n ? \"Missing US Agent company\"\r\n : \"\";\r\n\r\n this.formErrors.missingCompanyRevisionId =\r\n this.validationMessages.missingCompanyRevisionId.required;\r\n\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Establishment Registration\r\n
\r\n
\r\n Version\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n current\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
{{status}}
\r\n
{{splVersion}}
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{isEditMode ? \"Edit\" : \"New\"}} Establishment Registration\r\n

\r\n
\r\n
\r\n
\r\n
\r\n  NOT CURRENT VERSION - Any changes made could overwrite a newer version of this form.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Establishment Registration Details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{formErrors?.splServiceTypeId}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{formErrors.effectiveTime}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Registrant Details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Registrant Company\r\n \r\n Create new company\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{formErrors?.registrantCompanyRevisionId}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Registrant Contact\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Establishment Details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CompanyDUNS NumberFEI NumberCompany AddressContact Information
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n View\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{validationMessages?.missingCompanyRevisionId.required}}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {{item.value.establishmentCompany?.dunsNumber}}\r\n \r\n \r\n \r\n {{item.value.establishmentCompany?.fei}}\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
US Agent Company NameUS Agent Company DUNSContactContact EmailContact Phone
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n View\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{validationMessages?.missingCompanyRevisionId.required}}\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{item.value.usAgentCompany?.dunsNumber}}\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {{item.value.usAgentContact?.fullName}}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Importer Company NameImporter Company DUNSContactContact EmailContact Phone
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n View\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{importer.value.importerCompany?.dunsNumber}}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{importer.value.importerContact?.fullName }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Back to list\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n fgf\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n

Version History

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Form versionModified ByModified Date
\r\n {{item.formVersion}}\r\n {{item.modifiedBy }}{{item.modifiedDate | dateToLocale: 'true'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n

Update SPL Version Number

\r\n
\r\n
\r\n \r\n 0\" class=\"form-control\"\r\n (blur)=\"validateSplVersionInput($event)\" role=\"spinbutton\" tabindex=\"0\" aria-label=\"spl version number input\" />\r\n\r\n
\r\n The SPL version can't be blank\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n

Business Operations Details

\r\n
\r\n
\r\n
\r\n {{companyName}}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n 0\" role=\"rowgroup\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Business OperationQualifiers
{{busOp.label }}\r\n \r\n \r\n \r\n \r\n
{{qualifier.label}}
\r\n
Business operations not found
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

Company Details

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Contact Details

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n

{{splSubmissionTypeName}}

\r\n
\r\n
\r\n The FDA will not allow changes to an Establishment Registration with this Document type. We will revert your changes and proceed with the No Change Notification or Out of Business Notification.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FeatureService } from '../../shared/services/feature.service';\r\n@Component({\r\n selector: 'feature',\r\n templateUrl: './feature.component.html'\r\n})\r\n\r\nexport class FeatureComponent implements OnInit {\r\n @Input() name: string = \"\";\r\n visible = false;\r\n\r\n constructor(private featureService: FeatureService, private toastrService: ToastrService) {\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.featureService.IsFeatureEnabled(this.name)\r\n .subscribe(data => {\r\n if (data) {\r\n this.visible = data\r\n }\r\n else {\r\n this.visible = false;\r\n }\r\n }, error => {\r\n // An error has occured. For safe measure, hide the feature.\r\n this.visible = false;\r\n\r\n // Log to the console since we do not want to alert the user to a feature they may not have\r\n console.log(`An error has occured checking if the following feature is enabled: ${this.name}`)\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChange, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ExcelExportService, FilterService, GridComponent, PdfExportService, SelectionSettingsModel, ToolbarItems, ToolbarService, VirtualScrollService } from '@syncfusion/ej2-angular-grids';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations';\r\nimport { DialogComponent, Tooltip, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { DataUtil } from '@syncfusion/ej2-data';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { IServerSettings } from '../../../shared/models/index';\r\nimport { SettingsService } from '../../../shared/services/settings.service';\r\nimport { NgbTooltipConfig, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GridPreferencesService } from '../../../shared/services/grid-preferences.service';\r\nimport { FileUploadService } from '../../../shared/services/file-upload.service';\r\nimport { SplUploadFileStatus } from '../../../shared/models/spl-upload-file-status';\r\nimport { PragmaticValidationStatus } from '../../../shared/models/pragmatic-validation-status';\r\nimport { OrderService } from '../../../shared/services';\r\nimport { IFileIngestionHistory } from '../../../shared/models/file-upload-history.model';\r\n\r\n@Component({\r\n selector: 'app-fileuploadhistorygrid',\r\n templateUrl: './fileuploadhistorygrid.component.html',\r\n styleUrls: ['./fileuploadhistorygrid.component.scss'],\r\n providers: [FilterService, VirtualScrollService, ToolbarService, ExcelExportService, PdfExportService, NgbTooltipModule, NgbTooltipConfig],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class FileUploadHistoryGridComponent implements OnChanges, OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('historyGrid', { static: true })\r\n public historyGrid: GridComponent;\r\n\r\n @ViewChild('tooltipObj', { static: true }) tooltipObj: TooltipComponent;\r\n\r\n @ViewChild('copiedTextDialog', { static: true })\r\n public copiedTextDialog: DialogComponent;\r\n\r\n @ViewChild('tooltip', { static: false })\r\n public tooltipControl: TooltipComponent;\r\n public splUploadFileStatus: typeof SplUploadFileStatus = SplUploadFileStatus;\r\n public pragmaticValidationStatus: typeof PragmaticValidationStatus = PragmaticValidationStatus;\r\n public toolbar: ToolbarItems[] = [];\r\n public data: IFileIngestionHistory[];\r\n public dateFormat: Object;\r\n public customerId: string;\r\n public fileCount: string;\r\n public selectedFileCount: number = 0;\r\n public ordersGridToolbarOptions: Object;\r\n error: string;\r\n pageOptions: Object;\r\n gridComplete = false;\r\n settings: IServerSettings;\r\n copiedToClipboard = '';\r\n selectedFileName: any;\r\n tooltipContent: HTMLElement = document.createElement('div');\r\n public selectionOptions?: SelectionSettingsModel;\r\n @Input() gridData: string;\r\n @Input() appDefaults: any;\r\n @Output() messageEvent = new EventEmitter();\r\n dateRangeDataSource = ['90 days', '180 days', '1 Year', '2 Years', 'All'];\r\n selectedDateRangeFilter = '1 Year';\r\n disabledColumns: string[] = ['File ID', 'File Name'];\r\n initial = true;\r\n scrollSettings: { width: string; height: number; enableColumnScrolling: boolean; enableRowScrolling: boolean; };\r\n needsToPoll: boolean = true;\r\n loading: boolean = true;\r\n selectedRowIndexes: number[] = [];\r\n\r\n tooltipCol: Tooltip = new Tooltip({\r\n content: this.tooltipContent,\r\n cssClass: 'customtooltip',\r\n enableHtmlParse: false\r\n });\r\n sub: Subscription;\r\n\r\n constructor(\r\n private router: Router,\r\n private activatedRoute: ActivatedRoute,\r\n private settingsService: SettingsService,\r\n private toastr: ToastrService,\r\n tooltipConfig: NgbTooltipConfig,\r\n public gridPreferencesService: GridPreferencesService,\r\n private orderService: OrderService,\r\n private fileUploadService: FileUploadService) {\r\n this.settings = this.settingsService.getSettings();\r\n tooltipConfig.placement = 'bottom-left';\r\n tooltipConfig.autoClose = true;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.createCustomToolbarItems();\r\n }\r\n\r\n dateRangeSelectionChanged(dateRangeLimitValue: string) {\r\n this.selectedDateRangeFilter = dateRangeLimitValue;\r\n this.getFileHistoryDashboard();\r\n}\r\n\r\n openTooltip(tooltip, contents: string) {\r\n\r\n tooltip.close();\r\n tooltip.open({ contents });\r\n }\r\n\r\n closeTooltip(tooltip) {\r\n tooltip.close();\r\n }\r\n\r\n async keydownEnter(e, data) {\r\n const type = e.type;\r\n\r\n this.copiedToClipboard = data;\r\n\r\n if (type === 'keydown' && (e.which === 13 || e.keyCode === 13)) {\r\n\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText(data)\r\n .then(\r\n () => e.target.closest('.e-templatecell').focus()\r\n );\r\n }\r\n }\r\n }\r\n createCustomToolbarItems(){\r\n let toolbarItems = [];\r\n\r\n toolbarItems.push('ColumnChooser');\r\n\r\n this.ordersGridToolbarOptions = toolbarItems;\r\n }\r\n\r\n tooltipContents(data) {\r\n\r\n return data;\r\n }\r\n\r\n\r\n hideSFToolTip(args) {\r\n\r\n this.tooltipControl = (args.target as any).parentElement?.ej2_instances[0];\r\n\r\n if (this.tooltipControl) {\r\n this.tooltipControl.content = '';\r\n this.tooltipControl.close();\r\n }\r\n }\r\n\r\n tooltipValue(args) {\r\n // here you can get the row data of the target cell\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n const rowInfo = this.historyGrid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n this.tooltipObj.width = `${ args.target.scrollWidth }px`;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const gridData: SimpleChange = changes.gridData;\r\n if (gridData && gridData.currentValue) {\r\n this.data = this.mapData(DataUtil.parse.parseJson(gridData.currentValue));\r\n } else {\r\n this.error = 'External error';\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dateFormat = { type: 'dateTime', format: 'MM/dd/yyyy hh:mm a' };\r\n this.appDefaults = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.selectionOptions = { mode: 'Row', type: 'Multiple' };\r\n let data = this.activatedRoute.snapshot.data['splUploadData'];\r\n this.data = data[0]?.data;\r\n this.data = this.mapData(data[0]?.data);\r\n this.pollData();\r\n }\r\n\r\n mapData(data: any[]): any[] {\r\n return data.map(item => ({\r\n ...item,\r\n fileStatusText: this.getFileStatusText(item.fileStatus)\r\n }));\r\n }\r\n\r\n toolbarClick(args: ClickEventArgs): void {\r\n if (!this.selectedFileName && args.item.id !== 'grid_columnchooser') {\r\n this.toastr.warning(`No Row(s) selected.`, '', { closeButton: true });\r\n return;\r\n }\r\n }\r\n\r\n viewFormOrGoToDashboard(llRevisionId: string, isDraftMode: boolean) {\r\n if (llRevisionId) {\r\n const url = isDraftMode ? '/products/ll-form' : '/products/dashboard';\r\n this.router.navigate([url, llRevisionId]);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n\r\n recordDoubleClickRow(args) { }\r\n\r\n complete(args: any) {\r\n switch (args.requestType) {\r\n case 'filterafteropen':\r\n\r\n if (args.columnType === 'date') {\r\n args.filterModel.dlgDiv.querySelector(\r\n '.e-datepicker'\r\n ).ej2_instances[0].format = 'MM/dd/y';\r\n }\r\n break;\r\n case 'filtering':\r\n\r\n if (this.historyGrid && this.historyGrid.columns && this.historyGrid.columns.length > 0) {\r\n const pageCountMsg = document.getElementsByClassName('e-pagecountmsg')[0];\r\n\r\n if (pageCountMsg) {\r\n const pageItemCounter = (pageCountMsg as any).innerText;\r\n\r\n this.fileCount = pageItemCounter.substr(pageItemCounter.indexOf('(') + 1, pageItemCounter.indexOf(' item') - 1);\r\n } else {\r\n this.fileCount = '0';\r\n }\r\n this.messageEvent.emit(this.fileCount);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n formatVersionNumber(versionNumber: string): string {\r\n if (versionNumber && !versionNumber.includes('.')) {\r\n return versionNumber + '.0';\r\n }\r\n return versionNumber;\r\n }\r\n\r\n pollData() {\r\n this.sub = interval(60000).subscribe(() => {\r\n if (this.needsToPoll) {\r\n this.getFileHistoryDashboard();\r\n }\r\n });\r\n }\r\n\r\n getFileHistoryDashboard() {\r\n this.loading = true;\r\n this.fileUploadService.fetchUploadedFileHistory(this.selectedDateRangeFilter).subscribe({\r\n next: (result : any) => {\r\n if(result) {\r\n this.selectedRowIndexes = this.historyGrid.getSelectedRowIndexes();\r\n this.processDashboardData(result.data);\r\n this.historyGrid.refresh();\r\n }\r\n else{\r\n this.loading = false\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n checkBoxChange(event) {\r\n this.selectedFileCount = this.historyGrid.getSelectedRecords().length;\r\n }\r\n\r\n dataBound(args): void {\r\n if (this.selectedRowIndexes.length) {\r\n this.historyGrid.selectRows(this.selectedRowIndexes);\r\n }\r\n }\r\n\r\n // Download pragmatic validation file\r\n downloadFile(filePath, fileName) {\r\n this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n this.orderService.postDownloadFile(response, fileName);\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n }\r\n\r\n downloadLogFile(fileId: number, fileName: string) {\r\n let txtFileName = `log_${fileName?.replace('.zip', '')}.txt`\r\n this.sub = this.fileUploadService.downloadUploadedFileHistoryLog(fileId, txtFileName).subscribe({\r\n next: response => {\r\n // non-IE\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = txtFileName;\r\n link.click();\r\n },\r\n error: error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n });\r\n }\r\n\r\n rowSelecting(args) {\r\n this.selectedFileCount = this.historyGrid.getSelectedRecords().length;\r\n }\r\n\r\n processDashboardData(data: IFileIngestionHistory[]) {\r\n const today: Date = new Date();\r\n const numberOfDaysAgo: Date = new Date(today.getTime() - parseInt(this.settingsService.splHistoryDashBoardAutoRefreshDays, 10) * 24 * 60 * 60 * 1000);\r\n\r\n for(let i = 0; i < data.length; i++){\r\n data[i].uploadedDate = new Date(data[i].uploadedDate);\r\n }\r\n\r\n this.data = this.mapData(data);\r\n const filteredDataTaskStatusInProgress = this.data.filter(item => item.fileStatus === 2 || item.fileStatus == 1);\r\n this.loading = false;\r\n const filteredDataWithConfigDaysAgo = filteredDataTaskStatusInProgress.some(item => {\r\n const createDate: Date = new Date(item.uploadedDate);\r\n return createDate >= numberOfDaysAgo;\r\n });\r\n\r\n if (!filteredDataWithConfigDaysAgo) {\r\n this.needsToPoll = false;\r\n }\r\n }\r\n\r\n removedToasterWarning(): void {\r\n this.toastr.warning(`This product has been deleted and does not exist anymore!`, '', { closeButton: true });\r\n }\r\n\r\n getFileStatusText(status: SplUploadFileStatus): string {\r\n switch (status) {\r\n case this.splUploadFileStatus.Passed:\r\n return 'Passed';\r\n case this.splUploadFileStatus.Failed:\r\n return 'Failed';\r\n case this.splUploadFileStatus.Received:\r\n return 'Received';\r\n case this.splUploadFileStatus.InProcess:\r\n return 'In Process';\r\n default:\r\n return '';\r\n }\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n

SPL Upload History

\r\n
\r\n
\r\n

\r\n All of the files below have been successfully uploaded to SingleSource. If you do not see a file name listed that you attempted to upload, the upload may have failed.\r\n Please try again. To determine if file data has been added to the SingleSource database, please consult the \"Import Status\" indicator.\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{{data.orderNumber}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n  {{data.fileName}}\r\n \r\n \r\n {{data.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ data.fileStatusText }}\r\n
\r\n
\r\n
\r\n \r\n \r\n 0\">\r\n \r\n \r\n  Log_File\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ formatVersionNumber(data.llFormVersionNumber) }}\r\n \r\n \r\n \r\n \r\n \r\n {{data.productName}}\r\n \r\n \r\n {{data.productName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manual Ingestion\r\n Order Delivery\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { SelectedEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { AuthenticationService } from '../../shared/services/authentication.service';\r\nimport { HCSplValidationService } from '../../shared/services/hc-spl-validation.service';\r\nimport { ISplValidationHC } from '../../shared/models/spl-validation-hc.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IApiResult } from '../../shared/models/api-result';\r\nimport { ISplMessageHC } from '../../shared/models/spl-message-hc.model';\r\nimport { GridComponent, QueryCellInfoEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { SettingsService } from '../../shared/services';\r\nimport { Tooltip } from '@syncfusion/ej2-popups';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'app-health-canada-spl-validation',\r\n templateUrl: './health-canada-spl-validation.component.html',\r\n styleUrls: ['./health-canada-spl-validation.component.scss'],\r\n animations: [fadeInOut],\r\n})\r\nexport class HealthCanadaSplValidationComponent implements OnInit {\r\n\r\n // ------------------------------------------------------------\r\n // Page state\r\n // ------------------------------------------------------------\r\n pageState: string = null;\r\n\r\n // ------------------------------------------------------------\r\n // SPL Validation\r\n // ------------------------------------------------------------\r\n @Input() splErrorMessages: ISplMessageHC[];\r\n public uploadStatus = '';\r\n public validationStatus = '';\r\n public validationFileName = '';\r\n public validationStatusClassName = '';\r\n public isHideErrorsWarnings = false;\r\n public clipmodecolumn = {class: 'e-tooltipcolumn'};\r\n @ViewChild('tooltip', {static: true})\r\n public tooltipObj: TooltipComponent;\r\n @ViewChild('validationGrid')\r\n public errorGrid: GridComponent;\r\n uploadSaveUrl: string;\r\n\r\n constructor(\r\n public hcSplValidationService: HCSplValidationService,\r\n private authService: AuthenticationService,\r\n private toastr: ToastrService,\r\n private settingsService: SettingsService\r\n ) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.pageState = this.hcSplValidationService.PAGE_STATE_READY;\r\n this.uploadSaveUrl = this.hcSplValidationService.getFileUploadUrl();\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n private resetPage() {\r\n this.validationStatus = '';\r\n this.validationFileName = '';\r\n this.uploadStatus = '';\r\n this.splErrorMessages = [];\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n public onFileUploadStart: EmitType = (args: any) => {\r\n this.resetPage();\r\n if (args) {\r\n const authData = this.authService.getAuthData();\r\n\r\n args.currentRequest.setRequestHeader('authorization', this.authService.getBearerToken());\r\n args.currentRequest.setRequestHeader('customerGuid', this.settingsService.getCustomerGuid());\r\n args.currentRequest.setRequestHeader('applicationVariantId', authData.applicationVariantId ? authData.applicationVariantId.toString() : '');\r\n\r\n if (!args.cancel) {\r\n this.pageState = this.hcSplValidationService.PAGE_STATE_UPLOADING;\r\n }\r\n }\r\n }\r\n\r\n public onFileUploadedSuccess: EmitType = (args: any) => {\r\n this.pageState = this.hcSplValidationService.PAGE_STATE_READY;\r\n this.uploadStatus = 'Uploaded Successfully';\r\n\r\n const apiResult = JSON.parse(args.e.currentTarget.response) as IApiResult;\r\n const splValidation = apiResult.data as ISplValidationHC;\r\n\r\n this.validationFileName = args.file.name;\r\n this.splErrorMessages = splValidation.messages as ISplMessageHC[];\r\n this.setValidationStatus(splValidation.validationStatus);\r\n }\r\n\r\n public onUploadFailure(args: any): void {\r\n this.pageState = this.hcSplValidationService.PAGE_STATE_READY;\r\n this.setValidationStatus('Fail');\r\n this.uploadStatus = 'Upload Failed - Please try to upload the file again';\r\n }\r\n\r\n private setValidationStatus(validationStatus: string) {\r\n this.validationStatus = validationStatus;\r\n this.validationStatusClassName = `validation-${validationStatus?.toLocaleLowerCase()}`;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Validation Table\r\n // ------------------------------------------------------------\r\n\r\n tooltipValue(args) {\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n grid = this.errorGrid;\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n customiseCell(args: QueryCellInfoEventArgs) {\r\n\r\n if (args.data['messageType'] === 'Error') {\r\n args.cell.classList.add('customcssError');\r\n } else if (args.data['messageType'] === 'Warning') {\r\n args.cell.classList.add('customcssWarning');\r\n }\r\n\r\n if (args.column.field === 'fieldName') {\r\n const tooltip: Tooltip = new Tooltip({\r\n content: args.data['fieldName'].toString()\r\n }, args.cell as HTMLTableCellElement);\r\n }\r\n }\r\n\r\n showHideErrorsWarnings() {\r\n this.isHideErrorsWarnings = !this.isHideErrorsWarnings;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Upload File

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Health Canada File Name:

\r\n {{validationFileName}}\r\n
\r\n
\r\n

File Status:

\r\n {{uploadStatus}}\r\n
\r\n
\r\n

Validation Status:

\r\n {{validationStatus}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { StorageManagerService, AuthorizationService } from '../../shared/services/index';\r\nimport { AuthenticationService } from '../../shared/services/authentication.service';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit, OnDestroy {\r\n public loggedIn = false;\r\n private subscription: Subscription;\r\n user: any;\r\n userName: string;\r\n\r\n constructor(private authenticationService: AuthenticationService,\r\n private authorizationService: AuthorizationService,\r\n private storageManagerService: StorageManagerService,\r\n private router: Router, private toastr: ToastrService) {\r\n\r\n }\r\n\r\n login() {\r\n this.authenticationService.login();\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.authenticationService.getIsAuthorized().subscribe(\r\n (isAuthorized: boolean) => {\r\n this.loggedIn = isAuthorized;\r\n\r\n if (this.storageManagerService.read('userData')) {\r\n\r\n this.userName = this.storageManagerService.read('userData').name;\r\n\r\n this.setUserName(this.userName);\r\n }\r\n\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n }\r\n\r\n setUserName(data) {\r\n\r\n this.userName = data;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","export { AccessdeniedComponent } from './accessdenied/accessdenied.component';\r\nexport { CustomerSelectorComponent } from './customer-selector/customer-selector.component';\r\nexport { ErrorComponent } from './common/error/error.component';\r\nexport { FooterComponent } from './_layout/footer/footer.component';\r\nexport { HomeComponent } from './home/home.component';\r\nexport { NavMenuComponent } from './_layout/menus/nav-menu/nav-menu.component';\r\nexport { SupportComponent } from './support/support.component';\r\nexport { ForbiddenComponent } from './common/forbidden/forbidden.component';\r\nexport { NoEsgAccessModalComponent } from './common/no-esg-access-modal/no-esg-access-modal.component';\r\nexport { UnauthorizedComponent } from './unauthorized/unauthorized.component';\r\nexport { LLFormProductDetailsComponent } from './areas/products/ll-form-product-details/ll-form-product-details.component';\r\nexport { NavigatorComponent } from './navigator/navigator.component';\r\nexport { ContactDetailComponent } from './contact-detail/contact-detail.component';\r\nexport { CompanyDetailsComponent } from './company-details/company-details.component';\r\nexport { PragmaticGridColumnComponent } from './common/pragmatic-grid-column/pragmatic-grid-column.component';\r\nexport { ProductLabelingListingComponent } from './areas/products/product-labeling-listing/product-labeling-listing.component';\r\nexport { ContactComponent } from './contact/contact.component';\r\nexport { CompanyDashboardComponent } from './company-dashboard/company-dashboard.component';\r\nexport { ContactDashboardComponent } from './contact-dashboard/contact-dashboard.component';\r\nexport { CreateLLFormComponent } from './create-ll-form/create-ll-form.component';\r\nexport { LLFormProductInformationComponent } from './areas/products/ll-form-product-information/ll-form-product-information.component';\r\nexport { LLFormLabelerComponent } from './areas/products/ll-form-labeler/ll-form-labeler.component';\r\nexport { LLFormRegistrantComponent } from './areas/products/ll-form-registrant/ll-form-registrant.component';\r\nexport { LLFormEstablishmentComponent } from './areas/products/ll-form-establishment/ll-form-establishment.component';\r\nexport { EstablishmentModalComponent } from './areas/products/establishment-modal/establishment-modal.component';\r\nexport { SidebarProductsComponent } from './sidebar-products/sidebar-products.component';\r\nexport { ErrorMessagesComponent } from './common/error-messages/error-messages.component';\r\nexport { ProductAccordionItemComponent } from './common/page-not-found/product-accordion-item.component';\r\nexport { OrderComponent } from './order/order.component';\r\nexport { OrderStep1Component } from './order-step-1/order-step-1.component';\r\nexport { OrderStep2Component } from './order-step-2/order-step-2.component';\r\nexport { OrderStep3Component } from './order-step-3/order-step-3.component';\r\nexport { OrderSummaryComponent } from './order-summary/order-summary.component';\r\nexport { OrderAdminComponent } from './order-admin/order-admin.component';\r\nexport { OrderTrackerComponent } from './order-tracker/order-tracker.component';\r\nexport { SubmissionDashboardComponent } from './submission-dashboard/submission-dashboard.component';\r\nexport { ERFormComponent } from './er-form/er-form.component';\r\nexport { ERFormDashboardComponent } from './er-form-dashboard/er-form-dashboard.component';\r\nexport { LCRFormDashboardComponent } from './lcr-form-dashboard/lcr-form-dashboard.component';\r\nexport { WarningIconComponent } from './common/warning-icon/warning-icon.component';\r\nexport { LCRFormComponent } from './lcr-form/lcr-form.component';\r\nexport { BusinessCategoryComponent } from './business-category/business-category.component';\r\nexport { VersionModalComponent } from './version-modal/version-modal.component';\r\nexport { DeleteButtonComponent } from './common/delete-button/delete-button.component';\r\nexport { EsigModalComponent } from './common/esig-modal/esig-modal.component';\r\nexport { FeatureComponent } from './feature/feature.component';\r\n","import { Component, ViewEncapsulation, ViewChild, OnInit, OnDestroy, AfterViewInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { AuthorizationService, OrderService, SettingsService, StorageManagerService } from '../../shared/services/index';\r\nimport { LCRFormService } from '../../shared/services/lcr-form.service';\r\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\r\nimport { NgbTabset } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { DeleteButtonComponent } from '../common/delete-button/delete-button.component';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { EsigModalComponent } from '../common/esig-modal/esig-modal.component';\r\nimport { PragmaticValidationService } from '../../shared/services/pragmatic-validation.service';\r\nimport { RTCDPragmaticValidation } from '../../shared/models/rtcd_pragmatic_validation.model';\r\nimport { FormType } from '../../shared/models/form-type';\r\n\r\n@Component({\r\n selector: 'app-lcr-form-dashboard',\r\n templateUrl: './lcr-form-dashboard.component.html',\r\n styleUrls: ['./lcr-form-dashboard.component.scss'],\r\n animations: [fadeInOut],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class LCRFormDashboardComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild('LCRForm_grid')\r\n public LCRForm_grid: GridComponent;\r\n @ViewChild('drafts_grid')\r\n public draftsGrid: GridComponent;\r\n @ViewChild('deliveries_grid')\r\n public deliverieGrid: GridComponent;\r\n @ViewChild('tabset', { static: true })\r\n public tabset: NgbTabset;\r\n @ViewChild('tooltip')\r\n public tooltip: TooltipComponent;\r\n @ViewChild('deleteLCRButton')\r\n public deleteButton: DeleteButtonComponent;\r\n @ViewChild('deleteLCRDraftButton')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n @ViewChild('deleteLCRDeliveryButton')\r\n public deleteButtonDelivery: DeleteButtonComponent;\r\n @ViewChild('sendToFDAButton')\r\n public sendToFDAButton: EsigModalComponent;\r\n selectedLCRRevisionDraftMode: boolean | undefined;\r\n selectedLCRRevisionProductType: string | undefined;\r\n selectedLCRRevisionFileName: string | undefined;\r\n selectedLCRRevisionVersion: string | undefined;\r\n\r\n LCRForm_grid_data: any[];\r\n LCRDraftForm_grid_data: any[];\r\n LCRDeliveries_grid_data: any[];\r\n public initialPage: Object;\r\n public formatOptions: object;\r\n public toolbarOptions: Object;\r\n count_LCRForm: number;\r\n count_draftLCRForm: number;\r\n count_deliveriesLCRForm: number;\r\n loading = false;\r\n submitted = false;\r\n public searchForm: UntypedFormGroup;\r\n errorMessage: string;\r\n bHasPermission = false;\r\n sub: Subscription;\r\n formData: any;\r\n activeTab: string;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n hasDeletePermission = false;\r\n selectedLcrRevisionId: number | undefined;\r\n\r\n needsToPoll: boolean = true;\r\n\r\n constructor (private router: Router, private orderService: OrderService, private toastr: ToastrService, private storageManagerService: StorageManagerService,\r\n private fb: UntypedFormBuilder, private authorizationService: AuthorizationService, private activatedRoute: ActivatedRoute, private sanitizer: DomSanitizer,\r\n private pragmaticValidationService: PragmaticValidationService,\r\n private settingsService: SettingsService,\r\n private lcrFormService: LCRFormService,\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {}\r\n\r\n ngOnInit(): void {\r\n\r\n this.pollData();\r\n\r\n this.searchForm = this.fb.group({\r\n searchText: ['', { validators: [Validators.required], updateOn: 'blur' }]\r\n });\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n this.checkUserPermission();\r\n\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.bHasPermission);\r\n\r\n this.initialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.formatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.activeTab = 'LCRFormGrid';\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n pollData() {\r\n this.getDeliveryDashboard(true); // Start polling immeditely\r\n // Poll every minute (60000 milliseconds) only if needsToPoll = true\r\n this.sub = interval(60000).subscribe(() => {\r\n if (this.needsToPoll) {\r\n this.getDeliveryDashboard(false);\r\n }\r\n });\r\n }\r\n\r\n getDeliveryDashboard(isInitialCall) {\r\n if (isInitialCall) {\r\n this.formData = this.activatedRoute.snapshot.data['formData'];\r\n this.gridDataSetup();\r\n } else {\r\n this.lcrFormService.getLCRDelilveries().subscribe({\r\n next: (result: any) => {\r\n if(result && result.data.length) {\r\n this.processDeliveryDashboardData(result);\r\n this.gridDataSetup();\r\n }\r\n else{\r\n this.loading = false\r\n }\r\n\r\n }\r\n })\r\n }\r\n }\r\n\r\n processDeliveryDashboardData(result: any) {\r\n const today: Date = new Date();\r\n const numberOfDaysAgo: Date = new Date(today.getTime() - parseInt(this.settingsService.pragmaticValidatorAutoRefreshDays, 10) * 24 * 60 * 60 * 1000);\r\n\r\n this.LCRDeliveries_grid_data = result.data.map(x => {\r\n if (x.pragmaticValidationDate) {\r\n x.pragmaticValidationDate = new Date(x.pragmaticValidationDate);\r\n }\r\n return x;\r\n });\r\n \r\n const filteredDataPragmaticTaskStatusInProgress = this.LCRDeliveries_grid_data.filter(item => item.pragmaticTaskStatusCode === 1);\r\n this.loading = false;\r\n const filteredDataWithConfigDaysAgo = filteredDataPragmaticTaskStatusInProgress.some(item => {\r\n const createDate: Date = new Date(item.pragmaticValidationDate);\r\n return createDate >= numberOfDaysAgo;\r\n });\r\n\r\n if (!filteredDataWithConfigDaysAgo) {\r\n this.needsToPoll = false;\r\n }\r\n this.formData[1].data = this.LCRDeliveries_grid_data;\r\n }\r\n\r\n gridDataSetup() {\r\n // LCR form list\r\n if (this.formData) {\r\n if (this.formData.error) {\r\n this.toastr.error(this.formData.error);\r\n this.formData = null;\r\n } else if (!Array.isArray(this.formData)) {\r\n this.toastr.error(this.formData);\r\n this.formData = null;\r\n } else {\r\n if (this.formData[0]) {\r\n this.LCRForm_grid_data = this.formData[0].data.filter(x => x.isDraftMode === false);\r\n this.count_LCRForm = this.LCRForm_grid_data.length;\r\n this.LCRDraftForm_grid_data = this.formData[0].data.filter(x => x.isDraftMode === true);\r\n this.count_draftLCRForm = this.LCRDraftForm_grid_data.length;\r\n }\r\n\r\n // Merge Deliveries\r\n if (this.formData && this.formData[1]) {\r\n this.LCRDeliveries_grid_data = this.formData[1].data;\r\n this.count_deliveriesLCRForm = this.LCRDeliveries_grid_data.length;\r\n }\r\n\r\n if (this.deliverieGrid) {\r\n this.deliverieGrid.refresh();\r\n }\r\n }\r\n }\r\n }\r\n\r\n pragmaticValidation() {\r\n let foundItemIndex = this.LCRDeliveries_grid_data.findIndex(x => x.fileName === this.selectedLCRRevisionFileName);\r\n if (this.LCRDeliveries_grid_data[foundItemIndex].pragmaticTaskStatusCode === 1) {\r\n this.toastr.warning(`Pragmatic validation is already in process.`, '', { closeButton: true });\r\n return; \r\n }\r\n\r\n if (foundItemIndex != -1 ) {\r\n const customerGuid = this.settingsService.getCustomerGuid();\r\n let pragmaticData: RTCDPragmaticValidation = {\r\n formRevisionId: this.LCRDeliveries_grid_data[foundItemIndex].formRevisionID,\r\n sourceFilePath: this.LCRDeliveries_grid_data[foundItemIndex].filePath,\r\n sourceFileName: this.LCRDeliveries_grid_data[foundItemIndex].fileName,\r\n fileType: FormType.LCR,\r\n createUser: this.storageManagerService.read('userData').userguid,\r\n changeUser: this.storageManagerService.read('userData').userguid,\r\n customerGuid,\r\n }\r\n \r\n this.pragmaticValidationService.pragmaticValidation(pragmaticData).subscribe({\r\n next: (result) => {\r\n this.LCRDeliveries_grid_data[foundItemIndex].pragmaticTaskStatusCode = 1;\r\n this.LCRDeliveries_grid_data[foundItemIndex].pragmaticTaskStatus = 'InProgress';\r\n this.deliverieGrid.refresh();\r\n this.needsToPoll = true;\r\n },\r\n error: (error) => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n },\r\n });\r\n }\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n // Setup the tool bar configuration\r\n this.lcrFormGridRowDeselected();\r\n this.toolbarOptions = this.createCustomToolbarItems(this.hasDeletePermission, this.bHasPermission);\r\n this.selectedLcrRevisionId = undefined;\r\n }\r\n\r\n getActiveGrid() {\r\n let grid;\r\n\r\n switch (this.activeTab) {\r\n case 'drafts':\r\n grid = this.draftsGrid;\r\n break;\r\n case 'deliveries':\r\n grid = this.deliverieGrid;\r\n break;\r\n case 'LCRFormGrid':\r\n grid = this.LCRForm_grid;\r\n break;\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n tooltipValue(args) {\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n const grid = this.getActiveGrid();\r\n const rowInfo = grid?.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltip.cssClass = 'customTooltip';\r\n this.tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'formVersion':\r\n args.currentFilterObject.value = `${ args.currentFilterObject.value }.0`;\r\n break;\r\n case 'formatedModifiedDate':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Display detail of a single LCR form\r\n viewLCRForm(lcrRevisionId: string) {\r\n if (lcrRevisionId) {\r\n this.router.navigate(['/lcr-form', lcrRevisionId]);\r\n }\r\n }\r\n\r\n // Download spl files\r\n downloadFile(filePath: string, fileName: string) {\r\n\r\n this.sub = this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n // non-IE\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = fileName;\r\n link.click();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteLCRForm')) {\r\n this.bHasPermission = true;\r\n }\r\n if (this.authorizationService.hasPermission('SSDP.CanDeleteLCRForm')) {\r\n this.hasDeletePermission = true;\r\n }\r\n }\r\n\r\n createCustomToolbarItems(deletePermission : boolean, writePermission: boolean){\r\n let toolbarItems = [];\r\n\r\n if (this.activeTab === 'deliveries' && writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Send to FDA',\r\n tooltipText: 'Send to FDA',\r\n prefixIcon: 'fas fa-paper-plane',\r\n id: 'tool-bar-send'\r\n }\r\n );\r\n }\r\n\r\n if (writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New LCR',\r\n tooltipText: 'Add a new LCR to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if(deletePermission){\r\n toolbarItems.push(\r\n {\r\n text: 'Delete LCR',\r\n tooltipText: 'Delete the selected LCR',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n )\r\n }\r\n\r\n if (this.activeTab === 'deliveries' && writePermission) {\r\n toolbarItems.push(\r\n {\r\n text: 'Pragmatic',\r\n tooltipText: 'Validate the file with Pragmatic',\r\n prefixIcon: 'fal fa-circle-parking',\r\n id: 'validation-form-btn'\r\n }\r\n );\r\n }\r\n\r\n toolbarItems.push('Search');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n onSubmitionToFDA(isSuccessfulySubmitted: boolean) {\r\n if (isSuccessfulySubmitted) {\r\n if (this.deliverieGrid) {\r\n this.deliverieGrid.clearSelection();\r\n }\r\n }\r\n }\r\n\r\n // Grid toolbar click event handler\r\n toolbarClick(args: ClickEventArgs): void {\r\n\r\n if (args.item.id === 'create-form-btn' && this.bHasPermission) {\r\n this.router.navigate([\"/lcr-form\"]);\r\n }\r\n else if (!this.selectedLcrRevisionId &&\r\n (args.item.id === 'tool-bar-delete' || args.item.id === 'tool-bar-send' || args.item.id === 'validation-form-btn')) {\r\n this.toastr.warning(`No Row(s) selected.`, '', { closeButton: true });\r\n return;\r\n }\r\n else if (args.item.id === 'tool-bar-delete' && this.selectedLcrRevisionId) {\r\n if(this.LCRForm_grid){\r\n this.deleteButton.revisionId = this.selectedLcrRevisionId.toString();\r\n this.deleteButton.openDeleteModal();\r\n }\r\n else if(this.draftsGrid){\r\n this.deleteButtonDrafts.revisionId = this.selectedLcrRevisionId.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n else if(this.deliverieGrid){\r\n this.deleteButtonDelivery.revisionId = this.selectedLcrRevisionId.toString();\r\n this.deleteButtonDelivery.openDeleteModal();\r\n }\r\n }\r\n else if (this.deliverieGrid && this.selectedLCRRevisionFileName && args.item.id === 'tool-bar-send') {\r\n this.sendToFDAButton.showEsignatureModal();\r\n } else if (this.deliverieGrid && this.selectedLCRRevisionFileName && args.item.id === 'validation-form-btn') {\r\n this.pragmaticValidation()\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n // convenience getter for easy access to form fields\r\n get f() { return this.searchForm.controls; }\r\n\r\n lcrFormGridRowSelected(e: any) {\r\n this.selectedLcrRevisionId = e.data.lcrRevisionId;\r\n\r\n this.selectedLCRRevisionProductType = e.data.documentType;\r\n this.selectedLCRRevisionFileName = e.data.fileName;\r\n this.selectedLCRRevisionVersion = e.data.formVersion;\r\n }\r\n\r\n lcrFormGridRowDeselected() {\r\n this.selectedLcrRevisionId = undefined;\r\n\r\n this.selectedLCRRevisionProductType = undefined;\r\n this.selectedLCRRevisionFileName = undefined;\r\n this.selectedLCRRevisionVersion = undefined;\r\n }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n const currentGrid = this.getActiveGrid();\r\n if (currentGrid?.getSelectedRecords().length) {\r\n currentGrid.clearSelection();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

Labeler Code Requests (LCR)

\r\n

\r\n You can create a new Labeler Code Requests form, find an existing form,\r\n or browse through all the forms you have in the system with the helpful\r\n grid below.\r\n

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n LCR ({{ count_LCRForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{LCRForm_grid_data.formName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Drafts ({{ count_draftLCRForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{this.LCRForm_grid_data.formName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n LCR Deliveries ({{ count_deliveriesLCRForm }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{LCRDeliveries_grid_data.status}}\r\n \r\n \r\n\r\n \r\n \r\n {{LCRDeliveries_grid_data.formName}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n  {{LCRDeliveries_grid_data.fileName}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { DatePipe } from '@angular/common';\r\nimport { OnDestroy, OnInit, ViewChild, ViewEncapsulation, ChangeDetectorRef, Component, QueryList, ViewChildren, AfterViewInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { InPlaceEditor } from '@syncfusion/ej2-inplace-editor';\r\nimport { UUID } from 'angular2-uuid';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { ILLCompany, ILLCustomerCompaniesByTypeWrapper, ISplValidation, ILLGenericKeys, IContactDetail, ICompanyDetail, IEntity, ISSDPConctact, ILLBusinessCategory } from '../../shared/models/index';\r\nimport { AuthorizationService, CompanyContactService, LLFormService } from '../../shared/services';\r\nimport { StorageManagerService } from '../../shared/services/index';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { ExpandEventArgs } from '@syncfusion/ej2-angular-navigations';\r\nimport { DialogComponent, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { ErrorMessagesComponent, CompanyDetailsComponent, ContactComponent } from '../../components/index';\r\nimport { closest, EmitType } from '@syncfusion/ej2-base';\r\nimport { Subscription, Subject, of, forkJoin } from 'rxjs';\r\nimport { LCRFormService } from '../../shared/services/lcr-form.service';\r\nimport { ILCRRevisionHistory } from '../../shared/models/lcr-revision-history.model';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { LCRData } from '../../shared/models/lcr.model';\r\nimport { LCRValidationService } from '../../shared/services/lcr-validation.service';\r\nimport { RefdataService } from '../../shared/services/refdata.service';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-lcr-form',\r\n templateUrl: './lcr-form.component.html',\r\n styleUrls: ['./lcr-form.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut]\r\n})\r\nexport class LCRFormComponent implements OnInit, OnDestroy, AfterViewInit {\r\n public frmLCR: UntypedFormGroup;\r\n @ViewChild('revHistoryDialog') revHistoryDialog: DialogComponent;\r\n @ViewChildren(ErrorMessagesComponent) errorMessages: QueryList;\r\n @ViewChild('buildModalDialog') buildModalDialog: DialogComponent;\r\n @ViewChild('ndcLablerCode') ndcLabelerCodeDrp: DropDownListComponent;\r\n @ViewChild('lablerCompany') lablerCompany: DropDownListComponent;\r\n @ViewChild('companyDialog') public companyDialog: DialogComponent;\r\n @ViewChild('companyDetails') public companyDetailsComponent: CompanyDetailsComponent;\r\n @ViewChild('contact') public contactComponent: ContactComponent;\r\n @ViewChild('contactDialog') public contactDialog: DialogComponent;\r\n\r\n lcrData: LCRData;\r\n errorMessagesComponent: ErrorMessagesComponent;\r\n public clickEventArgs: Event;\r\n sub: Subscription;\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '30%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n revHistoryVisible = false;\r\n buildModalDialogVisible = false;\r\n formName: string;\r\n current = false;\r\n public type = 'Push';\r\n public enablePersistence = false;\r\n confirmDialogSelection$: Subject = new Subject();\r\n submitted = false;\r\n lcrRevisionId: string;\r\n errorMessage: string;\r\n setId: string;\r\n busCategoryId: any;\r\n bHasPermission = false;\r\n setIdModel: object;\r\n businessCategoryModel: object;\r\n status: string;\r\n splVersion: string;\r\n lastModifiedBy: string;\r\n lastModifiedDate: string;\r\n public dateValue: Date = new Date();\r\n setIdObj: InPlaceEditor;\r\n drpLabelerCompanyLOV: any[] = [];\r\n drpNdcLabelerCodeLOV: any[] = [];\r\n splTransmissionTypeLOV: any[] = [];\r\n labelCompanyRevisionId: number;\r\n labelCompanyContactRevisionId: string;\r\n ndcLablerCode: string;\r\n allLOV: any[] = [];\r\n labelerCompanies: ILLCompany[] = [];\r\n rules = { setId: { required: true } };\r\n lcrRevisions: ILCRRevisionHistory[];\r\n lcrRevisionCurrentRevision: ILCRRevisionHistory;\r\n companyRevisionId: number;\r\n companyDetailUrl: string;\r\n contactDetailUrl: string;\r\n bShowViewContactLink = false;\r\n bShowViewCompanyLink = false;\r\n companyDetail: ICompanyDetail;\r\n versionToDisplay: string;\r\n ignoreWarnings = false;\r\n displayLabelerContact = false;\r\n splSubmissionTypeMissing = true;\r\n labelerCompanyMissing = true;\r\n revisionDate: null;\r\n revisionDateMissing = true;\r\n forms: any[];\r\n isCompanyInactive = false;\r\n isContactInactive = false;\r\n inactiveLabelerCompanyName: string;\r\n inactiveLabelerContactName: string;\r\n iconTypeCompany = true;\r\n iconTypeContact = false;\r\n countries: IEntity[] = [];\r\n contactDetail: IContactDetail;\r\n companyToViewRevisionId: number;\r\n parentComponent: any;\r\n customerGuid: string;\r\n companyData: any;\r\n isDraftMode: boolean = false;\r\n\r\n labelerCompanyFields: Object = { text: 'name', value: 'id' };\r\n labelerCodeFields: Object = { text: 'label', value: 'label' };\r\n splTransmissionTypeFields: Object = { text: 'labelAndCode', value: 'id' };\r\n public ddwHeight = '220px';\r\n public ddwWidth = '450px';\r\n drpWaterMark = 'Select One';\r\n NDC_LABELER_CODE_INACTIVATION = '69968-6';\r\n NDC_LABELER_CODE_INACTIVATION_ANIMAL_DRUG = '81204-0';\r\n public animationSettings_dialog: Object = { effect: 'Fade' };\r\n splValidationMessages: ISplValidation = new ISplValidation();\r\n showValidationMessages: boolean;\r\n pageLoading = false;\r\n // Button Spinners\r\n buildLoading = false;\r\n validateLoading = false;\r\n saveLoading = false;\r\n buildLCRComplete = false;\r\n contactNotAssociated = false;\r\n updatedVersion: string;\r\n public hidden: Boolean = false;\r\n canCreateCompany: boolean;\r\n\r\n frmDetailData: any;\r\n formData: any;\r\n routerUrl: string;\r\n invalidSplVersion = false;\r\n isEditMode: boolean = false;\r\n hasDeletePermission: boolean = false;\r\n\r\n @ViewChild('tooltipObj') public tooltipObj: TooltipComponent;\r\n dateFormat: string;\r\n\r\n constructor (\r\n private fb: UntypedFormBuilder, private activatedRoute: ActivatedRoute, private router: Router,\r\n private lcrService: LCRFormService, public datepipe: DatePipe, private llService: LLFormService,\r\n private toastr: ToastrService, private storageManagerService: StorageManagerService,\r\n private authorizationService: AuthorizationService, private utilService: Utilities,\r\n private validationService: LCRValidationService, private companyService: CompanyContactService,\r\n private cdRef: ChangeDetectorRef,\r\n private refDataService: RefdataService, private llservice: LLFormService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.frmLCR = this.fb.group({\r\n setId: [''],\r\n formName: [''],\r\n phoneNumber: [''],\r\n contactName: [''],\r\n dunsNumber: [''],\r\n emailAddress: [''],\r\n address: [''],\r\n cityStateCountry: [''],\r\n drpSplTransmissionType: [''],\r\n splRevisionDate: [''],\r\n drpBusinessCategory: [''],\r\n drpLabelerCompany: [''],\r\n drpNdcLabelerCode: ['']\r\n });\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n // Initialiaztion\r\n this.initParams();\r\n // Populate the controls with previously saved data\r\n this.populateDataFromResolver();\r\n this.populateHeaders();\r\n\r\n // Validation error handling\r\n this.initValidation();\r\n\r\n // Fix for footer spacing issues\r\n document.getElementsByTagName('footer')[0].classList.add(\"footer-spacing-fix\");\r\n\r\n this.dateFormat = Utilities.getLocaleDateString();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n // Initialization\r\n initParams() {\r\n // disable the company dropdown to prevent the user from switching client from the form\r\n this.utilService.toggleClientDropdownState(true);\r\n this.getLCRFormRevisionId();\r\n this.formData = this.activatedRoute.snapshot.data['formData'];\r\n if (this.formData && this.formData[0] && this.formData[0].data && this.formData[0].data.contact) {\r\n this.contactNotAssociated = this.formData[0].data.contact.contactRevisionId === 0\r\n }\r\n\r\n if(this.formData && this.formData[0] && this.formData[0].data){\r\n this.isDraftMode = this.formData[0].data.majorRevision === 0;\r\n }\r\n\r\n this.labelerCompanyMissing = true;\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n this.checkUserPermission();\r\n this.routerUrl = this.router.url;\r\n this.isContactInactive = false;\r\n this.isCompanyInactive = false;\r\n\r\n this.parentComponent = this;\r\n\r\n const currentCustomerStr = this.storageManagerService.read('currentCustomer');\r\n\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n }\r\n\r\n // populate Header Section\r\n populateHeaders() {\r\n if (this.frmDetailData) {\r\n if (this.lcrRevisionId) {\r\n this.setId = this.frmDetailData.setId;\r\n this.status = this.frmDetailData.isDraftMode === true ? 'Draft' : 'Active';\r\n this.lastModifiedBy = this.frmDetailData.modifiedByUser ? this.frmDetailData.modifiedByUser : this.frmDetailData.createUser;\r\n this.lastModifiedDate = this.datepipe.transform(this.frmDetailData.modifiedByDate, 'MMM d, y');\r\n this.splSubmissionTypeMissing = this.frmDetailData.splServiceType.id && +this.frmDetailData.splServiceType.id !== 0 ? false : true;\r\n this.revisionDateMissing = this.f.splRevisionDate.value ? false : true;\r\n this.busCategoryId = this.frmDetailData.busCategory ? +this.frmDetailData.busCategory.categoryId : null;\r\n this.splVersion = this.frmDetailData.splVersion;\r\n\r\n this.frmLCR.patchValue({\r\n drpSplTransmissionType: this.frmDetailData.splServiceType ? +this.frmDetailData.splServiceType.id : 0,\r\n drpBusinessCategory: this.busCategoryId,\r\n splRevisionDate: this.frmDetailData.effectiveTime\r\n });\r\n }\r\n this.setIdModel = {\r\n placeholder: 'Enter setId',\r\n value: this.frmDetailData.setId,\r\n };\r\n }\r\n }\r\n\r\n // when user change a labeler company\r\n labelerCompanySelectionChanged(event) {\r\n let companyDetail: ILLCompany[] = [];\r\n\r\n this.isContactInactive = false;\r\n this.isCompanyInactive = false;\r\n if (event.itemData) {\r\n this.displayLabelerContact = true;\r\n\r\n this.companyRevisionId = event ? event.value : 0;\r\n this.bShowViewContactLink = false;\r\n this.bShowViewCompanyLink = false;\r\n this.labelerCompanyMissing = false;\r\n\r\n if (this.companyRevisionId) {\r\n // find this company record\r\n companyDetail = this.labelerCompanies.filter(x => x.companyRevisionId === this.companyRevisionId);\r\n if (companyDetail && companyDetail.length > 0) {\r\n this.displayCompanyAndAssociatedContactDetail(companyDetail[0]);\r\n }\r\n }\r\n } else {// selection being removed\r\n this.labelerCompanyMissing = true;\r\n this.bShowViewCompanyLink = false;\r\n this.displayLabelerContact = false;\r\n }\r\n\r\n if (event.isInteracted) {\r\n this.frmLCR.markAsDirty();\r\n }\r\n }\r\n\r\n // Validation error handling\r\n initValidation() {\r\n // Now, read the validation errors from local storage (if present)\r\n if (this.storageManagerService.read('showValidationMessages')) {\r\n this.splValidationMessages = this.storageManagerService.read('splValidationMessages');\r\n }\r\n this.storageManagerService.write('showValidationMessages', false);\r\n this.storageManagerService.write('splValidationMessages', {});\r\n this.frmLCR.markAsPristine();\r\n }\r\n\r\n // Dynamically generate new GUID\r\n generateGUID() {\r\n this.setId = UUID.UUID();\r\n this.frmLCR.markAsDirty();\r\n }\r\n\r\n // Get LCRForm RevisionId\r\n getLCRFormRevisionId() {\r\n this.lcrRevisionId = this.activatedRoute.snapshot.params.revisionId;\r\n\r\n // set edit mode based on value of revision id from route params (integer > 0 = edit mode)\r\n const parsedRevisionId = parseInt(this.lcrRevisionId);\r\n this.isEditMode = !isNaN(parsedRevisionId) && parsedRevisionId > 0;\r\n }\r\n\r\n // Get a form control by name\r\n getFormControlByName(controlName: string): UntypedFormControl {\r\n return this.frmLCR.get(controlName);\r\n }\r\n\r\n // Check if user has write permission. If no, disable the \"Save\", \"Save a draft\" buttons\r\n checkUserPermission() {\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteLCRForm')) {\r\n this.bHasPermission = true;\r\n }\r\n\r\n if(this.authorizationService.hasPermission('SSDP.CanDeleteLCRForm')){\r\n this.hasDeletePermission = true;\r\n }\r\n\r\n if (this.authorizationService.hasPermission('SSDP.CanWriteCompany')) {\r\n this.canCreateCompany = true;\r\n }\r\n }\r\n\r\n // Get data from the resolver and populate the controls\r\n populateDataFromResolver() {\r\n if (this.formData.error) {\r\n this.toastr.error(this.formData.error);\r\n } else {\r\n if (this.formData) {\r\n // Countries\r\n if (this.formData[5]) {\r\n this.countries = this.formData[5]['countryList'];\r\n }\r\n\r\n // Labeler company\r\n if (this.formData[2]) {\r\n // populate the Labeler Company dropdown\r\n this.populateLabelerCompanyDrp();\r\n }\r\n\r\n // Submission types\r\n if (this.formData[1]) {\r\n this.allLOV = this.formData[1]['data'];\r\n this.splTransmissionTypeLOV = this.getLOVDataByType('doc_type_lcr');\r\n }\r\n\r\n // Business Categories\r\n if (this.formData[3]) {\r\n this.businessCategoryModel = {\r\n placeholder: 'Select Business Category',\r\n dataSource: this.formData[3],\r\n fields: { value: 'categoryId', text: 'label' },\r\n width: '200px'\r\n };\r\n }\r\n\r\n if (this.formData[0] && this.formData[0]['data']) {\r\n this.frmDetailData = this.formData[0]['data'];\r\n this.formName = this.frmDetailData['company'].companyName;\r\n this.ndcLablerCode = this.frmDetailData.ndcLabelerCode;\r\n const companyDetail: ILLCompany = this.formData[0]['data']['company'];\r\n this.displayCompanyAndAssociatedContactDetail(companyDetail);\r\n }\r\n\r\n // Revision History\r\n if (this.formData[4] && this.formData[4]['data']) {\r\n this.lcrRevisions = this.formData[4]['data'];\r\n if (this.lcrRevisions && this.lcrRevisions.length > 0) {\r\n this.lcrRevisionCurrentRevision = this.lcrRevisions[0];\r\n this.current = this.lcrRevisions[0].lcrRevisionId === +this.lcrRevisionId;\r\n const revision = this.lcrRevisions.find(r => r.lcrRevisionId === +this.lcrRevisionId);\r\n if (revision) {\r\n this.versionToDisplay = this.lcrRevisions.find(r => r.lcrRevisionId === +this.lcrRevisionId).formVersion;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Get a list of LOVs by doc_type, created a new column that will\r\n // concatenate label and code fields for displaying purpose\r\n getLOVDataByType(type: string): any[] {\r\n const dataLOV = this.allLOV.filter(x => x.lsP_FORM_TYPE === type);\r\n const newLOV = dataLOV.map(item => {\r\n const container = {};\r\n container['id'] = item['id'];\r\n container['label'] = item['label'];\r\n container['labelAndCode'] = item['label'] + ' (' + item['code'] + ')';\r\n return container;\r\n });\r\n\r\n return newLOV;\r\n }\r\n\r\n // when user change the spl transmission type dropdown\r\n splTransmissionTypeSelectionChanged(event) {\r\n this.frmLCR.markAsDirty();\r\n\r\n if (event.itemData) {\r\n this.splSubmissionTypeMissing = false;\r\n } else {// selection being removed\r\n this.splSubmissionTypeMissing = true;\r\n }\r\n }\r\n\r\n // When user click on the date picker for SPL Revision Date\r\n revisionDateChanged(event) {\r\n this.frmLCR.markAsDirty();\r\n }\r\n\r\n // Depending on the SPL transmission type being selected, check if\r\n // labeler code is required or not\r\n checkForSPLTransmissionType(): boolean {\r\n let bIsRequired = false;\r\n\r\n const formValue = this.frmLCR.value;\r\n const splServiceType = this.getGenericKeyObject(this.splTransmissionTypeLOV, formValue['drpSplTransmissionType'], 'label', 'id');\r\n const labelerCodeDesc = splServiceType.code;\r\n\r\n if (labelerCodeDesc === this.NDC_LABELER_CODE_INACTIVATION || labelerCodeDesc === this.NDC_LABELER_CODE_INACTIVATION_ANIMAL_DRUG) {\r\n bIsRequired = true;\r\n }\r\n\r\n return bIsRequired;\r\n }\r\n\r\n // populate the Labeler Company dropdown\r\n populateLabelerCompanyDrp() {\r\n const companyTypes: ILLCustomerCompaniesByTypeWrapper = this.formData[2].data;\r\n this.labelerCompanies = companyTypes.labelers;\r\n\r\n if (this.labelerCompanies && this.labelerCompanies.length > 0) {\r\n this.labelerCompanies.forEach((company: ILLCompany) => {\r\n const ds = { id: 0, name: '' };\r\n ds.id = +company.companyRevisionId;\r\n ds.name = company.companyName;\r\n this.drpLabelerCompanyLOV.push(ds);\r\n });\r\n }\r\n }\r\n\r\n // Get ndc labeler codes for selected labeler company\r\n displayCompanyAndAssociatedContactDetail(companyDetail: ILLCompany) {\r\n let labelerCompanyName = '';\r\n\r\n if (companyDetail) {\r\n // populate the ndc labeler code dropdown for this company\r\n this.drpNdcLabelerCodeLOV = companyDetail.ndcLabelerCodes;\r\n\r\n this.labelCompanyRevisionId = companyDetail.companyRevisionId;\r\n // form has previously saved labeler company\r\n if (this.labelCompanyRevisionId) {\r\n this.displayLabelerContact = true;\r\n\r\n // see if the previously saved labeler company is the latest version\r\n if (this.isCompanyLatest(this.drpLabelerCompanyLOV, this.labelCompanyRevisionId)) {\r\n this.companyDetailUrl = `/company-details/${ companyDetail.companyRevisionId }`;\r\n this.bShowViewCompanyLink = true;\r\n this.labelerCompanyMissing = false;\r\n\r\n // get labeler company name without duns number\r\n if (this.lablerCompany && this.lablerCompany.text) {\r\n labelerCompanyName = this.lablerCompany.text;\r\n // labelerCompanyName = labelerCompanyName.substr(0, labelerCompanyName.indexOf('('));\r\n }\r\n this.frmLCR.patchValue({\r\n drpLabelerCompany: +companyDetail.companyRevisionId\r\n });\r\n } else {\r\n this.isCompanyInactive = true;\r\n this.inactiveLabelerCompanyName = companyDetail.companyName;\r\n }\r\n\r\n this.formName = companyDetail.companyName;\r\n\r\n // Display company info\r\n this.frmLCR.patchValue({\r\n formName: this.formName,\r\n drpNdcLabelerCode: this.ndcLablerCode,\r\n dunsNumber: companyDetail.dunsNumber,\r\n drpLabelerCompany: this.labelCompanyRevisionId\r\n });\r\n\r\n // Associate contact for this labeler company\r\n this.frmLCR.patchValue({\r\n emailAddress: '',\r\n phoneNumber: '',\r\n contactName: '',\r\n address: '',\r\n cityStateCountry: ''\r\n });\r\n if (companyDetail.contacts && companyDetail.contacts.length > 0) {\r\n const contact: ISSDPConctact = companyDetail.contacts[0];\r\n if (contact && contact.contactRevisionId) {\r\n this.labelCompanyContactRevisionId = contact.contactRevisionId;\r\n this.contactNotAssociated = false;\r\n this.bShowViewContactLink = true;\r\n this.contactDetailUrl = `/contact/${this.labelCompanyContactRevisionId}`;\r\n\r\n // check whether the contact that is associated with the selected company is the latest or not\r\n this.isContactLatest(contact);\r\n\r\n // Get country name\r\n let country = '';\r\n const countries = contact.country.id ? this.countries.find(c => c.id === contact.country.id) : [];\r\n if (countries) {\r\n country = countries[0].label;\r\n }\r\n\r\n // Display contact info\r\n this.frmLCR.patchValue({\r\n emailAddress: contact.email ? contact.email : '',\r\n phoneNumber: `${contact.phoneArea} ${contact.areaCode}-${contact.phone} ${contact.phoneExt ? 'ext.' : ''} ${contact.phoneExt === null ? '' : contact.phoneExt}`,\r\n contactName: `${contact.firstName} ${contact.lastName}`,\r\n address: contact.address,\r\n cityStateCountry: `${contact.city}, ${contact.state ?? ''} ${contact.zip ?? ''} ${contact.country.label}`\r\n });\r\n }\r\n }\r\n else {\r\n this.contactNotAssociated = true;\r\n this.labelCompanyContactRevisionId = '';\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n // Check if the previously saved company is the latest version\r\n isCompanyLatest(companyLov: any[], companyRevisionId: number) {\r\n let returnVal = true;\r\n const list = companyLov.filter(x => x.id === companyRevisionId);\r\n if (list.length === 0) {\r\n returnVal = false;\r\n }\r\n return returnVal;\r\n }\r\n\r\n // Check if the previously saved contact for the company is the latest version\r\n isContactLatest(contact: ISSDPConctact) {\r\n this.companyService.getContacts().subscribe(data => {\r\n if (data) {\r\n const contacts = data['latestAvailableContactsList'];\r\n const list = contacts.filter(x => x.contactRevisionId === contact.contactRevisionId);\r\n if (list.length === 0) {\r\n this.isContactInactive = true;\r\n this.inactiveLabelerContactName = `${ contact.firstName } ${ contact.lastName }`;\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n\r\n // get form data for saving\r\n getFormData() {\r\n this.lcrData = new LCRData();\r\n const companyDetail = new ICompanyDetail();\r\n const contactDetail = new IContactDetail();\r\n const formValue = this.frmLCR.value;\r\n\r\n companyDetail.companyRevisionId = formValue['drpLabelerCompany'];\r\n companyDetail.companyName = formValue['formName'] ? formValue['formName'] : (this.lablerCompany.text ? this.lablerCompany.text.substring(0, this.lablerCompany.text.indexOf('(')) : '');\r\n this.lcrData.company = companyDetail;\r\n\r\n if (this.labelCompanyContactRevisionId) {\r\n contactDetail.contactRevisionId = this.labelCompanyContactRevisionId;\r\n }\r\n\r\n this.lcrData.contact = contactDetail;\r\n\r\n this.lcrData.lcrRevisionId = this.lcrRevisionId ? +this.lcrRevisionId : 0;\r\n this.lcrData.setId = this.setId;\r\n this.lcrData.ndcLabelerCode = formValue['drpNdcLabelerCode'];\r\n if (formValue['splRevisionDate'] !== '') {\r\n this.lcrData.effectiveTime = formValue['splRevisionDate'] instanceof Date ? formValue['splRevisionDate'].toDateString() : formValue['splRevisionDate'];\r\n }\r\n this.lcrData.splServiceType = this.getGenericKeyObject(this.splTransmissionTypeLOV, formValue['drpSplTransmissionType'], 'label', 'id');\r\n this.lcrData.busCategory = this.getGenericKeyObjectForBC(this.formData[3], this.busCategoryId ? this.busCategoryId.toString() : '');\r\n\r\n this.lcrData.modifiedByUser = this.lastModifiedBy ? this.lastModifiedBy : this.storageManagerService.read('userData').name;\r\n this.lcrData.modifiedByDate = new Date();\r\n this.lcrData.splVersion = this.splVersion ? +this.splVersion : 1;\r\n this.lcrData.lcrId = this.frmDetailData ? this.frmDetailData.lcrId : 0;\r\n }\r\n\r\n // Build an ILLBusinessCategory object for Business Category\r\n getGenericKeyObjectForBC(list: any[], id: any): ILLBusinessCategory {\r\n const retVal = new ILLBusinessCategory();\r\n\r\n if (list && id) {\r\n list = list.filter(x => x['categoryId'] === id);\r\n if (list && list.length > 0) {\r\n retVal.categoryId = id && id !== '0' ? id : '';\r\n retVal.label = list[0]['label'];\r\n }\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n // Build an ILLGenericKeys object using id and the object list\r\n getGenericKeyObject(list: any[], id: any, TextFieldName: string, idFieldName: string): ILLGenericKeys {\r\n const retVal = new ILLGenericKeys();\r\n\r\n list = list.filter(x => x[idFieldName] === +id);\r\n if (list && list.length > 0) {\r\n retVal.id = id;\r\n retVal.code = this.getCode(list[0]['labelAndCode']);\r\n retVal.label = list[0][TextFieldName];\r\n }\r\n\r\n return retVal;\r\n }\r\n\r\n // get code from description\r\n getCode(desc: string): string {\r\n let code = '';\r\n\r\n if (desc) {\r\n const pos = desc.indexOf('(');\r\n if (pos || pos === 0) {\r\n code = desc.substring(pos + 1, desc.length - 1);\r\n }\r\n }\r\n return code;\r\n }\r\n\r\n // when user enter value in inplace editor object\r\n editorChanged(event) {\r\n const column = event.data.name;\r\n const value = event.data.value;\r\n\r\n switch (column) {\r\n case 'setId':\r\n this.setId = value;\r\n break;\r\n case 'drpBusinessCategory':\r\n this.busCategoryId = value;\r\n break;\r\n }\r\n this.frmLCR.markAsDirty();\r\n }\r\n\r\n saveLCRForm(isDraft: boolean, isValidate: boolean, isBuild: boolean): void {\r\n // SPL Revision Date and NDC Labeler Code is not required for \"Save a draft\"\r\n this.clearOutValidators();\r\n\r\n this.submitted = true;\r\n this.pageLoading = true;\r\n this.saveLoading = true;\r\n this.errorMessage = '';\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n // stop here if form is invalid\r\n if (this.frmLCR.invalid) {\r\n // Reset various flags\r\n this.resetFlags();\r\n } else {\r\n // New form will not be saved without changes on sections.\r\n if (this.frmLCR.dirty) {\r\n // get form data for saving\r\n this.getFormData();\r\n\r\n this.sub = this.lcrService.saveLCRForm(this.lcrData, modifiedByUser, isDraft).subscribe((response) => {\r\n // Reset various flags\r\n this.resetFlags();\r\n this.cdRef.detectChanges();\r\n\r\n if (response?.isSuccess) {\r\n this.toastr.success(`${ response?.message }`);\r\n this.router.navigate([`/lcr-form/${ response?.data?.lcrRevisionId }`]);\r\n\r\n } else {\r\n this.errorMessage = response && response.message ? response.message : 'Form creation failed!';\r\n this.toastr.error(this.errorMessage);\r\n }\r\n },\r\n error => {\r\n // Reset various flags\r\n this.resetFlags();\r\n this.toastr.error(error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n this.frmLCR.markAsPristine();\r\n\r\n } else {\r\n // Reset various flags\r\n this.resetFlags();\r\n this.toastr.warning('No changes to save.');\r\n }\r\n }\r\n }\r\n\r\n // Reset various flags\r\n resetFlags() {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n }\r\n\r\n // Clear out required validators for SPL Revision Date and NDC labeler code\r\n clearOutValidators() {\r\n this.f.splRevisionDate.clearValidators();\r\n this.f.splRevisionDate.updateValueAndValidity();\r\n this.f.drpNdcLabelerCode.clearValidators();\r\n this.f.drpNdcLabelerCode.updateValueAndValidity();\r\n }\r\n\r\n // Validate LCR form\r\n validateLCR() {\r\n // SPL Revision Date and NDC Labeler Code is not required for \"Validate\"\r\n this.clearOutValidators()\r\n this.submitted = true;\r\n\r\n // First we need to save the current LCR as a draft (if Form is dirty) so that all data is saved.\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n this.getFormData();\r\n\r\n const lcrRevisionId = this.activatedRoute.snapshot.params.revisionId;\r\n let hasChanges = false;\r\n const ignoreWarningsValidate = false;\r\n this.validateLoading = true;\r\n this.pageLoading = true;\r\n if (this.frmLCR.dirty) {\r\n hasChanges = true;\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.frmLCR.invalid) {\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n } else {\r\n this.validationService.validateLCR(this.lcrData, lcrRevisionId, modifiedByUser, hasChanges, ignoreWarningsValidate).subscribe(response => {\r\n if (response?.isSuccess) {\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n\r\n if (hasChanges) {\r\n this.toastr.success(`Successfully Saved Draft Form: ${ response?.data?.lcrRevisionId }`)\r\n // The form has changed so reload the page and show the Validation Messages\r\n this.storageManagerService.write('showValidationMessages', true);\r\n\r\n // store this in localStorage so that we can display them on page load\r\n this.storageManagerService.write('splValidationMessages', response?.data?.validationMessages);\r\n\r\n this.router.navigate([`/lcr-form/${ response?.data?.lcrRevisionId }`]);\r\n } else {\r\n this.toastr.success(`Successfully Validated Form: ${ lcrRevisionId }`)\r\n this.splValidationMessages = response?.data;\r\n this.showValidationMessages = Object.keys(this.splValidationMessages.validationMessages).length > 0;\r\n\r\n if (this.showValidationMessages) {\r\n if (this.errorMessagesComponent) {\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.errorMessagesComponent.showMessages(this.splValidationMessages);\r\n }\r\n }\r\n this.cdRef.detectChanges();\r\n }\r\n } else {\r\n // something went wrong when performing Validate\r\n this.toastr.error(`${ response?.message }`)\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.cdRef.detectChanges();\r\n }\r\n this.frmLCR.markAsPristine();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.pageLoading = false;\r\n this.validateLoading = false;\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n public expanding(e: ExpandEventArgs) {\r\n if (this.clickEventArgs) {\r\n\r\n const header = closest(this.clickEventArgs.target as Element, '.e-acrdn-header');\r\n const checkboxEle = closest(this.clickEventArgs.target as HTMLInputElement, 'label');\r\n if (header && checkboxEle) {\r\n e.cancel = true;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // This method will be used to Build the LCR.\r\n buildLCR() {\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n this.getFormData();\r\n\r\n if (this.frmLCR.invalid) { // stop here if form is invalid\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n } else { // Call endpoint to build SPL\r\n this.validationService.buildLCR(this.lcrData, modifiedByUser, this.ignoreWarnings, +this.updatedVersion).subscribe(response => {\r\n if (response?.isSuccess) {\r\n if (response?.message.indexOf('Errors') >= 0) {\r\n this.toastr.error(`${ response.message }`);\r\n } else {\r\n this.toastr.success(`${ response?.message }`);\r\n }\r\n // The form might have changed so reload the page and show the Validation Messages\r\n this.storageManagerService.write('showValidationMessages', true);\r\n\r\n // store this in localStorage so that we can display them on page load\r\n this.storageManagerService.write('splValidationMessages', response?.data?.validationMessages);\r\n\r\n if (response?.data?.validationMessages) {\r\n this.router.navigate([`/lcr-form/${ response.data?.lcrRevisionId }`]);\r\n } else {\r\n this.toastr.success('Your SPL XML file is being generated. When the process is complete, the file will be available on the Deliveries tab.');\r\n this.router.navigate([`/lcr-form-dashboard`]);\r\n }\r\n\r\n\r\n } else {\r\n this.toastr.error(`${ response?.message }`);\r\n // Reset various flags\r\n this.resetFlags();\r\n this.cdRef.detectChanges();\r\n }\r\n this.frmLCR.markAsPristine();\r\n },\r\n error => {\r\n // Reset various flags\r\n this.resetFlags();\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n\r\n public onClick(e) {\r\n this.clickEventArgs = e.originalEvent;\r\n }\r\n\r\n // Display version history\r\n displayRevisionHistory(event) {\r\n\r\n const classList = Array.from(event.target.classList);\r\n\r\n if (classList.indexOf('version') >= 0) {\r\n this.revHistoryVisible = true;\r\n this.revHistoryDialog.show();\r\n }\r\n }\r\n\r\n // close version history modal popup\r\n revisionHistoryClose(event) {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n // display historic LCR form\r\n goToRevision(revisionId: number) {\r\n if (this.revHistoryDialog) {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n if (revisionId) {\r\n this.router.navigate([`/lcr-form/${ revisionId }`]);\r\n }\r\n }\r\n\r\n // Modal popup event to give user a choice\r\n buildLCRModal() {\r\n // SPL Revision Date is required for build\r\n this.f.splRevisionDate.setValidators([Validators.required]);\r\n this.f.splRevisionDate.updateValueAndValidity();\r\n this.submitted = true;\r\n\r\n // for certain SPL transmission type, the labeler code is required before build\r\n if (this.checkForSPLTransmissionType()) {\r\n this.f.drpNdcLabelerCode.setValidators([Validators.required]);\r\n this.f.drpNdcLabelerCode.updateValueAndValidity();\r\n } else {\r\n this.f.drpNdcLabelerCode.clearValidators();\r\n this.f.drpNdcLabelerCode.updateValueAndValidity();\r\n }\r\n\r\n if (this.frmLCR.invalid) {\r\n this.pageLoading = false;\r\n this.saveLoading = false;\r\n this.buildLoading = false;\r\n } else {\r\n\r\n // show modal for setting a version and cancel the build if Cancel is seleced.\r\n this.buildModalDialog.show();\r\n this.sub = this.confirmDialogSelection$.subscribe(choice => {\r\n if (!choice) {\r\n this.buildLoading = false;\r\n this.pageLoading = false;\r\n } else {\r\n this.frmLCR.markAsDirty();\r\n this.buildLoading = true;\r\n this.pageLoading = true;\r\n this.cdRef.detectChanges();\r\n if (!this.buildLCRComplete) {\r\n this.buildLCR();\r\n this.buildLCRComplete = true;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // when user click on the \"continue\" button on the SPL build popup\r\n buildDlgBtnYes: EmitType = () => {\r\n // this.formData[0].data.splVersion = '' + this.updatedVersion;\r\n if (+this.updatedVersion > 0 || (this.versionToDisplay === 'Draft' && this.updatedVersion === '1')) {\r\n\r\n this.buildModalDialog.hide();\r\n return this.confirmDialogSelection$.next(true);\r\n } else {\r\n\r\n this.invalidSplVersion = true;\r\n }\r\n }\r\n\r\n // when user click on the \"Cancel\" button on the SPL build popup\r\n buildDlgBtnNo: EmitType = () => {\r\n\r\n this.invalidSplVersion = false;\r\n\r\n const splInput = document.getElementById('splVersionModalInput');\r\n if (splInput) {\r\n (splInput as any).value = '';\r\n }\r\n this.buildModalDialog.hide();\r\n return this.confirmDialogSelection$.next(false);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n buildDlgButtons: Object[] = [{ click: this.buildDlgBtnNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.buildDlgBtnYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n onBuildModalOverlayClick: EmitType = () => {\r\n this.buildModalDialog.hide();\r\n }\r\n\r\n // Increase SPL version by 1\r\n splVersionModalOpen() {\r\n const splInput = document.getElementById('splVersionModalInput');\r\n if (splInput) {\r\n if (this.lcrRevisions && this.lcrRevisions.length > 0) {\r\n if (this.lcrRevisions.length === 1 && this.lcrRevisions[0].formVersion.toLowerCase() === 'draft') {\r\n (splInput as any).value = '1';\r\n } else {\r\n (splInput as any).value = `${ +this.formData[0].data.splVersion + 1 }`;\r\n }\r\n } else { // brand new LCR form\r\n (splInput as any).value = '1';\r\n }\r\n this.updatedVersion = (splInput as any).value;\r\n }\r\n }\r\n\r\n // validate SPL version number\r\n validateSplVersionInput(event) {\r\n\r\n this.invalidSplVersion = false;\r\n\r\n if (event.target.value) {\r\n\r\n this.updatedVersion = parseInt(event.target.value, 10).toString();\r\n } else {\r\n\r\n this.updatedVersion = '';\r\n }\r\n }\r\n\r\n\r\n // Create an overlay effect for verision history modal popup\r\n onOverlayClick() {\r\n this.revHistoryDialog.hide();\r\n this.revHistoryVisible = false;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.cdRef.detectChanges();\r\n this.frmLCR.markAsPristine();\r\n }\r\n\r\n get f() { return this.frmLCR.controls; }\r\n\r\n // set the ignore warning flag for building SPL\r\n ignoreWarningsToggle() {\r\n this.ignoreWarnings = !this.ignoreWarnings;\r\n }\r\n\r\n // SPL Revision Date datapicker is being clicked\r\n onOpen(e: any) {\r\n this.frmLCR.markAsDirty();\r\n }\r\n\r\n // clean up\r\n ngOnDestroy(): void {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n\r\n showCompanyDialog(companyRevisionId?: number) {\r\n\r\n this.frmLCR.markAsDirty();\r\n this.pageLoading = true;\r\n\r\n if (companyRevisionId) {\r\n\r\n const companyData$ = forkJoin([this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.refDataService.GetAllBusinessOperationQualifier(),\r\n this.companyService.getCompanyRevisionHistory(companyRevisionId),\r\n this.companyService.getBusinessOperationQualifierByCompany(companyRevisionId.toString()),\r\n this.companyService.getCompanyById(companyRevisionId.toString()),\r\n this.companyService.getNDCLabelerCodesByCompany(companyRevisionId.toString())]\r\n ).pipe(catchError(err => of(err)\r\n )).subscribe(data => {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = data;\r\n this.companyDetailsComponent.companyRevisionId = companyRevisionId.toString();\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.getFormControlByName('status').patchValue('Active');\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n this.pageLoading = false;\r\n this.companyDialog.show();\r\n });\r\n } else {\r\n const companyData = [];\r\n\r\n this.sub = this.companyService.getBusinessCategories(false).subscribe(busCat => {\r\n companyData[0] = busCat;\r\n\r\n this.sub = this.companyService.getCountries().subscribe(countries => {\r\n companyData[1] = countries;\r\n\r\n this.sub = this.companyService.getContacts().subscribe(contacts => {\r\n companyData[2] = contacts;\r\n\r\n this.refDataService.GetAllBusinessOperationQualifier().subscribe(busQual => {\r\n\r\n companyData[3] = busQual;\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyData = companyData;\r\n this.companyDetailsComponent.companyRevisionId = '';\r\n this.companyDetailsComponent.company = null;\r\n this.companyDetailsComponent.companyHistory_grid_data = [];\r\n this.companyDetailsComponent.populateDataFromResolver();\r\n this.companyDetailsComponent.setButtons();\r\n this.companyDetailsComponent.checkUserPermission();\r\n this.companyDetailsComponent.ngAfterViewInit();\r\n }\r\n\r\n this.pageLoading = false;\r\n this.companyDialog.show();\r\n\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.pageLoading = false;\r\n });\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.pageLoading = false;\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.pageLoading = false;\r\n });\r\n }\r\n }\r\n\r\n modalCompany(newCompany) {\r\n\r\n this.setSavedLabelerCompany(newCompany.companyRevisionId);\r\n\r\n this.companyDialogCancelButtonClicked();\r\n }\r\n\r\n\r\n setSavedLabelerCompany(companyRevisionId: any) {\r\n\r\n let contact;\r\n let company;\r\n\r\n this.sub = this.llService.getLCompanyTypesByCustomerGuid(this.customerGuid).subscribe(response => {\r\n\r\n const companyTypes = response['data'];\r\n\r\n this.formData[2].data = companyTypes;\r\n this.labelerCompanies = companyTypes['labelers'];\r\n\r\n company = this.labelerCompanies.find(c => c.companyRevisionId === companyRevisionId);\r\n\r\n if (company) {\r\n\r\n this.labelCompanyRevisionId = companyRevisionId;\r\n\r\n this.drpLabelerCompanyLOV = [];\r\n\r\n if (company.contacts && company.contacts.length > 0) {\r\n this.labelCompanyRevisionId = company.contacts[0].contactRevisionId;\r\n contact = company.contacts[0];\r\n }\r\n\r\n this.frmLCR.patchValue({\r\n drpLabelerCompany: companyRevisionId,\r\n registrantContact: contact\r\n });\r\n\r\n this.populateLabelerCompanyDrp();\r\n\r\n //this.drpLabelerCompanyLOV.sort(this.compare);\r\n\r\n this.lablerCompany.dataSource = this.drpLabelerCompanyLOV;\r\n this.lablerCompany.dataBind();\r\n this.lablerCompany.refresh();\r\n\r\n this.lablerCompany.value = companyRevisionId;\r\n\r\n }\r\n this.cdRef.detectChanges();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.pageLoading = false;\r\n });\r\n\r\n this.frmLCR.markAsDirty();\r\n }\r\n\r\n companyDialogCancelButtonClicked() {\r\n\r\n if (this.companyDetailsComponent) {\r\n\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.companyDialog.hide();\r\n }\r\n\r\n contactDialogCancelButtonClicked() {\r\n\r\n if (this.contactComponent) {\r\n this.companyDetailsComponent.companyForm.clearValidators();\r\n }\r\n this.contactDialog.hide();\r\n }\r\n\r\n showContactDialog(contactRevisionId) {\r\n\r\n this.frmLCR.markAsDirty();\r\n this.pageLoading = true;\r\n\r\n if (this.contactComponent) {\r\n\r\n this.contactComponent.contactRevisionId = contactRevisionId;\r\n this.contactComponent.ngOnInit();\r\n\r\n this.contactComponent.contactDetailComponent.contactRevisionId = contactRevisionId;\r\n\r\n this.contactComponent.contactDetailComponent.getContactById();\r\n this.contactComponent.contactDetailComponent.ngOnInit();\r\n\r\n this.pageLoading = false;\r\n }\r\n }\r\n\r\n contactRetrieved(contact) {\r\n\r\n if (contact) {\r\n this.contactDialog.show();\r\n }\r\n }\r\n\r\n modalContact(updatedContact) {\r\n\r\n this.setSavedContact(updatedContact.contactRevisionId);\r\n\r\n this.contactDialogCancelButtonClicked();\r\n }\r\n\r\n setSavedContact(contactRevisionId: any) {\r\n\r\n this.contactDialogCancelButtonClicked();\r\n\r\n }\r\n\r\n\r\n compare(a, b) {\r\n if (a.name < b.name) {\r\n return -1;\r\n }\r\n if (a.name > b.bame) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n showToolTip(event) {\r\n\r\n if (this.isEllipsisActive(event)) {\r\n\r\n event.target.setAttribute('title', event.target.textContent);\r\n }\r\n }\r\n showSFToolTip(event) {\r\n\r\n if (this.isEllipsisActive(event)) {\r\n\r\n if (this.tooltipObj) {\r\n this.tooltipObj.content = event.target.outerText;\r\n this.tooltipObj.width = `${ event.target.scrollWidth }px`;\r\n\r\n this.tooltipObj.open();\r\n }\r\n }\r\n }\r\n\r\n hideSFToolTip(event) {\r\n\r\n if (this.tooltipObj) {\r\n\r\n this.tooltipObj.close();\r\n }\r\n }\r\n\r\n isEllipsisActive(e) {\r\n return (e.target.offsetWidth < e.target.scrollWidth);\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Labeler company\r\n
\r\n
\r\n Version\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n current\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{isEditMode ? \"Edit\" : \"New\"}} Labeler Code Request\r\n

\r\n
\r\n
\r\n
\r\n
\r\n  NOT CURRENT VERSION - Any changes made could overwrite a newer version of this form.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Labeler Code Request Details\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n SPL submission type is required\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Build SPL requires SPL revision date\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Labeler Details\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Labeler Company\r\n \r\n Create new company\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Labeler Company is required\r\n
\r\n
\r\n
\r\n
 
\r\n
\r\n View\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
NDC Labeler Code is required
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Labeler Contact\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n    View\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Please update the selected company record to include required contact information.
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Back to list\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n n\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Version History

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Form versionModified ByModified Date
\r\n {{item.formVersion}}\r\n {{item.modifiedBy }}{{item.modifiedDate | dateToLocale: 'true'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

Update SPL Version Number

\r\n
\r\n
\r\n \r\n 0\"\r\n onkeydown=\"if(event.key==='.'){event.preventDefault();}\"\r\n class=\"form-control\" (blur)=\"validateSplVersionInput($event)\"\r\n aria-labelledby=\"splVersionUpdate-label\" role=\"spinbutton\" tabindex=\"0\"/>\r\n\r\n
\r\n The SPL version can't be blank\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n

Company Details

\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n

Contact Details

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CompanyContactService } from '../../shared/services/index';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { INavdlContact } from '../../shared/models/navdl-contact';\r\nimport { NavDLService } from '../../shared/services/navdl.service';\r\n\r\n@Component({\r\n selector: 'app-navigator',\r\n templateUrl: './navigator.component.html',\r\n styleUrls: ['./navigator.component.scss'],\r\n animations: [fadeInOut],\r\n})\r\nexport class NavigatorComponent implements OnInit {\r\n contactForm: FormGroup;\r\n countryLOV: String[];\r\n ddwFields: Object = { text: 'label', value: 'label' };\r\n ddwHeight = '220px';\r\n countryWaterMark: String = 'Select Country';\r\n loading = false;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private toastr: ToastrService,\r\n private contactService: CompanyContactService,\r\n private navDLService: NavDLService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.contactForm = this.fb.group({\r\n firstName: ['', Validators.required],\r\n lastName: ['', Validators.required],\r\n email: ['', [Validators.required, Validators.email]],\r\n phoneNumber: ['', Validators.required],\r\n jobTitle: ['', Validators.required],\r\n companyName: ['', Validators.required],\r\n country: ['', Validators.required],\r\n medicalDevice: [false],\r\n pharmaceutical: [false],\r\n consumerOtc: [false],\r\n cosmetics: [false],\r\n demo: [null],\r\n comments: [''],\r\n });\r\n this.getCountries();\r\n }\r\n\r\n onSubmit() {\r\n this.loading = true;\r\n if (this.contactForm.valid) {\r\n const atLeastOneChecked = this.contactForm.get('medicalDevice')?.value\r\n || this.contactForm.get('pharmaceutical')?.value\r\n || this.contactForm.get('consumerOtc')?.value\r\n || this.contactForm.get('cosmetics')?.value;\r\n\r\n if (!atLeastOneChecked) {\r\n this.loading = false;\r\n this.toastr.error('Please select an industry');\r\n return;\r\n }\r\n this.navDLService.sendNavDLContactMessage(this.contactForm.value).subscribe({\r\n next: () => {\r\n this.loading = false;\r\n this.toastr.success('Message submitted successfully');\r\n this.contactForm.reset();\r\n },\r\n error: (error) => {\r\n this.loading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n },\r\n });\r\n } else {\r\n this.loading = false;\r\n this.toastr.error('Please complete all required fields');\r\n }\r\n }\r\n\r\n getCountries(): void {\r\n this.contactService.getCountries().subscribe(\r\n (data) => {\r\n if (data) {\r\n this.countryLOV = data['countryList'];\r\n }\r\n },\r\n (error) => {\r\n this.toastr.error(\r\n error && error.errorMessage ? error.errorMessage : error,\r\n );\r\n },\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Navigator™ for Drug Labels

\r\n

Already have an account?

\r\n LOGIN\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Navigator™ for Drug Labels combines US and centralized EU human drug\r\n label databases with advanced search, comparison, analysis, and alerts\r\n tools\r\n

\r\n
    \r\n
  • Access historical and current drug labels
  • \r\n
  • Branded and generic prescription drugs
  • \r\n
  • Biologics and over-the-counter (OTC)
  • \r\n
  • Homeopathic and herbal products
  • \r\n
  • Set up alerts for updates in your Personal Library
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Navigator™ for Drug Labels Features

\r\n
\r\n
\r\n

Regulatory Intelligence

\r\n

\r\n Research and produce labels in line with corporate and industry\r\n standards.\r\n

\r\n
    \r\n
  • \r\n Conduct advanced searches of comprehensive US (Rx, OT, and\r\n homeopathic) and EU-centralised (Rx) human drug label databases\r\n
  • \r\n
  • \r\n Access nearly 500,000 historical and current drug labels, compare\r\n them side-by-side, and monitor them for changes\r\n
  • \r\n
  • \r\n Be confident in the most current, comprehensive information\r\n available with daily database updates\r\n
  • \r\n
\r\n
\r\n
\r\n

Streamlined Label Creation

\r\n

\r\n Research and produce labels in line with corporate and industry\r\n standards.\r\n

\r\n
    \r\n
  • \r\n Ensure global locations produce labels in line with corporate\r\n standards and industry standards\r\n
  • \r\n
  • \r\n Compare up to five labels at a time by section as well previous\r\n versions of a drug label\r\n
  • \r\n
  • \r\n Track label updates to ensure consistent data and formatting\r\n across multiple suppliers\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Market Research

\r\n

\r\n Bolster your market research efforts with insights into competitor\r\n products and reference drugs.\r\n

\r\n
    \r\n
  • \r\n Perform due diligence for acquisitions or new product development\r\n
  • \r\n
  • Gain actionable insights into competitors’ products
  • \r\n
  • Establish a competitive advantage
  • \r\n
\r\n
\r\n
\r\n

Case Development and Litigation

\r\n

\r\n Research and procure documentation to support case development and\r\n litigation\r\n

\r\n
    \r\n
  • Support case development and due diligence
  • \r\n
  • \r\n Perform language analysis to determine acceptable communications\r\n
  • \r\n
  • Research language changes by label version
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Send Us a Message

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Medical\r\n Device\r\n
\r\n
\r\n \r\n Pharmaceutical\r\n
\r\n
\r\n Consumer OTC\r\n
\r\n
\r\n Cosmetics\r\n
\r\n
\r\n
\r\n \r\n
\r\n Yes\r\n
\r\n
\r\n No\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Reed Tech,\r\n a LexisNexis\r\n company, may contact you in your professional capacity with information about our other products,\r\n services and events that we believe may be of interest. You'll be able to update your communication\r\n preferences any time by clicking on the unsubscribe link provided within our communications.\r\n You can learn more about how we handle your personal data and your rights by reviewing our\r\n Privacy Policy\r\n .

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { OrderService, SettingsService } from '../../shared/services/index';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Order, IApiTypedResult, ITermByIndustryUsageAndCategory, SplFileStorageResult } from '../../shared/models';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { UploaderComponent, SelectedEventArgs, UploadingEventArgs, ActionCompleteEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { Media } from '../../shared/models/media.model';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { FeatureService } from '../../shared/services/feature.service';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'order-admin',\r\n templateUrl: './order-admin.component.html',\r\n styleUrls: ['./order-admin.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class OrderAdminComponent implements OnInit {\r\n\r\n // Local variables to display in component, some are calculated.\r\n orderRevisionId: number = null;\r\n\r\n orderAdminForm: UntypedFormGroup;\r\n\r\n metaDataXmlFileName: string;\r\n\r\n metaDataXmlFilePath: string;\r\n\r\n customFields: { [key: string]: any } = { \"ingestFile\": true};\r\n\r\n ingestFileValue = true;\r\n\r\n @Input() order: Order;\r\n\r\n @Input() orderStatuses: ITermByIndustryUsageAndCategory[];\r\n private orderStatusesNoDraft: ITermByIndustryUsageAndCategory[];\r\n\r\n @Input() postSaveDataNewOrderRevisionId: number;\r\n\r\n @Input() deliveryDoc: Media;\r\n\r\n // If user clicks \"delete\" for existing\r\n // delivery doc\r\n requestDeletionOfExistingDeliveryDoc: boolean;\r\n\r\n ddwFields: Object = { text: 'termValueDescription', value: 'termValueCode' };\r\n\r\n // Tie it back to the parent\r\n @Output() onOrderAdminFileUpload = new EventEmitter();\r\n @Output() onIngestFilechanged = new EventEmitter();\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n // Angular object\r\n @ViewChild('adminFileUpload')\r\n public adminFileUpload: UploaderComponent;\r\n // Tells uploader what URL to post files to (gets set programmatically later)\r\n adminFileUploadAsyncSettings: any = null;\r\n // Valid extensions to upload. In this case only zip files.\r\n adminValidFileExtensionsStr = '.zip';\r\n adminFileMinSize: number;\r\n adminFileMaxSize: number;\r\n dateFormat: any;\r\n isScsIngestFileFeatureVisible: boolean = false;\r\n public showIngestFile$: Observable = of(false);\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n private fb: UntypedFormBuilder,\r\n private settingsService: SettingsService,\r\n private toastr: ToastrService,\r\n private featureService: FeatureService) {\r\n }\r\n\r\n ngOnInit() {\r\n // Extract primary key from query string\r\n this.orderRevisionId = this.orderService.getNumberOrNull(this.activatedRoute.snapshot.params.orderRevisionId);\r\n\r\n this.requestDeletionOfExistingDeliveryDoc = false;\r\n\r\n this.setFeatureFlag('ssdp-scs-delivery-ingestion');\r\n\r\n this.orderAdminForm = this.fb.group({\r\n orderStatus: [''],\r\n confirmedDueDate: [''],\r\n adminFileUpload: [''],\r\n ingestFile: [true],\r\n });\r\n\r\n const settings = this.settingsService.getSettings();\r\n this.adminFileMinSize = settings.FileMinSize;\r\n this.adminFileMaxSize = settings.FileMaxSize;\r\n this.dateFormat = Utilities.getLocaleDateString();\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n // Sometimes there's a delay before the order object is available.\r\n // Give the subcomponent a chance to catch up before finishing the load sequence.\r\n if (this.order) {\r\n this.orderAdminForm.patchValue({\r\n orderStatus: this.order.orderStatus,\r\n confirmedDueDate: this.order.confirmedDueDate,\r\n });\r\n\r\n // Don't know why, but unless you wrap this in a timeout,\r\n // when you proceed to the next screen, this field is always\r\n // marked as dirty, even if no changes.\r\n setTimeout(() => {\r\n this.orderAdminForm.controls.confirmedDueDate.markAsPristine();\r\n }, 200);\r\n\r\n this.adminFileUploadAsyncSettings = {\r\n saveUrl: this.orderService.getFileUploadUrl()\r\n };\r\n\r\n this.onOrderAdminFileUpload.emit('init');\r\n\r\n // Don't show draft status on this page\r\n this.orderStatusesNoDraft = this.orderStatuses.filter(x => x.termValueDescription !== this.orderService.ORDER_STATUS_DRAFT)\r\n\r\n // We have to do another call to get spl xml\r\n this.metaDataXmlFileName = '';\r\n this.metaDataXmlFilePath = '';\r\n if (this.order.dataCollectionForm && this.order.dataCollectionForm > 0) {\r\n this.orderService.getFileStorageSplXml(this.order.dataCollectionForm)\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(response => {\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n if (responseTyped.data) {\r\n this.metaDataXmlFileName = responseTyped.data.fileName;\r\n this.metaDataXmlFilePath = responseTyped.data.filePath;\r\n }\r\n } else {\r\n this.toastr.error('Unexpected error retrieving SPL XML file storage ' + responseTyped.message);\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n }\r\n }\r\n }, 100);\r\n }\r\n\r\n public showIngestFile(value: boolean): void {\r\n this.showIngestFile$ = of(value)\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n // Trigger a browse window\r\n browseClick() {\r\n // For order step 2-- there is already another file upload control.\r\n // Other steps 1 and 3 there is not.\r\n // So the browse button we want is second on step 2, or first on steps 1, 3.\r\n let allBrowseButtonWrappers = document.getElementsByClassName('e-file-select-wrap');\r\n let orderAdminBrowseWrapper = allBrowseButtonWrappers[0];\r\n if (allBrowseButtonWrappers.length > 1) {\r\n orderAdminBrowseWrapper = allBrowseButtonWrappers[1];\r\n }\r\n orderAdminBrowseWrapper.querySelector('button').click();\r\n return false;\r\n }\r\n\r\n public onSelected: EmitType = (args: any) => {\r\n // Mark as dirty so we know user has to hit save button\r\n this.orderAdminForm.markAsDirty();\r\n this.orderAdminForm.markAsTouched();\r\n }\r\n\r\n // Upload file to order, validate settings\r\n public onUploading: EmitType = (args: any) => {\r\n // We're a child component here, but we need the new orderRevisionId from the parent.\r\n\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_ESG) {\r\n this.ingestFileValue = false;\r\n }\r\n this.orderService.uploadOrderDoc(args,\r\n this.order.orderId,\r\n this.postSaveDataNewOrderRevisionId,\r\n this,\r\n this.orderAdminForm,\r\n false,\r\n this.orderService.UPLOAD_FILE_TYPE_DELIVERY,\r\n this.ingestFileValue);\r\n }\r\n\r\n public onSuccess: EmitType = (args: any) => {\r\n // Successfully uploaded one file.\r\n }\r\n\r\n // Called after *ALL* files or uploaded, or after one file has an error\r\n // (yeah that seems weird, we have to do lots of \"if\" statements to sort through that)\r\n public onActionComplete: EmitType = (args: any) => {\r\n let atLeastOneGoodUpload = false;\r\n if (args && args.fileData) {\r\n for (const myFileData of args.fileData) {\r\n if ((myFileData as any).statusCode === \"2\") {\r\n // Got at least one good upload\r\n atLeastOneGoodUpload = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (atLeastOneGoodUpload) {\r\n // Successfully uploaded all files. Finished, navigate to next page.\r\n this.onOrderAdminFileUpload.emit('success');\r\n }\r\n }\r\n\r\n onIngestFileChange(event) {\r\n this.ingestFileValue = !this.ingestFileValue;\r\n this.onIngestFilechanged.emit(this.ingestFileValue)\r\n this.onOrderAdminFileUpload.emit('onIngestFileChange');\r\n this.orderAdminForm.markAsDirty();\r\n this.orderAdminForm.markAsTouched();\r\n }\r\n\r\n deleteExistingDeliveryFile() {\r\n // Ask parent component to delete delivery doc when we save\r\n this.requestDeletionOfExistingDeliveryDoc = true;\r\n this.onOrderAdminFileUpload.emit('deleteExistingDeliveryDoc');\r\n this.orderAdminForm.markAsDirty();\r\n this.orderAdminForm.markAsTouched();\r\n }\r\n\r\n undeleteExistingDeliveryFile() {\r\n // Ask parent component to \"never mind\" about deleting the delivery doc\r\n // Haven't save yet, so the deletion was still pending\r\n this.requestDeletionOfExistingDeliveryDoc = false;\r\n this.onOrderAdminFileUpload.emit('deleteExistingDeliveryDoc');\r\n this.orderAdminForm.markAsDirty();\r\n this.orderAdminForm.markAsTouched();\r\n }\r\n\r\n onUploadFailure(event) {\r\n this.onOrderAdminFileUpload.emit('failure');\r\n }\r\n\r\n downloadFile(filePath: string, fileName: string) {\r\n this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n this.orderService.postDownloadFile(response, fileName);\r\n },\r\n error => {\r\n this.toastr.error(error);\r\n });\r\n }\r\n\r\n // Add CORS headers - for file uploads\r\n public addCorsHeaders(args: any) {\r\n args.currentRequest.setRequestHeader('Access-Control-Allow-Origin', '*');\r\n }\r\n\r\n setFeatureFlag(name: string) {\r\n this.featureService.IsFeatureEnabled(name)\r\n .subscribe(data => {\r\n if (data) {\r\n this.isScsIngestFileFeatureVisible = data\r\n }\r\n else {\r\n this.isScsIngestFileFeatureVisible = false;\r\n }\r\n }, error => {\r\n // An error has occured. For safe measure, hide the feature.\r\n this.isScsIngestFileFeatureVisible = false;\r\n \r\n // Log to the console since we do not want to alert the user to a feature they may not have\r\n console.log(`An error has occured checking if the following feature is enabled: ${name}`)\r\n });\r\n }\r\n\r\n}\r\nfunction next(value: boolean): Observable {\r\n throw new Error('Function not implemented.');\r\n}\r\n\r\n","
\r\n\r\n
\r\n\r\n
\r\n Reed Tech Order Delivery\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n     n/a\r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n  {{deliveryDoc.title}}\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n  Delete\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Browse \r\n  \r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n Be sure to save the order using the 'Update Order' button.\r\n
\r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewChild, ViewEncapsulation, AfterViewInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ChangeArgs } from '@syncfusion/ej2-angular-buttons';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ChangeEventArgs } from '@syncfusion/ej2-dropdowns';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IApiTypedResult, IBusinessOperationQualifier, ILLGenericKeys, ITermByIndustryUsageAndCategory, Order, OrderUser, User } from '../../shared/models/index';\r\nimport { Media } from '../../shared/models/media.model';\r\nimport { AuthorizationService, OrderService, StorageManagerService } from '../../shared/services/index';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { OrderAdminComponent } from '../order-admin/order-admin.component';\r\nimport { OrderSummaryComponent } from '../order-summary/order-summary.component';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\r\n\r\n@Component({\r\n selector: 'order-step-1',\r\n templateUrl: './order-step-1.component.html',\r\n styleUrls: ['./order-step-1.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class OrderStep1Component implements OnInit, AfterViewInit {\r\n // Primary key\r\n orderRevisionId: number;\r\n // Object model for Order\r\n order: Order;\r\n // Hold on to original values for these fields for saving later\r\n beforeOrderStatus: string;\r\n beforeConfirmedDate: Date;\r\n // Angular form that contains controls\r\n orderStep1Form: UntypedFormGroup;\r\n\r\n // Controls state of the form\r\n isServiceCategorySelected: boolean;\r\n\r\n freezeChangeEventsTemporarily: boolean;\r\n\r\n // ------------------------------------------------------------\r\n // ServiceType pulldown\r\n // ------------------------------------------------------------\r\n // Reference data list\r\n // Possible pulldown list values, contents change by service type\r\n serviceCategoryToServiceTypeAssoc: IBusinessOperationQualifier[];\r\n serviceTypesLOV: ILLGenericKeys[];\r\n serviceGroupsLOV: String[];\r\n servTypesWaterMark = 'Select Service Type';\r\n servGroupWaterMark = 'Select Service Group';\r\n isServiceTypeSelected = false;\r\n isServiceGroupSelected = false;\r\n ddwFields: Object = { text: 'label', value: 'code' };\r\n ddwHeight = '220px';\r\n bIsOrder = true;\r\n inactiveOrderEmailRecipientList: any[] = [];\r\n inactiveOrderOwnersList: any[] = [];\r\n\r\n // ------------------------------------------------------------\r\n // ServiceType pulldown\r\n // ------------------------------------------------------------\r\n // Reference data list\r\n serviceTypeToDeliveryPriorityAssoc: IBusinessOperationQualifier[];\r\n\r\n // Regular priority box\r\n hasRegularPriority = true;\r\n\r\n // Expedited priority box\r\n hasExpeditedPriority = true;\r\n\r\n // Emergency priority box\r\n hasEmergencyPriority = true;\r\n\r\n // Order type\r\n showOrderType = false;\r\n\r\n // List of all employees in company\r\n allEmployeesInCompany: User[] = null;\r\n\r\n // Save button caption\r\n saveButtonCaption = 'Save as Draft';\r\n\r\n // ------------------------------------------------------------\r\n // orderOwners multi-select pulldown\r\n // ------------------------------------------------------------\r\n // Map keys/values for owners pulldown list\r\n orderOwnersFields = { 'text': 'label', 'value': 'code' };\r\n // Placeholder when order owners pulldown empty\r\n orderOwnersWaterMark = 'Select Owners';\r\n // Will hold possible values for list\r\n orderOwnersLOV: ILLGenericKeys[];\r\n\r\n\r\n // ------------------------------------------------------------\r\n // orderRecipients multi-select pulldown\r\n // ------------------------------------------------------------\r\n // Map keys/values for email pulldown list\r\n orderRecipientsFields = { 'text': 'label', 'value': 'code' };\r\n // Placeholder when order owners pulldown empty\r\n orderRecipientsWaterMark = 'Select Recipients';\r\n // Will hold possible values for list\r\n orderRecipientsLOV: ILLGenericKeys[];\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Order admin box\r\n // ------------------------------------------------------------\r\n @ViewChild('orderAdminComponent')\r\n orderAdmin: OrderAdminComponent;\r\n\r\n @ViewChild('orderSummaryComponent')\r\n orderSummary: OrderSummaryComponent;\r\n\r\n // Delivery doc associated with this order\r\n // (not the source docs)\r\n deliveryDoc: Media = null;\r\n\r\n // If user deletes an existing delivery doc,\r\n // there's no angular form changes, but we need to force\r\n // a page reload.\r\n deliveryDocStatusChange: boolean;\r\n // No source docs on step 3\r\n\r\n orderStatuses: ITermByIndustryUsageAndCategory[] = null;\r\n\r\n // ------------------------------------------------------------\r\n // Page state\r\n // ------------------------------------------------------------\r\n // Are we currently loading or saving?\r\n pageState: string = null;\r\n // Can the current user edit the current order?\r\n canEdit: boolean;\r\n // Does the current user have admin order (RT employee) permissions\r\n canOrderAdmin: boolean;\r\n // Can user request cancellation?\r\n canRequestCancellation: boolean;\r\n // Error message to display on bottom of screen.\r\n errorMessage = '';\r\n\r\n dropElement: HTMLElement = null;\r\n\r\n // ------------------------------------------------------------\r\n // Post save settings\r\n // ------------------------------------------------------------\r\n // Save the order object, when finished then optionally finish a deliverDoc\r\n // upload. There's a lot of async steps, so put information about\r\n // saving orders and docs into class variables that can be set\r\n // in saveData and accessed in postSaveData to tie everything together.\r\n\r\n // Message from server about saving the order\r\n postSaveDataMessage: string;\r\n // URL to go to after save is finished. Note we need the\r\n // new OrderRevisionId of the newly saved order revision\r\n // to generate this URL (usually).\r\n postSaveDataRedirectUrl: string;\r\n // OrderRevisionId from after we save order changes (but we haven't uploaded files yet so we need this stored)\r\n postSaveDataNewOrderRevisionId: number;\r\n // Track if source docs are finished uploading after order save\r\n postSaveWaitingForSourceDocUpload: boolean;\r\n // Track if delivery docs are finished uploading after order save\r\n postSaveWaitingForDeliveryUpload: boolean;\r\n\r\n // Should serviceType pulldown be enabled?\r\n isServiceTypeEnabled = false;\r\n // Should deliveryPriority radio buttons be enabled?\r\n isDeliveryPriorityEnabled = false;\r\n ingestFileValue: boolean;\r\n\r\n constructor(private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private authorizationService: AuthorizationService,\r\n public orderService: OrderService,\r\n private storageManagerService: StorageManagerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private utilService: Utilities) { }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Initialize\r\n // ------------------------------------------------------------\r\n\r\n ngOnInit(): void {\r\n this.pageState = this.orderService.PAGE_STATE_LOADING;\r\n\r\n // Users can't change companies in the middle of viewing/editing an order\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n // Force some permissions off in case of ng routing doesn't do a full refresh\r\n this.order = null;\r\n this.beforeOrderStatus = null;\r\n this.beforeConfirmedDate = null;\r\n this.canEdit = false;\r\n this.canOrderAdmin = false;\r\n this.canRequestCancellation = false;\r\n this.deliveryDoc = null;\r\n this.deliveryDocStatusChange = false;\r\n // no source docs on step 1\r\n\r\n this.isServiceCategorySelected = false;\r\n this.freezeChangeEventsTemporarily = false;\r\n\r\n // Extract primary key from query string\r\n this.orderRevisionId = this.orderService.getNumberOrNull(this.activatedRoute.snapshot.params.orderRevisionId);\r\n\r\n // The guard says you need read permission to get to this page.\r\n // User might also have edit permissions.\r\n this.canEdit = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n this.canOrderAdmin = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN);\r\n\r\n // If new, force no admin\r\n if (!this.orderRevisionId) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // Tell angular form what fields it has.\r\n this.orderStep1Form = this.fb.group({\r\n orderName: ['', { validators: [Validators.required] }],\r\n serviceCategory: ['', this.showOrderType ? Validators.required : null],\r\n deliveryPriority: ['', { validators: [Validators.required] }],\r\n serviceTypeId: ['', { validators: [Validators.required] }],\r\n drpOrderOwners: [''],\r\n drpOrderRecipients: [''],\r\n serviceGroup: ['', { validators: [Validators.required] }],\r\n });\r\n\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n // Get data from the resolver and populate various dropdownlists\r\n this.loadData();\r\n\r\n // This list changes based on order type\r\n if (this.order) {\r\n //For existing orders, once the service group is saved to the db, we need to pass the service group to the service type lov\r\n this.populateServiceTypesLOV(this.order.serviceCategory, this.order.serviceGroup);\r\n if (this.orderAdmin && this.canOrderAdmin) {\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.orderAdmin.showIngestFile(true);\r\n } else {\r\n this.orderAdmin.showIngestFile(false);\r\n }\r\n }\r\n }\r\n\r\n this.checkOrderType();\r\n this.populateServiceGroupLOV();\r\n // Order Owner list and Order Recipient list\r\n this.populateEmployeeLists();\r\n\r\n // Populate form controls with the order data\r\n this.populateFormControls();\r\n\r\n // There's a weird timing problem where I can't get this to load\r\n // normally, so we have to wait till now to force the data to load\r\n if (this.orderSummary) {\r\n this.orderSummary.loadData();\r\n }\r\n\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n\r\n this.isServiceTypeEnabled = this.isServiceCategorySelected && this.canEdit;\r\n this.isDeliveryPriorityEnabled = this.isServiceTypeSelected && this.canEdit;\r\n });\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Load data\r\n // ------------------------------------------------------------\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n // and main order fields and store it in class state.\r\n loadData(): void {\r\n // Get data from resolver used in routing module\r\n const orderDataResolved = this.activatedRoute.snapshot.data['orderDataResolved'];\r\n if (orderDataResolved.error) {\r\n this.toastr.error(orderDataResolved.error);\r\n } else {\r\n if (orderDataResolved) {\r\n // OrderResolver returns a fixed array of data.\r\n\r\n // Employees of this company\r\n if (!orderDataResolved[0]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get list of employees in company', false);\r\n }\r\n this.allEmployeesInCompany = orderDataResolved[0];\r\n\r\n // Reference lists\r\n if (!orderDataResolved[1]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get reference data (service type)', false);\r\n }\r\n this.serviceCategoryToServiceTypeAssoc = orderDataResolved[1];\r\n\r\n if (!orderDataResolved[2]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get reference data (priority)', false);\r\n }\r\n this.serviceTypeToDeliveryPriorityAssoc = orderDataResolved[2];\r\n\r\n // Main order\r\n if (!orderDataResolved[3] && this.orderRevisionId) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order', false);\r\n }\r\n\r\n let orderApiResult: IApiTypedResult = orderDataResolved[3];\r\n if (orderApiResult) {\r\n if (orderApiResult.isSuccess) {\r\n this.order = orderApiResult.data;\r\n // Special case - if order owner contains a record that is not present, display warning on UI\r\n this.inactiveOrderOwnersList = this.orderService.GetInactiveOrderUsers(this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n // If order email recipient contains a record that is not present, display warning on UI\r\n this.inactiveOrderEmailRecipientList = this.orderService.GetInactiveOrderUsers(this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT);;\r\n\r\n // Remember original values for certain fields\r\n this.beforeOrderStatus = this.order.orderStatus;\r\n this.beforeConfirmedDate = this.order.confirmedDueDate;\r\n\r\n // Only user with \"SSDP.CanUpateOrder\" permission can edit an order if the order status is \"Order Delivered - Awaiting Approval\" or \"completed\"\r\n if (!this.canOrderAdmin && (this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n || this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_COMPLETE)) {\r\n this.canEdit = false;\r\n }\r\n\r\n // Don't allow canOrderAdmin if draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // If still canOrderAdmin, recaption save\r\n if (this.canOrderAdmin) {\r\n this.saveButtonCaption = 'Update Order';\r\n }\r\n\r\n // Non-admin users can cancel pending or inprocess if they have the perm\r\n if (!this.canOrderAdmin\r\n && ([this.orderService.ORDER_STATUS_PENDING, this.orderService.ORDER_STATUS_IN_PROCESS].indexOf(this.order.orderStatus) > -1)\r\n && this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_CANCEL_ORDER)) {\r\n this.canRequestCancellation = true;\r\n }\r\n\r\n // Pull out the deliveryDoc and sourceDocs separately\r\n // order.sourceDocuments is an array mixed with both deliveryDoc and SourceDocs.\r\n if (this.order && this.order.sourceDocuments) {\r\n this.deliveryDoc = null;\r\n let deliveryDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n if (deliveryDocs && deliveryDocs.length > 0) {\r\n this.deliveryDoc = deliveryDocs[0];\r\n }\r\n // Step 1 - no sourceDocs\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, orderApiResult, 'Failed to load order', false);\r\n }\r\n }\r\n\r\n if (!orderDataResolved[5]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order statuses', false);\r\n }\r\n this.orderStatuses = orderDataResolved[5];\r\n }\r\n }\r\n } // end loadData\r\n\r\n // ------------------------------------------------------------\r\n // Populate form controls\r\n // ------------------------------------------------------------\r\n\r\n // Populate pulldown list of serviceType based on serviceCategory.\r\n populateServiceTypesLOV(serviceCategory: string, serviceGroup: string): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.serviceTypesLOV = [];\r\n\r\n // If all data present,\r\n // return a list of ILLGenericKeys filtered\r\n // from the list of IBusinessOperationQualifier by parentCode===serviceCategory\r\n if (this.serviceCategoryToServiceTypeAssoc) {\r\n this.serviceTypesLOV = this.serviceCategoryToServiceTypeAssoc\r\n .filter(x => {\r\n const matchesParentFilter = x.parentTermListName === serviceGroup;\r\n const matchesServiceType = x.childTermListName === 'Service Type';\r\n const matchesServiceCategory = serviceCategory ? x.parentTermValueName === serviceCategory : true;\r\n return matchesParentFilter && matchesServiceType && matchesServiceCategory;\r\n })\r\n .map(x =>\r\n new class implements ILLGenericKeys {\r\n code = x.childTermValueCode;\r\n label = x.childTermValueName;\r\n id = null;\r\n name = null;\r\n relatedKeyLabels = x.parentTermListName;\r\n relatedKeys = null;\r\n });\r\n }\r\n }\r\n\r\n // Populate pulldown list of serviceType based on serviceCategory.\r\n populateServiceGroupLOV(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.serviceGroupsLOV = [];\r\n\r\n // If all data present,\r\n // return a list of strings filtered\r\n if (this.serviceCategoryToServiceTypeAssoc) {\r\n this.serviceGroupsLOV = this.serviceCategoryToServiceTypeAssoc\r\n .map(x => x.parentTermListName)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .sort((a, b) => a.localeCompare(b));\r\n }\r\n\r\n if(this.order)\r\n {\r\n this.orderStep1Form.controls.serviceGroup.setValue(this.order.serviceGroup);\r\n }\r\n\r\n }\r\n\r\n onlyUnique(value, index, array) {\r\n return array.indexOf(value) === index;\r\n }\r\n\r\n // Populate list of employees in Order Owners and Order Recipients lists\r\n populateEmployeeLists(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n if (this.allEmployeesInCompany) {\r\n // Reformat from user objects list to pulldown list of ILLGenericKeys\r\n this.orderOwnersLOV = this.allEmployeesInCompany\r\n .map(emp => new class implements ILLGenericKeys {\r\n code = emp.userGuid;\r\n label = emp.firstName + ' ' + emp.lastName;\r\n id = null;\r\n name = null;\r\n relatedKeyLabels = null;\r\n relatedKeys = null;\r\n });\r\n // Sort by name\r\n this.orderOwnersLOV.sort((a, b) => a.label.localeCompare(b.label));\r\n // Copy same employees to email list (for Object to \"any\" to use newer .assign method without VS warning\r\n this.orderRecipientsLOV = this.orderOwnersLOV.map(x => (Object as any).assign({}, x));\r\n }\r\n }\r\n\r\n // Populate the order data\r\n populateFormControls(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.orderStep1Form.reset();\r\n\r\n if (this.orderRevisionId == null) {\r\n // New record, use defaults\r\n const userGuid = this.storageManagerService.read('userGuid');\r\n this.orderStep1Form.patchValue({\r\n serviceCategory: '',\r\n serviceTypeId: null,\r\n deliveryPriority: '',\r\n orderName: null,\r\n drpOrderOwners: [userGuid],\r\n drpOrderRecipients: [],\r\n serviceGroup: ''\r\n });\r\n } else {\r\n this.orderStep1Form.patchValue({\r\n serviceCategory: this.order ? this.order.serviceCategory : 0,\r\n serviceTypeId: this.getServiceTypeCode(),\r\n serviceGroup: this.order ? this.order.serviceGroup : null,\r\n deliveryPriority: this.order ? this.order.deliveryPriority : 0,\r\n orderName: this.order.orderName,\r\n // Feed a string array of userGuids to pulldown lists\r\n drpOrderOwners: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER),\r\n drpOrderRecipients: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT)\r\n });\r\n }\r\n\r\n // Track if certain controls are filled out because other controls' enabled state depend on them\r\n if (this.orderStep1Form.get('serviceCategory').value) {\r\n this.isServiceCategorySelected = true;\r\n } else {\r\n this.isServiceCategorySelected = false;\r\n }\r\n if (this.orderStep1Form.get('serviceTypeId').value) {\r\n this.isServiceTypeSelected = true;\r\n } else {\r\n this.isServiceTypeSelected = false;\r\n }\r\n if(this.orderStep1Form.get('serviceGroup').value) {\r\n this.isServiceGroupSelected = true;\r\n }\r\n else {\r\n this.isServiceGroupSelected = false;\r\n }\r\n\r\n if (this.order) {\r\n this.updateDeliveryPrioritiesVisibility(this.getServiceTypeCode());\r\n }\r\n }\r\n\r\n getServiceTypeCode(): string {\r\n // Okay so the main order object has this sub-object\r\n // order.splService {\r\n // id: \"\",\r\n // label: \"\",\r\n // code: \"\",\r\n // relatedKeys: [],\r\n // relatedKeyLabels: \"\"\r\n // }\r\n //\r\n // So I assumed I would pull order.splService.code and find something like \"SPL-LL-AH-F\"\r\n // However after I load, I only get order.splService.label filled in,\r\n // which seems really a bad way, but I have to deal with it.\r\n // Eventually someone will probably fix the backend to supply \"code\",\r\n // so update the angular to handle that also.\r\n let code = null;\r\n if (this.order && this.order.splService) {\r\n // The preferred method, match by code, but not used as of 6/15/2020\r\n // Otherwise try to match by label.\r\n if (this.order.splService.code) {\r\n code = this.order.splService.code;\r\n } else if (this.order.splService.label) {\r\n // Force array to \"any\" to use newer \".find\" method without VS error\r\n const match = (this.serviceTypesLOV as any).find(x => x.label === this.order.splService.label);\r\n if (match) {\r\n code = match.code;\r\n }\r\n }\r\n }\r\n return code;\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Change Events\r\n // ------------------------------------------------------------\r\n\r\n // Track if an serviceCategory is selected\r\n serviceCategoryChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n const oldServiceCategory = this.orderStep1Form.controls.serviceCategory.value;\r\n const newServiceCategory = event.value;\r\n let isDeliveryPrioritySelected = false;\r\n if (this.orderStep1Form.controls && this.orderStep1Form.controls.deliveryPriority && this.orderStep1Form.controls.deliveryPriority.value) {\r\n isDeliveryPrioritySelected = true;\r\n }\r\n // If service category changes\r\n // blank out dependent fields service type and delivery priority.\r\n // But don't bother if serviceType and deliveryPriority are still blank.\r\n if ((this.isServiceTypeSelected || isDeliveryPrioritySelected)\r\n && oldServiceCategory\r\n && (oldServiceCategory !== newServiceCategory)) {\r\n // Confirm with user that we're blanking out dependent fields\r\n if (!confirm(`Are you sure you want to change the type of order? This change will blank out dependent values such as service type and delivery priority.`)) {\r\n setTimeout(() => {\r\n this.freezeChangeEventsTemporarily = true;\r\n this.orderStep1Form.patchValue({ serviceCategory: oldServiceCategory });\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n return;\r\n }\r\n\r\n // User does want to continue with the change\r\n this.orderStep1Form.patchValue({\r\n serviceTypeId: null,\r\n deliveryPriority: null\r\n });\r\n this.isServiceTypeSelected = false;\r\n\r\n this.isServiceCategorySelected = true;\r\n if (newServiceCategory) {\r\n var serviceGroup = this.orderStep1Form.controls.serviceGroup.value;\r\n this.populateServiceTypesLOV(newServiceCategory, serviceGroup);\r\n this.populateServiceGroupLOV();\r\n }\r\n\r\n this.updateDeliveryPrioritiesVisibility(null);\r\n } else {\r\n this.isServiceCategorySelected = true;\r\n if (newServiceCategory) {\r\n var serviceGroup = this.orderStep1Form.controls.serviceGroup.value;\r\n this.populateServiceTypesLOV(newServiceCategory, serviceGroup);\r\n }\r\n }\r\n\r\n if (this.orderAdmin) {\r\n if (newServiceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || newServiceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.orderAdmin.showIngestFile(true);\r\n } else {\r\n this.orderAdmin.showIngestFile(false);\r\n }\r\n }\r\n }\r\n\r\n isOrderTypeSelected(): boolean {\r\n return this.orderStep1Form.get('serviceCategory').value !== '';\r\n }\r\n\r\n // Track if a service type is selected\r\n serviceTypeChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.isServiceTypeSelected = false;\r\n if (event.itemData) {\r\n this.isServiceTypeSelected = true;\r\n const serviceCategory = this.orderStep1Form.controls.serviceCategory.value;\r\n const oldServiceType = this.orderStep1Form.controls.serviceTypeId.value;\r\n const newServiceType = event.value;\r\n let isDeliveryPrioritySelected = false;\r\n if (this.orderStep1Form.controls && this.orderStep1Form.controls.deliveryPriority && this.orderStep1Form.controls.deliveryPriority.value) {\r\n isDeliveryPrioritySelected = true;\r\n }\r\n\r\n // If delivery priority was already selected,\r\n // and we are changing service type,\r\n // confirm with user\r\n // that we're about to wipe it out\r\n if (isDeliveryPrioritySelected\r\n && oldServiceType\r\n && (oldServiceType !== newServiceType)) {\r\n\r\n this.freezeChangeEventsTemporarily = true;\r\n if (confirm(\r\n `Are you sure you want to change the serviceType? This change will blank out dependent values, namely the delivery priority.`)) {\r\n // User chose OK\r\n // Delivery priority depends on service type, so blank it out upon change\r\n this.orderStep1Form.patchValue({\r\n deliveryPriority: null\r\n });\r\n this.updateDeliveryPrioritiesVisibility(newServiceType);\r\n this.freezeChangeEventsTemporarily = false;\r\n } else {\r\n // User chose cancel\r\n // Undo selection\r\n setTimeout(() => {\r\n this.orderStep1Form.patchValue({ serviceTypeId: oldServiceType });\r\n this.isServiceTypeSelected = true;\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n }\r\n } else {\r\n // Don't need to confirm anything with user because dependent fields\r\n // are blank, go ahead and update delivery priorities visibility\r\n this.updateDeliveryPrioritiesVisibility(newServiceType);\r\n }\r\n }\r\n }\r\n\r\n // Track if a service Group is selected\r\n serviceGroupChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n const oldServiceGroup = this.orderStep1Form.controls.serviceGroup.value;\r\n\r\n if (this.order && event.itemData.value !== this.order.serviceGroup) {\r\n if (confirm(\r\n `Are you sure you want to change the service group? This change will blank out dependent values.`)) {\r\n // reset the whole order form\r\n this.orderStep1Form.reset();\r\n // Order Owner list and Order Recipient list\r\n this.populateEmployeeLists();\r\n\r\n if (this.order) {\r\n this.orderStep1Form.patchValue({\r\n serviceGroup: event.itemData.value,\r\n drpOrderOwners: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER),\r\n drpOrderRecipients: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT)\r\n });\r\n this.resetOrderData();\r\n } else {\r\n this.orderStep1Form.patchValue({\r\n serviceGroup: event.itemData.value,\r\n });\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.freezeChangeEventsTemporarily = true;\r\n this.orderStep1Form.patchValue({ serviceGroup: \"Composition Publishing (Publishing)\" });\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n return;\r\n }\r\n }\r\n\r\n if (event.itemData) {\r\n this.isServiceGroupSelected = true;\r\n if(this.order)\r\n this.order.serviceGroup = event.itemData.value;\r\n this.serviceTypesLOV = [];\r\n this.checkOrderType(event.itemData.value);\r\n if(!this.showOrderType) {\r\n this.orderStep1Form.controls.serviceCategory.setValue('');\r\n this.isServiceCategorySelected = true;\r\n this.populateServiceTypesLOV(null, event.itemData.value);\r\n this.serviceTypesLOV = this.serviceTypesLOV.filter(x => x.relatedKeyLabels === event.itemData.value);\r\n }\r\n this.updateDeliveryPrioritiesVisibility(null);\r\n }\r\n }\r\n\r\n resetOrderData() {\r\n this.order.baselineOrderId = null;\r\n this.order.deliveryPriority = null;\r\n this.order.splService = new ILLGenericKeys();\r\n this.order.orderStatus = null;\r\n this.order.actualDeliveryDate = null;\r\n this.order.confirmedDueDate = null;\r\n this.order.productName = null;\r\n this.order.dataCollectionForm = null;\r\n this.order.additionalInformation = null;\r\n this.order.acctMgrInstructions = null;\r\n this.order.sourceDocuments = [];\r\n this.order.comments = null;\r\n this.order.commentsChangeUser = null;\r\n this.order.commentsChangeDate = null;\r\n this.order.orderComments = [];\r\n this.order.orderName = null;\r\n this.order.colOrDrugFactChangeInstruction = null;\r\n this.order.principalDisplayPanelChangeInstruction = null;\r\n this.order.LLMetadataChangeInstruction = null;\r\n this.order.orderDescription = null;\r\n this.order.serviceCategory = null;\r\n this.order.serviceGroup = null;\r\n }\r\n\r\n\r\n checkOrderType(serviceGroup: string = null) {\r\n if (serviceGroup) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(serviceGroup);\r\n }\r\n else if (this.orderStep1Form.controls.serviceGroup.value) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.orderStep1Form.controls.serviceGroup.value);\r\n } else if (this.order?.serviceGroup) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.order.serviceGroup);\r\n } else {\r\n this.showOrderType = true;\r\n }\r\n }\r\n\r\n isDeliveryPrioritySelected(): boolean {\r\n return this.orderStep1Form.get('deliveryPriority').value !== '';\r\n }\r\n\r\n // Hide certain delivery priorities based on certain service catgories and service types\r\n updateDeliveryPrioritiesVisibility(serviceType: string) {\r\n // Start by showing all delivery priorities\r\n this.hasRegularPriority = true;\r\n this.hasExpeditedPriority = true;\r\n this.hasEmergencyPriority = true;\r\n\r\n // use ref data to determine all delivery priorities.\r\n if (serviceType) {\r\n\r\n let currentDeliveryPriority = null;\r\n if (this.orderStep1Form.controls && this.orderStep1Form.controls.deliveryPriority && this.orderStep1Form.controls.deliveryPriority.value) {\r\n currentDeliveryPriority = this.orderStep1Form.controls.deliveryPriority.value;\r\n }\r\n\r\n // If REGULAR priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_REGULAR)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_REGULAR) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.orderStep1Form.patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasRegularPriority = false;\r\n }\r\n\r\n // If EXPEDITED priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_EXPEDITED)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_EXPEDITED) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.orderStep1Form.patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasExpeditedPriority = false;\r\n }\r\n\r\n // If EMERGENCY priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_EMERGENCY)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_EMERGENCY) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.orderStep1Form.patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasEmergencyPriority = false;\r\n }\r\n }\r\n }\r\n\r\n onIngestFilechanged(event: boolean) {\r\n this.ingestFileValue = event;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Order admin is a subcomponent, and emits up certain events\r\n // usually about the delivery doc\r\n // ------------------------------------------------------------\r\n onOrderAdminFileUpload(event) {\r\n if (event === 'success') {\r\n // Successfully uploaded delivery doc\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveData();\r\n } else if (event === 'failure') {\r\n // Attempted to upload delivery doc but failed\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n this.toastr.error('Unexpected error uploading delivery document');\r\n } else if (event === 'deleteExistingDeliveryDoc') {\r\n // Request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = true;\r\n this.deliveryDoc.isDeleted = true;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'undeleteExistingDeliveryDoc') {\r\n // Undo request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = false;\r\n this.deliveryDoc.isDeleted = false;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'onIngestFileChange') {\r\n\r\n if (this.deliveryDoc) {\r\n this.deliveryDoc.ingestFile = this.ingestFileValue;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Save data\r\n // ------------------------------------------------------------\r\n saveData(nextPage: string) {\r\n // Special case - \"Submit Order\" has additional validation rules.\r\n // They apply for fields that are on step 3.\r\n // Keep this code on all pages for consistency.\r\n if (nextPage === 'SUBMIT') {\r\n // doesn't apply to step 1\r\n // ignore this\r\n }\r\n\r\n this.pageState = this.orderService.PAGE_STATE_SAVING;\r\n\r\n // Clear out data from prior save\r\n this.postSaveDataMessage = null;\r\n this.postSaveDataNewOrderRevisionId = null;\r\n this.postSaveDataRedirectUrl = null;\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n\r\n // Where to go after save\r\n let nextPageUrl = '';\r\n switch (nextPage) {\r\n case 'STEP2':\r\n nextPageUrl = '/order-step-2';\r\n break;\r\n default:\r\n nextPageUrl = '/order-step-1';\r\n break;\r\n }\r\n\r\n this.errorMessage = '';\r\n\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n // Request order cancellation is different enough let's handle it separately.\r\n if (nextPage === 'CANCEL') {\r\n this.orderService.requestOrderCancellation(this.canRequestCancellation, this.order, modifiedByUser, '/order-step-1', false);\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else {\r\n let dirty = this.orderService.isAngularFormDirty(this.orderStep1Form);\r\n // Also check fields in order admin box\r\n if (this.canOrderAdmin && this.orderAdmin.orderAdminForm) {\r\n dirty = dirty || this.orderService.isAngularFormDirty(this.orderAdmin.orderAdminForm);\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.orderStep1Form.invalid) {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('Data is invalid.');\r\n return;\r\n } else {\r\n // Only save if dirty\r\n if (dirty && (this.canEdit || this.orderAdmin)) {\r\n if (!this.order) {\r\n // New record\r\n this.order = new Order();\r\n this.order.orderStatus = this.orderService.ORDER_STATUS_DRAFT;\r\n // Accept optional query string param for dataCollectionForm\r\n let dataCollectionForm = this.activatedRoute.snapshot.queryParamMap.get('llRevisionId');\r\n if (dataCollectionForm) {\r\n this.order.dataCollectionForm = parseInt(dataCollectionForm);\r\n }\r\n }\r\n\r\n // Put back in prior values for certain fields\r\n this.order.beforeOrderStatus = this.beforeOrderStatus;\r\n this.order.beforeConfirmedDate = this.beforeConfirmedDate;\r\n\r\n // Before we save any data, check if there are files waiting to be uploaded\r\n let sourceDocsWaitingToBeUploaded = false;\r\n // no source docs on step 1\r\n let deliveryDocsWaitingToBeUploaded = false;\r\n if (this.canOrderAdmin && this.orderAdmin.adminFileUpload && this.orderAdmin.adminFileUpload.getFilesData() && this.orderAdmin.adminFileUpload.getFilesData().length > 0) {\r\n deliveryDocsWaitingToBeUploaded = true;\r\n }\r\n\r\n // Save the order attributes first\r\n this.order.serviceCategory = this.f.serviceCategory.value;\r\n this.order.serviceGroup = this.f.serviceGroup.value;\r\n this.order.splService = this.getServiceTypeObj(this.f.serviceTypeId.value);\r\n this.order.deliveryPriority = this.f.deliveryPriority.value;\r\n this.order.orderName = this.f.orderName.value;\r\n\r\n const orderOwners: OrderUser[] = this.orderService.userGuidsToOrderUsers(\r\n this.allEmployeesInCompany, this.f.drpOrderOwners.value, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n const orderRecipients: OrderUser[] = this.orderService.userGuidsToOrderUsers(\r\n this.allEmployeesInCompany, this.f.drpOrderRecipients.value, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT);\r\n this.order.orderUsers = orderOwners.concat(orderRecipients);\r\n\r\n // Save the admin fields if we're allowed\r\n if (this.order && this.canOrderAdmin) {\r\n this.order.orderStatus = this.orderAdmin.orderAdminForm.controls.orderStatus.value;\r\n if (this.orderAdmin.orderAdminForm.controls.confirmedDueDate.value) {\r\n let confirmedDueDate: any = new Date(this.orderAdmin.orderAdminForm.controls.confirmedDueDate.value).toDateString();\r\n this.order.confirmedDueDate = confirmedDueDate;\r\n }\r\n\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // DeliveryDoc supplied, mark the actual delivery date\r\n let actualDeliveryDate: any = new Date().toDateString();\r\n this.order.actualDeliveryDate = actualDeliveryDate;\r\n } else if (this.deliveryDoc && this.deliveryDoc.isDeleted) {\r\n // DeliveryDoc was requested to be deleted, blank\r\n // out actual delivery date\r\n this.order.actualDeliveryDate = null;\r\n }\r\n }\r\n\r\n // Save to database\r\n this.orderService.saveOrder(this.order, modifiedByUser).subscribe((response) => {\r\n // Coerce to specific type\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n // Gather up settings so after async upload finishes we know where to go\r\n this.postSaveDataMessage = responseTyped.message;\r\n this.postSaveDataNewOrderRevisionId = responseTyped.data.orderRevisionId;\r\n this.postSaveDataRedirectUrl = `${nextPageUrl}/${this.postSaveDataNewOrderRevisionId}`;\r\n\r\n if (nextPage === 'SUBMIT') {\r\n // Step 1 doesn't have submit, but steps 1, 2, 3 save methods\r\n // are so complex, it makes my life easier to keep the same structure\r\n // across all\r\n this.toastr.error('invalid submit');\r\n return;\r\n } else {\r\n // Regular save of Order object successful, now do optional file uploads.\r\n //\r\n // We just set the property on this component postSavedatNewOrderRevisionId\r\n // which is shared with the child component OrderAdminComponent,\r\n // sounds great BUT angular timing messes it up. The child component\r\n // can't see the value immediately. The child component can't do setTimeout\r\n // because the upload is already in progress. So, we make the parent setTimeout\r\n // (sleep) right now so angular child component catches up with bound value for\r\n // and can save the uploaded doc to correct postSavedatNewOrderRevisionId\r\n setTimeout(() => {\r\n\r\n // Now that the order is saved, upload docs to *new* OrderRevisionId from\r\n // potentially sourceDocs and delivery (inside child component)\r\n if (!sourceDocsWaitingToBeUploaded && !deliveryDocsWaitingToBeUploaded) {\r\n // No files to upload, we're done.\r\n this.postSaveData();\r\n } else {\r\n // no sourceDoc files from this page\r\n // Asynchronously upload delivery file from admin child componet\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // upload the files\r\n this.postSaveWaitingForDeliveryUpload = true;\r\n this.orderAdmin.adminFileUpload.upload(this.orderAdmin.adminFileUpload.getFilesData()); // this is async\r\n }\r\n // Nothing left for now, wait for events to get triggered.\r\n return;\r\n }\r\n }, 100);\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, responseTyped, 'Order save failed', true)\r\n }\r\n },\r\n error => this.orderService.handleOrderError(this, error, 'Order save failed', true)\r\n );\r\n this.orderStep1Form.markAsPristine();\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // if no changes to save, but user wants to go to next page, that's fine\r\n if (nextPage === 'STEP2') {\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([`${nextPageUrl}/${this.orderRevisionId}`]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n });\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('No changes to save.');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Helper function for dealing with angular interaction\r\n // between order types and service types and underlying reference data\r\n getServiceTypeObj(serviceTypeId: string): ILLGenericKeys {\r\n const matches = this.serviceTypesLOV.filter(x => x.code === serviceTypeId);\r\n if (matches) {\r\n // Huh? If these values are null during save I get an error 'source required'\r\n // Set them this way and it works. I don't know why.\r\n matches[0].relatedKeys = [];\r\n matches[0].relatedKeyLabels = '';\r\n return matches[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n // After order is saved AND all files are uploaded via order admin\r\n // and Step 2 file uploader (not easy because they are all async)\r\n // then go ahead and give a message and redirect.\r\n // Only step 2 has dual file uploaders - source & delivery,\r\n // but for consistency I'm copy/pasting this function across\r\n // all three steps.\r\n postSaveData() {\r\n // Are we still waiting for sourceDoc upload or delivery upload?\r\n if (this.postSaveWaitingForSourceDocUpload || this.postSaveWaitingForDeliveryUpload) {\r\n // Yup, keep waiting.\r\n return;\r\n }\r\n\r\n this.toastr.success(this.postSaveDataMessage);\r\n\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([this.postSaveDataRedirectUrl]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // Clear out admin file upload control if relevant\r\n if (this.orderAdmin && this.orderAdmin.adminFileUpload) {\r\n this.orderAdmin.adminFileUpload.clearAll();\r\n }\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n\r\n ddwChanged(event) {\r\n if (event.isInteracted) {\r\n this.orderStep1Form.markAsDirty();\r\n }\r\n }\r\n // ------------------------------------------------------------\r\n // Misc\r\n // ------------------------------------------------------------\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.orderStep1Form.controls; }\r\n\r\n // ------------------------------------------------------------\r\n // Destroy\r\n // ------------------------------------------------------------\r\n ngOnDestroy(): void {\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n

Edit Order

\r\n

Add Order

\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n 1 ORDER TYPE\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n 2 ADDITIONAL OPTIONS\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n 3 PLACE ORDER\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Back to list\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{errorMessage}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n\r\n

 

\r\n\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ActionCompleteEventArgs } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { GridComponent, PageSettingsModel, RowDeselectEventArgs, RowSelectEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { DialogComponent, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { SelectedEventArgs, UploaderComponent, UploadingEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IApiTypedResult, IBusinessOperationQualifier, ILLGenericKeys, ITermByIndustryUsageAndCategory, Order, User } from '../../shared/models/index';\r\nimport { Media } from '../../shared/models/media.model';\r\nimport { AuthenticationService, AuthorizationService, OrderService, StorageManagerService } from '../../shared/services/index';\r\nimport { LLFormService } from '../../shared/services/ll-form.service';\r\nimport { SettingsService } from '../../shared/services/settings.service';\r\nimport { OrderAdminComponent } from '../order-admin/order-admin.component';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Subscription } from 'rxjs';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'order-step-2',\r\n templateUrl: './order-step-2.component.html',\r\n styleUrls: ['./order-step-2.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class OrderStep2Component implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n // Primary key\r\n orderRevisionId: number;\r\n // Object model for Order\r\n order: Order;\r\n // Hold on to original values for these fields for saving later\r\n beforeOrderStatus: string;\r\n beforeConfirmedDate: Date;\r\n // Angular form that contains controls\r\n orderStep2Form: UntypedFormGroup;\r\n\r\n // Reference data list\r\n serviceCategoryToServiceTypeAssoc: IBusinessOperationQualifier[];\r\n // Full list of all service categories\r\n serviceCategories: ILLGenericKeys[];\r\n // Should we show description box\r\n showOrderDescription = true;\r\n\r\n // List of all employees in company\r\n allEmployeesInCompany: User[] = null;\r\n\r\n // Save button caption\r\n saveButtonCaption = 'Save as Draft';\r\n\r\n // LL Form grid\r\n showLlForm = true;\r\n @ViewChild('llFormGrid') public llFormGrid: GridComponent;\r\n @Input() llFormGridData: any[];\r\n llFormInitialPage: PageSettingsModel;\r\n llFormSortOptions: Object;\r\n llFormToolbarOptions: Object;\r\n llFormRecordCount: number;\r\n llFormGridSelectionOptions: object;\r\n // Summary table for selected LL form grid row\r\n llFormGridSelectedRowData: any = null;\r\n gridFormatOptions: object;\r\n\r\n // Baseline SPL grid\r\n @ViewChild('baselineSplGrid') public baselineSplGrid: GridComponent;\r\n @Input() baselineSplGridData: any[];\r\n baselineSplInitialPage: PageSettingsModel;\r\n baselineSplSortOptions: Object;\r\n baselineSplToolbarOptions: Object;\r\n baselineSplRecordCount: number;\r\n baselineSplLoading = true;\r\n baselineSplSearchForm: UntypedFormGroup;\r\n baselineSplSelectionOptions: object;\r\n // ID of record currently selected in grid\r\n baselineSplGridSelectedId: number;\r\n // When loading an order, first the llFormGrid gets populated,\r\n // then usually a row gets selected, then that triggers\r\n // baselineSplGrid to call an API to get data, then\r\n // bind that data to the grid. Only after that can\r\n // we select the correct row of the baselineSplGrid\r\n // based on what's in the order object.\r\n // That's outside the normal ngInit and load process,\r\n // so set a flag and each time the baselineSplGrid\r\n // load is finished, check to see if it's the first time,\r\n // if so select the correct row.\r\n wasFirstTimeBaselineSplGridSelectionDone: boolean;\r\n bIsSelectedLLFormActive = true;\r\n\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n // Angular object\r\n @ViewChild('fileUpload')\r\n public fileUpload: UploaderComponent;\r\n // Tells uploader what URL to post files to (gets set programmatically later)\r\n fileUploadAsyncSettings: any = null;\r\n // Pointer to drop element\r\n dropElement: HTMLElement = null;\r\n // Valid extensions to upload\r\n validFileExtensionsStr: string;\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Order admin box\r\n // ------------------------------------------------------------\r\n @ViewChild('orderAdminComponent')\r\n orderAdmin: OrderAdminComponent;\r\n\r\n // Delivery doc associated with this order\r\n // (not the source docs)\r\n deliveryDoc: Media = null;\r\n\r\n // If user deletes an existing delivery doc,\r\n // there's no angular form changes, but we need to force\r\n // a page reload.\r\n deliveryDocStatusChange: boolean;\r\n\r\n // Source docs\r\n sourceDocs: Media[] = null;\r\n\r\n orderStatuses: ITermByIndustryUsageAndCategory[] = null;\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Page state\r\n // ------------------------------------------------------------\r\n // Are we currently loading or saving?\r\n pageState: string = null;\r\n // Can the current user edit the current order?\r\n canEdit: boolean;\r\n // Does the current user have admin order (RT employee) permissions\r\n canOrderAdmin: boolean;\r\n // Can user request cancellation?\r\n canRequestCancellation: boolean;\r\n // Error message to display on bottom of screen.\r\n errorMessage = '';\r\n fileMinSize: number;\r\n fileMaxSize: number;\r\n\r\n // ------------------------------------------------------------\r\n // Post save settings\r\n // ------------------------------------------------------------\r\n // Save the order object, when finished then optionally finish a deliverDoc\r\n // upload. There's a lot of async steps, so put information about\r\n // saving orders and docs into class variables that can be set\r\n // in saveData and accessed in postSaveData to tie everything together.\r\n\r\n // Message from server about saving the order\r\n postSaveDataMessage: string;\r\n // URL to go to after save is finished. Note we need the\r\n // new OrderRevisionId of the newly saved order revision\r\n // to generate this URL (usually).\r\n postSaveDataRedirectUrl: string;\r\n // OrderRevisionId from after we save order changes (but we haven't uploaded files yet so we need this stored)\r\n postSaveDataNewOrderRevisionId: number;\r\n // Track if source docs are finished uploading after order save\r\n postSaveWaitingForSourceDocUpload: boolean;\r\n // Track if delivery docs are finished uploading after order save\r\n postSaveWaitingForDeliveryUpload: boolean;\r\n\r\n @ViewChild('tooltipDC')\r\n public tooltipDC: TooltipComponent;\r\n\r\n @ViewChild('tooltipSPL')\r\n public tooltipSPL: TooltipComponent;\r\n\r\n // Data Collection Form Selection\r\n @ViewChild('confirmDialog') public confirmDialog: DialogComponent;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n position: object = { X: 'center', Y: 'center' };\r\n\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n sub: Subscription;\r\n ingestFileValue: boolean;\r\n\r\n constructor(private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private authenticationService: AuthenticationService,\r\n private authorizationService: AuthorizationService,\r\n public orderService: OrderService,\r\n private storageManagerService: StorageManagerService,\r\n private llService: LLFormService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private utilService: Utilities,\r\n private cdRef: ChangeDetectorRef,\r\n private settingsService: SettingsService,\r\n private sanitizer: DomSanitizer) { }\r\n toHtml(input): any {\r\n return input ? new DOMParser().parseFromString(input, 'text/html').documentElement.textContent : '';\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Initialize\r\n // ------------------------------------------------------------\r\n\r\n ngOnInit(): void {\r\n this.pageState = this.orderService.PAGE_STATE_LOADING;\r\n\r\n // Users can't change companies in the middle of viewing/editing an order\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n // Force some permissions off in case of ng routing doesn't do a full refresh\r\n this.order = null;\r\n this.canEdit = false;\r\n this.canOrderAdmin = false;\r\n this.canRequestCancellation = false;\r\n this.deliveryDoc = null;\r\n this.deliveryDocStatusChange = false;\r\n this.sourceDocs = null;\r\n this.baselineSplGridSelectedId = null;\r\n this.wasFirstTimeBaselineSplGridSelectionDone = false;\r\n\r\n // Extract primary key from query string\r\n this.orderRevisionId = this.orderService.getNumberOrNull(this.activatedRoute.snapshot.params.orderRevisionId);\r\n\r\n // The guard says you need read permission to get to this page.\r\n // User might also have edit permissions.\r\n this.canEdit = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n this.canOrderAdmin = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN);\r\n\r\n // Pull in file upload validation settings from appsettings.json\r\n const settings = this.settingsService.getSettings();\r\n this.validFileExtensionsStr = settings.ValidFileExtensions;\r\n this.fileMinSize = settings.FileMinSize;\r\n this.fileMaxSize = settings.FileMaxSize;\r\n\r\n // Tell angular form what fields it has.\r\n this.orderStep2Form = this.fb.group({\r\n externalTrackingNumber: [''],\r\n orderDescription: [''],\r\n llFormGrid: [''],\r\n baselineSplGrid: [''],\r\n fileUpload: ['']\r\n });\r\n\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n // Get order data from the resolver and populate angular objects\r\n this.loadData();\r\n\r\n // Display settings for grids\r\n this.llFormToolbarOptions = ['Search'];\r\n this.llFormInitialPage = { currentPage: 1, pageSize: 10, pageSizes: [10, 25, 50, 75, 100, 'All'] };\r\n this.llFormGridSelectionOptions = { type: 'Single' };\r\n\r\n this.baselineSplInitialPage = { currentPage: 1, pageSize: 10, pageSizes: [10, 25, 50, 75, 100, 'All'] };\r\n this.baselineSplSelectionOptions = { type: 'Single' };\r\n\r\n this.gridFormatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n // Hide grids if not service category Full or Partial\r\n this.showLlForm = [this.orderService.SERVICE_GROUP_ESG, this.orderService.SERVICE_GROUP_ER, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_LABEL_CONVERSION].includes(this.order.serviceGroup);\r\n // Show order description if service category is LDR, Report, or Publishing\r\n this.showOrderDescription = [this.orderService.SERVICE_GROUP_REPORT, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.order.serviceGroup);\r\n\r\n this.populateFormControls();\r\n\r\n this.fileUploadAsyncSettings = {\r\n saveUrl: this.orderService.getFileUploadUrl()\r\n };\r\n this.dropElement = document.getElementById('dropArea');\r\n\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n let currentGridId;\r\n\r\n let tooltip: TooltipComponent;\r\n\r\n currentGridId = args.event.currentTarget.firstChild.id;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n if (currentGridId) {\r\n switch (currentGridId) {\r\n case 'llFormGrid':\r\n grid = this.llFormGrid;\r\n tooltip = this.tooltipDC;\r\n break;\r\n case 'baselineSplGrid':\r\n grid = this.baselineSplGrid;\r\n tooltip = this.tooltipSPL;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n tooltip.cssClass = 'customTooltip';\r\n tooltip.content = this.toBrackets(rowData[(rowInfo.column as any).field]);\r\n }\r\n }\r\n }\r\n\r\n toBrackets(str) {\r\n const retVal = str.split('<').join('<')\r\n .split('>').join('>')\r\n .split('&').join('&');\r\n // .split(''').join(\"'\")\r\n // .split('"').join('\"')\r\n // .split(':').join(':')\r\n // .split('!').join('!')\r\n // .split('/').join('/')\r\n // .split('\').join('\\\\')\r\n // .split('|').join('|')\r\n // .split('?').join('?')\r\n // .split('*').join('*');\r\n\r\n return retVal;\r\n }\r\n\r\n ngAfterViewInit() {\r\n // After grid is populated with initial data, select row that\r\n // corresponds to object. Do it after ngOnInit so the grid\r\n // has time to populate.\r\n // Note: wrap this code in a setTimeout to avoid angular error \"expression was changed after it was checked\"\r\n // see https://blog.angular-university.io/angular-debugging/\r\n setTimeout(() => {\r\n\r\n // Bind drop area to ejs-uploader\r\n this.dropElement = document.getElementById('dropArea');\r\n\r\n if (this.order && this.order.dataCollectionForm && this.llFormGridData) {\r\n // First check if the current selected Data Collection form are associated with the latest LL Revision\r\n const currentDataCollectionForm = this.llFormGridData.filter(x => x.llRevisionId === this.order.dataCollectionForm);\r\n if (currentDataCollectionForm && currentDataCollectionForm.length > 0) {\r\n // Loop through all rows of grid data to find match, then force grid selected index\r\n for (let i = 0; i <= this.llFormGridData.length; i++) {\r\n if (this.llFormGridData[i]) {\r\n if (this.llFormGrid && (this.llFormGridData[i].llRevisionId === this.order.dataCollectionForm)) {\r\n this.llFormGrid.selectedRowIndex = i;\r\n this.llFormGridSelectedRowData = this.llFormGridData[i];\r\n break;\r\n }\r\n }\r\n }\r\n if (this.llFormGrid && this.llFormGrid.selectedRowIndex >= 0) {\r\n this.getBaselineSpls(this.llFormGridData[this.llFormGrid.selectedRowIndex].llRevisionId);\r\n }\r\n } else { // The selected dataCollectionFrom is associated with an older LL revisionID\r\n this.bIsSelectedLLFormActive = false;\r\n this.getLLByRevisionId(this.order.dataCollectionForm);\r\n }\r\n // We have to still populate the dependent baselineSpl grid.\r\n // However, when the load process selects a row from the llFormGrid,\r\n // that will trigger loading the baselineSpl grid data,\r\n // so just let it happen later.\r\n }\r\n\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n\r\n // Update grid selection permission\r\n if (this.llFormGrid) {\r\n this.llFormGrid.allowSelection = this.canEdit;\r\n }\r\n if (this.baselineSplGrid) {\r\n this.baselineSplGrid.allowSelection = this.canEdit;\r\n }\r\n });\r\n\r\n if (this.order && this.orderAdmin) {\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.orderAdmin.showIngestFile(true);\r\n } else {\r\n this.orderAdmin.showIngestFile(false);\r\n }\r\n }\r\n\r\n (this.fileUpload as any).isForm = false;\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Load data\r\n // ------------------------------------------------------------\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n // and main order fields and store it in class state.\r\n loadData(): void {\r\n // Get data from resolver used in routing module\r\n const orderDataResolved = this.activatedRoute.snapshot.data['orderDataResolved'];\r\n if (orderDataResolved.error) {\r\n this.toastr.error(orderDataResolved.error);\r\n } else {\r\n if (orderDataResolved) {\r\n // OrderResolver returns a fixed array of data.\r\n\r\n // Employees of this company\r\n if (!orderDataResolved[0]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get list of employees in company', false);\r\n }\r\n this.allEmployeesInCompany = orderDataResolved[0];\r\n\r\n // Main order\r\n if (!orderDataResolved[3]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order', false);\r\n }\r\n\r\n let orderApiResult: IApiTypedResult = orderDataResolved[3];\r\n if (orderApiResult) {\r\n if (orderApiResult.isSuccess) {\r\n this.order = orderApiResult.data;\r\n // Remember original values for certain fields\r\n this.beforeOrderStatus = this.order.orderStatus;\r\n this.beforeConfirmedDate = this.order.confirmedDueDate;\r\n\r\n // Only user with \"SSDP.CanUpateOrder\" permission can edit an order if the order status is \"Order Delivered - Awaiting Approval\" or \"completed\"\r\n if (!this.canOrderAdmin && (this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n || this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_COMPLETE)) {\r\n this.canEdit = false;\r\n }\r\n\r\n // Don't allow canOrderAdmin if draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // If still canOrderAdmin, recaption save\r\n if (this.canOrderAdmin) {\r\n this.saveButtonCaption = 'Update Order';\r\n }\r\n\r\n // Non-admin users can cancel pending or inprocess if they have the perm\r\n if (!this.canOrderAdmin\r\n && ([this.orderService.ORDER_STATUS_PENDING, this.orderService.ORDER_STATUS_IN_PROCESS].indexOf(this.order.orderStatus) > -1)\r\n && this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_CANCEL_ORDER)) {\r\n this.canRequestCancellation = true;\r\n }\r\n\r\n // Pull out the deliveryDoc and sourceDocs separately\r\n // order.sourceDocuments is an array mixed with both deliveryDoc and SourceDocs.\r\n if (this.order && this.order.sourceDocuments) {\r\n this.deliveryDoc = null;\r\n let deliveryDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n if (deliveryDocs && deliveryDocs.length > 0) {\r\n this.deliveryDoc = deliveryDocs[0];\r\n }\r\n // Step 2 - sourceDocs\r\n (this.order.sourceDocuments as any).find(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n this.sourceDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC);\r\n\r\n // Special case - grab the list of files inside the order,\r\n // and add a property to each subrecord with index 0, 1, 2, ...\r\n // to make interaction with angular easier.\r\n if (this.sourceDocs) {\r\n for (let i = 0; i < this.sourceDocs.length; i++) {\r\n const myDoc: any = this.sourceDocs[i];\r\n myDoc.index = i;\r\n }\r\n }\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, orderApiResult, 'Failed to load order', false);\r\n }\r\n }\r\n\r\n if (!orderDataResolved[5]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order statuses', false);\r\n }\r\n this.orderStatuses = orderDataResolved[5];\r\n\r\n if (!orderDataResolved[6]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load service categories', false);\r\n }\r\n this.serviceCategories = orderDataResolved[6];\r\n }\r\n\r\n // Update LL forms array (take only active records)\r\n if (orderDataResolved[4]) {\r\n this.llFormGridData = orderDataResolved[4].data.filter(x => x.isDraftMode === false);\r\n }\r\n }\r\n }\r\n // end loadData\r\n\r\n\r\n\r\n // Baseline SPL grid is dependent on LL form grid\r\n // Everytime someone clicks on ll form grid, do a database lookup\r\n // to get corresponding baseline spls\r\n getBaselineSpls(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.baselineSplGridData = null;\r\n\r\n this.orderService.getBaselineSplData(llRevisionId).subscribe(data => {\r\n if (data && data['data'].length > 0) {\r\n this.baselineSplLoading = false;\r\n this.baselineSplGridData = data['data'];\r\n this.baselineSplRecordCount = this.baselineSplGridData.length;\r\n // See comments where this field is defined for explanation\r\n if (this.order && this.order.baselineWorkFlowOrderId) {\r\n if (!this.wasFirstTimeBaselineSplGridSelectionDone) {\r\n this.wasFirstTimeBaselineSplGridSelectionDone = true;\r\n // Loop through all rows of baseline Spl data to find match, then force grid selected index\r\n for (let i = 0; i <= this.baselineSplGridData.length; i++) {\r\n if (this.baselineSplGridData[i].workflowOrderId === this.order.baselineWorkFlowOrderId) {\r\n this.baselineSplGrid.selectedRowIndex = i;\r\n this.baselineSplGridSelectedId = this.baselineSplGridData[i].workflowOrderId;\r\n this.cdRef.detectChanges();\r\n break;\r\n }\r\n }\r\n\r\n // setTimeout(() => {\r\n // // Loop through all rows of baseline Spl data to find match, then force grid selected index\r\n // for (let i = 0; i <= this.baselineSplGridData.length; i++) {\r\n // if (this.baselineSplGridData[i].mediaRevisionId === this.order.completedSPL) {\r\n // this.baselineSplGrid.selectedRowIndex = i;\r\n // this.baselineSplGridSelectedId = this.baselineSplGridData[i].mediaRevisionId;\r\n // this.cdRef.detectChanges();\r\n // break;\r\n // }\r\n // }\r\n // }, 100);\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n this.baselineSplLoading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // Get LL form high leve detail by revision Id\r\n getLLByRevisionId(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.llService.getLLHighLevlInfoById(llRevisionId.toString()).subscribe(data => {\r\n if (data && data['data']) {\r\n this.llFormGridSelectedRowData = data['data'];\r\n this.getBaselineSpls(llRevisionId);\r\n }\r\n },\r\n error => {\r\n this.baselineSplLoading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Populate form controls\r\n // ------------------------------------------------------------\r\n\r\n // Populate the order data\r\n populateFormControls(): void {\r\n this.orderStep2Form.reset();\r\n this.orderStep2Form.patchValue({\r\n externalTrackingNumber: this.order.externalTrackingNumber,\r\n orderDescription: this.order.orderDescription,\r\n // Can't patch grids here, but you can set row index in AfterViewInit\r\n });\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Grids\r\n // ------------------------------------------------------------\r\n llFormGridRowSelected(args: RowSelectEventArgs) {\r\n if (args.isInteracted) {\r\n this.llFormGridSelectedRowData = null;\r\n this.bIsSelectedLLFormActive = true;\r\n const selectedRecords: any[] = this.llFormGrid.getSelectedRecords();\r\n if (selectedRecords && selectedRecords.length > 0) {\r\n this.llFormGridSelectedRowData = selectedRecords[0];\r\n this.getBaselineSpls(selectedRecords[0].llRevisionId);\r\n }\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n }\r\n\r\n llFormGridRowDeselected(args: RowDeselectEventArgs) {\r\n this.llFormGridSelectedRowData = null;\r\n this.orderStep2Form.controls.llFormGrid.markAsDirty();\r\n this.getBaselineSpls(null);\r\n if (args.isInteracted) {\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n }\r\n\r\n baselineSplGridRowSelected(args: RowSelectEventArgs) {\r\n this.baselineSplGridSelectedId = null;\r\n const selectedRecords: any[] = this.baselineSplGrid.getSelectedRecords();\r\n if (selectedRecords && selectedRecords.length > 0) {\r\n this.baselineSplGridSelectedId = selectedRecords[0].workflowOrderId;\r\n }\r\n if (args.isInteracted) {\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n }\r\n\r\n baselineSplGridRowDeselected(args: RowDeselectEventArgs) {\r\n this.baselineSplGridSelectedId = null;\r\n if (args.isInteracted) {\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'modifiedDate':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Display detail of a single LL form in a separate tab\r\n viewLLForm(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.router.navigate([])\r\n .then(result => {\r\n window.open(`/products/ll-form/${llRevisionId}`, '_blank');\r\n });\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Existing file list\r\n // ------------------------------------------------------------\r\n deleteExistingFile(index: number) {\r\n this.order.sourceDocuments[index].isDeleted = true;\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAllAsTouched();\r\n }\r\n\r\n undeleteExistingFile(index: number) {\r\n this.order.sourceDocuments[index].isDeleted = false;\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAllAsTouched();\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // File upload/download\r\n // ------------------------------------------------------------\r\n\r\n // Trigger a browse window\r\n browseClick() {\r\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click(); return false;\r\n }\r\n\r\n public onSelected: EmitType = (args: any) => {\r\n // Mark as dirty so we know user has to hit save button\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n\r\n // Upload sourceDoc file to order, validate settings\r\n public onUploading: EmitType = (args: any) => {\r\n this.orderService.uploadOrderDoc(args,\r\n this.order.orderId,\r\n this.postSaveDataNewOrderRevisionId,\r\n this,\r\n this.orderStep2Form,\r\n false,\r\n this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC);\r\n }\r\n\r\n // Successfully uploaded one sourceDoc file.\r\n public onSuccess: EmitType = (args: any) => {\r\n }\r\n\r\n // For sourceDocs\r\n // Called after *ALL* files or uploaded, or after one file has an error\r\n // (yeah that seems weird, we have to do lots of \"if\" statements to sort through that)\r\n public onActionComplete: EmitType = (args: any) => {\r\n let atLeastOneGoodUpload = false;\r\n if (args && args.fileData) {\r\n for (const myFileData of args.fileData) {\r\n if ((myFileData as any).statusCode === '2') {\r\n // Got at least one good upload\r\n atLeastOneGoodUpload = true;\r\n }\r\n }\r\n }\r\n\r\n if (atLeastOneGoodUpload) {\r\n // We got the files, stop waiting for them.\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n this.postSaveData();\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n }\r\n\r\n // upload failure for sourceDocs\r\n onUploadFailure(event) {\r\n this.toastr.error(`Error during upload. $event`);\r\n }\r\n\r\n // download sourceDoc\r\n downloadFile(filePath: string, fileName: string) {\r\n this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n this.orderService.postDownloadFile(response, fileName);\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n }\r\n\r\n onIngestFilechanged(event: boolean) {\r\n this.ingestFileValue = event;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Order admin is a subcomponent, and emits up certain events\r\n // usually about the delivery doc\r\n // ------------------------------------------------------------\r\n onOrderAdminFileUpload(event) {\r\n if (event === 'success') {\r\n // Successfully uploaded delivery doc\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveData();\r\n } else if (event === 'failure') {\r\n // Attempted to upload delivery doc but failed\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n this.toastr.error('Unexpected error uploading delivery document');\r\n } else if (event === 'deleteExistingDeliveryDoc') {\r\n // Request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = true;\r\n this.deliveryDoc.isDeleted = true;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'undeleteExistingDeliveryDoc') {\r\n // Undo request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = false;\r\n this.deliveryDoc.isDeleted = false;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'onIngestFileChange') {\r\n\r\n if (this.deliveryDoc) {\r\n this.deliveryDoc.ingestFile = this.ingestFileValue;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Save data\r\n // ------------------------------------------------------------\r\n saveData(nextPage: string) {\r\n this.pageState = this.orderService.PAGE_STATE_SAVING;\r\n\r\n // Clear out data from prior save\r\n this.postSaveDataMessage = null;\r\n this.postSaveDataNewOrderRevisionId = null;\r\n this.postSaveDataRedirectUrl = null;\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n\r\n // Where to go after save\r\n let nextPageUrl = '';\r\n switch (nextPage) {\r\n case 'STEP1':\r\n nextPageUrl = '/order-step-1';\r\n break;\r\n case 'STEP2':\r\n nextPageUrl = '/order-step-2';\r\n break;\r\n case 'STEP3':\r\n nextPageUrl = '/order-step-3';\r\n break;\r\n }\r\n\r\n this.errorMessage = '';\r\n\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n if (nextPage === 'CANCEL') {\r\n // Request order cancellation is different enough let's handle it separately.\r\n this.orderService.requestOrderCancellation(this.canRequestCancellation, this.order, modifiedByUser, '/order-step-2', false);\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else {\r\n let dirty = this.orderService.isAngularFormDirty(this.orderStep2Form);\r\n // Also check fields in order admin box\r\n if (this.canOrderAdmin && this.orderAdmin.orderAdminForm) {\r\n dirty = dirty || this.orderService.isAngularFormDirty(this.orderAdmin.orderAdminForm);\r\n }\r\n\r\n // If you can't edit, it can't be dirty.\r\n // Sometimes updating grid stuff during page load sets the dirty flag\r\n if (!this.canEdit && !this.canOrderAdmin) {\r\n dirty = false;\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.orderStep2Form.invalid) {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('Data is invalid.');\r\n return;\r\n } else {\r\n // Only save if dirty\r\n if (dirty && (this.canEdit || this.orderAdmin)) {\r\n // Put back in prior values for certain fields\r\n this.order.beforeOrderStatus = this.beforeOrderStatus;\r\n this.order.beforeConfirmedDate = this.beforeConfirmedDate;\r\n\r\n // Before we save any data, check if there are files waiting to be uploaded\r\n let sourceDocsWaitingToBeUploaded = false;\r\n if (this.fileUpload && this.fileUpload.getFilesData() && this.fileUpload.getFilesData().length) {\r\n sourceDocsWaitingToBeUploaded = true;\r\n }\r\n let deliveryDocsWaitingToBeUploaded = false;\r\n if (this.canOrderAdmin && this.orderAdmin.adminFileUpload && this.orderAdmin.adminFileUpload.getFilesData() && this.orderAdmin.adminFileUpload.getFilesData().length > 0) {\r\n deliveryDocsWaitingToBeUploaded = true;\r\n }\r\n\r\n // Save the order attributes first\r\n this.order.externalTrackingNumber = this.orderStep2Form.controls.externalTrackingNumber.value;\r\n this.order.orderDescription = this.orderStep2Form.controls.orderDescription.value;\r\n\r\n // Pull the ID of the selected LL Form grid\r\n this.order.dataCollectionForm = null;\r\n if (this.llFormGridSelectedRowData) {\r\n this.order.dataCollectionForm = this.llFormGridSelectedRowData.llRevisionId;\r\n }\r\n\r\n // Pull the ID of the baseline SPL\r\n this.order.baselineWorkFlowOrderId = null;\r\n if (this.baselineSplGridSelectedId) {\r\n this.order.baselineWorkFlowOrderId = this.baselineSplGridSelectedId;\r\n }\r\n\r\n // Save the admin fields if we're allowed\r\n if (this.order && this.canOrderAdmin) {\r\n this.order.orderStatus = this.orderAdmin.orderAdminForm.controls.orderStatus.value;\r\n this.order.confirmedDueDate = this.utilService.getLocalDateString(this.orderAdmin.orderAdminForm.controls.confirmedDueDate.value);\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // DeliveryDoc supplied, mark the actual delivery date\r\n this.order.actualDeliveryDate = this.utilService.getLocalDateString(new Date());\r\n } else if (this.deliveryDoc && this.deliveryDoc.isDeleted) {\r\n // DeliveryDoc was requested to be deleted, blank\r\n // out actual delivery date\r\n this.order.actualDeliveryDate = null;\r\n }\r\n }\r\n\r\n // Save to database\r\n this.orderService.saveOrder(this.order, modifiedByUser).subscribe((response) => {\r\n // Coerce to specific type\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n // Gather up settings so after async upload finishes we know where to go\r\n this.postSaveDataMessage = responseTyped.message;\r\n this.postSaveDataNewOrderRevisionId = responseTyped.data.orderRevisionId;\r\n this.postSaveDataRedirectUrl = `${nextPageUrl}/${this.postSaveDataNewOrderRevisionId}`;\r\n\r\n if (nextPage === 'SUBMIT') {\r\n // Step 2 doesn't have submit, but steps 1, 2, 3 save methods\r\n // are so complex, it makes my life easier to keep the same structure\r\n // across all\r\n this.toastr.error('invalid submit');\r\n return;\r\n } else {\r\n // Regular save of Order object successful, now do optional file uploads.\r\n //\r\n // We just set the property on this component postSavedatNewOrderRevisionId\r\n // which is shared with the child component OrderAdminComponent,\r\n // sounds great BUT angular timing messes it up. The child component\r\n // can't see the value immediately. The child component can't do setTimeout\r\n // because the upload is already in progress. So, we make the parent setTimeout\r\n // (sleep) right now so angular child component catches up with bound value for\r\n // and can save the uploaded doc to correct postSavedatNewOrderRevisionId\r\n setTimeout(() => {\r\n\r\n // Now that the order is saved, upload docs to *new* OrderRevisionId from\r\n // potentially sourceDocs and delivery (inside child component)\r\n if (!sourceDocsWaitingToBeUploaded && !deliveryDocsWaitingToBeUploaded) {\r\n // No files to upload, we're done.\r\n this.postSaveData();\r\n } else {\r\n // Upload sourceDoc files from this page\r\n if (sourceDocsWaitingToBeUploaded) {\r\n this.postSaveWaitingForSourceDocUpload = true;\r\n this.fileUpload.upload(this.fileUpload.getFilesData()); // this is async\r\n }\r\n // Asynchronously upload delivery file from admin child componet\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // upload the files\r\n this.postSaveWaitingForDeliveryUpload = true;\r\n this.orderAdmin.adminFileUpload.upload(this.orderAdmin.adminFileUpload.getFilesData()); // this is async\r\n }\r\n // Nothing left for now, wait for events to get triggered.\r\n return;\r\n }\r\n }, 100);\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, responseTyped, 'Order save failed', true);\r\n }\r\n },\r\n error => this.orderService.handleOrderError(this, error, 'Order save failed', true)\r\n );\r\n this.orderStep2Form.markAsPristine();\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // if no changes to save, but user wants to go to next page, that's fine\r\n if (nextPage !== 'STEP2') {\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([`${nextPageUrl}/${this.orderRevisionId}`]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n });\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('No changes to save.');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // After order is saved AND all files are uploaded via order admin\r\n // and Step 2 file uploader (not easy because they are all async)\r\n // then go ahead and give a message and redirect.\r\n // Only step 2 has dual file uploaders - source & delivery,\r\n // but for consistency I'm copy/pasting this function across\r\n // all three steps.\r\n postSaveData() {\r\n // Are we still waiting for sourceDoc upload or delivery upload?\r\n if (this.postSaveWaitingForSourceDocUpload || this.postSaveWaitingForDeliveryUpload) {\r\n // Yup, keep waiting.\r\n return;\r\n }\r\n\r\n this.toastr.success(this.postSaveDataMessage);\r\n\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([this.postSaveDataRedirectUrl]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // Force a full form reset to\r\n // make sure file upload control clears out.\r\n if (this.fileUpload) {\r\n this.fileUpload.clearAll();\r\n }\r\n // Clear out admin file upload control if relevant\r\n if (this.orderAdmin && this.orderAdmin.adminFileUpload) {\r\n this.orderAdmin.adminFileUpload.clearAll();\r\n }\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n\r\n confirmDlgButtonsBtnClickNo: EmitType = () => {\r\n this.confirmDialog.hide();\r\n }\r\n\r\n confirmDlgButtonsBtnClickYes: EmitType = () => {\r\n this.confirmDialog.hide();\r\n this.saveData('STEP3');\r\n }\r\n confirmDlgButtons: Object[] = [{ click: this.confirmDlgButtonsBtnClickNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.confirmDlgButtonsBtnClickYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n // If a Data Collection Form has not been selected for an Order of the following type then generate a warning message\r\n validateDataCollectionSelection() {\r\n if ((this.order.serviceCategory === \"Full Conversion\" || this.order.serviceCategory === \"Partial Conversion\") && !this.llFormGridSelectedRowData) {\r\n this.confirmDialog.show();\r\n } else {\r\n this.saveData('STEP3')\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Misc\r\n // ------------------------------------------------------------\r\n\r\n public onCreated() {\r\n if (this.fileUpload) {\r\n (this.fileUpload as any).isForm = false;\r\n }\r\n }\r\n\r\n public onRemove() {\r\n this.orderStep2Form.markAsDirty();\r\n this.orderStep2Form.markAsTouched();\r\n }\r\n\r\n // Add CORS headers - for file uploads\r\n public addCorsHeaders(args: any) {\r\n args.currentRequest.setRequestHeader('Access-Control-Allow-Origin', '*');\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.orderStep2Form.controls; }\r\n\r\n // ------------------------------------------------------------\r\n // Destroy\r\n // ------------------------------------------------------------\r\n ngOnDestroy(): void {\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n

Edit Order

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n 2 ADDITIONAL OPTIONS\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n

Optional tracking number

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n

Description

\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n

Select a data collection form

\r\n

Select one Labeling Listing form for this order.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n \r\n {{llFormGridData.formName}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{toHtml(data.proprietaryName)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n This form is either not the latest version or no longer exists. Please update.\r\n
\r\n You have selected:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Form NameProduct/Proprietary NameForm VersionNDC Package CodeLabeler
{{this.llFormGridSelectedRowData.formName}}{{toHtml(this.llFormGridSelectedRowData.proprietaryName)}}{{this.llFormGridSelectedRowData.formVersion}}{{this.llFormGridSelectedRowData.ndcPackageCode}}{{this.llFormGridSelectedRowData.labelerName}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Select baseline SPL conversion file

\r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n {{baselineSplGridData.workflowOrderId}}\r\n \r\n \r\n \r\n \r\n \r\n  \r\n {{baselineSplGridData.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Source Documentation

\r\n

Current Documents

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
File nameSizeUploaded byUploaded dateAction
No records found
\r\n  {{myDoc.title}}\r\n {{myDoc.size | number:'1.0':'en-US'}}{{myDoc.uploadedBy}}{{myDoc.uploadedDate | date:'M/d/yyyy h:mm:ss a'}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

New Documents

\r\n

\r\n To upload new source documentation,\r\n \r\n browse \r\n  \r\n for files or drag and drop below.\r\n

\r\n\r\n
\r\n Drop files here\r\n
\r\n

 

\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Back to list\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{errorMessage}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n\r\n

 

\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n
\r\n
\r\n

Data Collection Form Selection

\r\n
\r\n
\r\n A data collection form has not been selected for this order. Without a data collection form you will not be able to select this order as a candidate for a Merge.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { IApiTypedResult, IBusinessOperationQualifier, ILLGenericKeys, ITermByIndustryUsageAndCategory, Order, OrderUser, User } from '../../shared/models/index';\r\nimport { Media } from '../../shared/models/media.model';\r\nimport { AuthorizationService, OrderService, StorageManagerService } from '../../shared/services/index';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { OrderAdminComponent } from '../order-admin/order-admin.component';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'order-step-3',\r\n templateUrl: './order-step-3.component.html',\r\n styleUrls: ['./order-step-3.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class OrderStep3Component implements OnInit, OnDestroy, AfterViewInit {\r\n\r\n // Primary key\r\n orderRevisionId: number;\r\n // Object model for Order\r\n order: Order;\r\n // Hold on to original values for these fields for saving later\r\n beforeOrderStatus: string;\r\n beforeConfirmedDate: Date;\r\n // Angular form that contains controls\r\n orderStep3Form: UntypedFormGroup;\r\n // Show textboxes for changes\r\n showTextboxesForChanges = true;\r\n\r\n // Reference data list\r\n serviceCategoryToServiceTypeAssoc: IBusinessOperationQualifier[];\r\n // Full list of all service categories\r\n serviceCategories: ILLGenericKeys[];\r\n // Should we show description box\r\n showOrderDescription = true;\r\n\r\n // List of all employees in company\r\n allEmployeesInCompany: User[] = null;\r\n\r\n // Save button caption\r\n saveButtonCaption = 'Save as Draft';\r\n\r\n // Message when submitting\r\n submissionMessage = `Your order request has been submitted. One of our Project Coordinators is in the process of reviewing your order. Once the order has been reviewed you will receive a confirmation email that includes the expected delivery date.`;\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Order admin box\r\n // ------------------------------------------------------------\r\n @ViewChild('orderAdminComponent')\r\n orderAdmin: OrderAdminComponent;\r\n\r\n // Delivery doc associated with this order\r\n // (not the source docs)\r\n deliveryDoc: Media = null;\r\n\r\n // If user deletes an existing delivery doc,\r\n // there's no angular form changes, but we need to force\r\n // a page reload.\r\n deliveryDocStatusChange: boolean;\r\n // No source docs on step 3\r\n\r\n orderStatuses: ITermByIndustryUsageAndCategory[] = null;\r\n\r\n // ------------------------------------------------------------\r\n // Page state\r\n // ------------------------------------------------------------\r\n // Are we currently loading or saving?\r\n pageState: string = null;\r\n // Can the current user edit the current order?\r\n canEdit: boolean;\r\n // Does the current user have admin order (RT employee) permissions\r\n canOrderAdmin: boolean;\r\n // Can user request cancellation?\r\n canRequestCancellation: boolean;\r\n // Error message to display on bottom of screen.\r\n errorMessage = '';\r\n canSubmitOrder: boolean;\r\n\r\n // ------------------------------------------------------------\r\n // Post save settings\r\n // ------------------------------------------------------------\r\n // Save the order object, when finished then optionally finish a deliverDoc\r\n // upload. There's a lot of async steps, so put information about\r\n // saving orders and docs into class variables that can be set\r\n // in saveData and accessed in postSaveData to tie everything together.\r\n\r\n // Message from server about saving the order\r\n postSaveDataMessage: string;\r\n // URL to go to after save is finished. Note we need the\r\n // new OrderRevisionId of the newly saved order revision\r\n // to generate this URL (usually).\r\n postSaveDataRedirectUrl: string;\r\n // OrderRevisionId from after we save order changes (but we haven't uploaded files yet so we need this stored)\r\n postSaveDataNewOrderRevisionId: number;\r\n // Track if source docs are finished uploading after order save\r\n postSaveWaitingForSourceDocUpload: boolean;\r\n // Track if delivery docs are finished uploading after order save\r\n postSaveWaitingForDeliveryUpload: boolean;\r\n ingestFileValue: boolean;\r\n\r\n\r\n constructor(private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n private authorizationService: AuthorizationService,\r\n public orderService: OrderService,\r\n private storageManagerService: StorageManagerService,\r\n private toastr: ToastrService,\r\n private router: Router,\r\n private utilService: Utilities) { }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Initialize\r\n // ------------------------------------------------------------\r\n\r\n ngOnInit(): void {\r\n this.pageState = this.orderService.PAGE_STATE_LOADING;\r\n\r\n // Users can't change companies in the middle of viewing/editing an order\r\n this.utilService.toggleClientDropdownState(true);\r\n\r\n // Force some permissions off in case of ng routing doesn't do a full refresh\r\n this.order = null;\r\n this.beforeOrderStatus = null;\r\n this.beforeConfirmedDate = null;\r\n this.canEdit = false;\r\n this.canOrderAdmin = false;\r\n this.canRequestCancellation = false;\r\n this.deliveryDoc = null;\r\n this.deliveryDocStatusChange = false;\r\n // no source docs on step 3\r\n this.canSubmitOrder = false;\r\n\r\n // Extract primary key from query string\r\n this.orderRevisionId = this.orderService.getNumberOrNull(this.activatedRoute.snapshot.params.orderRevisionId);\r\n\r\n // The guard says you need read permission to get to this page.\r\n // User might also have edit permissions.\r\n this.canEdit = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n this.canOrderAdmin = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN);\r\n\r\n // Tell angular form what fields it has. None of these fields are required.\r\n this.orderStep3Form = this.fb.group({\r\n colOrDrugFactChangeInstruction: [''],\r\n principalDisplayPanelChangeInstruction: [''],\r\n LLMetadataChangeInstruction: [''],\r\n comments: [''],\r\n });\r\n\r\n // set focus on the invisible div so the firest tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex();\r\n\r\n // Get order data from the resolver and populate angular objects\r\n this.loadData();\r\n\r\n // Only show the three textboxes for changes\r\n // if order type full or partial (not ESG)\r\n this.showTextboxesForChanges = (this.order.serviceCategory != this.orderService.SERVICE_CATEGORY_ESG);\r\n\r\n this.populateFormControls();\r\n\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Load data\r\n // ------------------------------------------------------------\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n // and main order fields and store it in class state.\r\n loadData(): void {\r\n // Get data from resolver used in routing module\r\n const orderDataResolved = this.activatedRoute.snapshot.data['orderDataResolved'];\r\n if (orderDataResolved.error) {\r\n this.toastr.error(orderDataResolved.error);\r\n } else {\r\n if (orderDataResolved) {\r\n // OrderResolver returns a fixed array of data.\r\n\r\n // Employees of this company\r\n if (!orderDataResolved[0]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get list of employees in company', false);\r\n }\r\n this.allEmployeesInCompany = orderDataResolved[0];\r\n\r\n // Reference lists\r\n if (!orderDataResolved[1]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get reference data (service type)', false);\r\n }\r\n this.serviceCategoryToServiceTypeAssoc = orderDataResolved[1];\r\n // Main order\r\n if (!orderDataResolved[3]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order', false);\r\n }\r\n\r\n let orderApiResult: IApiTypedResult = orderDataResolved[3];\r\n if (orderApiResult) {\r\n if (orderApiResult.isSuccess) {\r\n this.order = orderApiResult.data;\r\n // Remember original values for certain fields\r\n this.beforeOrderStatus = this.order.orderStatus;\r\n this.beforeConfirmedDate = this.order.confirmedDueDate;\r\n\r\n // Only user with \"SSDP.CanUpateOrder\" permission can edit an order if the order status is \"Order Delivered - Awaiting Approval\" or \"completed\"\r\n if (!this.canOrderAdmin && (this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n || this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_COMPLETE)) {\r\n this.canEdit = false;\r\n }\r\n // Don't allow canOrderAdmin if draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // If still canOrderAdmin, recaption save\r\n if (this.canOrderAdmin) {\r\n this.saveButtonCaption = 'Update Order';\r\n }\r\n\r\n // Non-admin users can cancel pending or inprocess if they have the perm\r\n if (!this.canOrderAdmin\r\n && ([this.orderService.ORDER_STATUS_PENDING, this.orderService.ORDER_STATUS_IN_PROCESS].indexOf(this.order.orderStatus) > -1)\r\n && this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_CANCEL_ORDER)) {\r\n this.canRequestCancellation = true;\r\n }\r\n\r\n // Can only submit if it's draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canSubmitOrder = true;\r\n }\r\n\r\n // Pull out the deliveryDoc and sourceDocs separately\r\n // order.sourceDocuments is an array mixed with both deliveryDoc and SourceDocs.\r\n if (this.order && this.order.sourceDocuments) {\r\n let deliveryDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n if (deliveryDocs && deliveryDocs.length > 0) {\r\n this.deliveryDoc = deliveryDocs[0];\r\n }\r\n // Step 3 - no sourceDocs\r\n }\r\n\r\n } else {\r\n this.orderService.handleOrderError(this, orderApiResult, 'Failed to load order', false);\r\n }\r\n }\r\n\r\n if (!orderDataResolved[5]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order statuses', false);\r\n }\r\n this.orderStatuses = orderDataResolved[5];\r\n\r\n if (!orderDataResolved[6]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load service categories', false);\r\n }\r\n this.serviceCategories = orderDataResolved[6];\r\n }\r\n }\r\n } // end loadData\r\n\r\n\r\n ngAfterViewInit(): void {\r\n if (this.order && this.orderAdmin) {\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.orderAdmin.showIngestFile(true);\r\n } else {\r\n this.orderAdmin.showIngestFile(false);\r\n }\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Populate form controls\r\n // ------------------------------------------------------------\r\n\r\n // Populate the order data\r\n populateFormControls(): void {\r\n this.orderStep3Form.reset();\r\n this.orderStep3Form.patchValue({\r\n colOrDrugFactChangeInstruction: this.order.colOrDrugFactChangeInstruction,\r\n principalDisplayPanelChangeInstruction: this.order.principalDisplayPanelChangeInstruction,\r\n LLMetadataChangeInstruction: this.order.LLMetadataChangeInstruction,\r\n comments: this.order.additionalInformation\r\n });\r\n }\r\n\r\n onIngestFilechanged(event: boolean) {\r\n this.ingestFileValue = event;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Order admin is a subcomponent, and emits up certain events\r\n // usually about the delivery doc\r\n // ------------------------------------------------------------\r\n onOrderAdminFileUpload(event) {\r\n if (event === 'success') {\r\n // Successfully uploaded delivery doc\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveData();\r\n } else if (event === 'failure') {\r\n // Attempted to upload delivery doc but failed\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n this.toastr.error('Unexpected error uploading delivery document');\r\n } else if (event === 'deleteExistingDeliveryDoc') {\r\n // Request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = true;\r\n this.deliveryDoc.isDeleted = true;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'undeleteExistingDeliveryDoc') {\r\n // Undo request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = false;\r\n this.deliveryDoc.isDeleted = false;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'onIngestFileChange') {\r\n \r\n if (this.deliveryDoc) {\r\n this.deliveryDoc.ingestFile = this.ingestFileValue;\r\n }\r\n this.pageState == this.orderService.PAGE_STATE_READY;\r\n\r\n }\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Submission validation\r\n // ------------------------------------------------------------\r\n\r\n // Before official order submission, validate additional fields\r\n // Regular \"save as draft\" doesn't do this level of validation.\r\n validateForSubmission() {\r\n let message = '';\r\n let isValid = true;\r\n\r\n // Require order type\r\n if (!this.order.splService) {\r\n isValid = false;\r\n message += 'Order type (step 1) cannot be blank. ';\r\n }\r\n\r\n // Require order name\r\n if (!this.order.orderName) {\r\n isValid = false;\r\n message += 'Order name (step 1) cannot be blank. ';\r\n }\r\n\r\n // Require delivery priority\r\n if (this.order && !this.order.deliveryPriority) {\r\n isValid = false;\r\n message += 'Delivery priority (step 1) cannot be blank. ';\r\n }\r\n\r\n // Require at least one order owner\r\n let orderOwners: OrderUser[] = [];\r\n if (this.order.orderUsers) {\r\n orderOwners = this.order.orderUsers.filter(x => x.orderUserTypeId === this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n }\r\n if (!orderOwners || (orderOwners.length == 0)) {\r\n isValid = false;\r\n message += 'At least one order owner (step 1) must be supplied. ';\r\n }\r\n\r\n // Note: data collection form and baseline SPL are never required for submission.\r\n\r\n if (!isValid) {\r\n message = 'Unable to submit order. Please ensure required data is supplied before submitting order. ' + message;\r\n // turn off spinner before message\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.orderService.alert('Order Submission Failed', message);\r\n }\r\n return isValid;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Save data\r\n // ------------------------------------------------------------\r\n saveData(nextPage: string) {\r\n\r\n // Special case - \"Submit Order\" has additional validation rules.\r\n // They apply for fields that are on step 3.\r\n // Keep this code on all pages for consistency.\r\n if (nextPage === 'SUBMIT') {\r\n if (!this.validateForSubmission()) {\r\n return;\r\n }\r\n }\r\n\r\n this.pageState = this.orderService.PAGE_STATE_SAVING;\r\n\r\n // Clear out data from prior save\r\n this.postSaveDataMessage = null;\r\n this.postSaveDataNewOrderRevisionId = null;\r\n this.postSaveDataRedirectUrl = null;\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n\r\n // Where to go after save\r\n let nextPageUrl = '';\r\n switch (nextPage) {\r\n case 'STEP2':\r\n nextPageUrl = '/order-step-2';\r\n break;\r\n case 'STEP3':\r\n nextPageUrl = '/order-step-3';\r\n break;\r\n case 'SUBMIT':\r\n nextPageUrl = '/order-tracker';\r\n break;\r\n }\r\n\r\n this.errorMessage = '';\r\n\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n // Request order cancellation is different enough let's handle it separately.\r\n if (nextPage === 'CANCEL') {\r\n this.orderService.requestOrderCancellation(this.canRequestCancellation, this.order, modifiedByUser, '/order-step-1', false);\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else {\r\n let dirty = this.orderService.isAngularFormDirty(this.orderStep3Form);\r\n // Also check fields in order admin box\r\n if (this.canOrderAdmin && this.orderAdmin.orderAdminForm) {\r\n dirty = dirty || this.orderService.isAngularFormDirty(this.orderAdmin.orderAdminForm);\r\n }\r\n\r\n // stop here if form is invalid\r\n if (this.orderStep3Form.invalid) {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('Data is invalid.');\r\n return;\r\n } else {\r\n // Only save if dirty (but you can always submit even if not dirty)\r\n if ((dirty || nextPage === 'SUBMIT') && (this.canEdit || this.orderAdmin)) {\r\n\r\n // Put back in prior values for certain fields\r\n this.order.beforeOrderStatus = this.beforeOrderStatus;\r\n this.order.beforeConfirmedDate = this.beforeConfirmedDate;\r\n\r\n // Before we save any data, check if there are files waiting to be uploaded\r\n let sourceDocsWaitingToBeUploaded = false;\r\n // no source docs on step 3\r\n let deliveryDocsWaitingToBeUploaded = false;\r\n if (this.canOrderAdmin && this.orderAdmin.adminFileUpload && this.orderAdmin.adminFileUpload.getFilesData() && this.orderAdmin.adminFileUpload.getFilesData().length > 0) {\r\n deliveryDocsWaitingToBeUploaded = true;\r\n }\r\n\r\n // Save the order attributes first\r\n this.order.colOrDrugFactChangeInstruction = this.f.colOrDrugFactChangeInstruction.value;\r\n this.order.principalDisplayPanelChangeInstruction = this.f.principalDisplayPanelChangeInstruction.value;\r\n this.order.LLMetadataChangeInstruction = this.f.LLMetadataChangeInstruction.value;\r\n this.order.additionalInformation = this.f.comments.value;\r\n\r\n // Special case - if service category is ESG, textboxes for changes should be hidden\r\n // so force blanks.\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_ESG) {\r\n this.order.colOrDrugFactChangeInstruction = '';\r\n this.order.principalDisplayPanelChangeInstruction = '';\r\n this.order.LLMetadataChangeInstruction = '';\r\n }\r\n\r\n // Special case for submit\r\n if (nextPage === 'SUBMIT') {\r\n this.order.orderStatus = this.orderService.ORDER_STATUS_PENDING;\r\n }\r\n\r\n // Save the admin fields if we're allowed\r\n if (this.order && this.canOrderAdmin) {\r\n this.order.orderStatus = this.orderAdmin.orderAdminForm.controls.orderStatus.value;\r\n this.order.confirmedDueDate = this.utilService.getLocalDateString(this.orderAdmin.orderAdminForm.controls.confirmedDueDate.value);\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // DeliveryDoc supplied, mark the actual delivery date\r\n this.order.actualDeliveryDate = this.utilService.getLocalDateString(new Date());\r\n } else if (this.deliveryDoc && this.deliveryDoc.isDeleted) {\r\n // DeliveryDoc was requested to be deleted, blank\r\n // out actual delivery date\r\n this.order.actualDeliveryDate = null;\r\n }\r\n }\r\n\r\n // Save to database\r\n this.orderService.saveOrder(this.order, modifiedByUser).subscribe((response) => {\r\n // Coerce to specific type\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n // Gather up settings so after async upload finishes we know where to go\r\n this.postSaveDataMessage = responseTyped.message;\r\n this.postSaveDataNewOrderRevisionId = responseTyped.data.orderRevisionId;\r\n this.postSaveDataRedirectUrl = `${nextPageUrl}/${this.postSaveDataNewOrderRevisionId}`;\r\n\r\n if (nextPage === 'SUBMIT') {\r\n // Show a nice message about submission and go to order tracker.\r\n // Skip toaster since we have a popup.\r\n\r\n // turn off spinner before message\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.orderService.alert('Order Submission Successful', this.submissionMessage, () => {\r\n this.router.navigate(['/order-tracker']).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n })\r\n });\r\n } else {\r\n // Regular save of Order object successful, now do optional file uploads.\r\n //\r\n // We just set the property on this component postSavedatNewOrderRevisionId\r\n // which is shared with the child component OrderAdminComponent,\r\n // sounds great BUT angular timing messes it up. The child component\r\n // can't see the value immediately. The child component can't do setTimeout\r\n // because the upload is already in progress. So, we make the parent setTimeout\r\n // (sleep) right now so angular child component catches up with bound value for\r\n // and can save the uploaded doc to correct postSavedatNewOrderRevisionId\r\n setTimeout(() => {\r\n\r\n // Now that the order is saved, upload docs to *new* OrderRevisionId from\r\n // potentially sourceDocs and delivery (inside child component)\r\n if (!sourceDocsWaitingToBeUploaded && !deliveryDocsWaitingToBeUploaded) {\r\n // No files to upload, we're done.\r\n this.postSaveData();\r\n } else {\r\n // no sourceDoc files from this page\r\n // Asynchronously upload delivery file from admin child componet\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // upload the files\r\n this.postSaveWaitingForDeliveryUpload = true;\r\n this.orderAdmin.adminFileUpload.upload(this.orderAdmin.adminFileUpload.getFilesData()); // this is async\r\n }\r\n // Nothing left for now, wait for events to get triggered.\r\n return;\r\n }\r\n }, 100);\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, responseTyped, 'Order save failed', true)\r\n }\r\n },\r\n error => this.orderService.handleOrderError(this, error, 'Order save failed', true)\r\n );\r\n this.orderStep3Form.markAsPristine();\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // if no changes to save, but user wants to go to next page, that's fine\r\n if (nextPage !== 'STEP3') {\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([`${nextPageUrl}/${this.orderRevisionId}`]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n });\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('No changes to save.');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n // After order is saved AND all files are uploaded via order admin\r\n // and Step 2 file uploader (not easy because they are all async)\r\n // then go ahead and give a message and redirect.\r\n // Only step 2 has dual file uploaders - source & delivery,\r\n // but for consistency I'm copy/pasting this function across\r\n // all three steps.\r\n postSaveData() {\r\n // Are we still waiting for sourceDoc upload or delivery upload?\r\n if (this.postSaveWaitingForSourceDocUpload || this.postSaveWaitingForDeliveryUpload) {\r\n // Yup, keep waiting.\r\n return;\r\n }\r\n\r\n this.toastr.success(this.postSaveDataMessage);\r\n\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([this.postSaveDataRedirectUrl]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // Clear out admin file upload control if relevant\r\n if (this.orderAdmin && this.orderAdmin.adminFileUpload) {\r\n this.orderAdmin.adminFileUpload.clearAll();\r\n }\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Misc\r\n // ------------------------------------------------------------\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.orderStep3Form.controls; }\r\n\r\n // ------------------------------------------------------------\r\n // Destroy\r\n // ------------------------------------------------------------\r\n ngOnDestroy(): void {\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n

Edit Order

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n 3 PLACE ORDER\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Instructions

\r\n

\r\n Help us get it right the first time.\r\n Please provide instructions for each section you're editing.\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Content of labeling or drug fact changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Principal display panel changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Labeling/listing (metadata) changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Instructions

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Back to list\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{errorMessage}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n\r\n

 

\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Order Details
Order Id:{{workFlowOrderIdDesc}}
Order Status:{{order ? order.orderStatus : ''}}
Revised Due Date:{{(order ? order.confirmedDueDate : null) | dateToLocale }}
Actual Delivery Date:{{(order? order.actualDeliveryDate : null) | dateToLocale }}
Order Type:{{order ? order.serviceCategory : ''}}
Service Type:{{serviceTypeDesc}}
Delivery Priority:{{deliveryPrDesc}}
Order Name:{{order ? order.orderName : ''}}
Order Owner:{{orderOwnersDesc}}
Tracking Number:{{order ? order.externalTrackingNumber : ''}}
\r\n","import { Component, Input, OnInit, ViewEncapsulation, AfterViewInit } from '@angular/core';\r\nimport { OrderService } from '../../shared/services/index';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Order, User, ILLGenericKeys } from '../../shared/models';\r\n\r\n@Component({\r\n selector: 'order-summary',\r\n templateUrl: './order-summary.component.html',\r\n styleUrls: ['./order-summary.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class OrderSummaryComponent implements OnInit, AfterViewInit {\r\n\r\n // Local variables to display in component, some are calculated.\r\n chargeableOrder = '';\r\n serviceTypeDesc = '';\r\n deliveryPrDesc = '';\r\n orderOwnersDesc = '';\r\n\r\n // Passed in by parent component,\r\n // will be STEP1, STEP2, or STEP3,\r\n // to control which rows are visible.\r\n @Input() whichStep = '';\r\n\r\n @Input() order: Order;\r\n workFlowOrderIdDesc: string;\r\n\r\n @Input() allEmployeesInCompany: User[];\r\n\r\n @Input() serviceCategories: ILLGenericKeys[];\r\n\r\n @Input() serviceTypes: ILLGenericKeys[];\r\n\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.workFlowOrderIdDesc = '';\r\n this.serviceTypeDesc = '';\r\n }\r\n\r\n // There were weird timing errors, I had to postpone\r\n // loading the order data a little bit to let everything\r\n // catch up.\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.loadData();\r\n }, 200);\r\n }\r\n\r\n loadData() {\r\n if (this.order) {\r\n\r\n // Show Appian ID as draft if in draft mde, else read workflowOrderId\r\n this.workFlowOrderIdDesc = 'Draft';\r\n if (this.order && (this.order.orderStatus != this.orderService.ORDER_STATUS_DRAFT)) {\r\n // We'll, don't show \"null\" either\r\n if (!this.order.workFlowOrderId || (this.order.workFlowOrderId == 0)) {\r\n this.workFlowOrderIdDesc = 'n/a';\r\n } else {\r\n this.workFlowOrderIdDesc = '' + this.order.workFlowOrderId;\r\n }\r\n }\r\n\r\n if (this.order.splService) {\r\n this.serviceTypeDesc = this.order.splService.label;\r\n }\r\n\r\n // Delivery priority - get description from code\r\n this.deliveryPrDesc = this.order ? this.orderService.getDeliveryPriorityDescription(this.order.deliveryPriority) : '';\r\n\r\n // if there are inactive owners, concatenate them to the owner list as well.\r\n const inactiveOwnerList = this.orderService.GetInactiveOrderUsers(this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n\r\n // Convert order's array of OrderUsers into delimited\r\n // first+last string from employees array\r\n this.orderOwnersDesc = this.orderService.getUserNamesFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n\r\n const inactiveOwnerNames = inactiveOwnerList\r\n .map(x => x.name)\r\n .join(', ');\r\n if (inactiveOwnerNames) {\r\n this.orderOwnersDesc = `${this.orderOwnersDesc}, ${inactiveOwnerNames}`;\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild, ViewEncapsulation, OnDestroy, ViewChildren, QueryList } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbTabset } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GridComponent, RowDeselectEventArgs, RowSelectEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { IApiTypedResult, Order, OrderUser } from '../../shared/models/index';\r\nimport { OrderService, StorageManagerService, AuthorizationService, SettingsService } from '../../shared/services/index';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { Subscription } from 'rxjs';\r\nimport { IApiResult } from '../../shared/models/api-result';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { TooltipComponent, DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { DeleteButtonComponent } from '../common/delete-button/delete-button.component';\r\nimport { ClickEventArgs } from '@syncfusion/ej2-angular-navigations/src';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { GridPreferencesService } from '../../shared/services/grid-preferences.service';\r\n\r\n@Component({\r\n selector: 'order-tracker',\r\n templateUrl: './order-tracker.component.html',\r\n styleUrls: ['./order-tracker.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class OrderTrackerComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n showWelcomeMessage: boolean;\r\n sub: Subscription;\r\n\r\n\r\n // Angular form that contains controls\r\n orderTrackerForm: UntypedFormGroup;\r\n\r\n @ViewChild('tabset', { static: true })\r\n public tabset: NgbTabset;\r\n\r\n @ViewChild('orderTrackerAllGrid')\r\n public orderTrackerAllGrid: GridComponent;\r\n\r\n @Input() orderTrackerAllGridData: any[];\r\n\r\n @ViewChild('orderTrackerDraftGrid')\r\n public orderTrackerDraftGrid: GridComponent;\r\n\r\n @ViewChild('deleteOrderDraftButton')\r\n public deleteButtonDrafts: DeleteButtonComponent;\r\n\r\n @ViewChildren(TooltipComponent) toolTips: QueryList;\r\n public tooltipObj: TooltipComponent;\r\n\r\n @Input() orderTrackerDraftGridData: any[];\r\n\r\n\r\n // Modal properties\r\n @ViewChild('orderTrackerModal')\r\n ejDialogOrderTracker: DialogComponent;\r\n\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '32%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n orderTrackerDialogVisible: boolean;\r\n\r\n // Modal template variables\r\n currentOrderStatus: string = '';\r\n currentSelectedToolbarAction = {\r\n isAcceptDelivery: false,\r\n isResubmitOrder: false,\r\n isRequestOrderCancellation: false\r\n }\r\n\r\n // Common to both grids\r\n public orderTrackerGridInitialPage: Object;\r\n public orderTrackerGridFormatOptions: object;\r\n public orderTrackerGridToolbarOptions: Object;\r\n\r\n // What actions are allowed for which statuses\r\n public whichStatusesAllowAcceptDelivery: string[];\r\n public whichStatusesAllowResubmit: string[];\r\n public whichStatusesAllowCancel: string[];\r\n public whichStatusesAllowDelete: string[];\r\n\r\n // Controls button enabled states for the two grids\r\n canAcceptDelivery = {\r\n all: false,\r\n draft: false,\r\n isAllowedOnGrid: true,\r\n isAllowedOnDraftGrid: false\r\n };\r\n canResubmit = {\r\n all: false,\r\n draft: false,\r\n isAllowedOnGrid: true,\r\n isAllowedOnDraftGrid: false\r\n };\r\n canCancel = {\r\n all: false,\r\n draft: false,\r\n isAllowedOnGrid: true,\r\n isAllowedOnDraftGrid: false\r\n };\r\n canDelete = {\r\n all: false,\r\n draft: false,\r\n isAllowedOnGrid: false,\r\n isAllowedOnDraftGrid: true\r\n };\r\n\r\n // Can user create new orders\r\n canCreate: boolean;\r\n canDeleteDraft: boolean;\r\n\r\n canOrderAdmin: boolean;\r\n canOrderResubmit: boolean;\r\n canCancelOrder: boolean;\r\n\r\n selectedOrderRevisionId = {\r\n all: null as number,\r\n draft: null as number\r\n };\r\n\r\n pageState: string;\r\n errorMessage: string;\r\n activeTab: string;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n dateRangeDataSource = ['90 days', '180 days', '1 Year', '2 Years', 'All'];\r\n selectedDateRangeFilter = '1 Year';\r\n\r\n // Messages\r\n ORDER_RESUBMIT_MESSAGE = `You have elected to resubmit this order for additional processing. We will copy the contents of this order and create a new one so you can update and submit to Reed Tech for processing. We will notify you when your order has been saved to the Drafts tab.`;\r\n ordersInProcess: any = {\r\n resubmit: [],\r\n acceptDelivery: [],\r\n cancel: []\r\n };\r\n\r\n disabledColumns: string[] = ['Order ID', 'Order Name', 'Order Status'];\r\n\r\n constructor(private fb: UntypedFormBuilder,\r\n private activatedRoute: ActivatedRoute,\r\n public orderService: OrderService,\r\n private router: Router, private toastr: ToastrService,\r\n private storageManagerService: StorageManagerService,\r\n private authorizationService: AuthorizationService,\r\n public utilService: Utilities,\r\n private sanitizer: DomSanitizer,\r\n private settingsService: SettingsService,\r\n public gridPreferencesService: GridPreferencesService,\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n // listen for the status change to determine if we need to show the welcome message\r\n\r\n if (!this.storageManagerService.read('WelcomeShown')) {\r\n this.showWelcomeMessage = true;\r\n this.storageManagerService.write('WelcomeShown', true);\r\n }\r\n else {\r\n this.showWelcomeMessage = false;\r\n }\r\n this.loadInitialToolbar();\r\n this.orderTrackerGridInitialPage = { currentPage: 1, pageSize: 25, pageSizes: [25, 50, 75, 100, 'All'] };\r\n this.orderTrackerGridFormatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() };\r\n\r\n // Say which statuses are required for which actions\r\n this.whichStatusesAllowAcceptDelivery = [\r\n this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n ];\r\n this.whichStatusesAllowResubmit = [\r\n this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n ];\r\n this.whichStatusesAllowCancel = [\r\n this.orderService.ORDER_STATUS_IN_PROCESS,\r\n this.orderService.ORDER_STATUS_PENDING\r\n ];\r\n this.whichStatusesAllowDelete = [\r\n this.orderService.ORDER_STATUS_DRAFT\r\n ];\r\n\r\n // Tell angular form what fields it has.\r\n this.orderTrackerForm = this.fb.group({\r\n orderTrackerAllGrid: [''],\r\n orderTrackerDraftGrid: ['']\r\n });\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex()\r\n\r\n this.loadData();\r\n\r\n this.activeTab = 'AllOrders';\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n hideDialog: EmitType = () => {\r\n this.ejDialogOrderTracker.hide();\r\n }\r\n\r\n orderTrackerDialogButtons: Object[] = [{\r\n click: this.hideDialog.bind(this),\r\n buttonModel:{\r\n content: 'OK',\r\n isPrimary: true\r\n }\r\n }]\r\n\r\n loadInitialToolbar() {\r\n this.canOrderAdmin = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN);\r\n\r\n this.canOrderResubmit = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN)\r\n || this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n\r\n this.canCancelOrder = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_CANCEL_ORDER);\r\n\r\n // Allowed to make new orders?\r\n this.canCreate = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n\r\n this.canDeleteDraft = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_DELETE_DRAFT_ORDER);\r\n\r\n this.canResubmit.isAllowedOnGrid = this.canOrderResubmit;\r\n this.canAcceptDelivery.isAllowedOnGrid = this.canOrderResubmit;\r\n this.canCancel.isAllowedOnGrid = this.canCancelOrder;\r\n\r\n this.orderTrackerGridToolbarOptions = this.createCustomToolbarItems(this.canCancel && this.canDelete.all,\r\n this.canDelete.isAllowedOnGrid,\r\n this.canAcceptDelivery.isAllowedOnGrid,\r\n this.canResubmit.isAllowedOnGrid,\r\n this.canCancel.isAllowedOnGrid,\r\n this.canCreate);\r\n }\r\n\r\n tabChanged(event) {\r\n this.activeTab = event.nextId;\r\n\r\n this.currentOrderStatus = '';\r\n this.resetCurrentSelectedToolbarAction();\r\n\r\n if(this.activeTab === 'DraftOrders'){\r\n this.canDelete['draft'] = (this.whichStatusesAllowDelete as any).includes('Draft');\r\n this.orderTrackerGridToolbarOptions = this.createCustomToolbarItems(this.canCancel && this.canDelete.draft && this.canDeleteDraft,\r\n this.canDelete.isAllowedOnDraftGrid,\r\n this.canAcceptDelivery.isAllowedOnDraftGrid,\r\n this.canResubmit.isAllowedOnDraftGrid,\r\n this.canCancel.isAllowedOnDraftGrid,\r\n this.canCreate);\r\n }\r\n else{\r\n this.orderTrackerGridToolbarOptions = this.createCustomToolbarItems(this.canCancel && this.canDelete.all,\r\n this.canDelete.isAllowedOnGrid,\r\n this.canAcceptDelivery.isAllowedOnGrid,\r\n this.canResubmit.isAllowedOnGrid,\r\n this.canCancel.isAllowedOnGrid,\r\n this.canCreate);\r\n }\r\n\r\n }\r\n\r\n createCustomToolbarItems(deletePermission : boolean, isDeleteAllowedOnTab: boolean, isAcceptDeliveryAllowedOnTab: boolean,\r\n isResubmitOrderAllowedOnTab: boolean, isRequestOrderCancellationAllowedOnTab: boolean, isCreateNewOrderAllowed: boolean){\r\n let toolbarItems = [];\r\n\r\n if (isCreateNewOrderAllowed) {\r\n toolbarItems.push(\r\n {\r\n text: 'Create New Order',\r\n tooltipText: 'Add a new order form to this list',\r\n prefixIcon: 'fas fa-plus',\r\n id: 'create-form-btn'\r\n }\r\n );\r\n }\r\n\r\n if(isAcceptDeliveryAllowedOnTab){\r\n toolbarItems.push(\r\n {\r\n text: 'Accept Delivery',\r\n tooltipText: 'Accept delivery of the selected order',\r\n prefixIcon: 'fas fa-check',\r\n id: 'tool-bar-accept-delivery-btn'\r\n }\r\n );\r\n }\r\n\r\n if(isResubmitOrderAllowedOnTab){\r\n toolbarItems.push(\r\n {\r\n text: 'Resubmit Order',\r\n tooltipText: 'Resubmit the selected order',\r\n prefixIcon: 'fas fa-rotate-right',\r\n id: 'tool-bar-resubmit-order'\r\n }\r\n );\r\n }\r\n\r\n if(isRequestOrderCancellationAllowedOnTab){\r\n toolbarItems.push(\r\n {\r\n text: 'Request Order Cancellation',\r\n tooltipText: 'Request cancellation of the selected order',\r\n prefixIcon: 'fas fa-xmark',\r\n id: 'tool-bar-request-order-cancellation'\r\n }\r\n );\r\n }\r\n\r\n if(deletePermission && isDeleteAllowedOnTab){\r\n toolbarItems.push(\r\n {\r\n text: 'Delete Order',\r\n tooltipText: 'Delete the selected draft order',\r\n prefixIcon: 'fas fa-trash',\r\n id: 'tool-bar-delete'\r\n }\r\n )\r\n }\r\n\r\n toolbarItems.push('Search');\r\n toolbarItems.push('ColumnChooser');\r\n\r\n return toolbarItems;\r\n }\r\n\r\n toolbarClick(args: ClickEventArgs): void {\r\n\r\n this.resetCurrentSelectedToolbarAction();\r\n\r\n if (args.item.id === 'create-form-btn' && this.canCreate) {\r\n this.router.navigate([\"/order\"]);\r\n }\r\n\r\n // Order Draft Grid Buttons\r\n if(this.orderTrackerDraftGrid && this.canDeleteDraft){\r\n if(args.item.id === 'tool-bar-delete' && this.selectedOrderRevisionId.draft){\r\n this.deleteButtonDrafts.revisionId = this.selectedOrderRevisionId.draft.toString();\r\n this.deleteButtonDrafts.openDeleteModal();\r\n }\r\n }\r\n // Order Grid Buttons\r\n else{\r\n if(args.item.id === 'tool-bar-accept-delivery-btn'){\r\n this.currentSelectedToolbarAction.isAcceptDelivery = true;\r\n if(!this.whichStatusesAllowAcceptDelivery.includes(this.currentOrderStatus)){\r\n this.ejDialogOrderTracker.show();\r\n return;\r\n }\r\n this.acceptDelivery('all');\r\n }\r\n else if(args.item.id === 'tool-bar-resubmit-order'){\r\n this.currentSelectedToolbarAction.isResubmitOrder = true;\r\n if(!this.whichStatusesAllowResubmit.includes(this.currentOrderStatus)){\r\n this.ejDialogOrderTracker.show();\r\n return;\r\n }\r\n this.resubmit('all');\r\n }\r\n else if(args.item.id === 'tool-bar-request-order-cancellation'){\r\n this.currentSelectedToolbarAction.isRequestOrderCancellation = true;\r\n if(!this.whichStatusesAllowCancel.includes(this.currentOrderStatus)){\r\n this.ejDialogOrderTracker.show();\r\n return;\r\n }\r\n this.cancel('all');\r\n }\r\n }\r\n}\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n switch (this.activeTab) {\r\n case 'AllOrders':\r\n grid = this.orderTrackerAllGrid;\r\n break;\r\n case 'DraftOrders':\r\n grid = this.orderTrackerDraftGrid;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltipObj.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sub = this.toolTips.changes.subscribe((comps: QueryList) => {\r\n this.tooltipObj = comps?.first;\r\n });\r\n }\r\n\r\n loadData() {\r\n if (this.storageManagerService.read('currentCustomer')) {\r\n this.pageState = this.orderService.PAGE_STATE_LOADING;\r\n this.sub = this.orderService.getOrderTrackerData(this.selectedDateRangeFilter).subscribe(untypedApiResult => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n const apiResult: IApiTypedResult = untypedApiResult as IApiTypedResult;\r\n if (!apiResult || !apiResult.isSuccess) {\r\n this.orderService.handleOrderError(this, apiResult, 'Failed to load order tracker data', false);\r\n } else {\r\n // All orders (not draft)\r\n this.orderTrackerAllGridData = apiResult.data.filter(x => !x.isDraftMode);\r\n // Only draft orders\r\n this.orderTrackerDraftGridData = apiResult.data.filter(x => x.isDraftMode);\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n },\r\n error => this.orderService.handleOrderError(this, error, 'Failed to load order tracker data', false)\r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // ENABLED STATES\r\n // ------------------------------------------------------------\r\n setToolbarState(whichGrid: string, orderStatus: string) {\r\n // \"includes\" is valid Ecmascript 2016 but VisualStudio is mad, hide it inside \"any\"\r\n this.canAcceptDelivery[whichGrid] = this.canOrderResubmit && (this.whichStatusesAllowAcceptDelivery as any).includes(orderStatus);\r\n this.canResubmit[whichGrid] = this.canOrderResubmit && (this.whichStatusesAllowResubmit as any).includes(orderStatus);\r\n this.canCancel[whichGrid] = this.canCancelOrder && (this.whichStatusesAllowCancel as any).includes(orderStatus);\r\n this.canDelete[whichGrid] = (this.whichStatusesAllowDelete as any).includes(orderStatus);\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // GRIDS\r\n // ------------------------------------------------------------\r\n orderTrackerGridRowSelected(args: RowSelectEventArgs, whichGrid: string) {\r\n let selectedRowData = null;\r\n let orderStatus = null;\r\n this.selectedOrderRevisionId[whichGrid] = null;\r\n const selectedRecords: any[] = (whichGrid == 'all' ? this.orderTrackerAllGrid : this.orderTrackerDraftGrid).getSelectedRecords();\r\n if (selectedRecords) {\r\n selectedRowData = selectedRecords[0];\r\n orderStatus = selectedRowData.orderStatus;\r\n this.selectedOrderRevisionId[whichGrid] = selectedRowData.orderRevisionId;\r\n\r\n this.currentOrderStatus = orderStatus;\r\n }\r\n this.setToolbarState(whichGrid, orderStatus);\r\n }\r\n\r\n orderTrackerGridRowDeselected(args: RowDeselectEventArgs, whichGrid: string) {\r\n this.setToolbarState(whichGrid, null);\r\n this.selectedOrderRevisionId[whichGrid] = null;\r\n\r\n this.currentOrderStatus = '';\r\n this.resetCurrentSelectedToolbarAction();\r\n }\r\n\r\n resetCurrentSelectedToolbarAction(){\r\n for(let key in this.currentSelectedToolbarAction){\r\n this.currentSelectedToolbarAction[key] = false;\r\n }\r\n }\r\n\r\n // download sourceDoc\r\n downloadFile(filePath: string, fileName: string) {\r\n this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n this.orderService.postDownloadFile(response, fileName);\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // BUTTONS\r\n // ------------------------------------------------------------\r\n\r\n // Accept delivery of order - change status to complete.\r\n acceptDelivery(whichGrid: string) {\r\n const orderRevisionId = this.selectedOrderRevisionId[whichGrid];\r\n if (this.ordersInProcess.acceptDelivery.includes(orderRevisionId)) {\r\n this.toastr.warning('Order is already in process.');\r\n return;\r\n }\r\n this.ordersInProcess.acceptDelivery.push(orderRevisionId);\r\n this.toastr.success('Order proccess started.');\r\n\r\n if (orderRevisionId && this.whichStatusesAllowAcceptDelivery.includes(this.currentOrderStatus)) {\r\n this.orderService.getOrderByOrderRevisionId(orderRevisionId)\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(\r\n apiResult => {\r\n const apiTypedResult = apiResult as IApiTypedResult;\r\n if (apiTypedResult.isSuccess) {\r\n // Successfully retrieved order\r\n const order = apiTypedResult.data;\r\n // Only proceed if status is valid for this operation\r\n // \"includes\" is valid Ecmascript 2016 but VisualStudio is mad, hide it inside \"any\"\r\n if ((this.whichStatusesAllowAcceptDelivery as any).includes(order.orderStatus)) {\r\n // remember old values\r\n order.beforeOrderStatus = order.orderStatus;\r\n order.beforeConfirmedDate = order.confirmedDueDate;\r\n // set new values\r\n order.orderStatus = this.orderService.ORDER_STATUS_ORDER_COMPLETE;\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n // Save order\r\n this.orderService.saveOrder(order, modifiedByUser)\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(apiResult => {\r\n // Inform user of result\r\n const apiTypedResult2: IApiTypedResult = apiResult as IApiTypedResult;\r\n if (apiTypedResult2.isSuccess) {\r\n this.loadData();\r\n this.orderService.alert(`Order`, `Accepted delivery of order.`);\r\n } else {\r\n this.orderService.alert('Order', `Failed to accept delivery of order. ${apiTypedResult2.message}`);\r\n }\r\n this.ordersInProcess = this.ordersInProcess.acceptDelivery.filter(x => x !== orderRevisionId);\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.ordersInProcess = this.ordersInProcess.acceptDelivery.filter(x => x !== orderRevisionId);\r\n });\r\n } else {\r\n this.orderService.alert('Order', `Cannot accept delivery of order in status ${order.orderStatus}`);\r\n this.ordersInProcess = this.ordersInProcess.acceptDelivery.filter(x => x !== orderRevisionId);\r\n }\r\n } else {\r\n this.orderService.alert('Order', `Failed to load order. ${apiTypedResult.message}`);\r\n this.ordersInProcess = this.ordersInProcess.acceptDelivery.filter(x => x !== orderRevisionId);\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n this.ordersInProcess = this.ordersInProcess.acceptDelivery.filter(x => x !== orderRevisionId);\r\n }\r\n );\r\n }\r\n }\r\n\r\n\r\n // Resubmit order - clone order, set clone status to draft, add comment\r\n resubmit(whichGrid: string) {\r\n // update the order status to Order Complete and save\r\n const orderRevisionId = this.selectedOrderRevisionId[whichGrid];\r\n if (this.ordersInProcess.resubmit.includes(orderRevisionId)) {\r\n this.toastr.warning('Order is already in process.');\r\n return;\r\n }\r\n this.ordersInProcess.resubmit.push(orderRevisionId);\r\n this.toastr.success('Order proccess started.');\r\n\r\n if (orderRevisionId && this.whichStatusesAllowResubmit.includes(this.currentOrderStatus)) {\r\n this.orderService.getOrderByOrderRevisionId(orderRevisionId)\r\n // If there's an error, force it into {isSuccess: false, message: , data: null} format\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(apiResult => {\r\n const apiTypedResult = apiResult as IApiTypedResult;\r\n if (apiTypedResult.isSuccess) {\r\n // Successfully retrieved order\r\n const order = apiTypedResult.data;\r\n // Only proceed if status is valid for this operation\r\n // \"includes\" is valid Ecmascript 2016 but VisualStudio is mad, hide it inside \"any\"\r\n if ((this.whichStatusesAllowResubmit as any).includes(order.orderStatus)) {\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n const modifiedByUserGuid = this.storageManagerService.read('userData').userguid;\r\n const customerGuid = this.settingsService.getCustomerGuid();\r\n\r\n // Save modify user as order intitiator.\r\n // Need the full list of employees so we can get all the stuff\r\n // we need to populate OrderUser fields.\r\n this.orderService.getEmployees(customerGuid)\r\n .subscribe(allEmployeesInCompany => {\r\n const initiators: OrderUser[] = this.orderService.userGuidsToOrderUsers(\r\n allEmployeesInCompany, [modifiedByUserGuid], this.orderService.ORDER_USER_TYPE_ORDER_INITIATOR);\r\n order.orderUsers.push(initiators[0]);\r\n\r\n // Save order\r\n this.orderService.cloneOrder(order, modifiedByUser)\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(apiResult => {\r\n // Inform user of result\r\n const apiTypedResult2: IApiResult = apiResult as IApiResult;\r\n if (apiTypedResult2.isSuccess) {\r\n this.loadData();\r\n this.orderService.alert(`Order`, this.ORDER_RESUBMIT_MESSAGE);\r\n } else {\r\n this.orderService.alert('Order', `Failed to resubmit order. ${apiTypedResult2.message}`);\r\n }\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n });\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n });\r\n } else {\r\n this.orderService.alert('Order', `Cannot resubmit order in status ${order.orderStatus}`);\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n }\r\n } else {\r\n this.orderService.alert('Order', `Failed to resubmit order. ${apiTypedResult.message}`);\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n this.ordersInProcess = this.ordersInProcess.resubmit.filter(x => x !== orderRevisionId);\r\n });\r\n }\r\n }\r\n\r\n // Cancel order - change status to canceled\r\n cancel(whichGrid: string) {\r\n const orderRevisionId = this.selectedOrderRevisionId[whichGrid];\r\n if (this.ordersInProcess.cancel.includes(orderRevisionId)) {\r\n this.toastr.warning('Order is already in process.');\r\n return;\r\n }\r\n this.ordersInProcess.cancel.push(orderRevisionId);\r\n this.toastr.success('Order proccess started.');\r\n\r\n if (orderRevisionId && this.whichStatusesAllowCancel.includes(this.currentOrderStatus)) {\r\n this.orderService.getOrderByOrderRevisionId(orderRevisionId)\r\n // If there's an error, force it into {isSuccess: false, message: , data: null} format\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(apiResult => {\r\n const apiTypedResult = apiResult as IApiTypedResult;\r\n if (apiTypedResult.isSuccess) {\r\n // Successfully retrieved order\r\n const order = apiTypedResult.data;\r\n // Only proceed if status is valid for this operation\r\n // \"includes\" is valid Ecmascript 2016 but VisualStudio is mad, hide it inside \"any\"\r\n if ((this.whichStatusesAllowCancel as any).includes(order.orderStatus)) {\r\n // remember old values\r\n order.beforeConfirmedDate = order.confirmedDueDate;\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n // Save order\r\n this.orderService.requestOrderCancellation(true, order, modifiedByUser, '/order-tracker', true);\r\n } else {\r\n this.orderService.alert('Order', `Cannot cancel order in status ${order.orderStatus}`);\r\n }\r\n this.ordersInProcess = this.ordersInProcess.cancel.filter(x => x !== orderRevisionId);\r\n } else {\r\n this.orderService.alert('Order', `Failed to load order. ${apiTypedResult.message}`);\r\n this.ordersInProcess = this.ordersInProcess.cancel.filter(x => x !== orderRevisionId);\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n this.ordersInProcess = this.ordersInProcess.cancel.filter(x => x !== orderRevisionId);\r\n });\r\n }\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'confirmedDueDate':\r\n case 'actualDeliveryDate':\r\n case 'createdOn':\r\n case 'modifiedOn':\r\n break;\r\n\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n dateRangeSelectionChanged(dateRangeLimitValue: string) {\r\n this.selectedDateRangeFilter = dateRangeLimitValue;\r\n this.loadData();\r\n }\r\n\r\n rowSelecting(e) {\r\n e.cancel = e.isHeaderCheckboxClicked;\r\n\r\n const currentGrid = this.activeTab === 'AllOrders' ? this.orderTrackerAllGrid : this.orderTrackerDraftGrid;\r\n if (currentGrid.getSelectedRecords().length) {\r\n currentGrid.clearSelection();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Welcome to SingleSource™ for Drug Products

\r\n

\r\n Manage product listing, establishment facility, and labeler company data across multiple\r\n teams with a secure cloud-based solution, a streamlined SPL conversion process,\r\n and a transparent collaborative workflow.\r\n

\r\n
\r\n
\r\n\r\n
\r\n

Order Tracker

\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Orders ({{ orderTrackerAllGridData?.length }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n {{orderTrackerAllGridRow.orderId}}\r\n \r\n \r\n (view)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{orderTrackerAllGridRow2.orderStatus}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{orderTrackerAllGridRow3.deliveryPriority}}\r\n
\r\n
\r\n {{orderTrackerAllGridRow3.deliveryPriority}}\r\n
\r\n
\r\n {{orderTrackerAllGridRow3.deliveryPriority}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Draft Orders ({{ orderTrackerDraftGridData?.length }})\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n {{orderTrackerDraftGridRow.orderRevisionId}}\r\n \r\n \r\n (view)\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{orderTrackerDraftGridRow3.deliveryPriority}}\r\n
\r\n
\r\n {{orderTrackerDraftGridRow3.deliveryPriority}}\r\n
\r\n
\r\n {{orderTrackerDraftGridRow3.deliveryPriority}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n

Order Status Information

\r\n
\r\n
\r\n
\r\n
\r\n Only orders with the status 'Order Delivered - Awaiting Approval' can be accepted.\r\n
\r\n
\r\n
\r\n
\r\n Only orders with the status 'Order Delivered - Awaiting Approval' can be resubmitted.\r\n
\r\n
\r\n
\r\n
\r\n Only orders with the status of 'In Process' or 'Pending' can request order cancellation.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, ViewEncapsulation, OnInit, AfterViewInit, ViewChild, Input, ChangeDetectorRef, OnDestroy } from \"@angular/core\";\r\nimport { FormControl, FormGroup, UntypedFormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { fadeInOut } from \"../../../app/shared/helpers/animations\";\r\nimport { DialogComponent, TooltipComponent } from \"@syncfusion/ej2-angular-popups\";\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { IApiTypedResult, IBusinessOperationQualifier, ILLGenericKeys, ITermByIndustryUsageAndCategory, Order, OrderUser, SplFileStorageResult, User } from \"../../../app/shared/models\";\r\nimport { AuthorizationService, LLFormService, OrderService, SettingsService, StorageManagerService } from \"../../../app/shared/services\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { ActionCompleteEventArgs, ChangeEventArgs, SelectedEventArgs, UploaderComponent, UploadingEventArgs } from \"@syncfusion/ej2-angular-inputs\";\r\nimport { ChangeArgs } from \"@syncfusion/ej2-angular-buttons\";\r\nimport { ToastrService } from \"ngx-toastr\";\r\nimport { Media } from \"../../shared/models/media.model\";\r\nimport { GridComponent, PageSettingsModel, RowDeselectEventArgs, RowSelectEventArgs } from \"@syncfusion/ej2-angular-grids\";\r\nimport { Utilities } from \"../../shared/services/utilities\";\r\nimport { FeatureService } from '../../shared/services/feature.service';\r\nimport { catchError } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-order',\r\n templateUrl: './order.component.html',\r\n styleUrls: ['./order.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated,\r\n animations: [fadeInOut],\r\n})\r\nexport class OrderComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('confirmDialog') public confirmDialog: DialogComponent;\r\n @ViewChild('llFormGrid') public llFormGrid: GridComponent;\r\n // Baseline SPL grid\r\n @ViewChild('baselineSplGrid') public baselineSplGrid: GridComponent;\r\n @Input() baselineSplGridData: any[];\r\n\r\n @ViewChild('tooltipDC')\r\n public tooltipDC: TooltipComponent;\r\n\r\n @ViewChild('tooltipSPL')\r\n public tooltipSPL: TooltipComponent;\r\n\r\n order: Order;\r\n orderForm: UntypedFormGroup;\r\n orderRevisionId: number;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n position: object = { X: 'center', Y: 'center' };\r\n ddwFields: Object = { text: 'label', value: 'code' };\r\n ddwAdminFields: Object = { text: 'termValueDescription', value: 'termValueCode' };\r\n\r\n serviceCategoryToServiceTypeAssoc: IBusinessOperationQualifier[];\r\n serviceTypesLOV: ILLGenericKeys[];\r\n serviceGroupsLOV: String[];\r\n countryLOV: String[] = ['United States','Canada'];\r\n freezeChangeEventsTemporarily: boolean;\r\n canEdit: boolean = false;\r\n canOrderAdmin: boolean = false;\r\n // List of all employees in company\r\n allEmployeesInCompany: User[] = null;\r\n\r\n inactiveOrderEmailRecipientList: any[] = [];\r\n inactiveOrderOwnersList: any[] = [];\r\n // Hold on to original values for these fields for saving later\r\n beforeOrderStatus: string;\r\n beforeConfirmedDate: Date;\r\n\r\n // Source docs\r\n sourceDocs: Media[] = null;\r\n\r\n llFormGridData: any[];\r\n\r\n // ------------------------------------------------------------\r\n // orderOwners multi-select pulldown\r\n // ------------------------------------------------------------\r\n // Map keys/values for owners pulldown list\r\n orderOwnersFields = { 'text': 'label', 'value': 'code' };\r\n // Placeholder when order owners pulldown empty\r\n orderOwnersWaterMark = 'Select Owners';\r\n // Will hold possible values for list\r\n orderOwnersLOV: ILLGenericKeys[];\r\n // Can user request cancellation?\r\n canRequestCancellation: boolean;\r\n\r\n // Reference data list\r\n serviceTypeToDeliveryPriorityAssoc: IBusinessOperationQualifier[];\r\n\r\n orderStatuses: ITermByIndustryUsageAndCategory[] = null;\r\n\r\n public showIngestFile: boolean = false;\r\n // Delivery doc associated with this order\r\n // (not the source docs)\r\n deliveryDoc: Media = null;\r\n\r\n // If user deletes an existing delivery doc,\r\n // there's no angular form changes, but we need to force\r\n // a page reload.\r\n deliveryDocStatusChange: boolean;\r\n\r\n // Save button caption\r\n saveButtonCaption = 'Save as Draft';\r\n countryServiceGroup: IBusinessOperationQualifier[];\r\n countryServiceType: IBusinessOperationQualifier[];\r\n\r\n\r\n\r\n // ------------------------------------------------------------\r\n // Post save settings\r\n // ------------------------------------------------------------\r\n // Save the order object, when finished then optionally finish a deliverDoc\r\n // upload. There's a lot of async steps, so put information about\r\n // saving orders and docs into class variables that can be set\r\n // in saveData and accessed in postSaveData to tie everything together.\r\n\r\n // Message from server about saving the order\r\n postSaveDataMessage: string;\r\n // URL to go to after save is finished. Note we need the\r\n // new OrderRevisionId of the newly saved order revision\r\n // to generate this URL (usually).\r\n postSaveDataRedirectUrl: string;\r\n // OrderRevisionId from after we save order changes (but we haven't uploaded files yet so we need this stored)\r\n postSaveDataNewOrderRevisionId: number;\r\n // Track if source docs are finished uploading after order save\r\n postSaveWaitingForSourceDocUpload: boolean;\r\n // Track if delivery docs are finished uploading after order save\r\n postSaveWaitingForDeliveryUpload: boolean;\r\n\r\n // Should serviceType pulldown be enabled?\r\n isServiceTypeEnabled = false;\r\n // Should deliveryPriority radio buttons be enabled?\r\n isDeliveryPriorityEnabled = false;\r\n ingestFileValue: boolean = true;\r\n\r\n // Will hold possible values for list\r\n orderRecipientsLOV: ILLGenericKeys[];\r\n isServiceGroupSelected: boolean = false;\r\n isServiceCategorySelected: boolean = false;\r\n // Regular priority box\r\n hasRegularPriority = true;\r\n\r\n // Expedited priority box\r\n hasExpeditedPriority = true;\r\n\r\n // Emergency priority box\r\n hasEmergencyPriority = true;\r\n\r\n // Order type\r\n showOrderType = false;\r\n isServiceTypeSelected: boolean;\r\n pageState: string;\r\n // Summary table for selected LL form grid row\r\n llFormGridSelectedRowData: any = null;\r\n showLlForm = true;\r\n // Should we show description box\r\n showOrderDescription = true;\r\n llFormInitialPage: PageSettingsModel;\r\n llFormSortOptions: Object;\r\n llFormToolbarOptions: Object;\r\n llFormRecordCount: number;\r\n llFormGridSelectionOptions: object;\r\n gridFormatOptions: object;\r\n\r\n fileMinSize: number;\r\n fileMaxSize: number;\r\n\r\n baselineSplInitialPage: PageSettingsModel;\r\n baselineSplSortOptions: Object;\r\n baselineSplToolbarOptions: Object;\r\n baselineSplRecordCount: number;\r\n baselineSplLoading = true;\r\n baselineSplSearchForm: UntypedFormGroup;\r\n baselineSplSelectionOptions: object;\r\n // ID of record currently selected in grid\r\n baselineSplGridSelectedId: number;\r\n // When loading an order, first the llFormGrid gets populated,\r\n // then usually a row gets selected, then that triggers\r\n // baselineSplGrid to call an API to get data, then\r\n // bind that data to the grid. Only after that can\r\n // we select the correct row of the baselineSplGrid\r\n // based on what's in the order object.\r\n // That's outside the normal ngInit and load process,\r\n // so set a flag and each time the baselineSplGrid\r\n // load is finished, check to see if it's the first time,\r\n // if so select the correct row.\r\n wasFirstTimeBaselineSplGridSelectionDone: boolean;\r\n bIsSelectedLLFormActive = true;\r\n\r\n // Error message to display on bottom of screen.\r\n errorMessage = '';\r\n\r\n // Tells uploader what URL to post files to (gets set programmatically later)\r\n adminFileUploadAsyncSettings: any = null;\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n // Angular object\r\n @ViewChild('fileUpload')\r\n public fileUpload: UploaderComponent;\r\n\r\n // Angular object\r\n @ViewChild('adminFileUpload')\r\n public adminFileUpload: UploaderComponent;\r\n\r\n // Tells uploader what URL to post files to (gets set programmatically later)\r\n fileUploadAsyncSettings: any = null;\r\n // Pointer to drop element\r\n dropElement: HTMLElement = null;\r\n // Valid extensions to upload\r\n validFileExtensionsStr: string;\r\n showTextboxesForChanges: boolean = true;\r\n isScsIngestFileFeatureVisible: boolean = false;\r\n\r\n orderRecipientsFields = { 'text': 'label', 'value': 'code' };\r\n\r\n // If user clicks \"delete\" for existing\r\n // delivery doc\r\n requestDeletionOfExistingDeliveryDoc: boolean;\r\n\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n\r\n // Valid extensions to upload. In this case only zip files.\r\n adminValidFileExtensionsStr = '.zip';\r\n adminFileMinSize: number;\r\n adminFileMaxSize: number;\r\n\r\n dateFormat: any;\r\n orderStatusesNoDraft: ITermByIndustryUsageAndCategory[];\r\n canSubmitOrder: boolean;\r\n validForm: boolean;\r\n\r\n canModifyOrder: boolean = true;\r\n\r\n public dropEle?: HTMLElement;\r\n countrySelected = 'United States';\r\n isNewOrder: any;\r\n hasFailedFiles: any;\r\n processedFilesCount: any = 0;\r\n metaDataXmlFilePath: string;\r\n metaDataXmlFileName: string;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private authorizationService: AuthorizationService,\r\n private activatedRoute: ActivatedRoute,\r\n private storageManagerService: StorageManagerService,\r\n private router: Router,\r\n private toastr: ToastrService,\r\n private cdRef: ChangeDetectorRef,\r\n private llService: LLFormService,\r\n private utilService: Utilities,\r\n private settingsService: SettingsService,\r\n private featureService: FeatureService,\r\n public orderService: OrderService,\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n \r\n // Get data from the resolver and populate various dropdownlists\r\n this.loadData();\r\n\r\n this.checkOrderType();\r\n this.populateServiceGroupLOV();\r\n this.populateEmployeeLists();\r\n this.getForm('admin', 'confirmedDueDate').markAsPristine();\r\n\r\n this.adminFileUploadAsyncSettings = {\r\n saveUrl: this.orderService.getFileUploadUrl()\r\n };\r\n // This list changes based on order type\r\n if (this.order) {\r\n\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_COMPLETE || this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL) {\r\n this.canModifyOrder = false;\r\n\r\n this.getForm('step1').disable();\r\n this.getForm('step1').updateValueAndValidity();\r\n\r\n this.getForm('step2').disable();\r\n this.getForm('step2').updateValueAndValidity();\r\n\r\n this.getForm('step3').disable();\r\n this.getForm('step3').updateValueAndValidity();\r\n }\r\n\r\n //For existing orders, once the service group is saved to the db, we need to pass the service group to the service type lov\r\n this.populateServiceTypesLOV(this.order.serviceCategory, this.order.serviceGroup);\r\n if (this.canOrderAdmin) {\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.showIngestFile = true;\r\n } else {\r\n this.showIngestFile = false;\r\n }\r\n }\r\n\r\n // Hide grids if not service category Full or Partial\r\n this.showLlFormFunc(this.order.serviceGroup, this.getServiceTypeCode());\r\n // Show order description if service category is LDR, Report, or Publishing\r\n this.showOrderDescription = [this.orderService.SERVICE_GROUP_REPORT, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.order.serviceGroup);\r\n\r\n this.showTextboxesForChanges = (this.order.serviceGroup === this.orderService.SERVICE_GROUP_LABEL_CONVERSION);\r\n \r\n // Only show the textboxes if service group is label conversion\r\n this.showTextboxesForChanges = (this.order.serviceGroup === this.orderService.SERVICE_GROUP_LABEL_CONVERSION);\r\n // Populate form controls with the order data\r\n this.populateFormControls();\r\n\r\n // We have to do another call to get spl xml\r\n this.metaDataXmlFileName = '';\r\n this.metaDataXmlFilePath = '';\r\n if (this.order.dataCollectionForm && this.order.dataCollectionForm > 0) {\r\n this.orderService.getFileStorageSplXml(this.order.dataCollectionForm)\r\n .pipe(catchError(this.orderService.handleOrderObjectError))\r\n .subscribe(response => {\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n if (responseTyped.data) {\r\n this.metaDataXmlFileName = responseTyped.data.fileName;\r\n this.metaDataXmlFilePath = responseTyped.data.filePath;\r\n }\r\n } else {\r\n this.toastr.error('Unexpected error retrieving SPL XML file storage ' + responseTyped.message);\r\n }\r\n },\r\n error => {\r\n this.toastr.error(error.message);\r\n });\r\n }\r\n }\r\n \r\n if (this.order && this.order.dataCollectionForm && this.llFormGridData) {\r\n // First check if the current selected Data Collection form are associated with the latest LL Revision\r\n const currentDataCollectionForm = this.llFormGridData.filter(x => x.llRevisionId === this.order.dataCollectionForm);\r\n if (currentDataCollectionForm && currentDataCollectionForm.length > 0) {\r\n // Loop through all rows of grid data to find match, then force grid selected index\r\n for (let i = 0; i <= this.llFormGridData.length; i++) {\r\n if (this.llFormGridData[i]) {\r\n if (this.llFormGrid && (this.llFormGridData[i].llRevisionId === this.order.dataCollectionForm)) {\r\n this.llFormGrid.selectedRowIndex = i;\r\n this.llFormGridSelectedRowData = this.llFormGridData[i];\r\n break;\r\n }\r\n }\r\n }\r\n if (this.llFormGrid && this.llFormGrid.selectedRowIndex >= 0) {\r\n this.getBaselineSpls(this.llFormGridData[this.llFormGrid.selectedRowIndex].llRevisionId);\r\n }\r\n } else { // The selected dataCollectionFrom is associated with an older LL revisionID\r\n this.bIsSelectedLLFormActive = false;\r\n this.getLLByRevisionId(this.order.dataCollectionForm);\r\n }\r\n }\r\n\r\n\r\n let dataCollectionForm = this.activatedRoute.snapshot.queryParamMap.get('llRevisionId');\r\n if (dataCollectionForm && !this.order && this.canOrderAdmin) {\r\n this.getLLByRevisionId(parseInt(dataCollectionForm));\r\n }\r\n this.fileUploadAsyncSettings = {\r\n saveUrl: this.orderService.getFileUploadUrl()\r\n };\r\n\r\n // Don't show draft status on this page\r\n this.orderStatusesNoDraft = this.orderStatuses.filter(x => x.termValueDescription !== this.orderService.ORDER_STATUS_DRAFT)\r\n\r\n // Populate form controls with the order data\r\n this.populateFormControls();\r\n\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n\r\n // Update grid selection permission\r\n if (this.llFormGrid) {\r\n this.llFormGrid.allowSelection = this.canEdit;\r\n }\r\n if (this.baselineSplGrid) {\r\n this.baselineSplGrid.allowSelection = this.canEdit;\r\n }\r\n\r\n this.isServiceTypeEnabled = this.isServiceCategorySelected && this.canEdit;\r\n this.isDeliveryPriorityEnabled = this.isServiceTypeSelected && this.canEdit;\r\n\r\n if (this.fileUpload) {\r\n (this.fileUpload as any).isForm = false;\r\n }\r\n });\r\n\r\n // Bind drop area to ejs-uploader\r\n this.dropElement = document.getElementById('dropArea');\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.formInit();\r\n // Users can't change companies in the middle of viewing/editing an order\r\n this.utilService.toggleClientDropdownState(true);\r\n this.pageState = this.orderService.PAGE_STATE_LOADING;\r\n\r\n this.order = null;\r\n this.beforeOrderStatus = null;\r\n this.beforeConfirmedDate = null;\r\n this.canEdit = false;\r\n this.canOrderAdmin = false;\r\n this.canRequestCancellation = false;\r\n this.deliveryDoc = null;\r\n this.deliveryDocStatusChange = false;\r\n\r\n this.isServiceCategorySelected = false;\r\n this.freezeChangeEventsTemporarily = false;\r\n\r\n this.baselineSplGridSelectedId = null;\r\n this.wasFirstTimeBaselineSplGridSelectionDone = false;\r\n\r\n // Extract primary key from query string\r\n this.orderRevisionId = this.orderService.getNumberOrNull(this.activatedRoute.snapshot.params.orderRevisionId);\r\n\r\n // The guard says you need read permission to get to this page.\r\n // User might also have edit permissions.\r\n this.canEdit = this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_WRITE_ORDER);\r\n this.canOrderAdmin = this.authorizationService.hasPermission(this.orderService.PERMISSION_ORDER_ADMIN);\r\n\r\n // If new, force no admin\r\n if (!this.orderRevisionId) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // Display settings for grids\r\n this.llFormToolbarOptions = ['Search'];\r\n this.llFormInitialPage = { currentPage: 1, pageSize: 10, pageSizes: [10, 25, 50, 75, 100, 'All'] };\r\n this.llFormGridSelectionOptions = { type: 'Single' };\r\n\r\n this.baselineSplInitialPage = { currentPage: 1, pageSize: 10, pageSizes: [10, 25, 50, 75, 100, 'All'] };\r\n this.baselineSplSelectionOptions = { type: 'Single' };\r\n\r\n this.gridFormatOptions = { type: 'dateTime', format: Utilities.getLocaleDateString() + ' hh:mm a' };\r\n\r\n this.requestDeletionOfExistingDeliveryDoc = false;\r\n\r\n this.setFeatureFlag('ssdp-scs-delivery-ingestion');\r\n\r\n // Pull in file upload validation settings from appsettings.json\r\n const settings = this.settingsService.getSettings();\r\n this.validFileExtensionsStr = settings.ValidFileExtensions;\r\n this.fileMinSize = settings.FileMinSize;\r\n this.fileMaxSize = settings.FileMaxSize;\r\n\r\n this.adminFileMinSize = settings.FileMinSize;\r\n this.adminFileMaxSize = settings.FileMaxSize;\r\n this.dateFormat = Utilities.getLocaleDateString();\r\n\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById('firstDiv');\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n\r\n confirmDlgButtonsBtnClickNo: EmitType = () => {\r\n this.validForm = false;\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.confirmDialog.hide();\r\n }\r\n\r\n confirmDlgButtonsBtnClickYes: EmitType = () => {\r\n this.confirmDialog.hide();\r\n this.saveData(\"SUBMIT\");\r\n }\r\n\r\n confirmDlgButtons: Object[] = [{ click: this.confirmDlgButtonsBtnClickNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.confirmDlgButtonsBtnClickYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n validateAndSaveOrder(action: string) {\r\n if (action === 'SUBMIT' && this.showLlForm &&(this.getForm('step1', 'serviceCategory').value === \"Full Conversion\" || this.getForm('step1', 'serviceCategory').value === \"Partial Conversion\") && !this.llFormGridSelectedRowData) {\r\n this.confirmDialog.show();\r\n } else {\r\n this.saveData(action);\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Save data\r\n // ------------------------------------------------------------\r\n saveData(action: string) {\r\n // Special case - \"Submit Order\" has additional validation rules.\r\n // They apply for fields that are on step 3.\r\n this.processedFilesCount = 0;\r\n\r\n this.pageState = this.orderService.PAGE_STATE_SAVING;\r\n\r\n // Clear out data from prior save\r\n this.postSaveDataMessage = null;\r\n this.postSaveDataNewOrderRevisionId = null;\r\n this.postSaveDataRedirectUrl = null;\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n\r\n\r\n this.errorMessage = '';\r\n\r\n const modifiedByUser = this.storageManagerService.read('userData').name;\r\n\r\n // Request order cancellation is different enough let's handle it separately.\r\n if (action === 'CANCEL') {\r\n this.orderService.requestOrderCancellation(this.canRequestCancellation, this.order, modifiedByUser, '/order', false);\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else {\r\n // stop here if form is invalid\r\n if (this.getForm('step1').invalid) {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('Data is invalid.');\r\n return;\r\n } else {\r\n this.validForm = false;\r\n\r\n let dirty = this.orderService.isAngularFormDirty(this.getForm('step1') as UntypedFormGroup)\r\n || this.orderService.isAngularFormDirty(this.getForm('step2') as UntypedFormGroup)\r\n || this.orderService.isAngularFormDirty(this.getForm('step3') as UntypedFormGroup);\r\n // Also check fields in order admin box\r\n if (this.canOrderAdmin && this.getForm('admin')) {\r\n dirty = dirty || this.orderService.isAngularFormDirty(this.getForm('admin'));\r\n }\r\n // Only save if dirty\r\n if ((dirty || action === 'SUBMIT') && (this.canEdit || this.canOrderAdmin)) {\r\n\r\n\r\n\r\n if (!this.order && action !== 'SUBMIT') {\r\n // New record\r\n this.order = new Order();\r\n this.order.orderStatus = this.orderService.ORDER_STATUS_DRAFT;\r\n } else if (!this.order) {\r\n // New record\r\n this.order = new Order();\r\n }\r\n\r\n // Accept optional query string param for dataCollectionForm\r\n let dataCollectionForm = this.activatedRoute.snapshot.queryParamMap.get('llRevisionId');\r\n if (dataCollectionForm) {\r\n this.order.dataCollectionForm = parseInt(dataCollectionForm);\r\n }\r\n\r\n // Put back in prior values for certain fields\r\n this.order.beforeOrderStatus = this.beforeOrderStatus;\r\n this.order.beforeConfirmedDate = this.beforeConfirmedDate;\r\n\r\n // Before we save any data, check if there are files waiting to be uploaded\r\n let sourceDocsWaitingToBeUploaded = false;\r\n if (this.fileUpload && this.fileUpload.getFilesData() && this.fileUpload.getFilesData().length) {\r\n sourceDocsWaitingToBeUploaded = true;\r\n }\r\n let deliveryDocsWaitingToBeUploaded = false;\r\n if (this.canOrderAdmin && this.adminFileUpload && this.adminFileUpload.getFilesData() && this.adminFileUpload.getFilesData().length > 0) {\r\n deliveryDocsWaitingToBeUploaded = true;\r\n }\r\n\r\n // step1\r\n this.order.serviceCategory = this.getForm('step1', 'serviceCategory').value;\r\n this.order.serviceGroup = this.getForm('step1', 'serviceGroup').value;\r\n this.order.country = this.getForm('step1', 'country')?.value && this.getForm('step1', 'country')?.value?.length ? this.getForm('step1', 'country').value : this.countrySelected;\r\n this.order.splService = this.getServiceTypeObj(this.getForm('step1', 'serviceTypeId').value);\r\n this.order.deliveryPriority = this.getForm('step1', 'deliveryPriority').value;\r\n this.order.orderName = this.getForm('step1', 'orderName').value;\r\n\r\n //step2\r\n this.order.externalTrackingNumber = this.getForm('step2', 'externalTrackingNumber').value;\r\n this.order.orderDescription = this.getForm('step2', 'orderDescription').value;\r\n\r\n // step3\r\n this.order.colOrDrugFactChangeInstruction = this.getForm('step3', 'colOrDrugFactChangeInstruction').value;\r\n this.order.principalDisplayPanelChangeInstruction = this.getForm('step3', 'principalDisplayPanelChangeInstruction').value;\r\n this.order.LLMetadataChangeInstruction = this.getForm('step3', 'LLMetadataChangeInstruction').value;\r\n this.order.additionalInformation = this.getForm('step3', 'comments').value;\r\n\r\n const orderOwners: OrderUser[] = this.orderService.userGuidsToOrderUsers(\r\n this.allEmployeesInCompany, this.getForm('step1', 'drpOrderOwners')?.value, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n const orderRecipients: OrderUser[] = this.orderService.userGuidsToOrderUsers(\r\n this.allEmployeesInCompany, this.getForm('step1', 'drpOrderRecipients')?.value, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT);\r\n\r\n\r\n // Pull the ID of the selected LL Form grid\r\n this.order.dataCollectionForm = null;\r\n if (this.llFormGridSelectedRowData) {\r\n this.order.dataCollectionForm = this.llFormGridSelectedRowData.llRevisionId;\r\n }\r\n\r\n // Pull the ID of the baseline SPL\r\n this.order.baselineWorkFlowOrderId = null;\r\n if (this.baselineSplGridSelectedId) {\r\n this.order.baselineWorkFlowOrderId = this.baselineSplGridSelectedId;\r\n }\r\n\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_ESG) {\r\n this.order.colOrDrugFactChangeInstruction = '';\r\n this.order.principalDisplayPanelChangeInstruction = '';\r\n this.order.LLMetadataChangeInstruction = '';\r\n }\r\n\r\n\r\n\r\n this.order.orderUsers = orderOwners.concat(orderRecipients);\r\n\r\n // Save the admin fields if we're allowed\r\n if (this.order && this.canOrderAdmin) {\r\n this.order.orderStatus = this.getForm('admin', 'orderStatus').value;\r\n if (this.getForm('admin', 'confirmedDueDate').value) {\r\n let confirmedDueDate: any = new Date(this.getForm('admin', 'confirmedDueDate').value).toDateString();\r\n this.order.confirmedDueDate = confirmedDueDate;\r\n }\r\n\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // DeliveryDoc supplied, mark the actual delivery date\r\n let actualDeliveryDate: any = new Date().toDateString();\r\n this.order.actualDeliveryDate = actualDeliveryDate;\r\n } else if (this.deliveryDoc && this.deliveryDoc.isDeleted) {\r\n // DeliveryDoc was requested to be deleted, blank\r\n // out actual delivery date\r\n this.order.actualDeliveryDate = null;\r\n }\r\n }\r\n\r\n if (action === 'SUBMIT') {\r\n this.validForm = true;\r\n\r\n if (!this.validateForSubmission()) {\r\n this.validForm = false;\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n }\r\n\r\n\r\n // Special case for submit\r\n this.order.orderStatus = this.orderService.ORDER_STATUS_PENDING;\r\n } else {\r\n this.validForm = true;\r\n }\r\n\r\n if (this.validForm) {\r\n // Save to database\r\n this.orderService.saveOrder(this.order, modifiedByUser).subscribe((response) => {\r\n // Coerce to specific type\r\n const responseTyped: IApiTypedResult = response as IApiTypedResult;\r\n if (responseTyped.isSuccess) {\r\n // Gather up settings so after async upload finishes we know where to go\r\n this.postSaveDataMessage = responseTyped.message;\r\n this.postSaveDataNewOrderRevisionId = responseTyped.data.orderRevisionId;\r\n this.postSaveDataRedirectUrl = `/order/${this.postSaveDataNewOrderRevisionId}`;\r\n\r\n if (action === 'STEP1' && !this.order.orderId && sourceDocsWaitingToBeUploaded ) {\r\n setTimeout(() => {\r\n this.postSaveWaitingForSourceDocUpload = true;\r\n let fileData = this.fileUpload.getFilesData();\r\n this.order.orderId = responseTyped.data.orderId;\r\n this.fileUpload.upload(fileData);\r\n return;\r\n\r\n }, 100);\r\n } else if (action === 'SUBMIT') {\r\n // Step 1 doesn't have submit, but steps 1, 2, 3 save methods\r\n // are so complex, it makes my life easier to keep the same structure\r\n // across all\r\n setTimeout(() => {\r\n if (sourceDocsWaitingToBeUploaded) {\r\n this.postSaveWaitingForSourceDocUpload = true;\r\n let fileData = this.fileUpload.getFilesData();\r\n this.order.orderId = responseTyped.data.orderId;\r\n this.isNewOrder = true;\r\n this.fileUpload.upload(fileData);\r\n return;\r\n\r\n }\r\n\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.orderService.alert('Order Submission Successful', 'Your order request has been submitted. One of our Project Coordinators is in the process of reviewing your order. Once the order has been reviewed you will receive a confirmation email that includes the expected delivery date.', () => {\r\n this.router.navigate(['/order-tracker']).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n })\r\n });\r\n }, 100);\r\n } else {\r\n // Regular save of Order object successful, now do optional file uploads.\r\n //\r\n // We just set the property on this component postSavedatNewOrderRevisionId\r\n // which is shared with the child component OrderAdminComponent,\r\n // sounds great BUT angular timing messes it up. The child component\r\n // can't see the value immediately. The child component can't do setTimeout\r\n // because the upload is already in progress. So, we make the parent setTimeout\r\n // (sleep) right now so angular child component catches up with bound value for\r\n // and can save the uploaded doc to correct postSavedatNewOrderRevisionId\r\n setTimeout(() => {\r\n\r\n // Now that the order is saved, upload docs to *new* OrderRevisionId from\r\n // potentially sourceDocs and delivery (inside child component)\r\n if (!sourceDocsWaitingToBeUploaded && !deliveryDocsWaitingToBeUploaded) {\r\n // No files to upload, we're done.\r\n this.postSaveData();\r\n } else {\r\n // no sourceDoc files from this page\r\n // Asynchronously upload delivery file from admin child componet\r\n if (deliveryDocsWaitingToBeUploaded) {\r\n // upload the files\r\n this.postSaveWaitingForDeliveryUpload = true;\r\n this.adminFileUpload.upload(this.adminFileUpload.getFilesData()); // this is async\r\n }\r\n // Upload sourceDoc files from this page\r\n if (sourceDocsWaitingToBeUploaded) {\r\n this.postSaveWaitingForSourceDocUpload = true;\r\n this.fileUpload.upload(this.fileUpload.getFilesData()); // this is async\r\n }\r\n // Nothing left for now, wait for events to get triggered.\r\n return;\r\n }\r\n }, 100);\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, responseTyped, 'Order save failed', true)\r\n }\r\n },\r\n error => this.orderService.handleOrderError(this, error, 'Order save failed', true)\r\n );\r\n this.getForm('step1').markAsPristine();\r\n }\r\n } else {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.warning('No changes to save.');\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Submission validation\r\n // ------------------------------------------------------------\r\n\r\n // Before official order submission, validate additional fields\r\n // Regular \"save as draft\" doesn't do this level of validation.\r\n validateForSubmission() {\r\n let message = '';\r\n let isValid = true;\r\n\r\n if (!this.getForm('step1').valid) {\r\n isValid = false;\r\n message += 'Order type data is invalid. ';\r\n }\r\n\r\n // Require order type\r\n if (!this.order.splService ) {\r\n isValid = false;\r\n message += 'Order type cannot be blank. ';\r\n }\r\n\r\n // Require order name\r\n if (!this.order.orderName) {\r\n isValid = false;\r\n message += 'Order name cannot be blank. ';\r\n }\r\n\r\n // Require delivery priority\r\n if (this.order && !this.order.deliveryPriority) {\r\n isValid = false;\r\n message += 'Delivery priority cannot be blank. ';\r\n }\r\n\r\n // Require at least one order owner\r\n let orderOwners: OrderUser[] = [];\r\n if (this.order.orderUsers) {\r\n orderOwners = this.order.orderUsers.filter(x => x.orderUserTypeId === this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n }\r\n if (!orderOwners || (orderOwners.length == 0)) {\r\n isValid = false;\r\n message += 'At least one order owner must be supplied. ';\r\n }\r\n\r\n // Note: data collection form and baseline SPL are never required for submission.\r\n\r\n if (!isValid) {\r\n message = 'Unable to submit order. Please ensure required data is supplied before submitting order. ' + message;\r\n // turn off spinner before message\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.orderService.alert('Order Submission Failed', message);\r\n }\r\n return isValid;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Existing file list\r\n // ------------------------------------------------------------\r\n deleteExistingFile(index: number) {\r\n if (!this.canModifyOrder) {\r\n return;\r\n }\r\n this.order.sourceDocuments[index].isDeleted = true;\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAllAsTouched();\r\n }\r\n\r\n undeleteExistingFile(index: number) {\r\n if (!this.canModifyOrder) {\r\n return;\r\n }\r\n this.order.sourceDocuments[index].isDeleted = false;\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAllAsTouched();\r\n }\r\n\r\n\r\n // ------------------------------------------------------------\r\n // File upload\r\n // ------------------------------------------------------------\r\n\r\n // Trigger a browse window\r\n browseClick(type: string) {\r\n if (!this.canModifyOrder) {\r\n return;\r\n }\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC) {\r\n document.getElementsByClassName('e-file-select-wrap')[0].querySelector('button').click(); return false;\r\n }\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_DELIVERY) {\r\n\r\n let allBrowseButtonWrappers = document.getElementsByClassName('e-file-select-wrap');\r\n let orderAdminBrowseWrapper = allBrowseButtonWrappers[0];\r\n if (allBrowseButtonWrappers.length > 1) {\r\n orderAdminBrowseWrapper = allBrowseButtonWrappers[1];\r\n }\r\n orderAdminBrowseWrapper.querySelector('button').click();\r\n return false;\r\n }\r\n }\r\n\r\n public onSelected: EmitType = (args: any, type: string) => {\r\n // Mark as dirty so we know user has to hit save button\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC && this.canModifyOrder) {\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_DELIVERY && this.canModifyOrder) {\r\n this.getForm('admin').markAsDirty();\r\n this.getForm('admin').markAsTouched();\r\n }\r\n }\r\n\r\n onUploadFailure(args, type: string) {\r\n let response = JSON.parse(args.e.currentTarget.response);\r\n if (response && response.length) {\r\n let reason = response.split('Reason: ');\r\n if (reason.length > 1) {\r\n args.statusText = reason[1];\r\n }\r\n }\r\n\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC) {\r\n this.hasFailedFiles = true;\r\n this.processedFilesCount++;\r\n\r\n this.toastr.error('Error uploading source document ' + args.file.name);\r\n if (this.processedFilesCount == this.fileUpload.getFilesData().length) {\r\n if (this.isNewOrder) {\r\n this.showAlertMessage();\r\n }\r\n }\r\n }\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_DELIVERY) {\r\n this.onOrderAdminFileUpload('failure');\r\n }\r\n }\r\n\r\n \r\n public onSuccess: EmitType = (args: any) => {\r\n // Successfully uploaded one file.\r\n this.processedFilesCount++;\r\n\r\n if (this.processedFilesCount == this.fileUpload.getFilesData().length) {\r\n if (this.isNewOrder) {\r\n this.showAlertMessage();\r\n }\r\n }\r\n \r\n }\r\n\r\n showAlertMessage(){\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n let message = 'Your order request has been submitted. One of our Project Coordinators is in the process of reviewing your order. Once the order has been reviewed you will receive a confirmation email that includes the expected delivery date.';\r\n let navLink = '/order-tracker';\r\n \r\n if (this.hasFailedFiles) {\r\n message = 'Your order request has been submitted, One or more files were invalid, please check the files and try again. One of our Project Coordinators is in the process of reviewing your order. Once the order has been reviewed you will receive a confirmation email that includes the expected delivery date.';\r\n navLink = this.postSaveDataRedirectUrl;\r\n }\r\n\r\n this.orderService.alert('Order Submission Successful',\r\n message, () => {\r\n this.router.navigate([navLink]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n window.scrollTo(0, 0);\r\n })\r\n });\r\n}\r\n\r\n\r\n // Upload sourceDoc file to order, validate settings\r\n public onUploading: EmitType = (args: any, type: string) => {\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC && this.canModifyOrder) {\r\n this.orderService.uploadOrderDoc(args,\r\n this.order.orderId,\r\n this.postSaveDataNewOrderRevisionId,\r\n this,\r\n this.getForm('step2'),\r\n false,\r\n this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC);\r\n }\r\n if (type === this.orderService.UPLOAD_FILE_TYPE_DELIVERY && this.canModifyOrder) {\r\n if (this.order.serviceCategory === this.orderService.SERVICE_CATEGORY_ESG) {\r\n this.ingestFileValue = false;\r\n }\r\n this.orderService.uploadOrderDoc(args,\r\n this.order.orderId,\r\n this.postSaveDataNewOrderRevisionId,\r\n this,\r\n this.getForm('admin'),\r\n false,\r\n this.orderService.UPLOAD_FILE_TYPE_DELIVERY,\r\n this.ingestFileValue);\r\n }\r\n }\r\n\r\n\r\n // Helper function for dealing with angular interaction\r\n // between order types and service types and underlying reference data\r\n getServiceTypeObj(serviceTypeId: string): ILLGenericKeys {\r\n const matches = this.serviceTypesLOV.filter(x => x.code === serviceTypeId);\r\n if (matches) {\r\n // Huh? If these values are null during save I get an error 'source required'\r\n // Set them this way and it works. I don't know why.\r\n matches[0].relatedKeys = [];\r\n matches[0].relatedKeyLabels = '';\r\n return matches[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n setFeatureFlag(name: string) {\r\n this.featureService.IsFeatureEnabled(name)\r\n .subscribe(data => {\r\n if (data) {\r\n this.isScsIngestFileFeatureVisible = data\r\n }\r\n else {\r\n this.isScsIngestFileFeatureVisible = false;\r\n }\r\n }, error => {\r\n // An error has occured. For safe measure, hide the feature.\r\n this.isScsIngestFileFeatureVisible = false;\r\n\r\n // Log to the console since we do not want to alert the user to a feature they may not have\r\n console.log(`An error has occured checking if the following feature is enabled: ${name}`)\r\n });\r\n }\r\n\r\n // After order is saved AND all files are uploaded via order admin\r\n // and Step 2 file uploader (not easy because they are all async)\r\n // then go ahead and give a message and redirect.\r\n // Only step 2 has dual file uploaders - source & delivery,\r\n // but for consistency I'm copy/pasting this function across\r\n // all three steps.\r\n postSaveData() {\r\n // Are we still waiting for sourceDoc upload or delivery upload?\r\n if (this.postSaveWaitingForSourceDocUpload || this.postSaveWaitingForDeliveryUpload) {\r\n // Yup, keep waiting.\r\n return;\r\n }\r\n\r\n this.toastr.success(this.postSaveDataMessage);\r\n\r\n // Force angular to rerun ngOnInit to reload data when navigating to address\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.router.onSameUrlNavigation = 'reload';\r\n\r\n this.router.navigate([this.postSaveDataRedirectUrl]).then(() => {\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n // Clear out admin file upload control if relevant\r\n if (this.canOrderAdmin && this.adminFileUpload) {\r\n this.adminFileUpload.clearAll();\r\n }\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n\r\n formInit() {\r\n this.orderForm = this.fb.group({\r\n step1: this.fb.group({\r\n orderName: ['', { validators: [Validators.required] }],\r\n serviceCategory: [{ value: '', disabled: true }, this.showOrderType ? Validators.required : null],\r\n deliveryPriority: ['', { validators: [Validators.required] }],\r\n serviceTypeId: ['', { validators: [Validators.required] }],\r\n drpOrderOwners: [''],\r\n drpOrderRecipients: [''],\r\n serviceGroup: ['', { validators: [Validators.required] }],\r\n country: [''],\r\n }),\r\n step2: this.fb.group({\r\n externalTrackingNumber: [''],\r\n orderDescription: [''],\r\n llFormGrid: [''],\r\n baselineSplGrid: [''],\r\n fileUpload: ['']\r\n }),\r\n step3: this.fb.group({\r\n colOrDrugFactChangeInstruction: [''],\r\n principalDisplayPanelChangeInstruction: [''],\r\n LLMetadataChangeInstruction: [''],\r\n comments: [''],\r\n }),\r\n admin: this.fb.group({\r\n orderStatus: [''],\r\n confirmedDueDate: [''],\r\n adminFileUpload: [''],\r\n ingestFile: [true]\r\n })\r\n\r\n });\r\n }\r\n\r\n ddwChanged(event) {\r\n if (event.isInteracted) {\r\n this.getForm('step1').markAsDirty();\r\n }\r\n }\r\n\r\n isOrderTypeSelected(): boolean {\r\n return this.getForm('step1', 'serviceCategory').value !== '';\r\n }\r\n\r\n serviceGroupChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n const oldServiceGroup = this.getForm('step1', 'serviceGroup').value;\r\n\r\n this.showTextboxesForChanges = (event.itemData.value === this.orderService.SERVICE_GROUP_LABEL_CONVERSION);\r\n\r\n if (this.order && event.itemData.value !== this.order.serviceGroup) {\r\n if (confirm(\r\n `Are you sure you want to change the service group? This change will blank out dependent values.`)) {\r\n // reset the whole order form\r\n this.getForm('step1').reset();\r\n // Order Owner list and Order Recipient list\r\n this.populateEmployeeLists();\r\n\r\n if (this.order) {\r\n this.getForm('step1').patchValue({\r\n country: this.countrySelected,\r\n serviceGroup: event.itemData.value,\r\n drpOrderOwners: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER),\r\n drpOrderRecipients: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT)\r\n });\r\n this.resetOrderData();\r\n } else {\r\n this.getForm('step1').patchValue({\r\n country: this.countrySelected,\r\n serviceGroup: event.itemData.value,\r\n });\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.freezeChangeEventsTemporarily = true;\r\n this.getForm('step1').patchValue({\r\n country: this.countrySelected,\r\n serviceGroup: oldServiceGroup });\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n return;\r\n }\r\n }\r\n\r\n if (event.itemData) {\r\n this.isServiceGroupSelected = true;\r\n\r\n //check if the service group is ESG or ER or Reports\r\n //then add or remove form field validation for categoruy\r\n if (event.itemData.value === this.orderService.SERVICE_GROUP_ESG || event.itemData.value === this.orderService.SERVICE_GROUP_ER || event.itemData.value === this.orderService.SERVICE_GROUP_REPORT) {\r\n this.getForm('step1', 'serviceCategory').setValidators(null);\r\n this.getForm('step1', 'serviceCategory').updateValueAndValidity();\r\n } else {\r\n // if the validation is removed, then add it back\r\n this.getForm('step1', 'serviceCategory').setValidators(Validators.required);\r\n this.getForm('step1', 'serviceCategory').updateValueAndValidity();\r\n }\r\n\r\n this.getForm('step1', 'serviceCategory').enable();\r\n this.getForm('step1', 'serviceCategory').updateValueAndValidity();\r\n\r\n if (this.order) {\r\n this.order.serviceGroup = event.itemData.value;\r\n }\r\n this.serviceTypesLOV = [];\r\n this.getForm('step1').patchValue({ serviceCategory: '' });\r\n this.checkOrderType(event.itemData.value);\r\n if (!this.showOrderType) {\r\n this.getForm('step1').patchValue({ serviceCategory: '' });\r\n this.isServiceCategorySelected = true;\r\n this.populateServiceTypesLOV(null, event.itemData.value);\r\n this.serviceTypesLOV = this.serviceTypesLOV.filter(x => x.relatedKeyLabels === event.itemData.value);\r\n }\r\n this.updateDeliveryPrioritiesVisibility(null);\r\n // Hide grids if not service category Full or Partial\r\n this.showLlForm = [this.orderService.SERVICE_GROUP_ESG, this.orderService.SERVICE_GROUP_ER, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_LABEL_CONVERSION].includes(event.itemData.value ?? this.order.serviceGroup);\r\n // Show order description if service category is LDR, Report, or Publishing\r\n this.showOrderDescription = [this.orderService.SERVICE_GROUP_REPORT, this.orderService.SERVICE_GROUP_PUBLISHING].includes(event.itemData.value ?? this.order?.serviceGroup);\r\n }\r\n\r\n\r\n }\r\n\r\n showLlFormFunc(serviceGroup, serviceType) {\r\n if (serviceGroup === this.orderService.SERVICE_GROUP_REPORT) {\r\n if([\"SPL-LDR-KIT\", \"SPL-LDR-REG\"].includes(serviceType)) {\r\n this.showLlForm = true;\r\n } else {\r\n this.showLlForm = false;\r\n }\r\n } else {\r\n this.showLlForm = [this.orderService.SERVICE_GROUP_ESG, this.orderService.SERVICE_GROUP_ER, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_LABEL_CONVERSION].includes(serviceGroup);\r\n }\r\n if (this.countrySelected == 'Canada') {\r\n this.showLlForm = false;\r\n }\r\n }\r\n\r\n serviceCategoryChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n const oldServiceCategory = this.getForm('step1', 'serviceCategory').value;\r\n const newServiceCategory = event.value;\r\n let isDeliveryPrioritySelected = false;\r\n if (this.getForm('step1', 'deliveryPriority') && this.getForm('step1', 'deliveryPriority').value) {\r\n isDeliveryPrioritySelected = true;\r\n }\r\n // If service category changes\r\n // blank out dependent fields service type and delivery priority.\r\n // But don't bother if serviceType and deliveryPriority are still blank.\r\n if ((this.isServiceTypeSelected || isDeliveryPrioritySelected)\r\n && oldServiceCategory\r\n && (oldServiceCategory !== newServiceCategory)) {\r\n // Confirm with user that we're blanking out dependent fields\r\n if (!confirm('Are you sure you want to change the type of order? This change will blank out dependent values such as service type and delivery priority.')) {\r\n setTimeout(() => {\r\n this.freezeChangeEventsTemporarily = true;\r\n this.getForm('step1').patchValue({ serviceCategory: oldServiceCategory });\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n return;\r\n }\r\n\r\n // User does want to continue with the change\r\n this.getForm('step1').patchValue({\r\n serviceTypeId: null,\r\n deliveryPriority: null\r\n });\r\n this.isServiceTypeSelected = false;\r\n\r\n this.isServiceCategorySelected = true;\r\n if (newServiceCategory) {\r\n var serviceGroup = this.getForm('step1', 'serviceGroup').value;\r\n this.populateServiceTypesLOV(newServiceCategory, serviceGroup);\r\n this.populateServiceGroupLOV();\r\n }\r\n\r\n this.updateDeliveryPrioritiesVisibility(null);\r\n } else {\r\n this.isServiceCategorySelected = true;\r\n if (newServiceCategory) {\r\n var serviceGroup = this.getForm('step1', 'serviceGroup').value;\r\n this.populateServiceTypesLOV(newServiceCategory, serviceGroup);\r\n }\r\n }\r\n\r\n if (this.canOrderAdmin) {\r\n if (newServiceCategory === this.orderService.SERVICE_CATEGORY_FULL_CONVERSION || newServiceCategory === this.orderService.SERVICE_CATEGORY_PARTIAL_CONVERSION) {\r\n this.showIngestFile = true;\r\n } else {\r\n this.showIngestFile = false;\r\n }\r\n }\r\n\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach(col => {\r\n switch (args.currentFilteringColumn) {\r\n case 'modifiedDate':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Track if a service type is selected\r\n serviceTypeChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.isServiceTypeSelected = false;\r\n if (event.itemData) {\r\n this.isServiceTypeSelected = true;\r\n const serviceCategory = this.getForm('step1', 'serviceCategory').value;\r\n const oldServiceType = this.getForm('step1', 'serviceTypeId').value;\r\n const newServiceType = event.value;\r\n let isDeliveryPrioritySelected = false;\r\n if (this.getForm('step1', 'deliveryPriority').value) {\r\n isDeliveryPrioritySelected = true;\r\n }\r\n\r\n // If delivery priority was already selected,\r\n // and we are changing service type,\r\n // confirm with user\r\n // that we're about to wipe it out\r\n if (isDeliveryPrioritySelected\r\n && oldServiceType\r\n && (oldServiceType !== newServiceType)) {\r\n\r\n this.freezeChangeEventsTemporarily = true;\r\n if (confirm(\r\n `Are you sure you want to change the serviceType? This change will blank out dependent values, namely the delivery priority.`)) {\r\n // User chose OK\r\n // Delivery priority depends on service type, so blank it out upon change\r\n this.getForm('step1').patchValue({\r\n deliveryPriority: null\r\n });\r\n this.updateDeliveryPrioritiesVisibility(newServiceType);\r\n this.showLlFormFunc(this.getForm('step1', 'serviceGroup').value, newServiceType);\r\n\r\n this.freezeChangeEventsTemporarily = false;\r\n } else {\r\n // User chose cancel\r\n // Undo selection\r\n setTimeout(() => {\r\n this.getForm('step1').patchValue({ serviceTypeId: oldServiceType });\r\n this.isServiceTypeSelected = true;\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n }\r\n } else {\r\n // Don't need to confirm anything with user because dependent fields\r\n // are blank, go ahead and update delivery priorities visibility\r\n this.updateDeliveryPrioritiesVisibility(newServiceType);\r\n this.showLlFormFunc(this.getForm('step1', 'serviceGroup').value, newServiceType);\r\n\r\n }\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Order admin is a subcomponent, and emits up certain events\r\n // usually about the delivery doc\r\n // ------------------------------------------------------------\r\n onOrderAdminFileUpload(event) {\r\n if (event === 'success') {\r\n // Successfully uploaded delivery doc\r\n this.postSaveWaitingForDeliveryUpload = false;\r\n this.postSaveData();\r\n } else if (event === 'failure') {\r\n // Attempted to upload delivery doc but failed\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n this.toastr.error('Unexpected error uploading delivery document');\r\n } else if (event === 'deleteExistingDeliveryDoc') {\r\n // Request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = true;\r\n this.deliveryDoc.isDeleted = true;\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'undeleteExistingDeliveryDoc') {\r\n // Undo request that existing delivery doc be deleted with next save action\r\n if (this.deliveryDoc) {\r\n this.deliveryDocStatusChange = false;\r\n this.deliveryDoc.isDeleted = false;\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n } else if (event === 'onIngestFileChange') {\r\n\r\n if (this.deliveryDoc) {\r\n this.deliveryDoc.ingestFile = this.ingestFileValue;\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Load data\r\n // ------------------------------------------------------------\r\n\r\n // Get data from the resolver and populate various dropdownlists\r\n // and main order fields and store it in class state.\r\n loadData(): void {\r\n // Get data from resolver used in routing module\r\n const orderDataResolved = this.activatedRoute.snapshot.data['orderDataResolved'];\r\n if (orderDataResolved.error) {\r\n this.toastr.error(orderDataResolved.error);\r\n } else {\r\n if (orderDataResolved) {\r\n // OrderResolver returns a fixed array of data.\r\n\r\n // Employees of this company\r\n if (!orderDataResolved[0]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get list of employees in company', false);\r\n }\r\n this.allEmployeesInCompany = orderDataResolved[0];\r\n\r\n // Reference lists\r\n if (!orderDataResolved[1]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get reference data (service type)', false);\r\n }\r\n this.serviceCategoryToServiceTypeAssoc = orderDataResolved[1];\r\n\r\n if (!orderDataResolved[2]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get reference data (priority)', false);\r\n }\r\n this.serviceTypeToDeliveryPriorityAssoc = orderDataResolved[2];\r\n\r\n // Main order\r\n if (!orderDataResolved[3] && this.orderRevisionId) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order', false);\r\n }\r\n\r\n let orderApiResult: IApiTypedResult = orderDataResolved[3];\r\n if (orderApiResult) {\r\n if (orderApiResult.isSuccess) {\r\n this.order = orderApiResult.data;\r\n if (this.order) {\r\n this.countrySelected = this.order.country;\r\n }\r\n // Special case - if order owner contains a record that is not present, display warning on UI\r\n this.inactiveOrderOwnersList = this.orderService.GetInactiveOrderUsers(this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER);\r\n // If order email recipient contains a record that is not present, display warning on UI\r\n this.inactiveOrderEmailRecipientList = this.orderService.GetInactiveOrderUsers(this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT);;\r\n\r\n // Remember original values for certain fields\r\n this.beforeOrderStatus = this.order.orderStatus;\r\n this.beforeConfirmedDate = this.order.confirmedDueDate;\r\n\r\n // Only user with \"SSDP.CanUpateOrder\" permission can edit an order if the order status is \"Order Delivered - Awaiting Approval\" or \"completed\"\r\n if (!this.canOrderAdmin && (this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL\r\n || this.order.orderStatus === this.orderService.ORDER_STATUS_ORDER_COMPLETE)) {\r\n this.canEdit = false;\r\n }\r\n\r\n // Don't allow canOrderAdmin if draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canOrderAdmin = false;\r\n }\r\n\r\n // // Can only submit if it's draft\r\n if (this.order.orderStatus === this.orderService.ORDER_STATUS_DRAFT) {\r\n this.canSubmitOrder = true;\r\n }\r\n\r\n // If still canOrderAdmin, recaption save\r\n if (this.canOrderAdmin) {\r\n this.saveButtonCaption = 'Update Order';\r\n }\r\n\r\n // Non-admin users can cancel pending or inprocess if they have the perm\r\n if (!this.canOrderAdmin\r\n && ([this.orderService.ORDER_STATUS_PENDING, this.orderService.ORDER_STATUS_IN_PROCESS].indexOf(this.order.orderStatus) > -1)\r\n && this.authorizationService.hasPermission(this.orderService.PERMISSION_CAN_CANCEL_ORDER)) {\r\n this.canRequestCancellation = true;\r\n }\r\n\r\n // Pull out the deliveryDoc and sourceDocs separately\r\n // order.sourceDocuments is an array mixed with both deliveryDoc and SourceDocs.\r\n if (this.order && this.order.sourceDocuments) {\r\n this.deliveryDoc = null;\r\n let deliveryDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n if (deliveryDocs && deliveryDocs.length > 0) {\r\n this.deliveryDoc = deliveryDocs[0];\r\n }\r\n // Step 2 - sourceDocs\r\n (this.order.sourceDocuments as any).find(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_DELIVERY);\r\n this.sourceDocs = this.order.sourceDocuments.filter(x => x.mediaFileType === this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC);\r\n\r\n }\r\n } else {\r\n this.orderService.handleOrderError(this, orderApiResult, 'Failed to load order', false);\r\n }\r\n } else {\r\n this.canSubmitOrder = true;\r\n }\r\n\r\n // Update LL forms array (take only active records)\r\n if (orderDataResolved[4]) {\r\n this.llFormGridData = orderDataResolved[4].data.filter(x => x.isDraftMode === false);\r\n }\r\n\r\n if (!orderDataResolved[5]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to load order statuses', false);\r\n }\r\n this.orderStatuses = orderDataResolved[5];\r\n\r\n if (!orderDataResolved[7]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get country service group data', false);\r\n }\r\n this.countryServiceGroup = orderDataResolved[7];\r\n\r\n if (!orderDataResolved[8]) {\r\n this.orderService.handleOrderError(this, null, 'Failed to get country service type data', false);\r\n }\r\n this.countryServiceType = orderDataResolved[8];\r\n }\r\n }\r\n }\r\n\r\n // Populate list of employees in Order Owners and Order Recipients lists\r\n populateEmployeeLists(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n if (this.allEmployeesInCompany) {\r\n // Reformat from user objects list to pulldown list of ILLGenericKeys\r\n this.orderOwnersLOV = this.allEmployeesInCompany\r\n .map(emp => new class implements ILLGenericKeys {\r\n code = emp.userGuid;\r\n label = emp.firstName + ' ' + emp.lastName;\r\n id = null;\r\n name = null;\r\n relatedKeyLabels = null;\r\n relatedKeys = null;\r\n });\r\n // Sort by name\r\n this.orderOwnersLOV.sort((a, b) => a.label.localeCompare(b.label));\r\n // Copy same employees to email list (for Object to \"any\" to use newer .assign method without VS warning\r\n this.orderRecipientsLOV = this.orderOwnersLOV.map(x => (Object as any).assign({}, x));\r\n }\r\n }\r\n\r\n // Populate the order data\r\n populateFormControls(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n\r\n if (this.orderRevisionId == null) {\r\n // New record, use defaults\r\n const userGuid = this.storageManagerService.read('userGuid');\r\n this.getForm('step1').patchValue({\r\n serviceCategory: '',\r\n serviceTypeId: null,\r\n deliveryPriority: this.orderService.DELIVERY_PRIORITY_REGULAR,\r\n orderName: null,\r\n drpOrderOwners: [userGuid],\r\n drpOrderRecipients: [],\r\n serviceGroup: '',\r\n country: this.countrySelected\r\n });\r\n } else {\r\n if (this.order.serviceGroup && this.canModifyOrder) {\r\n this.getForm('step1', 'serviceCategory').enable();\r\n this.getForm('step1', 'serviceCategory').updateValueAndValidity();\r\n }\r\n this.countrySelected = this.order && this.order?.country && this.order?.country?.length ? this.order?.country : this.countrySelected;\r\n this.getForm('step1').patchValue({\r\n serviceCategory: this.order ? this.order.serviceCategory : 0,\r\n serviceTypeId: this.getServiceTypeCode(),\r\n serviceGroup: this.order ? this.order.serviceGroup : null,\r\n country: this.order && this.order?.country && this.order?.country?.length ? this.order?.country : this.countrySelected,\r\n deliveryPriority: this.order ? this.order.deliveryPriority : 0,\r\n orderName: this.order.orderName,\r\n // Feed a string array of userGuids to pulldown lists\r\n drpOrderOwners: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER),\r\n drpOrderRecipients: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT)\r\n });\r\n\r\n this.getForm('step2').patchValue({\r\n externalTrackingNumber: this.order.externalTrackingNumber,\r\n orderDescription: this.order.orderDescription,\r\n // Can't patch grids here, but you can set row index in AfterViewInit\r\n });\r\n\r\n this.getForm('step3').patchValue({\r\n colOrDrugFactChangeInstruction: this.order.colOrDrugFactChangeInstruction,\r\n principalDisplayPanelChangeInstruction: this.order.principalDisplayPanelChangeInstruction,\r\n LLMetadataChangeInstruction: this.order.LLMetadataChangeInstruction,\r\n comments: this.order.additionalInformation\r\n });\r\n\r\n this.getForm('admin').patchValue({\r\n orderStatus: this.order.orderStatus,\r\n confirmedDueDate: this.order.confirmedDueDate,\r\n });\r\n }\r\n\r\n // Track if certain controls are filled out because other controls' enabled state depend on them\r\n if (this.getForm('step1', 'serviceCategory').value) {\r\n this.isServiceCategorySelected = true;\r\n } else {\r\n this.isServiceCategorySelected = false;\r\n }\r\n if (this.getForm('step1', 'serviceTypeId').value) {\r\n this.isServiceTypeSelected = true;\r\n } else {\r\n this.isServiceTypeSelected = false;\r\n }\r\n if (this.getForm('step1', 'serviceGroup').value) {\r\n this.isServiceGroupSelected = true;\r\n }\r\n else {\r\n this.isServiceGroupSelected = false;\r\n }\r\n\r\n if (this.order) {\r\n this.updateDeliveryPrioritiesVisibility(this.getServiceTypeCode());\r\n }\r\n }\r\n\r\n // download sourceDoc\r\n downloadFile(filePath: string, fileName: string) {\r\n this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n this.orderService.postDownloadFile(response, fileName);\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n }\r\n\r\n // Populate pulldown list of serviceType based on serviceCategory.\r\n populateServiceTypesLOV(serviceCategory: string, serviceGroup: string): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n this.serviceTypesLOV = [];\r\n let countryServiceTypesCodes = this.countryServiceType .filter(x => x.parentTermValueName === this.countrySelected)\r\n .map(x => x.childTermValueCode);\r\n\r\n // If all data present,\r\n // return a list of ILLGenericKeys filtered\r\n // from the list of IBusinessOperationQualifier by parentCode===serviceCategory\r\n if (this.serviceCategoryToServiceTypeAssoc) {\r\n this.serviceTypesLOV = this.serviceCategoryToServiceTypeAssoc\r\n .filter(x => {\r\n const matchesParentFilter = x.parentTermListName === serviceGroup;\r\n const matchesServiceType = x.childTermListName === 'Service Type';\r\n const matchesServiceCategory = serviceCategory ? x.parentTermValueName === serviceCategory : true;\r\n const matchesCountryServiceCat = countryServiceTypesCodes ? countryServiceTypesCodes?.includes(x.childTermValueCode) : true;\r\n return matchesParentFilter && matchesServiceType && matchesServiceCategory && matchesCountryServiceCat;\r\n })\r\n .map(x =>\r\n new class implements ILLGenericKeys {\r\n code = x.childTermValueCode;\r\n label = x.childTermValueName;\r\n id = null;\r\n name = null;\r\n relatedKeyLabels = x.parentTermListName;\r\n relatedKeys = null;\r\n })\r\n .sort((a, b) => a.label.localeCompare(b.label));\r\n }\r\n }\r\n\r\n checkOrderType(serviceGroup: string = null) {\r\n if (serviceGroup) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(serviceGroup);\r\n }\r\n else if (this.orderForm.get(\"step1.serviceGroup\").value) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.orderForm.get(\"step1.serviceGroup\").value);\r\n } else if (this.order?.serviceGroup) {\r\n this.showOrderType = [this.orderService.SERVICE_GROUP_LABEL_CONVERSION, this.orderService.SERVICE_GROUP_REMS, this.orderService.SERVICE_GROUP_PUBLISHING].includes(this.order.serviceGroup);\r\n } else {\r\n this.showOrderType = true;\r\n }\r\n }\r\n\r\n // Populate pulldown list of serviceType based on serviceCategory.\r\n populateServiceGroupLOV(): void {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n this.serviceGroupsLOV = [];\r\n this.filterServiceGroup();\r\n if (this.order)\r\n {\r\n this.orderForm.get(\"step1.serviceGroup\").setValue(this.order.serviceGroup);\r\n }\r\n\r\n }\r\n\r\n // Hide certain delivery priorities based on certain service catgories and service types\r\n updateDeliveryPrioritiesVisibility(serviceType: string) {\r\n // Start by showing all delivery priorities\r\n this.hasRegularPriority = true;\r\n this.hasExpeditedPriority = true;\r\n this.hasEmergencyPriority = true;\r\n\r\n // use ref data to determine all delivery priorities.\r\n if (serviceType) {\r\n\r\n let currentDeliveryPriority = null;\r\n if (this.getForm('step1', 'deliveryPriority') && this.getForm('step1', 'deliveryPriority').value) {\r\n currentDeliveryPriority = this.getForm('step1', 'deliveryPriority').value;\r\n }\r\n\r\n // If REGULAR priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_REGULAR)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_REGULAR) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.getForm('step1').patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasRegularPriority = false;\r\n }\r\n\r\n // If EXPEDITED priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_EXPEDITED)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_EXPEDITED) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.getForm('step1').patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasExpeditedPriority = false;\r\n }\r\n\r\n // If EMERGENCY priority is not supported for this service type, hide it\r\n if (!this.serviceTypeToDeliveryPriorityAssoc\r\n .some(x => x.parentTermValueCode === serviceType && x.childTermValueCode === this.orderService.DELIVERY_PRIORITY_EMERGENCY)) {\r\n if (currentDeliveryPriority === this.orderService.DELIVERY_PRIORITY_EMERGENCY) {\r\n // Make sure we don't hide the currently selected delivery priority value\r\n this.getForm('step1').patchValue({\r\n deliveryPriority: ''\r\n });\r\n }\r\n this.hasEmergencyPriority = false;\r\n }\r\n }\r\n }\r\n\r\n getForm(section: string, field: string = null): UntypedFormGroup {\r\n return field ? this.orderForm.get(section).get(field) as UntypedFormGroup : this.orderForm.get(section) as UntypedFormGroup;\r\n }\r\n\r\n resetOrderData() {\r\n this.order.baselineOrderId = null;\r\n this.order.deliveryPriority = null;\r\n this.order.splService = new ILLGenericKeys();\r\n this.order.actualDeliveryDate = null;\r\n this.order.confirmedDueDate = null;\r\n this.order.productName = null;\r\n this.order.dataCollectionForm = null;\r\n this.order.additionalInformation = null;\r\n this.order.acctMgrInstructions = null;\r\n this.order.sourceDocuments = [];\r\n this.order.comments = null;\r\n this.order.commentsChangeUser = null;\r\n this.order.commentsChangeDate = null;\r\n this.order.orderComments = [];\r\n this.order.orderName = null;\r\n this.order.colOrDrugFactChangeInstruction = null;\r\n this.order.principalDisplayPanelChangeInstruction = null;\r\n this.order.LLMetadataChangeInstruction = null;\r\n this.order.orderDescription = null;\r\n this.order.serviceCategory = null;\r\n this.order.serviceGroup = null;\r\n this.order.country = null;\r\n }\r\n\r\n // Display detail of a single LL form in a separate tab\r\n viewLLForm(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.router.navigate([])\r\n .then(result => {\r\n window.open(`/products/ll-form/${llRevisionId}`, '_blank');\r\n });\r\n }\r\n }\r\n\r\n toHtml(input): any {\r\n return input ? new DOMParser().parseFromString(input, 'text/html').documentElement.textContent : '';\r\n }\r\n\r\n // Get LL form high leve detail by revision Id\r\n getLLByRevisionId(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.llService.getLLHighLevlInfoById(llRevisionId.toString()).subscribe(data => {\r\n if (data && data['data']) {\r\n this.llFormGridSelectedRowData = data['data'];\r\n this.getBaselineSpls(llRevisionId);\r\n }\r\n },\r\n error => {\r\n this.baselineSplLoading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Grids\r\n // ------------------------------------------------------------\r\n llFormGridRowSelected(args: RowSelectEventArgs) {\r\n if (!this.canModifyOrder) {\r\n this.llFormGrid.clearSelection();\r\n return;\r\n }\r\n else if (args.isInteracted) {\r\n this.llFormGridSelectedRowData = null;\r\n this.bIsSelectedLLFormActive = true;\r\n const selectedRecords: any[] = this.llFormGrid.getSelectedRecords();\r\n if (selectedRecords && selectedRecords.length > 0) {\r\n this.llFormGridSelectedRowData = selectedRecords[0];\r\n this.getBaselineSpls(selectedRecords[0].llRevisionId);\r\n }\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n }\r\n\r\n llFormGridRowDeselected(args: RowDeselectEventArgs) {\r\n this.llFormGridSelectedRowData = null;\r\n this.getForm('step2', 'llFormGrid').markAsDirty();\r\n this.getBaselineSpls(null);\r\n if (args.isInteracted) {\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n }\r\n\r\n baselineSplGridRowSelected(args: RowSelectEventArgs) {\r\n if (!this.canModifyOrder) {\r\n this.baselineSplGrid.clearSelection();\r\n return;\r\n }\r\n this.baselineSplGridSelectedId = null;\r\n const selectedRecords: any[] = this.baselineSplGrid.getSelectedRecords();\r\n if (selectedRecords && selectedRecords.length > 0 && selectedRecords[0].baselineWorkFlowOrderId) {\r\n this.baselineSplGridSelectedId = selectedRecords[0].baselineWorkFlowOrderId;\r\n }\r\n else if (selectedRecords && selectedRecords.length > 0 && !selectedRecords[0].baselineWorkFlowOrderId) {\r\n this.baselineSplGridSelectedId = selectedRecords[0].orderRevisionId;\r\n }\r\n if (args.isInteracted) {\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n }\r\n\r\n baselineSplGridRowDeselected(args: RowDeselectEventArgs) {\r\n this.baselineSplGridSelectedId = null;\r\n if (args.isInteracted) {\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n }\r\n\r\n getServiceTypeCode(): string {\r\n let code = null;\r\n if (this.order && this.order.splService) {\r\n // The preferred method, match by code, but not used as of 6/15/2020\r\n // Otherwise try to match by label.\r\n if (this.order.splService.code) {\r\n code = this.order.splService.code;\r\n } else if (this.order.splService.label) {\r\n // Force array to \"any\" to use newer \".find\" method without VS error\r\n const match = (this.serviceTypesLOV as any).find(x => x.label === this.order.splService.label);\r\n if (match) {\r\n code = match.code;\r\n }\r\n }\r\n }\r\n return code;\r\n }\r\n\r\n // Baseline SPL grid is dependent on LL form grid\r\n // Everytime someone clicks on ll form grid, do a database lookup\r\n // to get corresponding baseline spls\r\n getBaselineSpls(llRevisionId: number) {\r\n if (llRevisionId) {\r\n this.baselineSplGridData = null;\r\n\r\n this.orderService.getBaselineSplData(llRevisionId).subscribe(data => {\r\n if (data && data['data'].length > 0) {\r\n this.baselineSplLoading = false;\r\n this.baselineSplGridData = data['data'];\r\n this.baselineSplRecordCount = this.baselineSplGridData.length;\r\n // See comments where this field is defined for explanation\r\n if (this.order && this.order.baselineWorkFlowOrderId) {\r\n if (!this.wasFirstTimeBaselineSplGridSelectionDone) {\r\n this.wasFirstTimeBaselineSplGridSelectionDone = true;\r\n // Loop through all rows of baseline Spl data to find match, then force grid selected index\r\n for (let i = 0; i <= this.baselineSplGridData.length; i++) {\r\n if (this.baselineSplGridData[i].baselineWorkFlowOrderId === this.order.baselineWorkFlowOrderId && this.baselineSplGridData[i].baselineWorkFlowOrderId) {\r\n this.baselineSplGrid.selectedRowIndex = i;\r\n this.baselineSplGridSelectedId = this.baselineSplGridData[i].baselineWorkFlowOrderId;\r\n this.cdRef.detectChanges();\r\n break;\r\n } else if (this.baselineSplGridData[i].orderRevisionId === this.order.baselineWorkFlowOrderId) {\r\n this.baselineSplGrid.selectedRowIndex = i;\r\n this.baselineSplGridSelectedId = this.baselineSplGridData[i].orderRevisionId;\r\n this.cdRef.detectChanges();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n error => {\r\n this.baselineSplLoading = false;\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n }\r\n );\r\n }\r\n }\r\n\r\n // Called after *ALL* files or uploaded, or after one file has an error\r\n // (yeah that seems weird, we have to do lots of \"if\" statements to sort through that)\r\n public onActionComplete: EmitType = (args: any, type: string) => {\r\n let atLeastOneGoodUpload = false;\r\n if (args && args.fileData) {\r\n for (const myFileData of args.fileData) {\r\n if ((myFileData as any).statusCode === \"2\") {\r\n // Got at least one good upload\r\n atLeastOneGoodUpload = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (atLeastOneGoodUpload && type == this.orderService.UPLOAD_FILE_TYPE_DELIVERY) {\r\n // Successfully uploaded all files. Finished, navigate to next page.\r\n this.onOrderAdminFileUpload('success');\r\n }\r\n\r\n if (atLeastOneGoodUpload && type == this.orderService.UPLOAD_FILE_TYPE_SOURCE_DOC) {\r\n // We got the files, stop waiting for them.\r\n this.postSaveWaitingForSourceDocUpload = false;\r\n this.postSaveData();\r\n }\r\n this.pageState = this.orderService.PAGE_STATE_READY;\r\n }\r\n\r\n onIngestFilechanged(event: boolean) {\r\n this.ingestFileValue = event;\r\n }\r\n\r\n onIngestFileChange(event) {\r\n this.ingestFileValue = !this.ingestFileValue;\r\n this.onOrderAdminFileUpload('onIngestFileChange');\r\n this.getForm('admin').markAsDirty();\r\n this.getForm('admin').markAsTouched();\r\n }\r\n\r\n deleteExistingDeliveryFile() {\r\n // Ask parent component to delete delivery doc when we save\r\n this.requestDeletionOfExistingDeliveryDoc = true;\r\n this.onOrderAdminFileUpload('deleteExistingDeliveryDoc');\r\n this.getForm('admin').markAsDirty();\r\n this.getForm('admin').markAsTouched();\r\n }\r\n\r\n undeleteExistingDeliveryFile() {\r\n // Ask parent component to \"never mind\" about deleting the delivery doc\r\n // Haven't save yet, so the deletion was still pending\r\n this.requestDeletionOfExistingDeliveryDoc = false;\r\n this.onOrderAdminFileUpload('deleteExistingDeliveryDoc');\r\n this.getForm('admin').markAsDirty();\r\n this.getForm('admin').markAsTouched();\r\n }\r\n\r\n // Add CORS headers - for file uploads\r\n public addCorsHeaders(args: any) {\r\n args.currentRequest.setRequestHeader('Access-Control-Allow-Origin', '*');\r\n }\r\n\r\n tooltipValue(args) {\r\n\r\n let grid;\r\n let currentGridId;\r\n\r\n let tooltip: TooltipComponent;\r\n\r\n currentGridId = args.event.currentTarget.firstChild.id;\r\n\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n\r\n if (currentGridId) {\r\n switch (currentGridId) {\r\n case 'llFormGrid':\r\n grid = this.llFormGrid;\r\n tooltip = this.tooltipDC;\r\n break;\r\n case 'baselineSplGrid':\r\n grid = this.baselineSplGrid;\r\n tooltip = this.tooltipSPL;\r\n break;\r\n }\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n tooltip.cssClass = 'customTooltip';\r\n tooltip.content = this.toBrackets(rowData[(rowInfo.column as any).field]);\r\n }\r\n }\r\n }\r\n\r\n isDeliveryPrioritySelected(): boolean {\r\n return this.getForm('step1', 'deliveryPriority').value !== '';\r\n }\r\n\r\n public onCreated() {\r\n if (this.fileUpload) {\r\n (this.fileUpload as any).isForm = false;\r\n }\r\n }\r\n\r\n public onRemove() {\r\n this.getForm('step2').markAsDirty();\r\n this.getForm('step2').markAsTouched();\r\n }\r\n\r\n countryChanged: EmitType = (event: any) => {\r\n // Prevent unwanted nested change events\r\n if (this.freezeChangeEventsTemporarily) {\r\n return;\r\n }\r\n\r\n\r\n if (!this.serviceCategoryToServiceTypeAssoc) {\r\n return;\r\n }\r\n\r\n var fieldsNotEmpty = this.getForm('step1', 'serviceGroup').value ? true: false;\r\n if (fieldsNotEmpty && event.itemData.value !== this.countryChanged) {\r\n if (confirm(\r\n `Are you sure you want to change the country? This change will blank out dependent values.`)) {\r\n const currentCountry = event.itemData.value;\r\n // reset the whole order form\r\n this.getForm('step1').reset();\r\n // Order Owner list and Order Recipient list\r\n const userGuid = this.storageManagerService.read('userGuid');\r\n this.populateEmployeeLists();\r\n if (this.order) {\r\n this.getForm('step1').patchValue({\r\n country: currentCountry,\r\n drpOrderOwners: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_OWNER),\r\n drpOrderRecipients: this.orderService.getUserGuidsFromOrderUsers(\r\n this.allEmployeesInCompany, this.order.orderUsers, this.orderService.ORDER_USER_TYPE_ORDER_RECIPIENT)\r\n });\r\n this.resetOrderData();\r\n } else {\r\n this.getForm('step1').patchValue({\r\n country: currentCountry,\r\n drpOrderOwners: [userGuid],\r\n drpOrderRecipients: []\r\n });\r\n }\r\n } else {\r\n setTimeout(() => {\r\n this.freezeChangeEventsTemporarily = true;\r\n this.getForm('step1').patchValue({ country: this.countrySelected });\r\n this.freezeChangeEventsTemporarily = false;\r\n }, 200);\r\n return;\r\n }\r\n }\r\n this.countrySelected = event.itemData.value;\r\n this.filterServiceGroup();\r\n \r\n }\r\n\r\n filterServiceGroup() {\r\n if (this.countrySelected != 'United States') {\r\n this.serviceGroupsLOV = this.countryServiceGroup\r\n .filter((value) => value.parentTermValueName === this.countrySelected)\r\n .map(x => x.childTermListName)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n } else {\r\n this.serviceGroupsLOV = this.serviceCategoryToServiceTypeAssoc\r\n .map(x => x.parentTermListName)\r\n .filter((value, index, self) => self.indexOf(value) === index)\r\n .sort((a, b) => a.localeCompare(b));\r\n }\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Destroy\r\n // ------------------------------------------------------------\r\n ngOnDestroy(): void {\r\n this.utilService.toggleClientDropdownState(false);\r\n }\r\n\r\n toBrackets(str) {\r\n const retVal = str.split('<').join('<')\r\n .split('>').join('>')\r\n .split('&').join('&');\r\n return retVal;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Edit Order

\r\n
\r\n
Revised Due Date:\t{{(order ? order.confirmedDueDate : null) | dateToLocale }}
\r\n |\r\n
Actual Delivery Date: {{(order? order.actualDeliveryDate : null) | dateToLocale }}
\r\n |\r\n
Tracking Number: {{order ? order.externalTrackingNumber : null}}
\r\n |\r\n
Status: {{order ? order.orderStatus : ''}}
\r\n
\r\n
\r\n

Add Order

\r\n\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Expedited (fees apply)\"\r\n [value]=\"orderService.DELIVERY_PRIORITY_EXPEDITED\"\r\n aria-label=\"Expedited\"\r\n tabindex=\"0\"\r\n role=\"radiogroup\"\r\n [checked]=\"getForm('step1', 'deliveryPriority').value == orderService.DELIVERY_PRIORITY_EXPEDITED\"\r\n name=\"deliveryPriority\"\r\n formControlName=\"deliveryPriority\"\r\n [disabled]=\"!(isServiceTypeSelected && this.canEdit) || !canModifyOrder\"\r\n labelPosition=\"After\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n

Optional tracking number

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n

Description

\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n

Select a data collection form

\r\n

Select one Labeling Listing form for this order.

\r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n \r\n {{llFormGridData.formName}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{toHtml(data.proprietaryName)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n This form is either not the latest version or no longer exists. Please update.\r\n
\r\n You have selected:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Form NameProduct/Proprietary NameForm VersionNDC Package CodeLabeler
{{this.llFormGridSelectedRowData.formName}}{{toHtml(this.llFormGridSelectedRowData.proprietaryName)}}{{this.llFormGridSelectedRowData.formVersion}}{{this.llFormGridSelectedRowData.ndcPackageCode}}{{this.llFormGridSelectedRowData.labelerName}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Select baseline SPL conversion file

\r\n \r\n \r\n \r\n \r\n \r\n \r\n    \r\n {{baselineSplGridData.workflowOrderId}}\r\n \r\n \r\n \r\n \r\n \r\n  \r\n {{baselineSplGridData.fileName}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Source Documentation

\r\n

Current Documents

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
File nameSizeUploaded byUploaded dateAction
No records found
\r\n  {{myDoc.title}}\r\n {{myDoc.size | number:'1.0':'en-US'}}{{myDoc.uploadedBy}}{{myDoc.uploadedDate | date:'M/d/yyyy h:mm:ss a'}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

New Documents

\r\n

\r\n To upload new source documentation,\r\n \r\n browse \r\n  \r\n for files or drag and drop below.\r\n

\r\n\r\n
\r\n Drop files here\r\n
\r\n

 

\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n

\r\n Help us get it right the first time.\r\n Please provide instructions for each section you're editing.\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Content of labeling or drug fact changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Principal display panel changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Labeling/listing (metadata) changes?

\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Instructions

\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n     n/a\r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n  {{deliveryDoc.title}}\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n  Delete\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Browse \r\n  \r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n Be sure to save the order using the 'Update Order' button.\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Back to list\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
{{errorMessage}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n
\r\n

Data Collection Form Selection

\r\n
\r\n
\r\n A data collection form has not been selected for this order. Without a data collection form you will not be able to select this order as a candidate for a Merge.\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss'],\r\n})\r\nexport class PageNotFoundComponent {\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n

Oops, the page you are looking for doesn't exist

\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AccordionComponent, ExpandEventArgs } from '@syncfusion/ej2-angular-navigations';\r\nimport { DialogComponent, TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { ILLKit, ILLProduct } from '../../shared/models/index';\r\n\r\n\r\n@Component({\r\n selector: 'app-sidebar-products',\r\n templateUrl: './sidebar-products.component.html',\r\n styleUrls: ['./sidebar-products.component.scss'],\r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class SidebarProductsComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n\r\n sbmodalValWidth = '500px';\r\n sbmodalValHeight = 'auto';\r\n public sbmodalValVisible = true;\r\n public sbmodalValHidden = false;\r\n animationSettings: Object = { effect: 'Zoom' };\r\n position: object = { X: 'center', Y: 'center' };\r\n isModal = true;\r\n PROD_TYPE_KIT = 'RTCD_LLKit';\r\n\r\n @Output() productIndex = new EventEmitter();\r\n @Output() partIndex = new EventEmitter();\r\n @Output() productToDelete = new EventEmitter();\r\n @Output() cloneProductIndex = new EventEmitter();\r\n @Output() scrollToElementOutput = new EventEmitter();\r\n\r\n @Input() formData: any;\r\n @Input() formProdIndex = 0;\r\n @Input() partIndexInput: number;\r\n @Input() proprietaryNameInput;\r\n @Input() isPartInput = false;\r\n\r\n products: ILLProduct[] = [];\r\n product: ILLProduct;\r\n currentIndex = 0;\r\n currentPartIndex = 0;\r\n addedPartIndex = -1;\r\n deletedProdIndex = -1;\r\n deleteProductLinks: any;\r\n enablePersistence = false;\r\n sub: Subscription;\r\n isPart = false;\r\n\r\n @ViewChild('productsAccordion') productsAccordion: AccordionComponent;\r\n\r\n @ViewChild('sbModalDialog')\r\n public sbModalDialog: DialogComponent;\r\n\r\n @ViewChild('confirmDeleteDialog')\r\n public confirmDeleteDialog: DialogComponent;\r\n\r\n tooltipObjPart: TooltipComponent;\r\n tooltipObj: TooltipComponent;\r\n\r\n public clickEventArgs: Event;\r\n\r\n confirmDeleteDlgSelection$: Subject = new Subject();\r\n\r\n\r\n public encodeHtml(str) {\r\n const buf = [];\r\n if (str) {\r\n for (let i = str.length - 1; i >= 0; i--) {\r\n buf.unshift(['&#', str[i].charCodeAt(), ';'].join(''));\r\n }\r\n\r\n return buf.join('');\r\n }\r\n }\r\n\r\n public decodeHtml(str) {\r\n\r\n if (str) {\r\n return str.replace(/&#(\\d+);/g, function (match, dec) {\r\n return String.fromCharCode(dec);\r\n });\r\n }\r\n }\r\n\r\n deleteDlgBtnYes: EmitType = () => {\r\n\r\n this.confirmDeleteDialog.hide();\r\n\r\n this.productToDelete.emit(this.deletedProdIndex);\r\n\r\n this.products = this.formData[0].data.products;\r\n\r\n this.deletedProdIndex = -1;\r\n this.selectProduct(0);\r\n this.productsAccordion.refresh();\r\n }\r\n\r\n deletedDlgBtnNo: EmitType = () => {\r\n\r\n const splInput = document.getElementById('splVersionModalInput');\r\n\r\n this.confirmDeleteDialog.hide();\r\n }\r\n\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n confirmDeleteDlgButtons: Object[] = [{ click: this.deletedDlgBtnNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.deleteDlgBtnYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } } ];\r\n\r\n\r\n constructor (private cdref: ChangeDetectorRef, private sanitizer: DomSanitizer) { }\r\n\r\n dlgButtonClick: EmitType = () => {\r\n this.sbModalDialog.hide();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n public buttons: Object[] = [{ click: this.dlgButtonClick.bind(this), buttonModel: { content: 'OK', isPrimary: true } }];\r\n\r\n ngAfterViewInit(): void {\r\n\r\n this.productsAccordion.select(this.formProdIndex);\r\n\r\n this.productsAccordion.items.forEach(item => {\r\n\r\n item.cssClass = 'accordionItemCss';\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n if (this.sbModalDialog) {\r\n this.sbModalDialog.hide();\r\n }\r\n\r\n if (this.formData) {\r\n\r\n this.products = this.formData[0].data.products;\r\n\r\n this.product = this.products[this.formProdIndex];\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const property in changes) {\r\n\r\n switch (property) {\r\n\r\n case 'formProdIndex':\r\n\r\n if (changes[property].currentValue || changes[property].currentValue === 0) {\r\n\r\n this.formProdIndex = changes[property].currentValue;\r\n\r\n if (this.formProdIndex) {\r\n\r\n this.product = this.products[this.formProdIndex];\r\n }\r\n\r\n this.clearPartsActive();\r\n }\r\n\r\n break;\r\n\r\n case 'proprietaryNameInput':\r\n\r\n if (changes[property].currentValue) {\r\n\r\n if (this.isKit()) {\r\n\r\n // check if any part active, meaning the part is opened in a form, not a kit\r\n if (!this.isAnyPartActive()) {\r\n\r\n // since the parts were removed from the sidebar display this line is not needed\r\n // this.products[this.formProdIndex].proprietaryName = changes[property].currentValue;\r\n } else {\r\n\r\n (this.products[this.formProdIndex] as ILLKit).parts[this.currentPartIndex].proprietaryName = changes[property].currentValue;\r\n\r\n }\r\n } else {\r\n\r\n // not a kit\r\n this.products[this.formProdIndex].proprietaryName = changes[property].currentValue;\r\n }\r\n }\r\n\r\n break;\r\n\r\n case 'partIndexInput':\r\n\r\n if (changes[property].currentValue || changes[property].currentValue === 0) {\r\n this.selectPart(changes[property].currentValue);\r\n\r\n this.currentPartIndex = changes[property].currentValue;\r\n }\r\n\r\n break;\r\n\r\n case 'addedPartIndex':\r\n\r\n if (changes[property].currentValue || changes[property].currentValue === 0) {\r\n this.selectPart(changes[property].currentValue);\r\n\r\n this.currentPartIndex = changes[property].currentValue;\r\n }\r\n\r\n break;\r\n\r\n case 'isPartInput':\r\n\r\n this.isPart = changes[property].currentValue;\r\n\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n isKit() {\r\n\r\n let product;\r\n\r\n if (this.formProdIndex >= 0 && this.formProdIndex <= this.products.length - 1) {\r\n\r\n product = this.products[this.formProdIndex];\r\n\r\n if (product.$type === this.PROD_TYPE_KIT) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public expanding(e: ExpandEventArgs) {\r\n\r\n if (this.currentIndex === e.index) {\r\n\r\n if (this.isKit()) {\r\n\r\n if (this.isAnyPartActive()) {\r\n\r\n this.clearPartsActive();\r\n e.cancel = true;\r\n }\r\n }\r\n }\r\n\r\n if (e.isExpanded) {\r\n if (this.currentIndex !== e.index) {\r\n this.productsAccordion.expandItem(false, e.index);\r\n }\r\n this.productIndex.emit({ oldIndex: this.currentIndex, newIndex: e.index });\r\n this.currentIndex = e.index;\r\n } else {\r\n\r\n if (this.currentIndex === e.index || this.isKit()) {\r\n this.productIndex.emit({ oldIndex: this.currentIndex, newIndex: e.index });\r\n }\r\n }\r\n }\r\n\r\n showPart(index) {\r\n this.currentPartIndex = index;\r\n this.partIndex.emit({ partIndex: index, prodIndex: this.currentIndex });\r\n }\r\n\r\n clearPartsActive() {\r\n\r\n const parts = document.getElementsByClassName('part-name');\r\n\r\n const partsArray = Array.from(parts);\r\n\r\n if (partsArray && partsArray.length > 0) {\r\n\r\n partsArray.forEach(part => {\r\n\r\n if (part.classList.contains('active')) {\r\n\r\n part.classList.remove('active');\r\n }\r\n });\r\n }\r\n }\r\n\r\n isAnyPartActive() {\r\n\r\n const parts = document.getElementsByClassName('part-name');\r\n\r\n const partsArray = Array.from(parts);\r\n\r\n const active = partsArray.filter(p => p.classList.contains('active'));\r\n\r\n return active ? active.length > 0 : false;\r\n }\r\n\r\n selectPart(index) {\r\n\r\n this.clearPartsActive();\r\n\r\n const partDiv = document.getElementById(`part-${this.formProdIndex}-${ index }`);\r\n\r\n if (partDiv) {\r\n partDiv.classList.add('active');\r\n }\r\n }\r\n\r\n // this function is called from ll-form switchPart for the new part.\r\n // it should be executed only after the new part is rendered\r\n addedPart(index) {\r\n\r\n this.addedPartIndex = index;\r\n this.cdref.detectChanges();\r\n }\r\n\r\n accordionCreated(event) {\r\n this.productsAccordion.expandItem(true, 0);\r\n }\r\n\r\n collapseItem(index) {\r\n this.productsAccordion.expandItem(false, index);\r\n }\r\n\r\n public cloneProduct() {\r\n this.cloneProductIndex.emit(this.currentIndex);\r\n }\r\n\r\n showProduct(index) {\r\n\r\n this.productIndex.emit({ oldIndex: this.currentIndex, newIndex: index });\r\n this.currentIndex = index;\r\n this.productsAccordion.expandItem(true, index);\r\n }\r\n\r\n selectProduct(index) {\r\n\r\n this.productsAccordion.select(index);\r\n\r\n this.currentIndex = index;\r\n\r\n this.showProduct(index);\r\n }\r\n\r\n\r\n deleteProduct(index) {\r\n\r\n // The last product can not be deleted\r\n if (this.products.length === 1) {\r\n this.sbModalDialog.show();\r\n } else {\r\n this.deletedProdIndex = index;\r\n // show modal for setting a version and cancel the build if Cancel is seleced.\r\n this.confirmDeleteDialog.show();\r\n }\r\n }\r\n\r\n onOverlayClick() {\r\n this.sbModalDialog.hide();\r\n this.sbmodalValVisible = false;\r\n }\r\n\r\n\r\n onOverlayDeleteDlgClick() {\r\n this.confirmDeleteDialog.hide();\r\n }\r\n\r\n showToolTip(event) {\r\n\r\n if (this.isEllipsisActive(event)) {\r\n\r\n event.target.setAttribute('title', event.target.textContent);\r\n }\r\n }\r\n\r\n showSFToolTip(event) {\r\n if (this.isEllipsisActive(event)) {\r\n this.tooltipObj = event.target?.parentElement?.ej2_instances?.length > 0 ? event.target.parentElement?.ej2_instances[0] : undefined;\r\n if (this.tooltipObj) {\r\n this.tooltipObj.content = event.target.outerText;\r\n this.tooltipObj.width = `${ event.target.scrollWidth }px`;\r\n\r\n this.tooltipObj.open();\r\n }\r\n }\r\n }\r\n\r\n hideSFToolTip(event) {\r\n\r\n if (this.tooltipObj) {\r\n\r\n this.tooltipObj.close();\r\n }\r\n }\r\n\r\n showSFToolTipPart(event) {\r\n if (this.isEllipsisActive(event)) {\r\n this.tooltipObj = event.target?.parentElement?.ej2_instances?.length > 0 ? event.target.parentElement?.ej2_instances[0] : undefined;\r\n\r\n if (this.tooltipObjPart) {\r\n this.tooltipObjPart.content = event.target.outerText;\r\n this.tooltipObjPart.width = `${ event.target.scrollWidth }px`;\r\n\r\n this.tooltipObjPart.open();\r\n }\r\n }\r\n }\r\n\r\n hideSFToolTipPart(event) {\r\n\r\n if (this.tooltipObjPart) {\r\n\r\n this.tooltipObjPart.close();\r\n }\r\n }\r\n\r\n isEllipsisActive(e) {\r\n return (e.target.offsetWidth < e.target.scrollWidth);\r\n }\r\n\r\n scrollToElement(element) {\r\n\r\n this.scrollToElementOutput.emit(element);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.sub) {\r\n this.sub.unsubscribe();\r\n }\r\n }\r\n}\r\n","\r\n
\r\n 0\" (expanding)=\"expanding($event)\" (created)=\"accordionCreated($event)\" class='nested-accordion'>\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n Proprietary Name\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n {{ decodeHtml(product.proprietaryName)}}\r\n ({{product.ndcProductCode}})\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n Part {{partIdx + 1}} - {{ decodeHtml(products[prodIdx]['parts'][partIdx].proprietaryName)}}\r\n
\r\n
\r\n\r\n
= 0\">\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n clone product\r\n
\r\n \r\n
\r\n clone kit\r\n
\r\n
\r\n delete kit\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n

Remove Products/Kits

\r\n
\r\n
\r\n Last Product/Kit cannot be deleted.\r\n Revision must have at least one Product/Kit.\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n

Delete {{ isKit() ? 'Kit' : 'Product'}} ?

\r\n
\r\n
\r\n Are you sure you want to delete this {{isKit() ? 'Kit' : 'Product'}}?\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-spl-viewer',\r\n templateUrl: './spl-viewer.component.html',\r\n styleUrls: ['./spl-viewer.component.scss'],\r\n})\r\nexport class SplViewerComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n // placeholder\r\n ngOnInit() {\r\n this.initTabIndex();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n}\r\n","

spl-viewer works!

\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport {\r\n ColumnChooserService,\r\n GridComponent,\r\n PageService,\r\n ToolbarService,\r\n VirtualScrollService,\r\n} from '@syncfusion/ej2-angular-grids';\r\nimport {\r\n AccumulationDataLabelService,\r\n AccumulationAnnotationService,\r\n} from '@syncfusion/ej2-angular-charts';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\nimport { Utilities } from '../../shared/services/utilities';\r\nimport { TooltipComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { Subscription, interval } from 'rxjs';\r\nimport { SettingsService, SubmissionDashboardService } from '../../shared/services/index';\r\nimport { ISubmissionDashboard } from '../../shared/models/submission-dashboard.model';\r\nimport BlobUtility from '../../shared/helpers/blob-utilitiy';\r\nimport { OrderService } from '../../shared/services/order.service';\r\n\r\n@Component({\r\n selector: 'app-submission-dashboard',\r\n templateUrl: './submission-dashboard.component.html',\r\n animations: [fadeInOut],\r\n providers: [\r\n ToolbarService,\r\n ColumnChooserService,\r\n PageService,\r\n VirtualScrollService,\r\n AccumulationDataLabelService,\r\n AccumulationAnnotationService,\r\n ],\r\n styleUrls: ['./submission-dashboard.component.scss'],\r\n})\r\nexport class SubmissionDashboardComponent implements OnInit {\r\n @ViewChild('submission_grid')\r\n public submissionGrid: GridComponent;\r\n @ViewChild('tooltip')\r\n public tooltip: TooltipComponent;\r\n\r\n @Input() submission_grid_data: ISubmissionDashboard[];\r\n public toolbarOptions: Object;\r\n count_submissions: number;\r\n public clipmodecolumn = { class: 'e-tooltipcolumn' };\r\n public initialPage: Object;\r\n loading = true;\r\n formatOptions: { type: string; format: any };\r\n formatOptionsWithTime: { type: string; format: string };\r\n dateRangeDataSource = ['90 days', '180 days', '1 Year', '2 Years', 'All'];\r\n selectedDateRangeFilter = '1 Year';\r\n statusProcessing: number = 4; // Submission status code for Submission in Process\r\n needsToPoll: boolean = true;\r\n\r\n sub: Subscription;\r\n\r\n constructor(private router: Router, private toastr: ToastrService, public submissionDashboardService: SubmissionDashboardService,\r\n private settingsService: SettingsService, private orderService: OrderService) {}\r\n ngOnInit() {\r\n this.toolbarOptions = this.createCustomToolbarItems();\r\n this.initTabIndex();\r\n this.initialPage = {\r\n currentPage: 1,\r\n pageSize: 25,\r\n pageSizes: [25, 50, 75, 100, 'All'],\r\n };\r\n this.formatOptions = {\r\n type: 'dateTime',\r\n format: Utilities.getLocaleDateString(),\r\n };\r\n this.formatOptionsWithTime = {\r\n type: 'dateTime',\r\n format: Utilities.getLocaleDateString() + ' hh:mm a',\r\n };\r\n\r\n this.pollData();\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n pollData() {\r\n this.getDashboard(); // Start polling immeditely\r\n // Poll every minute (60000 milliseconds) only if needsToPoll = true\r\n this.sub = interval(60000).subscribe(() => {\r\n if (this.needsToPoll) {\r\n this.getDashboard();\r\n }\r\n });\r\n }\r\n\r\n getDashboard() {\r\n this.sub = this.submissionDashboardService.getSubmissionDashboard(this.selectedDateRangeFilter).subscribe(data => {\r\n if (data && data.length) {\r\n this.loading = false;\r\n this.submission_grid_data = data;\r\n this.count_submissions = this.submission_grid_data.length;\r\n // Get the date x days ago - configurable - submissionDashboardAutoRefreshDays\r\n const today: Date = new Date();\r\n // 7 (config number) * 24 * 60 * 60 * 1000 calculates the number of milliseconds in 7 days. We multiply the number of hours in a day (24), the number of minutes in an hour (60),\r\n // the number of seconds in a minute (60), and the number of milliseconds in a second (1000) to get the total milliseconds in 7 days.\r\n // today.getTime() - 7 (config number) * 24 * 60 * 60 * 1000 subtracts the number of milliseconds in 7 days from the current date and time,\r\n // effectively giving us the timestamp for 7 days ago from the current date and time.\r\n const numberOfDaysAgo: Date = new Date(today.getTime() - parseInt(this.settingsService.submissionDashboardAutoRefreshDays, 10) * 24 * 60 * 60 * 1000);\r\n const filteredDataStatus4 = this.submission_grid_data.filter(item => item.submissionStatusCode === 4);\r\n\r\n const filteredDataWithConfigDaysAgo = filteredDataStatus4.some(item => {\r\n const createDate: Date = new Date(item.createDate);\r\n return createDate >= numberOfDaysAgo;\r\n });\r\n\r\n if (!filteredDataWithConfigDaysAgo) {\r\n this.needsToPoll = false; // we have nothing that meets the criteria of status 4 and 7 (config number) days go, so we don't need to poll\r\n }\r\n } else {\r\n this.loading = false; // no data so stop the spinner\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.toastr.error(error);\r\n },\r\n );\r\n }\r\n\r\n createCustomToolbarItems() {\r\n let toolbarItems = [];\r\n toolbarItems.push('Search');\r\n return toolbarItems;\r\n }\r\n\r\n tooltipValue(args) {\r\n let grid;\r\n if (args.target.scrollWidth <= args.target.clientWidth) {\r\n args.cancel = true;\r\n } else {\r\n grid = this.submissionGrid;\r\n\r\n const rowInfo = grid.getRowInfo(args.target);\r\n const rowData = rowInfo.rowData;\r\n this.tooltip.cssClass = 'customTooltip';\r\n this.tooltip.content = rowData[(rowInfo.column as any).field];\r\n }\r\n }\r\n\r\n removeFileNameExtension(filename: string): string {\r\n const parts: string[] = filename.split('.');\r\n parts.pop(); // Remove the last part (file extension)\r\n return parts.join('.');\r\n }\r\n\r\n downloadFile(submissionId: number, fileName: string) {\r\n this.sub = this.submissionDashboardService.downloadFile(submissionId).subscribe(response => {\r\n let blob = BlobUtility.b64toBlob(response?.data, 'application/zip', 512);\r\n const url = window.URL.createObjectURL(blob);\r\n\r\n const fileNameWithoutExtension: string = this.removeFileNameExtension(fileName);\r\n const downloadFileName = `RT-ESG-Msg_${fileNameWithoutExtension}.zip`;\r\n\r\n BlobUtility.setDownloadClickEvent(url, downloadFileName);\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n },\r\n );\r\n }\r\n\r\n downloadSourceFile(filePath: string, fileName: string) {\r\n this.sub = this.orderService.downloadFile(filePath, fileName).subscribe(response => {\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = fileName;\r\n link.click();\r\n },\r\n error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n });\r\n }\r\n\r\n // Change grid filter operator from \"startwith\" to \"contains\" for columns that are string\r\n public begin(args: any): void {\r\n if (args.requestType === 'filtering') {\r\n if (args.columns) {\r\n args.columns.forEach((col) => {\r\n switch (args.currentFilteringColumn) {\r\n case 'version':\r\n args.currentFilterObject.value = `${args.currentFilterObject.value}.0`;\r\n break;\r\n case 'modified':\r\n break;\r\n default:\r\n col.operator = 'contains'; // set the “contains” operator for the column\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n dateRangeSelectionChanged(dateRangeLimitValue: string) {\r\n this.selectedDateRangeFilter = dateRangeLimitValue;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

ESG Submission Dashboard

\r\n

\r\n Welcome to the submission dashboard for submissions made to the FDA's\r\n Office of the Commissioner (OC) via the Electronic Submissions Gateway (ESG) connection.\r\n Search to locate any specific submission, and click on the “Download Receipts” link in the Submission Status field to review the submission receipts.\r\n A Failed submission will have any error messages within the .xml receipt file.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n  {{data.sourceFileName}}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {{ data?.submissionStatusDescription }}\r\n \r\n Receipts\r\n \r\n
\r\n
\r\n {{ data?.submissionStatusDescription }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, Renderer2, ViewChild } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { StorageManagerService } from '../../shared/services';\r\nimport { SubstanceLookupService } from '../../shared/services/substance-lookup.service';\r\nimport { SubstanceLookupModel } from '../../shared/models/substance-lookup.model';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Component({\r\n selector: 'app-substance-lookup',\r\n templateUrl: './substance-lookup.component.html',\r\n styleUrls: ['./substance-lookup.component.scss']\r\n})\r\nexport class SubstanceLookupComponent {\r\n\r\n @ViewChild('inputArea') inputArea;\r\n form: UntypedFormGroup;\r\n substanceLookup: SubstanceLookupModel;\r\n isCopying = false;\r\n generatedXml: string;\r\n userInput: any;\r\n loading = false;\r\n username = '';\r\n\r\n constructor(private renderer: Renderer2, private toastr: ToastrService, private storageManagerService: StorageManagerService,\r\n @Inject(DOCUMENT) private document: Document, private substanceLookupService: SubstanceLookupService) {\r\n }\r\n\r\n findMatch() {\r\n let input = this.inputArea.nativeElement.innerHTML;\r\n \r\n do { input = this.inputCleanup(input); } while (input.indexOf(' {\r\n this.substanceLookup = result;\r\n this.inputArea.nativeElement.innerHTML = \"\";\r\n let userInputArray = this.splitStringWithQuotes(result.userInput);\r\n for (const [index, item] of this.substanceLookup.substanceLookupResults.entries()) {\r\n if (!item.found) {\r\n let child = this.failedIngrediant(userInputArray[index]);\r\n this.renderer.appendChild(this.inputArea.nativeElement, child);\r\n } else {\r\n this.inputArea.nativeElement.innerHTML = this.inputArea.nativeElement.innerHTML + userInputArray[index];\r\n }\r\n if (index != this.substanceLookup.totalNumberOfIngredients - 1) {\r\n this.inputArea.nativeElement.innerHTML = this.inputArea.nativeElement.innerHTML + \", \";\r\n }\r\n }\r\n this.loading = false;\r\n },\r\n error: error => {\r\n this.toastr.error(error && error.errorMessage ? error.errorMessage : error);\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n inputCleanup(value: string): string {\r\n const tempDiv = this.document.createElement('div');\r\n tempDiv.innerHTML = value.replace(/<[^>]*>/g, ``);\r\n\r\n const elementsToReplace = tempDiv.querySelectorAll('span, div');\r\n elementsToReplace.forEach(element => {\r\n const textNode = document.createTextNode(element.innerHTML);\r\n element.parentNode.replaceChild(textNode, element);\r\n });\r\n\r\n const cleanedText = tempDiv.textContent.trim();\r\n\r\n return cleanedText;\r\n }\r\n\r\n failedIngrediant(text) {\r\n const child = this.document.createElement('span');\r\n child.style.color = \"red\";\r\n child.innerHTML = text;\r\n return child;\r\n }\r\n\r\n formatXml(xml, tab) {\r\n let formatted = '', indent = '';\r\n tab = tab || '\\t';\r\n xml.split(/>\\s*\\r\\n';\r\n if (node.match(/^]*[^\\/]$/)) indent += tab;\r\n });\r\n return formatted.substring(1, formatted.length - 3);\r\n }\r\n\r\n clearText() {\r\n this.inputArea.nativeElement.innerHTML = '';\r\n }\r\n\r\n balanceQuotes(inputString) {\r\n const quotationCount = (inputString.match(/\"/g) || []).length;\r\n \r\n if (quotationCount % 2 !== 0) {\r\n // If the count is odd, remove the last double quotation mark\r\n inputString = inputString.replace(/\"([^\"]*)$/, '$1');\r\n }\r\n \r\n return inputString;\r\n }\r\n\r\n splitStringWithQuotes(inputString) {\r\n inputString = this.balanceQuotes(inputString);\r\n const result = [];\r\n let insideQuotes = false;\r\n let currentToken = '';\r\n\r\n for (let char of inputString) {\r\n if (char === '\"') {\r\n insideQuotes = !insideQuotes;\r\n } else if (char === ',' && !insideQuotes) {\r\n if (currentToken.trim()) {\r\n result.push(currentToken.trim());\r\n }\r\n currentToken = '';\r\n continue;\r\n }\r\n\r\n currentToken += char;\r\n }\r\n result.push(currentToken.trim());\r\n return result;\r\n }\r\n\r\n copy(id): void {\r\n this.isCopying = true;\r\n const from = document.getElementById(id);\r\n const range = document.createRange();\r\n window.getSelection().removeAllRanges();\r\n if (id == 'copyLog') {\r\n from.querySelector('table').style.width = '500px';\r\n }\r\n range.selectNode(from);\r\n window.getSelection().addRange(range);\r\n document.execCommand('copy');\r\n window.getSelection().removeAllRanges();\r\n this.isCopying = false;\r\n if (id == 'copyLog') {\r\n from.querySelector('table').style.width = '100%';\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n\r\n

Substance Lookup

\r\n
\r\n

Copy Ingredients from source and paste them into the field below. Click \"Find Match\" to return a status of \"Found\" or \"Not Found\" for each ingredient.\r\n Any successful matches will provide an XML snippet.

\r\n

\r\n Ingredient Name(s) - Ingredients must be separated by a comma.\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n

Substance Lookup Results

\r\n
\r\n
\r\n Complete result log\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Generated by\r\n
{{username}}
\r\n
\r\n
\r\n
\r\n Processing Details\r\n
Date: {{ substanceLookup.processDate | date:'M/d/yyyy h:mm:ss a'}}
\r\n
Total ingredients included: {{substanceLookup.totalNumberOfIngredients}}
\r\n
Total number substances found: {{substanceLookup.totalNumberOfIngredientsFound}}
\r\n
Total number substances not found: {{substanceLookup.totalNumberOfIngredientsNotFound}}
\r\n
\r\n
\r\n
\r\n Results\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
StatusOriginal IngredientPreferred Name (UNII Code)
\r\n {{item.found ? 'Found' : 'Not Found'}}\r\n {{ item.searchTerm }}\r\n {{ item.preferredName }} ({{ item.uniiCode }})\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Initial User Input\r\n
{{substanceLookup.userInput}}
\r\n
\r\n
\r\n
\r\n XML Snippets:\r\n
{{formatXml(substanceLookup.xmlResult)}}
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { fadeInOut } from '../../shared/helpers/animations';\r\n\r\n@Component({\r\n selector: 'app-support',\r\n templateUrl: './support.component.html',\r\n styleUrls: ['./support.component.css'],\r\n animations: [fadeInOut]\r\n})\r\nexport class SupportComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n\r\n // set focus on the invisible div so the first tab will bring it to the \"Skip to Main Navigation\" button because it must be the first tab target on the page (508 Compliance)\r\n this.initTabIndex()\r\n }\r\n\r\n initTabIndex() {\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n const main = document.getElementById(\"firstDiv\");\r\n\r\n if (main) {\r\n main.focus();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Need Help?

\r\n

\r\n Please contact our helpdesk at\r\n +1 215-682-8282\r\n (toll free\r\n +1 877-888-1559)\r\n or email us anytime at\r\n Customer.Support@reedtech.com.\r\n

\r\n

\r\n \r\n \r\n Download user manual (Word)\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n

Need Training?

\r\n

\r\n Register for SingleSource for Drug Products Training\r\n here.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

Have Feedback?

\r\n

\r\n Please share your suggestions with the SingleSource team,\r\n here.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Support for SPL Preparation, SPL Submission and related Labeling Services,emergency and business\r\n related support:\r\n

\r\n

\r\n \r\n \r\n spl@reedtech.com\r\n \r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-unauthorized',\r\n templateUrl: 'unauthorized.component.html'\r\n})\r\n\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n public message: string;\r\n public values: any[];\r\n\r\n constructor() {\r\n this.message = 'UnauthorizedComponent constructor';\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

Unauthorized

\r\n

You have no rights to access the application. Click here to route to signin page.

\r\n
\r\n
\r\n
\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ChangeDetectorRef, ViewChild, OnInit, Component, Input } from '@angular/core';\r\nimport { IRevisionHistory } from '../../shared/models/revisionHistory.model';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-version-modal',\r\n templateUrl: 'version-modal.component.html'\r\n})\r\nexport class VersionModalComponent implements OnInit {\r\n\r\n @ViewChild('buildModalDialog') buildModalDialog: DialogComponent;\r\n @Input() revisionHistory: IRevisionHistory = null;\r\n @Input() formGroup: UntypedFormGroup = null;\r\n @Input() onStart: Function;\r\n @Input() onClose: Function;\r\n @Input() stateFlags: any;\r\n\r\n //Modal for selecting SPL Version\r\n confirmDialogSelection$: Subject = new Subject();\r\n isBuild: boolean;\r\n invalidSplVersion: boolean;\r\n updatedSPLVersion: string;\r\n buildModalDialogVisible: boolean;\r\n sub: Subscription;\r\n formData: any;\r\n\r\n // Modal properties\r\n position: object = { X: 'center', Y: 'center' };\r\n modalWidth = '30%';\r\n modalHeight = 'auto';\r\n animationSettings: Object = { effect: 'Zoom' };\r\n isModal = true;\r\n\r\n constructor(private cdRef: ChangeDetectorRef) {\r\n this.cdRef = cdRef;\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n splVersionModalOpen() {\r\n const splInput = document.getElementById('splVersionModalInput');\r\n\r\n if (splInput) {\r\n\r\n if (this.revisionHistory.Revisions && this.revisionHistory.Revisions.length > 0 && this.formGroup && this.formGroup.value) {\r\n\r\n // Default the SPL Version Number to 1 if:\r\n // this is the first form in its Revision History\r\n // the formVersion (Major version) is 0\r\n if (this.revisionHistory.Revisions.length === 1 && this.formGroup.value.formVersion === 0) {\r\n (splInput as any).value = '1';\r\n } else {\r\n (splInput as any).value = `${+this.formGroup.value.splVersion + 1}`;\r\n }\r\n }\r\n this.updatedSPLVersion = (splInput as any).value;\r\n }\r\n }\r\n\r\n splVersionModal() {\r\n\r\n //Initial validation\r\n if (!this.onStart()) {\r\n return;\r\n }\r\n\r\n // show modal for setting a version and cancel the build if Cancel is seleced.\r\n this.buildModalDialog.show();\r\n\r\n this.sub = this.confirmDialogSelection$.subscribe(choice => {\r\n\r\n if (!choice) {\r\n\r\n this.stateFlags.buildLoading = false;\r\n this.stateFlags.pageLoading = false;\r\n } else {\r\n\r\n this.formGroup.markAsDirty();\r\n\r\n this.stateFlags.buildLoading = true;\r\n this.stateFlags.pageLoading = true;\r\n\r\n this.cdRef.detectChanges();\r\n\r\n if (!this.stateFlags.processComplete) {\r\n this.onClose();\r\n this.isBuild = true;\r\n this.stateFlags.processComplete = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n buildDlgBtnYes: EmitType = () => {\r\n\r\n if (+this.updatedSPLVersion > 0 || (true && this.updatedSPLVersion === '1')) {\r\n\r\n this.buildModalDialog.hide();\r\n\r\n return this.confirmDialogSelection$.next(true);\r\n } else {\r\n\r\n this.invalidSplVersion = true;\r\n }\r\n }\r\n\r\n buildDlgBtnNo: EmitType = () => {\r\n\r\n this.invalidSplVersion = false;\r\n\r\n const splInput = document.getElementById('splVersionModalInput');\r\n\r\n if (splInput) {\r\n (splInput as any).value = '';\r\n }\r\n\r\n this.buildModalDialog.hide();\r\n\r\n return this.confirmDialogSelection$.next(false);\r\n }\r\n\r\n buildDlgButtons: Object[] = [{ click: this.buildDlgBtnNo.bind(this), buttonModel: { content: 'Cancel' } }, { click: this.buildDlgBtnYes.bind(this), buttonModel: { content: 'Continue', isPrimary: true } }];\r\n\r\n validateSplVersionInput(event) {\r\n\r\n this.invalidSplVersion = false;\r\n\r\n if (event.target.value) {\r\n\r\n this.updatedSPLVersion = parseInt(event.target.value, 10).toString();\r\n } else {\r\n\r\n this.updatedSPLVersion = '';\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n

Update SPL Version Number

\r\n
\r\n
\r\n \r\n 0\"\r\n onkeydown=\"if(event.key==='.'){event.preventDefault();}\"\r\n class=\"form-control\" (blur)=\"validateSplVersionInput($event)\"\r\n aria-labelledby=\"splVersionNumber-label\" tabindex=\"0\" role=\"spinbutton\"/>\r\n\r\n
\r\n The SPL version can't be blank\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateToLocale'\r\n})\r\nexport class DateToLocalePipe implements PipeTransform {\r\n\r\n transform(date: string, isDateTime: boolean): string {\r\n\r\n if (date) {\r\n const newDate = new Date(date);\r\n if (isDateTime) {\r\n return newDate.toLocaleDateString() + ' ' + newDate.toLocaleTimeString();\r\n }\r\n else {\r\n return newDate.toLocaleDateString();\r\n }\r\n \r\n }\r\n else {\r\n return 'N/A';\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'sainitizeHtml', pure: false })\r\nexport class SanitizeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n transform(content) {\r\n return this.sanitizer.bypassSecurityTrustHtml(content);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'splitWords'\r\n})\r\nexport class SplitWordsPipe implements PipeTransform {\r\n\r\n transform(input: string, separator: string, index?: number): any {\r\n\r\n // Index starts at 0\r\n // If index is null return the string array else return the string at the index location\r\n if (input && input.length > 0) {\r\n const splitArray = input.split(separator);\r\n if (index < splitArray.length) {\r\n return splitArray[0];\r\n }\r\n } else {\r\n return input;\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'utcToLocale'\r\n})\r\nexport class UtcToLocalePipe implements PipeTransform {\r\n\r\n transform(utcDate: string): string {\r\n\r\n let indexOfDate = utcDate.indexOf('+');\r\n\r\n if (isNaN(indexOfDate)) {\r\n indexOfDate = utcDate.indexOf('-');\r\n }\r\n\r\n const newDateParsedToNumber = Date.parse(utcDate.substring(0, indexOfDate - 1));\r\n\r\n const newDate = new Date(newDateParsedToNumber);\r\n\r\n const offset = newDate.getTimezoneOffset() / 60;\r\n\r\n const sign = newDate.toString().substring(newDate.toString().indexOf('GMT') + 3, newDate.toString().indexOf('GMT') + (3 + 1));\r\n\r\n if (sign === '+') {\r\n newDate.setHours( newDate.getHours() + offset );\r\n } else {\r\n newDate.setHours( newDate.getHours() - offset );\r\n }\r\n\r\n return newDate.toLocaleString();\r\n }\r\n\r\n}\r\n","import { ModuleWithProviders, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n// Syncfusion\r\nimport { DatePickerModule } from '@syncfusion/ej2-angular-calendars';\r\nimport {\r\n ColumnChooserService, FilterService, GridModule, GroupService, PageService, ReorderService, SortService, GridAllModule, FreezeService, SelectionService,\r\n} from '@syncfusion/ej2-angular-grids';\r\nimport { AccordionModule, SidebarModule } from '@syncfusion/ej2-angular-navigations';\r\nimport { UploaderModule } from '@syncfusion/ej2-angular-inputs';\r\nimport { DialogModule, TooltipModule } from '@syncfusion/ej2-angular-popups';\r\nimport { DropDownListModule, MultiSelectAllModule, AutoCompleteModule } from '@syncfusion/ej2-angular-dropdowns';\r\n\r\nimport { RadioButtonModule, CheckBoxModule } from '@syncfusion/ej2-angular-buttons';\r\nimport { InPlaceEditorModule } from '@syncfusion/ej2-angular-inplace-editor';\r\nimport {\r\n AccumulationChartModule,\r\n PieSeriesService, AccumulationLegendService, AccumulationTooltipService, AccumulationAnnotationService,\r\n AccumulationDataLabelService,\r\n} from '@syncfusion/ej2-angular-charts';\r\n\r\n// Global Custom Components\r\nimport {\r\n DeleteButtonComponent, VersionModalComponent, ErrorMessagesComponent, ErrorComponent, WarningIconComponent, EsigModalComponent, CompanyDetailsComponent,\r\n FeatureComponent\r\n} from './components/index';\r\nimport { FileUploadComponent } from './components/common/file-upload/file-upload.component';\r\nimport { CustomSidebarComponent } from './components/common/custom-sidebar/custom-sidebar.component';\r\nimport { DateToLocalePipe } from './pipes/date-to-locale.pipe';\r\nimport { ESGSubmissionService } from './shared/services/esg-submission-service';\r\nimport { PragmaticGridColumnComponent } from './components/common/pragmatic-grid-column/pragmatic-grid-column.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n DeleteButtonComponent,\r\n VersionModalComponent,\r\n EsigModalComponent,\r\n ErrorMessagesComponent,\r\n ErrorComponent,\r\n FileUploadComponent,\r\n CustomSidebarComponent,\r\n DateToLocalePipe,\r\n WarningIconComponent,\r\n CompanyDetailsComponent,\r\n PragmaticGridColumnComponent,\r\n FeatureComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgbModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n CheckBoxModule,\r\n TooltipModule,\r\n RadioButtonModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n UploaderModule, DialogModule,\r\n GridModule, DropDownListModule, GridAllModule,\r\n AccordionModule, DatePickerModule, SidebarModule, InPlaceEditorModule,\r\n AccumulationChartModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n exports: [\r\n CommonModule,\r\n NgbModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n\r\n DeleteButtonComponent,\r\n VersionModalComponent,\r\n EsigModalComponent,\r\n ErrorMessagesComponent,\r\n ErrorComponent,\r\n FileUploadComponent,\r\n CustomSidebarComponent,\r\n DateToLocalePipe,\r\n CheckBoxModule,\r\n TooltipModule,\r\n RadioButtonModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n UploaderModule, DialogModule,\r\n GridModule, DropDownListModule, GridAllModule,\r\n AccordionModule, DatePickerModule, SidebarModule, InPlaceEditorModule,\r\n AccumulationChartModule,\r\n WarningIconComponent,\r\n CompanyDetailsComponent,\r\n PragmaticGridColumnComponent,\r\n FeatureComponent\r\n\r\n ],\r\n})\r\nexport class RTSharedModule {\r\n static forRoot() : ModuleWithProviders {\r\n return {\r\n ngModule: RTSharedModule,\r\n providers: [\r\n PageService, SortService, FilterService, GroupService, ColumnChooserService,\r\n ReorderService,\r\n FreezeService,\r\n SelectionService,\r\n PieSeriesService, AccumulationLegendService, AccumulationTooltipService, AccumulationDataLabelService, AccumulationAnnotationService,\r\n ESGSubmissionService\r\n ],\r\n };\r\n }\r\n}\r\n","import { Directive, HostBinding, Optional, Input } from '@angular/core';\r\nimport { ControlContainer} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: 'label[controlName]',\r\n})\r\nexport class LabelControlDirective {\r\n @Input() controlName: string;\r\n\r\n constructor(@Optional() private parent: ControlContainer) {}\r\n\r\n @HostBinding('textContent')\r\n get controlValue() {\r\n\r\n let control: any;\r\n let retVal: any;\r\n\r\n if (this.parent) {\r\n\r\n control = this.parent.control.get(this.controlName);\r\n\r\n if (control) {\r\n\r\n retVal = control.value;\r\n } else {\r\n\r\n retVal = '';\r\n }\r\n } else {\r\n\r\n retVal = '';\r\n }\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { UntypedFormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const crossValidator:\r\n ValidatorFn = (control: UntypedFormGroup):\r\n ValidationErrors | null => {\r\n\r\n\r\n return null;\r\n\r\n};\r\n","import { NgControl } from '@angular/forms';\r\nimport { Directive, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[disableControl]'\r\n})\r\nexport class DisableControlDirective {\r\n\r\n @Input() set disableControl( condition: boolean ) {\r\n const action = condition ? 'disable' : 'enable';\r\n this.ngControl.control[action]();\r\n }\r\n\r\n constructor( private ngControl : NgControl ) {\r\n }\r\n\r\n}","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, ValidatorFn, Validators, AbstractControl } from '@angular/forms';\r\n\r\n/** Name can't match the given regular expression */\r\nexport function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n const forbidden = nameRe.test(control.value);\r\n return forbidden ? { 'forbiddenName': { value: 'Value \\'' + control.value + '\\' is forbidden'} } : null;\r\n };\r\n}\r\n","import { Directive, TemplateRef, Input, ViewContainerRef } from '@angular/core';\r\nimport { AuthorizationService } from '../services/index';\r\nimport { IUserAccessPermissions } from '../models';\r\n\r\n@Directive({\r\n selector: '[appHideByAccess]'\r\n})\r\nexport class HideByAccessDirective {\r\n\r\n private permitted: boolean;\r\n accessPermissions: IUserAccessPermissions;\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private authorizationService: AuthorizationService) {\r\n }\r\n\r\n @Input() set appHideByAccess(permission: string) {\r\n\r\n this.permitted = this.authorizationService.hasPermission(permission);\r\n\r\n if (this.permitted) {\r\n\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n }\r\n}\r\n\r\n","export { crossValidator } from './cross-validator';\r\nexport { forbiddenNameValidator } from './forbidden-name.directive';\r\nexport { HideByAccessDirective } from './hidebyaccess.directive';\r\nexport { LabelControlDirective } from './control-name.directive';\r\nexport { KeyUpDirective } from './keyup.directive';\r\nexport { DisableControlDirective } from './disable-control.directive';\r\nexport { ToastrModule } from 'ngx-toastr';\r\n\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { LLFormService } from '../services/index';\r\n\r\n@Directive({\r\n selector: '[appKeyupDirective]'\r\n})\r\nexport class KeyUpDirective {\r\n\r\n value = '';\r\n keycodes: number[] = [8, 37, 39,46]; // backspace, left and right arrow, delete\r\n \r\n\r\n constructor (private llService: LLFormService) { }\r\n \r\n @HostListener('window:keyup', ['$event']) keyEvent(event: KeyboardEvent) {\r\n\r\n if (!this.keycodes.includes(event.keyCode)) {\r\n\r\n this.value += event.key;\r\n\r\n if (this.value.length >= 3) {\r\n\r\n // send to Api\r\n // this.llService.sendtoApi(value);\r\n\r\n console.log(this.value);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthorizationService, StorageManagerService } from '../services';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ICustomer } from '../models';\r\n\r\n@Injectable()\r\nexport class BNCCFormGuard implements CanActivate, CanLoad {\r\n\r\n constructor(private router: Router, private authorizationService: AuthorizationService, private toastr: ToastrService, private storage: StorageManagerService) { }\r\n\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canDeactivate(component: any):Observable | Promise | boolean {\r\n return component.canDeactivate();\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let hasPermission = true;\r\n\r\n const cust = this.storage.read('currentCustomer');\r\n let currentCustomer: ICustomer;\r\n \r\n if (cust) {\r\n currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n }\r\n\r\n hasPermission = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-BNCC', currentCustomer);\r\n\r\n if (!hasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(hasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class BusinessCategoryAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadBusinessCategory') || this.authService.hasPermission('SSDP.CanWriteBusinessCategory') || this.authService.hasPermission('SSDP.CanDeleteBusinessCategory');\r\n \r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { BusinessCategoryComponent } from '../../components/business-category/business-category.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BusinessCategoryEditGuard implements CanDeactivate {\r\n canDeactivate(component: BusinessCategoryComponent): Observable | Promise | boolean {\r\n if (component.frmEditBusinessCategory.touched && component.frmEditBusinessCategory.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class CompanyAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n // const authData = this.authService.getAuthData();\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadCompany') || this.authService.hasPermission('SSDP.CanWriteCompany');\r\n\r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { CompanyDetailsComponent } from '../../components/company-details/company-details.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyEditGuard implements CanDeactivate {\r\n canDeactivate(component: CompanyDetailsComponent): Observable | Promise | boolean {\r\n if (component.companyForm.touched && component.companyForm.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ContactAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n // const authData = this.authService.getAuthData();\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadContact') || this.authService.hasPermission('SSDP.CanWriteContact');\r\n\r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ContactComponent } from '../../components/contact/contact.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContactEditGuard implements CanDeactivate {\r\n canDeactivate(component: ContactComponent): Observable | Promise | boolean {\r\n if (component.contactDetailComponent.contactForm.touched && component.contactDetailComponent.contactForm.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ERFormCAGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadERForm') || this.authService.hasPermission('SSDP.CanWriteERForm') || this.authService.hasPermission('SSDP.CanIngestERForm') || this.authService.hasPermission('SSDP.CanCreateERForm');\r\n\r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ERFormComponent } from '../../components/index';\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ERFormCDGuard implements CanDeactivate {\r\n canDeactivate(component: ERFormComponent): Observable | Promise | boolean {\r\n\r\n return component.canDeactivate ? component.canDeactivate() : true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n\r\nexport class FooterDashboardGuard implements CanDeactivate {\r\n canDeactivate(component: any): Observable | Promise | boolean {\r\n document.getElementsByTagName('footer')[0].classList.remove(\"footer-spacing-fix\");\r\n return true;\r\n }\r\n}\r\n","export { CompanyAuthorizationGuard } from './company-authorization.guard';\r\nexport { ContactAuthorizationGuard } from './contact-authorization.guard';\r\nexport { LLFormAuthorizationGuard } from './ll-form-authorization.guard';\r\nexport { ContactEditGuard } from './contact-edit-guard';\r\nexport { CompanyEditGuard } from './company-edit-guard';\r\nexport { LLFormGuard } from './ll-form-guard';\r\nexport { ERFormCDGuard } from './er-form-cd-guard';\r\nexport { ERFormCAGuard } from './er-form-ca-guard';\r\nexport { BusinessCategoryEditGuard } from './business-category.guard';\r\nexport { BusinessCategoryAuthorizationGuard } from './business-category-authorization.guard';\r\nexport { OrderGuard } from './order-guard';\r\nexport { OrderStep1Guard } from './order-step-1-guard';\r\nexport { OrderStep2Guard } from './order-step-2-guard';\r\nexport { OrderStep3Guard } from './order-step-3-guard';\r\nexport { BNCCFormGuard } from './bncc-form.guard';\r\nexport { SubmissionAuthorizationGuard } from './submission-authorization.guard';\r\nexport { LabelSPLFormGuard } from './label-spl.guard';\r\nexport { FooterDashboardGuard } from './footer-dashboard-guard';\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthorizationService, StorageManagerService } from '../services';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ICustomer } from '../models';\r\n\r\n@Injectable()\r\nexport class LabelSPLFormGuard implements CanActivate, CanLoad {\r\n\r\n constructor(private router: Router, private authorizationService: AuthorizationService, private toastr: ToastrService, private storage: StorageManagerService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canDeactivate(component: any):Observable | Promise | boolean {\r\n return component.canDeactivate();\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let hasPermission = true;\r\n\r\n const cust = this.storage.read('currentCustomer');\r\n let currentCustomer: ICustomer;\r\n \r\n if (cust) {\r\n currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n }\r\n\r\n hasPermission = this.authorizationService.hasPermission('SSDP.CanIngestPLRSPLFile');\r\n\r\n if (!hasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(hasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class LCRFormAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadLCRForm') || this.authService.hasPermission('SSDP.CanWriteLCRForm');\r\n\r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { LCRFormComponent } from '../../components/lcr-form/lcr-form.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LCRFormGuard implements CanDeactivate {\r\n canDeactivate(component: LCRFormComponent): Observable | Promise | boolean {\r\n if (component.frmLCR.touched && component.frmLCR.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AuthorizationService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class LLFormAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authService: AuthorizationService, private toastr: ToastrService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let bhasPermission = false;\r\n\r\n bhasPermission = this.authService.hasPermission('SSDP.CanReadLLForm') || this.authService.hasPermission('SSDP.CanWriteLLForm');\r\n\r\n if (!bhasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(bhasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { LLFormComponent } from '../../components/areas/products/ll-form/ll-form.component';\r\n\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class LLFormGuard implements CanDeactivate {\r\n\r\n canDeactivate(\r\n component: DeactivationGuard): Observable | Promise | boolean {\r\n return component.canDeactivate ? component.canDeactivate() : true;\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanDeactivate, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthorizationService, OrderService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { OrderComponent } from '../../../app/components/order/order.component';\r\n\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderGuard implements CanDeactivate, CanActivate, CanLoad {\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthorizationService,\r\n private orderService: OrderService) {\r\n }\r\n\r\n canDeactivate(component: OrderComponent): Observable | Promise | boolean {\r\n if (component.getForm('step1').touched && component.getForm('step1').dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): boolean {\r\n let hasAccess = true;\r\n if (!this.authService.hasPermission(this.orderService.PERMISSION_CAN_READ_ORDER)) {\r\n hasAccess = false;\r\n }\r\n return hasAccess;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanDeactivate, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { OrderStep1Component } from '../../components/order-step-1/order-step-1.component';\r\nimport { AuthorizationService, OrderService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderStep1Guard implements CanDeactivate, CanActivate, CanLoad {\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthorizationService,\r\n private orderService: OrderService,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n canDeactivate(component: OrderStep1Component): Observable | Promise | boolean {\r\n if (component.orderStep1Form.touched && component.orderStep1Form.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): boolean {\r\n let hasAccess = true;\r\n if (!this.authService.hasPermission(this.orderService.PERMISSION_CAN_READ_ORDER)) {\r\n hasAccess = false;\r\n }\r\n return hasAccess;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanDeactivate, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { OrderStep2Component } from '../../components/order-step-2/order-step-2.component';\r\nimport { AuthorizationService, OrderService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderStep2Guard implements CanDeactivate, CanActivate, CanLoad {\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthorizationService,\r\n private orderService: OrderService,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n canDeactivate(component: OrderStep2Component): Observable | Promise | boolean {\r\n if (component.orderStep2Form.touched && component.orderStep2Form.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): boolean {\r\n let hasAccess = true;\r\n if (!this.authService.hasPermission(this.orderService.PERMISSION_CAN_READ_ORDER)) {\r\n hasAccess = false;\r\n }\r\n return hasAccess;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanDeactivate, CanActivate, CanLoad, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { OrderStep3Component } from '../../components/order-step-3/order-step-3.component';\r\nimport { AuthorizationService, OrderService } from '../services';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n\r\nexport interface DeactivationGuard {\r\n canDeactivate(): Observable | Promise | boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OrderStep3Guard implements CanDeactivate, CanActivate, CanLoad {\r\n\r\n constructor(\r\n private router: Router,\r\n private authService: AuthorizationService,\r\n private orderService: OrderService,\r\n private toastr: ToastrService) {\r\n }\r\n\r\n canDeactivate(component: OrderStep3Component): Observable | Promise | boolean {\r\n if (component.orderStep3Form.touched && component.orderStep3Form.dirty) {\r\n return confirm(`Are you sure you want to navigate away and discard your changes?`);\r\n }\r\n return true;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n canLoad(state: Route): boolean {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): boolean {\r\n let hasAccess = true;\r\n if (!this.authService.hasPermission(this.orderService.PERMISSION_CAN_READ_ORDER)) {\r\n hasAccess = false;\r\n }\r\n return hasAccess;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthorizationService, StorageManagerService } from '../services';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ICustomer } from '../models';\r\n\r\n@Injectable()\r\nexport class SplUploadGuard implements CanActivate, CanLoad {\r\n\r\n constructor(private router: Router, private authorizationService: AuthorizationService, private toastr: ToastrService, private storage: StorageManagerService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canDeactivate(component: any):Observable | Promise | boolean {\r\n return component.canDeactivate();\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let hasPermission = true;\r\n\r\n const cust = this.storage.read('currentCustomer');\r\n let currentCustomer: ICustomer;\r\n \r\n if (cust) {\r\n currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n }\r\n\r\n hasPermission = this.authorizationService.hasPermission('SSDP.CanIngestLLForm') || this.authorizationService.hasPermission('SSDP.CanReadLLForm');\r\n\r\n if (!hasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(hasPermission) ;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthorizationService, StorageManagerService } from '../services';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ICustomer } from '../models';\r\n\r\n@Injectable()\r\n\r\nexport class SubmissionAuthorizationGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authorizationService: AuthorizationService, private toastr: ToastrService, private storage: StorageManagerService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canDeactivate(component: any):Observable | Promise | boolean {\r\n return component.canDeactivate();\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let hasPermission = true;\r\n\r\n const cust = this.storage.read('currentCustomer');\r\n let currentCustomer: ICustomer;\r\n\r\n if (cust) {\r\n currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n }\r\n\r\n hasPermission = this.authorizationService.hasAccessToAppVariant('SSDrugProducts-ESG', currentCustomer);\r\n\r\n if (!hasPermission) {\r\n this.router.navigate(['/no-esg-access']);\r\n }\r\n\r\n return of(hasPermission);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router, UrlSegment, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { AuthorizationService, StorageManagerService } from '../services';\r\nimport { Observable, of } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ICustomer } from '../models';\r\n\r\n@Injectable()\r\nexport class SubstanceLookupGuard implements CanActivate, CanLoad {\r\n\r\n constructor(private router: Router, private authorizationService: AuthorizationService, private toastr: ToastrService, private storage: StorageManagerService) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n canDeactivate(component: any):Observable | Promise | boolean {\r\n return component.canDeactivate();\r\n }\r\n\r\n canLoad(route: Route, segments: UrlSegment[]): Observable {\r\n return this.checkAccess();\r\n }\r\n\r\n private checkAccess(): Observable {\r\n let hasPermission = true;\r\n\r\n const cust = this.storage.read('currentCustomer');\r\n let currentCustomer: ICustomer;\r\n \r\n if (cust) {\r\n currentCustomer = typeof cust === 'object' ? cust : JSON.parse(cust);\r\n }\r\n\r\n hasPermission = this.authorizationService.hasPermission('SSDP.CanValidateSubstanceLookup');\r\n\r\n if (!hasPermission) {\r\n this.toastr.error('You do not have access to this page.');\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n return of(hasPermission) ;\r\n }\r\n}\r\n","// ====================================================\r\n// More Templates: https://www.ebenmonney.com/templates\r\n// Email: support@ebenmonney.com\r\n// ====================================================\r\n\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n\r\n\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n]);\r\n\r\n\r\n\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ]);\r\n}\r\n","export default class BlobUtility{\r\n\r\n //Parameters:\r\n ///b64Data = Base64String\r\n ///contentType = the mime type to set the type of file the Blob will be\r\n ///sliceSize = the bytes to be process in each batch(loop).\r\n /// 512 bytes seems to be the ideal slice size for the performance wise per findings online\r\n //Process:\r\n ///Convert b64Data to its binary value using window.atob() function (ASCII to Binary)\r\n ///Get the Unicode value of each binary character:\r\n ////Loop through the Binary string in batches of 512.\r\n ////Next, use charCodeAt(i) to get the Unicode character.\r\n ////Last, add it to a working Uint8Array\r\n ///Once done looping, create the Blob from the byteArray with content type as specified by input parameter\r\n public static b64toBlob(b64Data, contentType: string, sliceSize: number = 512) {\r\n let byteCharacters = window.atob(b64Data);\r\n let byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n let slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n // if 512 is bassed in as sliceSize the byteNumbers length will be 512\r\n let byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n let byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n let blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n public static setDownloadClickEvent(url: string, fileName: string): void {\r\n const a = document.createElement('a');\r\n\r\n a.setAttribute('hidden', '');\r\n a.setAttribute('href', url);\r\n a.setAttribute('download', fileName);\r\n\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n}\r\n","import { AbstractControl, ValidatorFn, UntypedFormGroup } from '@angular/forms';\r\n\r\nexport function selectCompanyTypeValidator(ckEstabOwned, ckEstab3rdParty, ck3, ck4, ck5, ck6) {\r\n return (group: UntypedFormGroup): { [key: string]: any } => {\r\n if (group.get(ckEstabOwned) != null) {\r\n if (group.get(ckEstabOwned).value && group.get(ckEstab3rdParty).value) {\r\n // Establishment(Owned) and Establishment(3rd Party) cannot be selected together.\r\n return { bothEstbChecked: true };\r\n }\r\n }\r\n };\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { StorageManagerService } from '../services/storage-manager.service';\r\n\r\n// This class is used to create http header for all api calls\r\nexport class HttpHelper {\r\n apiResult: any;\r\n\r\n constructor(private http: HttpClient, private authService: AuthenticationService, private storage: StorageManagerService) {\r\n }\r\n\r\n // Create helper for api calls\r\n createHttpHeaders(applicationVariantName: string = ''): HttpHeaders {\r\n let headers: HttpHeaders;\r\n const currentCustomer = !this.storage.read('currentCustomer') || typeof this.storage.read('currentCustomer') === 'object' ? this.storage.read('currentCustomer') : JSON.parse(this.storage.read('currentCustomer'));\r\n const currentContactId = sessionStorage['currentContactId'] !== undefined ? sessionStorage['currentContactId'] : '';\r\n const currentCompanyId = sessionStorage['currentCompanyId'] !== undefined ? sessionStorage['currentCompanyId'] : '';\r\n const currentCompanyRevisionId = sessionStorage['currentCompanyRevisionId'] !== undefined ? sessionStorage['currentCompanyRevisionId'] : '';\r\n const authData = this.authService.getAuthData();\r\n\r\n // If the applicationVariant name is not supplied, default to authData.applicationVariantName.\r\n applicationVariantName = !applicationVariantName ? authData.applicationVariantName : applicationVariantName\r\n\r\n headers = new HttpHeaders({\r\n 'content-Type': 'application/json',\r\n accept: 'text/plain',\r\n 'customerGuid': currentCustomer.customerGuid,\r\n 'applicationVariantId': authData.applicationVariantId ? authData.applicationVariantId.toString() : '',\r\n 'applicationName': authData.applicationName ? authData.applicationName.toString() : '',\r\n 'applicationVariantName': applicationVariantName,\r\n 'authorization': this.authService.getBearerToken()\r\n });\r\n\r\n if (currentContactId !== '') {\r\n headers = headers.set('contactId', currentContactId);\r\n } else if (currentCompanyId !== '') {\r\n headers = headers.set('companyId', currentCompanyId);\r\n headers = headers.set('companyRevisionId', currentCompanyRevisionId);\r\n }\r\n\r\n return headers;\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest, HttpEvent } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { catchError, retry } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { StorageManagerService } from '../services';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { EMPTY } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n modifiedHeader: HttpHeaders;\r\n constructor(private router: Router, private toastr: ToastrService, private storage: StorageManagerService, private authenticationService: AuthenticationService) {\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n const req = request.clone();\r\n\r\n return next.handle(req).pipe(\r\n retry(0),\r\n\r\n catchError((error: HttpErrorResponse) => {\r\n\r\n if (error.status === 401) {\r\n\r\n this.toastr.error('Http call failed with status 401');\r\n this.router.navigate(['/error', { message: 'Http call failed with status 401' }]);\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import { AbstractControl, ValidatorFn, UntypedFormGroup } from '@angular/forms';\r\n\r\nexport function phoneNumberValidator(dialCode, areaCode, phoneNumber) {\r\n return (group: UntypedFormGroup): { [key: string]: any } => {\r\n let countryCode = group.get(dialCode);\r\n let matches: string;\r\n if (countryCode && countryCode.value) {\r\n let areaCodeValue = group.get(areaCode).value;\r\n let phoneNumberValue = group.get(phoneNumber).value;\r\n\r\n if (countryCode.value === '1' || countryCode.value === '+1') { //US phone number\r\n // validate area code\r\n if (areaCodeValue) {\r\n matches = areaCodeValue.match(/^[0-9]{3}$/);\r\n if (!matches) {\r\n return { 'invalidAreaCode': true };\r\n }\r\n }\r\n // validate phone number\r\n if (phoneNumberValue) {\r\n matches = phoneNumberValue.match(/^\\d{3}[-]?\\d{4}$/);\r\n if (!matches) {\r\n return { 'invalidPhoneNumber': true };\r\n }\r\n }\r\n } else { //International number\r\n if (areaCodeValue) {\r\n let matches = areaCodeValue.match(/^[0-9-]*$/);\r\n if (!matches) {\r\n return { 'invalidAreaCode': true };\r\n }\r\n }\r\n // validate phone number\r\n if (phoneNumberValue) {\r\n matches = phoneNumberValue.match(/^[0-9-]*$/);\r\n if (!matches) {\r\n return { 'invalidPhoneNumber': true };\r\n }\r\n }\r\n }\r\n }\r\n };\r\n}\r\n","export class ApplicationSelection {\r\n constructor(\r\n public application: string,\r\n\r\n public environment: string) {\r\n\r\n }\r\n}\r\n","import { ILLProductBase } from \"./ll-product-base.model\";\r\n\r\n\r\nexport class IBNCCEstablishment {\r\n establishmentId: number;\r\n establishmentName: string;\r\n establishmentDUNS: string;\r\n sortOrder: number;\r\n bnccRevisionId: number;\r\n isManualEntry: boolean;\r\n product: ILLProductBase;\r\n}\r\n","export class ILLBusinessCategory {\r\n categoryId: string;\r\n label: string;\r\n description: string;\r\n activeFlag: string;\r\n}\r\n","import { IBusinessOperation } from './business-operations.model';\r\nimport { IBusinessOperationQualifier } from './business-operations-qualifiers.model';\r\n\r\nexport class IBusinessOperationQualifierList {\r\n businessOperationBusinessOperationQualifierList: IBusinessOperationQualifier[];\r\n}\r\n\r\n","export class IBusinessOperationQualifier {\r\n parentTermListName: string;\r\n parentTermValueCode: string;\r\n parentTermValueName: string;\r\n childTermListName: string;\r\n childTermValueCode: string;\r\n childTermValueName: string;\r\n}\r\n","export class IBusinessOperation {\r\n businessOperations: string;\r\n businessOperationQualifiers: string[];\r\n}\r\n\r\n","import { ILLBusinessCategory } from '.';\r\n\r\nexport class ICompanyDetail {\r\n companyId: string;\r\n companyRevisionId: string;\r\n companyName: string;\r\n businessCategory: ILLBusinessCategory;\r\n businessCategoryId: string;\r\n address: string;\r\n city: string;\r\n countryId: string;\r\n countryRegion: string;\r\n zip: string;\r\n duns: string;\r\n fei: string;\r\n isRegistrantConfidentiality: string;\r\n isEstablishmentConfidentality: string;\r\n establishmentOwner: string;\r\n thirdPartyEstablishment: string;\r\n labeler: string;\r\n registrant: string;\r\n usAgent: string;\r\n importer: string;\r\n parentVersion: string;\r\n userID: string;\r\n formActiveFlag: string;\r\n version: string;\r\n status: string;\r\n activeFlagFormatted: string;\r\n activeFlag: string;\r\n isDraftMode: boolean;\r\n contactRevisionId: string;\r\n contactName: string;\r\n phone: string;\r\n email: string;\r\n ndcCodeList: string;\r\n}\r\n","\r\nexport class INdcLabeler {\r\n companyRevisionLabelerCode_ID: string;\r\n ndcLabelerCode: string;\r\n}\r\n","export class IContactCompany {\r\n companyRevisionId: string;\r\n companyName: string;\r\n companyVersion: string;\r\n companyContactRoleCode: string;\r\n companyContactRoleDescription: string;\r\n contactRevisionId: string;\r\n contactName: string;\r\n contactType: string;\r\n associationActiveFlag: boolean;\r\n associationType: string;\r\n}\r\n\r\n","import { ILLBusinessCategory } from './business-category.model';\r\n\r\nexport class IContactDetail {\r\n contactName: string;\r\n contactId: string;\r\n contactRevisionId: string;\r\n businessCategory: ILLBusinessCategory;\r\n businessCategoryId: string;\r\n contactType: string;\r\n contactActiveFlag: string;\r\n version: string;\r\n parentVersion: string;\r\n formActiveFlag: string;\r\n status: string;\r\n isEstablishment: string;\r\n isImporter: string;\r\n isLabeler: string;\r\n isRegistrant: string;\r\n isUSAgent: string;\r\n\r\n dialCode: string;\r\n areaCode: string;\r\n phoneNumber: string;\r\n phoneExtension: string;\r\n\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n address: string;\r\n city: string;\r\n countryId: string;\r\n countryRegion: string;\r\n zip: string;\r\n notes: string;\r\n activeFlagFormatted: string;\r\n activeFlag: string;\r\n isDraftMode: boolean;\r\n loAFlag: boolean;\r\n}\r\n","export class dynamicschemaData {\r\npublic fields: any[] = [\r\n {\r\n type: 'text',\r\n name: 'firstName',\r\n label: 'First Name',\r\n value: 'John',\r\n forbiddenNameValidator: true,\r\n required: true,\r\n },\r\n {\r\n type: 'text',\r\n name: 'middleName',\r\n label: 'Middle Name',\r\n value: '',\r\n required: false,\r\n },\r\n {\r\n type: 'text',\r\n name: 'lastName',\r\n label: 'Last Name',\r\n value: '',\r\n required: true,\r\n maxLength: '2'\r\n },\r\n {\r\n type: 'text',\r\n name: 'email',\r\n label: 'Email',\r\n value: '',\r\n required: true,\r\n },\r\n { type: 'date', name: 'DOB', label: 'DOB', value: '11/21/2011', placeholder: 'MM/dd/yyyy', required: true },\r\n // {\r\n // type: 'file',\r\n // name: 'picture',\r\n // label: 'Picture',\r\n // required: false\r\n // },\r\n {\r\n type: 'dropdown',\r\n name: 'country',\r\n label: 'Country',\r\n value: 'in',\r\n required: true,\r\n options: [\r\n { key: 'in', label: 'India' },\r\n { key: 'us', label: 'USA' }\r\n ]\r\n },\r\n {\r\n type: 'radio',\r\n name: 'gender',\r\n label: 'Gender',\r\n value: 'in',\r\n required: false,\r\n options: [\r\n {name: 'g', key: 'm', label: 'Male' },\r\n { name: 'g', key: 'f', label: 'Female' }\r\n ]\r\n },\r\n {\r\n type: 'checkbox',\r\n name: 'hobby',\r\n label: 'Hobby',\r\n required: false,\r\n options: [\r\n { key: 'f', label: 'Fishing' },\r\n { key: 'c', label: 'Cooking' }\r\n ]\r\n }\r\n ];\r\n}\r\n","export class IErRevisionHistory {\r\n displayOrder: number;\r\n erRevisionId: number;\r\n formVersion: string;\r\n modifiedBy: string;\r\n modifiedDate: string;\r\n}\r\n","import { ILLBusinessCategory } from './business-category.model';\r\nimport { ILLGenericKeys, ILLCompany, IEstablishment, ISSDPConctact } from './index';\r\n\r\nexport class IER {\r\n erxmlns: string;\r\n erId: number;\r\n erRevisionId: number;\r\n majorRevision: number;\r\n minorRevision: number;\r\n workFlowStatus: number;\r\n splTitle: string;\r\n splVersion: string;\r\n splServiceType: ILLGenericKeys;\r\n setId: string;\r\n dunsNumber: string;\r\n modifiedByDate: string;\r\n modifiedByUser: string;\r\n isDraftMode: boolean;\r\n versionNumber: string;\r\n effectiveTime: Date;\r\n busCategory: ILLBusinessCategory;\r\n registrantCompany: ILLCompany;\r\n registrantContact: ISSDPConctact;\r\n establishments: IEstablishment[];\r\n}\r\n","import { ILLCompany, ISSDPConctact, IImporter } from './index';\r\n\r\nexport class IEstablishment {\r\n establishmentId: number;\r\n establishmentName: string;\r\n sequence: number;\r\n establishmentCompany: ILLCompany;\r\n establishmentContact: ISSDPConctact;\r\n usAgentCompany: ILLCompany;\r\n usAgentContact: ISSDPConctact;\r\n importers: IImporter[];\r\n}\r\n","export class IFdaCenter {\r\n ndcProductLinkNotAllowed: boolean;\r\n ndcProductLinkOptional: boolean;\r\n}\r\n","export enum FormType\r\n{\r\n LCR = 1,\r\n ER = 2,\r\n LL = 3,\r\n ORDER = 4,\r\n BNCC = 5,\r\n ESG = 6\r\n}","import { ILLCompany, ISSDPConctact } from './index';\r\n\r\nexport class IImporter {\r\n importerId: number;\r\n sequence: number;\r\n importerCompany: ILLCompany;\r\n importerContact: ISSDPConctact;\r\n}","export { ApplicationSelection } from './application.model';\r\nexport { ICustomer } from './customer.model';\r\nexport { IServerSettings } from './serversettings';\r\nexport { IServiceError } from './serviceError';\r\nexport { IUserAccessPermissions } from './userAccessPermissions.model';\r\nexport { IPermission } from './permission.model';\r\nexport { IUserPrefs } from './user-prefs.model';\r\nexport { IAppPrefs } from './app-prefs.model';\r\nexport { IRevisionHistory } from './revisionHistory.model';\r\nexport { IHasPermissionObject } from './hasPermission.model';\r\nexport { ISubmission } from './submission.model';\r\nexport { ISubmissionItem } from './submission-item.model';\r\nexport { ICompany } from './company.model';\r\nexport { ICompanyDetail } from './company-detail.model';\r\nexport { ICompanyType } from './company-type.model';\r\nexport { IContact } from './contact.model';\r\nexport { IContactDetail } from './contact-detail.model';\r\nexport { IContactCompany } from './contact-company-association.model';\r\nexport { IEntity } from './entity.model';\r\nexport { ICompanyTypeInfo } from './company-type-info.model';\r\nexport { IContactForSave } from './contact-for-save.model';\r\nexport { IBusinessOperation } from './business-operations.model';\r\nexport { IContactKeys } from './contact-keys.model';\r\nexport { ICompanyKeys } from './company-keys.model';\r\nexport { IContactLoaFlag } from './contact-loa.model';\r\nexport { ICompanyContactStatus } from './company-contact-status.model';\r\nexport { IBusinessOperationQualifier } from './business-operations-qualifiers.model';\r\nexport { IBusinessOperationQualifierList } from './business-operation-qualifier-list.model';\r\nexport { ILLFormDetail } from './ll-form-detail.model';\r\nexport { ILLProductBase } from './ll-product-base.model';\r\nexport { ILLSignature } from './ll-signature.model';\r\nexport { ILLGenericKeys } from './ll-generic-keys.model';\r\nexport { ILLCompany } from './ll-company.model';\r\nexport { ILLActiveIngridient } from './ll-active-ingridient.model';\r\nexport { ILLInactiveIngridient } from './ll-inactive-ingridient.model';\r\nexport { ILLNameDescription } from './ll-name-description.model';\r\nexport { ILLPackageConfigurations } from './ll-package-configs.model';\r\nexport { ILLPackage } from './ll-packages.model';\r\nexport { ILLPackageMarketing} from './ll-package-marketing.model';\r\nexport { ILLEstablishment} from './ll-establishment.model';\r\nexport { ILLRelationship } from './ll-relationship.model';\r\nexport { INdcLabeler } from './company-ndclabeler.model';\r\nexport { Order } from './order.model';\r\nexport { OrderUser } from './order-user.model';\r\nexport { IVocab} from './vocab.models';\r\nexport { ILLCustomerCompaniesByTypeWrapper } from './ll-customer-companies-types-wrapper.model';\r\nexport { ILLRevisionHistory} from './ll-revision-history.model';\r\nexport { ILLProduct } from './ll-product.model';\r\nexport { ILLKit } from './ll-kit.model';\r\nexport { ILLPart} from './ll-part.model';\r\nexport {ISplMessage } from './spl-message.model';\r\nexport { ISplMessages } from './spl-messages.model';\r\nexport { ISplValidation } from './spl-validation.model';\r\nexport { IER } from './er.model';\r\nexport { IEstablishment } from './establishment.model';\r\nexport { ISSDPConctact } from './ssdp-contact.model';\r\nexport { IImporter } from './importer.model';\r\nexport { User } from './user.model';\r\nexport { IApiTypedResult } from './api-typed-result';\r\nexport { ITermByIndustryUsageAndCategory } from './termByIndustryUsageAndCategory.model';\r\nexport { IErRevisionHistory } from './er-revision-history.model';\r\nexport { SplFileStorageResult } from './spl-file-storage-result';\r\nexport { SplMergeInput } from './spl-merge-input';\r\nexport { ILLBusinessCategory } from './business-category.model';\r\nexport { IFdaCenter } from './fda-center';\r\nexport { IResults } from './results.model';\r\nexport { FeatureComponent } from '../../components/feature/feature.component';","import { ILLGenericKeys } from './ll-generic-keys.model';\r\nimport { Esig } from './esig.model';\r\nimport { ICompanyDetail } from './company-detail.model';\r\nimport { IContactDetail } from './contact-detail.model';\r\nimport { ILLBusinessCategory } from '.';\r\n\r\nexport class LCRData {\r\n\r\n majorRevision: number;\r\n minorRevision: number;\r\n lcrRevisionId: number;\r\n lcrId: number;\r\n splTitle: string;\r\n splVersion: number;\r\n splServiceType: ILLGenericKeys;\r\n signature: Esig;\r\n setId: string;\r\n ndcLabelerCode: string;\r\n effectiveTime: Date;\r\n busCategory: ILLBusinessCategory;\r\n modifiedByUser: string;\r\n modifiedByDate: Date;\r\n company: ICompanyDetail;\r\n contact: IContactDetail;\r\n}\r\n\r\n","import { ILLGenericKeys} from './index';\r\n\r\n\r\nexport class ILLActiveIngridient {\r\n activeIngredientName: ILLGenericKeys;\r\n basisStrength: ILLGenericKeys;\r\n refCode: ILLGenericKeys;\r\n numValue: string;\r\n numValueUnit: ILLGenericKeys;\r\n denomValue: string;\r\n denomValueUnit: ILLGenericKeys;\r\n moiety: ILLGenericKeys[];\r\n substanceType: string;\r\n}\r\n","import { ILLGenericKeys } from './ll-generic-keys.model';\r\nimport { ISSDPConctact } from './ssdp-contact.model';\r\n\r\nexport class ILLCompany {\r\n splTitle: string;\r\n ndcLabelerCode: string;\r\n majorRevision: number;\r\n minorRevision: number;\r\n companyId: string;\r\n companyRevisionId: number;\r\n companyName: string;\r\n type: string;\r\n dunsNumber: string;\r\n fei: string;\r\n address: string;\r\n city: string;\r\n country: ILLGenericKeys;\r\n state: string;\r\n zip: string;\r\n businessCategory: ILLGenericKeys;\r\n companyType: ILLGenericKeys[];\r\n notes: string;\r\n registrantConfidentiality: string;\r\n establishmentConfidentiality: string;\r\n businessOperations: ILLGenericKeys[];\r\n ndcLabelerCodes: ILLGenericKeys[];\r\n contacts: ISSDPConctact[];\r\n}\r\n","import { ILLCompany } from './index';\r\nimport { ILLEstablishment } from './ll-establishment.model';\r\n\r\nexport class ILLCustomerCompaniesByTypeWrapper {\r\n registrants: ILLCompany[];\r\n labelers: ILLCompany[];\r\n importers: ILLCompany[];\r\n usAgents: ILLCompany[];\r\n establishments: ILLEstablishment[];\r\n establishmentsThirdParty: ILLEstablishment[];\r\n establishmentOwnedAndEstablishmentThirdParty: ILLEstablishment[];\r\n}\r\n","import { ILLCompany, ILLRelationship } from './index';\r\n\r\nexport class ILLEstablishment {\r\n establishmentCompany: ILLCompany;\r\n confidentiality: string;\r\n businessOperations: ILLRelationship[];\r\n}\r\n","import { ILLProduct, ILLSignature, ILLGenericKeys, ILLCompany, ILLEstablishment, ISplValidation, ILLBusinessCategory, IFdaCenter} from './index';\r\n\r\n\r\nexport class ILLFormDetail {\r\n llId: string;\r\n llRevisionId: string;\r\n setId: string;\r\n createDate: Date;\r\n businessCategoryId: string;\r\n confidentiality: string;\r\n createUser: string;\r\n effectiveDate: Date;\r\n countryRegion: string;\r\n formatedVersion: string;\r\n formName: string;\r\n isDraftMode: boolean;\r\n proprietaryName: string;\r\n proprietaryNameSuffix: string;\r\n establishedGenericName: string;\r\n labelerCompanyRevisionId: string;\r\n minorRevision: number;\r\n majorVersion: number;\r\n splVersion: string;\r\n title: string;\r\n splTitle: string;\r\n ndcProductCode: string;\r\n sourceNDCCode: string;\r\n estGenName: string;\r\n deaSchedule: string;\r\n dosageForm: string;\r\n dosageFormId: number;\r\n deaScheduleId: number;\r\n productTypeId: number;\r\n serviceType: ILLGenericKeys;\r\n signature: ILLSignature;\r\n products: ILLProduct[];\r\n establishments: ILLEstablishment[];\r\n labelerCompany: ILLCompany;\r\n registrantCompany: ILLCompany;\r\n activeFlag: boolean;\r\n modifiedByUser: string;\r\n ndcLabelerCode: string;\r\n splServiceType: ILLGenericKeys;\r\n splRevisionDate: string;\r\n businessCategory: ILLBusinessCategory;\r\n validationMessages: ISplValidation;\r\n modifiedByDate: Date;\r\n effectiveTime: Date;\r\n fdaCenter: IFdaCenter;\r\n}\r\n\r\n","export class ILLGenericKeys {\r\n id: string;\r\n label: string;\r\n code: string;\r\n name: string;\r\n relatedKeys: ILLGenericKeys[];\r\n relatedKeyLabels: string;\r\n}\r\n","import { ILLGenericKeys} from './index';\r\n\r\n\r\nexport class ILLInactiveIngridient {\r\n inActiveIngredientName: ILLGenericKeys;\r\n confidentiality: string;\r\n classCode: ILLGenericKeys;\r\n numValue: string;\r\n numValueUnit: ILLGenericKeys;\r\n denomValue: string;\r\n denomValueUnit: ILLGenericKeys;\r\n}\r\n","import { ILLProductBase } from './ll-product-base.model';\r\nimport { ILLPart } from './ll-part.model';\r\n\r\nexport class ILLKit extends ILLProductBase {\r\n\r\n $type: string;\r\n parts: ILLPart[];\r\n productType: string;\r\n description: string;\r\n summaryDetails: string;\r\n topLevelXMLNodeName: string;\r\n hasActiveIngredients: boolean;\r\n hasCharacteristics: boolean;\r\n hasInactiveIngredients: boolean;\r\n}\r\n","import { ILLGenericKeys } from \"./ll-generic-keys.model\";\r\n\r\nexport class ILLNameDescription {\r\n name: ILLGenericKeys;\r\n description: string;\r\n}\r\n","import { ILLGenericKeys, ILLPackage, ILLPackageMarketing } from './index';\r\n\r\nexport class ILLPackageConfigurations {\r\n packageConfigurationId: number;\r\n packageConfigurationName: string;\r\n packages: ILLPackage[];\r\n defaultStrengthDenominatorUnit: ILLGenericKeys;\r\n combinationProductType: ILLGenericKeys;\r\n packageMarketing: ILLPackageMarketing;\r\n isSamplePackaging: boolean;\r\n}","import { ILLGenericKeys} from './index';\r\n\r\nexport class ILLPackageMarketing {\r\n marketingStatus: ILLGenericKeys;\r\n startDate: Date;\r\n endDate: Date;\r\n}\r\n","import { ILLGenericKeys } from './index';\r\n\r\nexport class ILLPackage {\r\n level: string;\r\n type: ILLGenericKeys;\r\n quantityValue: string;\r\n quantityUnit: ILLGenericKeys;\r\n code: string;\r\n packageDetailId: number;\r\n}","import { ILLGenericKeys } from './index';\r\nimport { ILLProductBase } from './ll-product-base.model';\r\n\r\nexport class ILLPart extends ILLProductBase {\r\n quantityValue: string;\r\n quantityUnit: ILLGenericKeys;\r\n productType: string;\r\n topLevelXMLNodeName: string;\r\n}\r\n","import { ILLGenericKeys, ILLActiveIngridient, ILLNameDescription, ILLPackageConfigurations, ILLInactiveIngridient} from './index';\r\n\r\nexport class ILLProductBase {\r\n productId: number;\r\n revision: number;\r\n proprietaryName: string;\r\n proprietaryNameSuffix: string;\r\n sourceNDCCode: string;\r\n estGenName: string;\r\n deaSchedule: ILLGenericKeys;\r\n dosageForm: ILLGenericKeys;\r\n routeOfAdmins: ILLGenericKeys[];\r\n activeIngredients: ILLActiveIngridient[];\r\n inActiveIngredients: ILLInactiveIngridient[];\r\n color: ILLNameDescription[];\r\n scoring: ILLGenericKeys;\r\n shape: ILLGenericKeys;\r\n shapeDesc: string;\r\n size: string;\r\n imprint: string;\r\n flavor: ILLNameDescription[];\r\n category: ILLGenericKeys;\r\n applicationNo: string;\r\n cosmeticCategory: string;\r\n cosmeticProduct: ILLGenericKeys;\r\n citation: ILLGenericKeys;\r\n status: ILLGenericKeys;\r\n startDate: Date;\r\n endDate: Date;\r\n ndcProductCode: string;\r\n packageConfigurations: ILLPackageConfigurations[];\r\n defaultStrengthDenominatorUnit: ILLGenericKeys;\r\n topLevelXMLNodeName: string;\r\n hasActiveIngredients: boolean;\r\n hasInactiveIngredients: boolean;\r\n description: string;\r\n quantityValue: string;\r\n quantityUnit: ILLGenericKeys;\r\n llModifiedOn: Date;\r\n productType: string;\r\n llFormName: string;\r\n llFormVersion: string;\r\n marketingCategory: string;\r\n marketingStartDate: Date;\r\n marketingEndDate: Date;\r\n listingRecordCertifiedThroughStatus: string;\r\n listingRecordCertifiedThroughDate: Date;\r\n}\r\n\r\n\r\n","import {ILLProductBase } from './ll-product-base.model';\r\n\r\nexport class ILLProduct extends ILLProductBase {\r\n\r\n $type: string;\r\n summaryDetails: string;\r\n productType: string;\r\n description: string;\r\n}\r\n\r\n","import { ILLGenericKeys } from './ll-generic-keys.model';\r\n\r\nexport class ILLRelationship {\r\n businessOperations: ILLGenericKeys;\r\n ndcProductCode: string[];\r\n businessOperationsCompanyRevisionId: number;\r\n selected: boolean;\r\n}\r\n","export class ILLRevisionHistory {\r\n llRevisionId: number;\r\n version: string;\r\n modifiedBy: string;\r\n modifiedDate: string;\r\n activeFlag: string;\r\n}\r\n","export class ILLSignature {\r\n eSigCheck: string;\r\n eSigReason: string;\r\n eSigUser: string;\r\n eSigDateTime: Date;\r\n}","import { IContactCompany } from '.';\r\n\r\nexport class NonLatestCompanyContact {\r\n EstablishmentContactOwned: string;\r\n EstablishmentThirdPartyContact: string;\r\n ImporterContact: string;\r\n RegistrantContact: string;\r\n USAgentContact: string;\r\n LabelerContact: string;\r\n}\r\n","import { OrderOwnerType } from \"./order-owner-type-enum.model\";\r\n\r\nexport class OrderUser {\r\n userLogin: string;\r\n userName: string;\r\n userEmail: string;\r\n orderUserTypeId: OrderOwnerType;\r\n userGuid: string;\r\n}\r\n\r\n\r\n","import { ILLGenericKeys } from './ll-generic-keys.model';\r\nimport { Media } from './media.model';\r\nimport { OrderUser } from './order-user.model';\r\nimport { OrderComment } from './order-comment.model';\r\nimport { enWorkflowStatus } from './workflow-status.model';\r\n\r\nexport class Order {\r\n majorRevision: number;\r\n minorRevision: number;\r\n workFlowStatus: enWorkflowStatus;\r\n workFlowOrderId: number;\r\n orderRevisionId: number;\r\n orderId: number;\r\n baselineOrderId: number;\r\n nonChargeableFlag: boolean;\r\n deliveryPriority: string;\r\n splService: ILLGenericKeys;\r\n orderStatus: string;\r\n actualDeliveryDate: Date;\r\n confirmedDueDate: Date;\r\n billable: boolean;\r\n productName: string;\r\n dataCollectionForm: number;\r\n completedSPL: number;\r\n textSelectable: boolean;\r\n additionalInformation: string;\r\n acctMgrInstructions: string;\r\n sourceDocuments: Media[];\r\n orderUsers: OrderUser[];\r\n comments: string;\r\n commentsChangeUser: string;\r\n commentsChangeDate: Date;\r\n orderComments: OrderComment[];\r\n externalTrackingNumber: string;\r\n orderName: string;\r\n colOrDrugFactChangeInstruction: string;\r\n principalDisplayPanelChangeInstruction: string;\r\n LLMetadataChangeInstruction: string;\r\n orderDescription: string;\r\n serviceCategory: string;\r\n isDraftMode: boolean;\r\n isDeleted: boolean;\r\n beforeOrderStatus: string;\r\n beforeConfirmedDate: Date;\r\n baselineWorkFlowOrderId: number;\r\n serviceGroup: string;\r\n country: string;\r\n}\r\n\r\n","export enum PragmaticValidationStatus\r\n{\r\n Passed = 1,\r\n Failed = 2,\r\n Error = 3\r\n}\r\n","export class IRevisionHistory {\r\n Revisions: IRevision[]\r\n}\r\n\r\nexport class IRevision {\r\n revisionNumber: number;\r\n modifiedBy: string;\r\n modifiedDate: Date;\r\n activeFlag: string;\r\n}\r\n\r\n","export class IServiceError {\r\n errorNumber: number;\r\n message: string;\r\n friendlyMessage: string;\r\n errorMessage: string;\r\n errorStatus: number;\r\n name: string;\r\n url: string;\r\n}\r\n","export class SplFileStorageResult {\r\n lspSplFileStorageId: number;\r\n formRevisionId: number;\r\n formType: string;\r\n filePath: string;\r\n fileName: string;\r\n isDeleted: boolean;\r\n createDate: Date;\r\n createUser: string;\r\n changeDate: Date;\r\n changeUser: string;\r\n}\r\n","import { OrderUser } from '.';\r\n\r\nexport class SplMergeInput {\r\n splVersionNumber: number;\r\n ValidatedLLRevisionId: number;\r\n filePath: string;\r\n fileName: string;\r\n userProvidedFileName: string;\r\n mergeFromWorkflowOrderId: number;\r\n mergeFromOrderRevisionId: number;\r\n externalTrackingNumber: string;\r\n orderOwner: OrderUser;\r\n orderName: string;\r\n effectiveDate: Date;\r\n}\r\n","export class ISplMessage {\r\n lineNumber: number;\r\n fieldName: string;\r\n message: string;\r\n messageType: string;\r\n}\r\n","import { ISplMessage } from './index';\r\n\r\nexport class ISplMessages {\r\n messages: ISplMessage[];\r\n}\r\n","export enum SplUploadFileStatus\r\n{\r\n Received = 1,\r\n InProcess = 2,\r\n Passed = 3,\r\n Failed = 4\r\n}\r\n","import { ISplMessages } from './index';\r\n\r\nexport class ISplValidation {\r\n validationStatus: string;\r\n validationMessages: ISplMessages;\r\n}\r\n","import { ILLGenericKeys } from './index';\r\n\r\nexport class ISSDPConctact{\r\n xmlncontact: string;\r\n splTitle: string;\r\n majorRevision: number;\r\n minorRevision: number;\r\n workFlowStatus: number;\r\n contactId: string;\r\n contactRevisionId: string;\r\n firstName: string;\r\n lastName: string;\r\n fullName: string;\r\n phoneArea: string;\r\n areaCode: string;\r\n phoneExt: string;\r\n phone: string;\r\n altPhoneArea: string;\r\n altAreaCode: string;\r\n altPhone: string;\r\n altPhoneExt: string;\r\n email: string;\r\n address: string;\r\n city: string;\r\n zip: string;\r\n notes: string;\r\n country: ILLGenericKeys;\r\n state: string;\r\n companyType: ILLGenericKeys[];\r\n busCategory: ILLGenericKeys;\r\n}\r\n","\r\nexport class User {\r\n userGuid: string;\r\n emailAddress: string;\r\n firstName: string;\r\n lastName: string;\r\n loginName: string;\r\n}\r\n\r\n\r\n","\r\nexport class IUserAccessPermissions {\r\n admin: string;\r\n fileUploadPage: string;\r\n fileDetailsPage: string;\r\n itemInventoryPage: string;\r\n canUploadFile: string;\r\n canSetAppConsent: string;\r\n canCreateData: string;\r\n canUpdateData: string;\r\n canDeleteData: string;\r\n canReadData: string;\r\n fileUploadMenu: string;\r\n fileDetailsMenu: string;\r\n itemInventoryMenu: string;\r\n}\r\n","export class IVocab {\r\n id: string;\r\n label: string;\r\n code: string;\r\n lspFormType: string;\r\n vocabType: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService } from '../services/index';\r\nimport { BNCCFormService } from '../services/bncc-form.service';\r\nimport { IBNCC } from '../models/bncc-model';\r\n\r\n\r\n@Injectable()\r\nexport class BNCCFormResolverService implements Resolve {\r\n revisionId: string;\r\n customerGuid: string;\r\n bnccForm: IBNCC = undefined;\r\n\r\n constructor (private bnccService: BNCCFormService, private storageManagerService: StorageManagerService, private router: Router) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n //first check if formData exists on the route as 'state' \r\n this.bnccForm = this.router.getCurrentNavigation()?.extras?.state?.formData;\r\n\r\n const revisionId = route.params.revisionId;\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n const modifiedByUser = this.storageManagerService.read('userData')?.name;\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n revisionId && !this.bnccForm ? this.bnccService.getBNCCForm(revisionId) : of({ data: this.bnccForm }),\r\n revisionId ? this.bnccService.getRevisionHistory(revisionId, modifiedByUser) : of(null)\r\n ])\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { CompanyContactService, LLFormService, StorageManagerService } from '../../shared/services/index';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class BusinessCategoryResolverService implements Resolve {\r\n customerGuid: string;\r\n\r\n constructor ( private storageManagerService: StorageManagerService,\r\n private companyService: CompanyContactService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n this.companyService.getBusinessCategories(true)]\r\n )\r\n .pipe(catchError(err => of(err)));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { StorageManagerService, CompanyContactService } from '../../shared/services/index';\r\nimport { RefdataService } from '../services/refdata.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class CompanyResolverService implements Resolve {\r\n\r\n companyRevisionId: string;\r\n\r\n constructor (private companyService: CompanyContactService, private storageManagerService: StorageManagerService,\r\n private refDataService: RefdataService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const companyRevisionId = route.params.companyRevisionId;\r\n\r\n const retVal = forkJoin(\r\n this.companyService.getBusinessCategories(false),\r\n this.companyService.getCountries(),\r\n this.companyService.getContacts(),\r\n this.storageManagerService.read('businessOperationQualifiers') ? of(this.storageManagerService.read('businessOperationQualifiers')) : this.refDataService.GetAllBusinessOperationQualifier(),\r\n companyRevisionId ? this.companyService.getCompanyRevisionHistory(companyRevisionId) : of(null),\r\n companyRevisionId ? this.companyService.getBusinessOperationQualifierByCompany(companyRevisionId) : of(null),\r\n companyRevisionId ? this.companyService.getCompanyById(companyRevisionId) : of(null),\r\n companyRevisionId ? this.companyService.getNDCLabelerCodesByCompany(companyRevisionId) : of(null)\r\n )\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService } from '../../shared/services/index';\r\nimport { ERFormService } from '../services/er-form-service';\r\n\r\n\r\n@Injectable()\r\nexport class ERDashboardResolverService implements Resolve {\r\n customerGuid: string;\r\n\r\n constructor ( private storageManagerService: StorageManagerService,\r\n private erService: ERFormService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n this.erService.getERForms(),\r\n this.erService.getERDelilveries()\r\n ]\r\n )\r\n .pipe(catchError(err => of(err)));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService, LLFormService, CompanyContactService } from '../../shared/services/index';\r\nimport { ERFormService } from '../services/er-form-service';\r\n\r\n@Injectable()\r\nexport class ERFormResolverService implements Resolve {\r\n revisionId: string;\r\n customerGuid: string;\r\n\r\n constructor (private erService: ERFormService, private storageManagerService: StorageManagerService,\r\n private llservice: LLFormService, private companyService: CompanyContactService, private contactService: CompanyContactService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n\r\n const revisionId = route.params.revisionId;\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n revisionId ? this.erService.getERFormById(revisionId) : of(null),\r\n this.llservice.getSSDPVocabularies(),\r\n this.llservice.getLCompanyTypesByCustomerGuid(this.customerGuid),\r\n this.companyService.getBusinessCategories(false),\r\n revisionId ? this.erService.getRevisionHistory(revisionId) : of(null),\r\n this.contactService.getCountries(),\r\n this.companyService.getContacts()]\r\n )\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","export { CompanyResolverService } from './company-resolver.service';\r\nexport { LLFormResolverService } from './ll-form-resolver.service';\r\nexport { OrderResolverService } from './order-resolver.service';\r\nexport { ERFormResolverService } from './er-form-resolver.service';\r\nexport { LLDashboardResolverService } from './ll-dashboard-resolver.service';\r\nexport { ERDashboardResolverService } from './er-dashboard.resolver';\r\nexport { LCRDashboardResolverService } from './lcr-dashboard.resolver';\r\nexport { BusinessCategoryResolverService } from './business-category.resolver';\r\nexport { BNCCFormResolverService } from './bncc-form-resolver.service';\r\nexport { ProductDashboardResolverService } from './product-dashboard-resolver.service';\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService } from '../../shared/services/index';\r\nimport { LCRFormService } from '../services/lcr-form.service';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class LCRDashboardResolverService implements Resolve {\r\n customerGuid: string;\r\n\r\n constructor ( private storageManagerService: StorageManagerService,\r\n private lcrService: LCRFormService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n this.lcrService.getLCRForms(),\r\n this.lcrService.getLCRDelilveries()\r\n ]\r\n )\r\n .pipe(catchError(err => of(err)));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService, LLFormService, CompanyContactService } from '../../shared/services/index';\r\nimport { LCRFormService } from '../services/lcr-form.service';\r\n\r\n@Injectable()\r\nexport class LCRFormResolverService implements Resolve {\r\n revisionId: string;\r\n customerGuid: string;\r\n\r\n constructor (private lcrService: LCRFormService, private storageManagerService: StorageManagerService,\r\n private llservice: LLFormService, private companyService: CompanyContactService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const revisionId = route.params.revisionId;\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n revisionId ? this.lcrService.getLCRFormById(revisionId) : of(null),\r\n this.llservice.getSSDPVocabularies(),\r\n this.llservice.getLCompanyTypesByCustomerGuid(this.customerGuid),\r\n this.companyService.getBusinessCategories(false),\r\n revisionId ? this.lcrService.getRevisionHistory(revisionId) : of(null),\r\n this.companyService.getCountries()]\r\n )\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService, LLDashboardService } from '../../shared/services/index';\r\n\r\n\r\n@Injectable()\r\nexport class LLDashboardResolverService implements Resolve {\r\n customerGuid: string;\r\n\r\n constructor ( private storageManagerService: StorageManagerService,\r\n private llservice: LLDashboardService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n this.llservice.getLLForms(),\r\n this.llservice.getLLDelilveries()\r\n ]\r\n )\r\n .pipe(catchError(err => of(err)));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute, Router } from '@angular/router';\r\nimport { Observable, of, forkJoin, empty } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService, CompanyContactService, OrderService } from '../../shared/services/index';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { RefdataService } from '../services/refdata.service';\r\nimport { LLFormService } from '../services/ll-form.service';\r\nimport { ICompanyContactStatus } from '../models/index';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class LLFormResolverService implements Resolve {\r\n\r\n revisionId: string;\r\n customerGuid: string;\r\n companiesStatus: ICompanyContactStatus = { activeFlag: 'A', isDraftMode: false };\r\n\r\n constructor(private llService: LLFormService, private companyService: CompanyContactService,\r\n private storageManagerService: StorageManagerService, private refService: RefdataService,\r\n private orderService: OrderService) {}\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const revisionId = route.params.revisionId;\r\n\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n const retVal = forkJoin([\r\n revisionId ? this.llService.getLLFormById(revisionId) : of(null),\r\n this.llService.getSSDPVocabularies(),\r\n this.llService.getLCompanyTypesByCustomerGuid(this.customerGuid),\r\n this.llService.getCosmeticProducts(),\r\n revisionId ? this.llService.getRevisionHistory(revisionId) : of(null),\r\n revisionId ? this.orderService.getBaselineSplData(revisionId) : of(null),\r\n this.companyService.getBusinessCategories(false),\r\n this.refService.getActiveIngredientsType()]\r\n )\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { OrderService, LLFormService, SettingsService } from '../../shared/services/index';\r\n\r\n@Injectable()\r\nexport class OrderResolverService implements Resolve {\r\n\r\n constructor(\r\n private orderService: OrderService,\r\n private llService: LLFormService,\r\n private settingsService: SettingsService\r\n ) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n const orderRevisionId = route.params.orderRevisionId;\r\n const customerGuid = this.settingsService.getCustomerGuid();\r\n const retVal = forkJoin([\r\n // 0: List of employees in current customer\r\n customerGuid ? this.orderService.getEmployees(customerGuid) : of(null),\r\n // 1: reference data - service types by service category\r\n this.orderService.getServiceCategoryToServiceTypeAssoc(),\r\n // 2: reference data - delivery priorities by service type list\r\n this.orderService.getServiceTypeToDevlieryPriorityAssoc(),\r\n // 3: Order (as IApiTypedResult)\r\n orderRevisionId ? this.orderService.getOrderByOrderRevisionId(orderRevisionId)\r\n .pipe(catchError(this.orderService.handleOrderObjectError)\r\n ) : of(null),\r\n // 4: LL forms\r\n this.llService.getLLForms(),\r\n // 5: order statuses\r\n this.orderService.getOrderStatuses(),\r\n // 6: service categories\r\n this.orderService.getServiceCategories(),\r\n // 7: country ServiceGroup\r\n this.orderService.getCountryServiceGroups(),\r\n // 8: country ServiceType\r\n this.orderService.getCountryServiceTypes(),\r\n ])\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { StorageManagerService, SettingsService, CompanyContactService, LLFormService } from '../services/index';\r\nimport { ProductDashboardService } from '../services/product-dashboard.service';\r\n\r\n@Injectable()\r\nexport class ProductDashboardResolverService implements Resolve {\r\n revisionId: number | undefined;\r\n customerGuid: string | undefined;\r\n\r\n constructor(private storageManagerService: StorageManagerService, private settingsService: SettingsService,\r\n private productDashboardService: ProductDashboardService,\r\n private companyService: CompanyContactService,\r\n private llService: LLFormService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n if (!isNaN(route.params.revisionId)) {\r\n this.revisionId = parseInt(route.params.revisionId, 10);\r\n }\r\n\r\n this.customerGuid = this.settingsService.getCustomerGuid();\r\n const modifiedByUser = this.settingsService.getUserDataName();\r\n\r\n const retVal = forkJoin([\r\n this.revisionId ? this.productDashboardService.getProductDashboard(this.revisionId) : of(null),\r\n this.companyService.getBusinessCategories(false),\r\n this.llService.getRevisionHistory(this.revisionId)]\r\n )\r\n .pipe(catchError(err => of({ error: err })));\r\n\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { catchError} from 'rxjs/operators';\r\nimport { StorageManagerService } from '../services/index';\r\nimport { FileUploadService } from '../services/file-upload.service';\r\n\r\n@Injectable()\r\nexport class SplUploadResolverService implements Resolve {\r\n customerGuid: string;\r\n\r\n constructor(private storageManagerService: StorageManagerService,\r\n private fileUploadService: FileUploadService) {\r\n }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n this.customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n\r\n const retVal = forkJoin([\r\n this.fileUploadService.fetchUploadedFileHistory('1 Year')])\r\n .pipe(catchError(err => of(err)));\r\n return retVal;\r\n }\r\n}\r\n","import { Injectable, OnInit, OnDestroy, NgZone, isDevMode } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { catchError, map, Observable, of, throwError } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { Utilities } from './utilities';\r\nimport { SettingsService } from './settings.service';\r\n\r\n@Injectable()\r\nexport class AuthenticationService implements OnInit, OnDestroy {\r\n\r\n isAuthorized: boolean;\r\n logoutStarted = false;\r\n subscription: Subscription;\r\n private applicationName = 'SSDrugProducts';\r\n\r\n constructor(private oidcSecurityService: OidcSecurityService, private http: HttpClient,\r\n private storageManagerService: StorageManagerService, private ngzone: NgZone, private settingsService: SettingsService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this.oidcSecurityService.isAuthenticated$.subscribe(\r\n (result: boolean) => {\r\n this.isAuthorized = result;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n getIsAuthorized(): Observable {\r\n return of(this.oidcSecurityService.getToken() !== '');\r\n }\r\n\r\n getUserData(): Observable {\r\n return this.oidcSecurityService.userData$;\r\n }\r\n\r\n login() {\r\n console.log('start login');\r\n this.oidcSecurityService.authorize();\r\n }\r\n\r\n refreshSession() {\r\n console.log('start refreshSession');\r\n this.oidcSecurityService.forceRefreshSession().subscribe((result) => console.log(result));\r\n }\r\n\r\n logout() {\r\n console.log('start logoff');\r\n this.logoutStarted = true;\r\n this.oidcSecurityService.logoff();\r\n }\r\n\r\n // Logout\r\n public captureLogoutEvent(displayableId: string) {\r\n return this.get(`${window.location.origin}/api/user/logout?loginName=${displayableId}&appName=${this.applicationName}`);\r\n }\r\n\r\n getBearerToken(): string {\r\n const token = this.oidcSecurityService.getToken();\r\n if (token === '') { return ''; }\r\n\r\n return 'Bearer ' + token;\r\n }\r\n\r\n get(url: string): Observable {\r\n\r\n return this.http.get(url, { headers: this.getHeaders() });\r\n }\r\n\r\n post(url: string, data: any): Observable {\r\n\r\n const body = JSON.stringify(data);\r\n return this.http.post(url, body, { headers: this.getHeaders() });\r\n }\r\n\r\n reviveToken() {\r\n setInterval(() => {\r\n this.refreshSession();\r\n }, 120 * 1000);\r\n }\r\n\r\n private getHeaders(permission?: string, setContentType?: boolean) {\r\n\r\n const authData = this.getAuthData();\r\n\r\n const customer = this.storageManagerService.read('currentCustomer');\r\n\r\n if (customer && !Utilities.TestIsObjectEmpty(customer)) {\r\n\r\n if (typeof customer !== 'object') {\r\n\r\n authData['customerId'] = JSON.parse(customer).customerId.toString();\r\n } else {\r\n\r\n authData['customerId'] = customer.customerId.toString();\r\n }\r\n } else {\r\n authData['customerId'] = '';\r\n }\r\n\r\n let headers = new HttpHeaders(\r\n {\r\n 'UserId': authData.userGuid,\r\n 'CustomerId': authData.customerId ? authData.customerId : '',\r\n 'ApplicationVariantId': authData.applicationVariantId ? authData.applicationVariantId.toString() : '',\r\n 'Permission': permission ? permission : ''\r\n });\r\n\r\n if (setContentType) {\r\n headers = headers.set('Content-Type', 'application/json');\r\n }\r\n\r\n return this.appendAuthHeader(headers);\r\n }\r\n\r\n private appendAuthHeader(headers: HttpHeaders) {\r\n const bearerToken = this.getBearerToken();\r\n\r\n if (bearerToken === '') { return headers; }\r\n\r\n headers = headers.set('Authorization', bearerToken);\r\n\r\n return headers;\r\n }\r\n\r\n public getAuthData(): any {\r\n\r\n let applications: [] = [];\r\n let appVariantId: string;\r\n let appVariantName: string;\r\n let authData = {};\r\n\r\n authData = this.storageManagerService.read('userData');\r\n\r\n if (authData) {\r\n\r\n const userGuid = authData['userguid'];\r\n\r\n if (authData['applications']) {\r\n applications = JSON.parse(authData['applications']);\r\n\r\n if (applications.length > 0) {\r\n // CAUTION: Following logic will break if we have multiple application variants for the same application name.\r\n appVariantId = applications.find(a => a['AName'] === this.applicationName)['AVId'];\r\n appVariantName = applications.find(a => a['AName'] === this.applicationName)['AVName'];\r\n\r\n if (userGuid && appVariantId) {\r\n\r\n authData['userGuid'] = userGuid;\r\n authData['customerId'] = '';\r\n authData['applicationVariantId'] = appVariantId.toString();\r\n authData['applicationName'] = this.applicationName;\r\n authData['applicationVariantName'] = appVariantName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return authData;\r\n }\r\n\r\n public setHeader(permission?: any, setContentType?: boolean): HttpHeaders {\r\n\r\n return this.getHeaders(permission, setContentType);\r\n }\r\n\r\n eSigConfirmation(paramsContainer: any) {\r\n\r\n const settings = this.settingsService.getSettings();\r\n const action = `ids/v1/User/ESignature`;\r\n const headers = this.setHeader();\r\n\r\n return this.http.post(`${settings.CommonApiGatewayUrl}/${action}`, paramsContainer, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n initPendo(userguid, customerName) {\r\n this.ngzone.runOutsideAngular(function () {\r\n (function (apiKey) {\r\n (function (p, e, n, d, o) {\r\n\r\n let v, w, x, y, z; o = p[d] = p[d] || {}; o._q = [];\r\n\r\n v = ['initialize', 'identify', 'updateOptions', 'pageLoad'];\r\n\r\n for (w = 0, x = v.length; w < x; ++w) {\r\n\r\n (function (m) {\r\n o[m] = o[m] || function () { o._q[m === v[0] ? 'unshift' : 'push']([m].concat([].slice.call(arguments, 0))); };\r\n })(v[w]);\r\n }\r\n\r\n y = e.createElement(n); y.async = !0; y.src = 'https://cdn.pendo.io/agent/static/' + apiKey + '/pendo.js';\r\n z = e.getElementsByTagName(n)[0]; z.parentNode.insertBefore(y, z);\r\n })(window, document, 'script', 'pendo');\r\n\r\n // Please use Strings, Numbers, or Bools for value types.\r\n window['pendo'].initialize({\r\n visitor: {\r\n id: userguid // Required if user is logged in\r\n },\r\n\r\n account: {\r\n id: customerName\r\n\r\n // You can add any additional account level key-values here,\r\n // as long as it's not one of the above reserved names.\r\n }\r\n });\r\n })('db0311d4-d596-4d56-6297-bfb0b812a06a');\r\n });\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { ICustomer, IServiceError, IUserAccessPermissions } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { Utilities } from './utilities';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthorizationService {\r\n\r\n private accessSettings: IUserAccessPermissions;\r\n private permissionName: string;\r\n public hasPermissionSubject: BehaviorSubject = new BehaviorSubject(false);\r\n public lastLogonDateSourceSubject: BehaviorSubject = new BehaviorSubject(null);\r\n public permissionsSetSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n private applicationName = 'SSDrugProducts';\r\n\r\n constructor(private router: Router, private storage: StorageManagerService,\r\n private authenticationService: AuthenticationService, private storageManagerService: StorageManagerService) { }\r\n\r\n // To be replaced with the real data.\r\n private permissions: any = null;\r\n\r\n private getPermissions(): Observable<{} | string[]> {\r\n return of(this.storage.read('accessPermissions'));\r\n }\r\n\r\n // Checks whether the user has permission to the application or not\r\n public getPermisions(displayableId: string): any {\r\n\r\n const permissions$ = this.authenticationService.get(`${window.location.origin}/api/user/permissions?loginName=${displayableId}&appName=${this.applicationName}`);\r\n\r\n return permissions$;\r\n }\r\n\r\n public setAccessPermissions(email: string): any {\r\n\r\n let customer: any;\r\n let customerId: number;\r\n let url: string;\r\n\r\n if (email) {\r\n\r\n customer = this.storageManagerService.read('currentCustomer');\r\n\r\n if (customer && typeof customer !== 'object') {\r\n\r\n customer = JSON.parse(customer);\r\n }\r\n\r\n customerId = customer.customerId;\r\n\r\n url = `${window.location.origin}/api/User/AccessPermissions?loginName=${email}&applicationName=${this.applicationName}&customerId=${customerId}`;\r\n\r\n return this.authenticationService.get(url);\r\n }\r\n }\r\n hasPermission(objectAccessed: string) {\r\n\r\n // Get permissions for User/Access from the Api\r\n this.getPermissions()\r\n .pipe(\r\n tap((data: any) => {\r\n if (!Utilities.IsUndefined(data)) {\r\n this.permissions = data;\r\n }\r\n }),\r\n catchError(err => this.handleHttpError(err)))\r\n .subscribe((permissions: string[]) => {\r\n // this.permissions = JSON.parse(permissions);\r\n });\r\n\r\n\r\n if (this.permissions && objectAccessed) {\r\n\r\n for (let i = 0; i < this.permissions.length; i++) {\r\n if (this.permissions[i] === objectAccessed) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n getSettings(): IUserAccessPermissions {\r\n\r\n // Get user access settings from the SSDrugProducts appsetting.json previously called by app-module and stored in the sessionStorage.\r\n this.accessSettings = this.storage.read('accessPermissions');\r\n\r\n if (this.accessSettings) {\r\n return this.accessSettings;\r\n }\r\n\r\n return new IUserAccessPermissions();\r\n }\r\n\r\n public hasAccessToAppVariant(appVariantName: string, customer: ICustomer): boolean {\r\n let hasAccessToAppVariant = false;\r\n if (customer.subscribedChannels !== undefined) {\r\n hasAccessToAppVariant = customer.subscribedChannels.find(app => app.applicationVariantName === appVariantName) !== undefined;\r\n }\r\n\r\n return hasAccessToAppVariant;\r\n }\r\n\r\n private handleHttpError(error: HttpErrorResponse): Observable {\r\n\r\n let errorMessage = '';\r\n\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n errorMessage = `Error: ${error.error.message}`;\r\n } else {\r\n // server-side error\r\n errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}`;\r\n }\r\n\r\n const dataError = new IServiceError();\r\n dataError.errorNumber = error.error ? error.error.number : 0;\r\n dataError.message = errorMessage ? errorMessage : '';\r\n dataError.friendlyMessage = `Oops.. Something's wrong.. Please try again later.`;\r\n dataError.errorMessage = errorMessage ? errorMessage : '';\r\n dataError.errorStatus = error.status;\r\n dataError.url = error.url;\r\n\r\n // return an observable of an IServiceError object with a user friendly error message\r\n return throwError(dataError);\r\n }\r\n}\r\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { SettingsService } from './settings.service';\r\nimport { IBNCC } from '../models/bncc-model';\r\nimport { IBNCCEstablishment } from '../models/bncc-establishment.model';\r\nimport { ILLProductBase } from '../models/ll-product-base.model';\r\n\r\n@Injectable()\r\nexport class BNCCFormService {\r\n\r\n httpHelper: HttpHelper;\r\n\r\n constructor(private http: HttpClient, private authService: AuthenticationService, private storageManagerService: StorageManagerService,\r\n private settingsService: SettingsService) { \r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n saveBNCCForm(bnccData: IBNCC, modifiedByUser: string, draftMode: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders('SSDrugProducts,SSDrugProducts-BNCC');\r\n const settings = this.settingsService.getSettings();\r\n const url = `ssdpds/v1/BNCCForms/CreateBNCCForm?isDraftMode=${draftMode}`;\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${settings.ApiGatewayUrl}/${url}`, bnccData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n createBNCCForm(bnccData: IBNCC, modifiedByUser: string) {\r\n let headers = this.httpHelper.createHttpHeaders('SSDrugProducts,SSDrugProducts-BNCC');\r\n const settings = this.settingsService.getSettings();\r\n const url = `ssdpds/v1/BNCCForms/CreateInitialBNCCForm`;\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${settings.ApiGatewayUrl}/${url}`, bnccData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getBNCCForm(bnccRevisionId: string): Observable {\r\n let headers = this.httpHelper.createHttpHeaders('SSDrugProducts,SSDrugProducts-BNCC');\r\n const settings = this.settingsService.getSettings();\r\n const url = `ssdpds/v1/BNCCForms/${bnccRevisionId}`;\r\n\r\n return this.http.get(`${settings.ApiGatewayUrl}/${url}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getRevisionHistory(bnccRevisionId: string, modifiedByUser: string): Observable {\r\n let headers = this.httpHelper.createHttpHeaders('SSDrugProducts,SSDrugProducts-BNCC');\r\n const settings = this.settingsService.getSettings();\r\n const url = `ssdpds/v1/BNCCForms/BNCCVersionHistory/${bnccRevisionId}`;\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.get(`${settings.ApiGatewayUrl}/${url}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getCompanyData(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const url = 'ssdpds/v1/CommonData/CompanyTypesByCustomerGuid';\r\n\r\n return this.http.get(`${settings.ApiGatewayUrl}/${url}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n //Helper methods\r\n\r\n setProperties(formData: any, objectData: any) {\r\n for (let bnccProp in formData) {\r\n if (objectData.hasOwnProperty(bnccProp) && formData[bnccProp] !== null) {\r\n objectData[bnccProp] = formData[bnccProp];\r\n }\r\n }\r\n }\r\n\r\n // Take the form establishment fields and set them to the establishment object\r\n setEstablishmentData(establishments: any[], bnccData: IBNCC) {\r\n bnccData.establishments = {};\r\n establishments.forEach(est => {\r\n const newEstablishment = new IBNCCEstablishment();\r\n const newProduct = new ILLProductBase();\r\n\r\n newEstablishment.isManualEntry = !est.hasOwnProperty('versionNumber');\r\n newEstablishment.bnccRevisionId = bnccData.bnccRevisionId;\r\n newProduct.ndcProductCode = est.ndcProductCode;\r\n\r\n if (newEstablishment.isManualEntry) {\r\n newEstablishment.establishmentDUNS = est.dunsNumber;\r\n newEstablishment.establishmentName = est.establishmentName;\r\n } else {\r\n newEstablishment.establishmentDUNS = est.dunsNumber;\r\n newEstablishment.establishmentName = est.establishmentName;\r\n\r\n newProduct.productType = est.productType;\r\n newProduct.proprietaryName = est.productName\r\n newProduct.llModifiedOn = est.modifiedDate;\r\n newProduct.llFormVersion = est.versionNumber;\r\n newProduct.llFormName = est.formName;\r\n newProduct.productId = est.productId;\r\n\r\n // Need to convert back to Enum format, opposite of what's happening in formatCertificationStatus\r\n newProduct.listingRecordCertifiedThroughStatus = est.certificationStatus.toUpperCase().replace(' ', '_');\r\n newProduct.listingRecordCertifiedThroughDate = est.certificationDate;\r\n newProduct.marketingCategory = est.marketingCategory;\r\n newProduct.marketingStartDate = est.marketingStartDate;\r\n newProduct.marketingEndDate = est.marketingEndDate;\r\n }\r\n\r\n newEstablishment.product = newProduct;\r\n this.addEstablishmentToBNCCData(newEstablishment, bnccData);\r\n });\r\n }\r\n\r\n private addEstablishmentToBNCCData(establishment: IBNCCEstablishment, bnccData: IBNCC) {\r\n const dictionaryKey = `${establishment.establishmentDUNS} (${establishment.establishmentName})`;\r\n let establishments = bnccData.establishments[dictionaryKey];\r\n if (establishments === undefined) {\r\n establishments = [];\r\n }\r\n establishments.push(establishment);\r\n bnccData.establishments[dictionaryKey] = establishments;\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { ILLBusinessCategory } from '../models/business-category.model';\r\nimport { ICompanyDetail, IContact, IContactCompany, IContactDetail, IEntity, IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class CompanyContactService extends Subject {\r\n private action: string;\r\n private data: any;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n apiResult: any;\r\n httpHelper: HttpHelper;\r\n\r\n constructor(private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storage: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storage);\r\n }\r\n\r\n // Get a list of companies for a client\r\n GetCompanyDashboard(): Observable < ICompanyDetail[] > {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Companies/CompanyDashboard`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n // Get a list of contacts for a client\r\n GetContactDashboard(): Observable < IContact[] > {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Contacts/ContactDashboard`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get Company detail\r\n getCompanyById(companyRevisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Companies/CompanyDetails/${companyRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get Company detail\r\n getBusinessOperationQualifierByCompany(companyRevisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Companies/BusinessOperationBusinessOperationQualifier/${companyRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Create new Company\r\n createCompany(company) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/Companies/InsertCompanyAndCompanyRevision';\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, company, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get Company detail\r\n getContacts(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/Contacts/GetLatestAvailableContacts';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Validate if a contact has required information for a specific type of company\r\n ValidateContactAssociation(contact: IContactCompany) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/Contacts/ValidateContactAssociation';\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, contact, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve historical company records\r\n getCompanyRevisionHistory(companyRevisionId: number): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Companies/CompanyRevisionHistory?companyRevisionId=${companyRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve historical contact records\r\n getContactRevisionHistory(contactRevisionId: number): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Contacts/ContactRevisionHistory?contactRevisionId=${contactRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve a list of business categories\r\n getBusinessCategory(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/GetBusinessCategoriesByCustomerGuid';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve a list of business categories\r\n getBusinessCategories(bIncludeInactiveRecords:boolean): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/CommonData/BusinessCategories?includeInactiveRecords=${bIncludeInactiveRecords}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Create new Company\r\n createBusinessCategory(businessCategory:ILLBusinessCategory, modifiedByUser: string) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/CommonData/UpsertBusinessCategories?modifiedByUser=${modifiedByUser}`;\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, businessCategory, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve a list of business categories\r\n getBusinessOperations(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/GetBusinessOperations?vocabType=busOper';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve a list of regions for a country\r\n getRegionsByCountry(countryCode: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/CommonData/GetRegionsByCountryId/${countryCode}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Retrieve a list of countries\r\n getCountries(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/CommonData/GetAllCountriesAndRegions`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Create new contact\r\n createContact(formValue) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/Contacts/InsertContactRevision';\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, formValue, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get contact detail\r\n getContactById(contactRevisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Contacts/contactDetails/${contactRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get NDC Labeler codes\r\n getNDCLabelerCodesByCompany(contactRevisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/Companies/GetCompanyNDCLabelerCode/${contactRevisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // retrieve data successfully\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response['data'];\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { ApplicationSelection } from '../../shared/models/application.model';\r\nimport { IServerSettings } from '../../shared/models/serversettings';\r\nimport { ICustomer } from '../models/customer.model';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\n\r\n@Injectable()\r\nexport class CustomerService {\r\n private customerServiceUrl: string;\r\n private serverSettings: IServerSettings;\r\n\r\n private applicationName = 'Not selected';\r\n\r\n private applicationSource = new BehaviorSubject(new ApplicationSelection(this.applicationName, 'Not selected'));\r\n applicationChanged$ = this.applicationSource.asObservable();\r\n\r\n private customerSource = new BehaviorSubject(null);\r\n customerChanged$ = this.customerSource.asObservable();\r\n\r\n constructor(private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService) {\r\n this.serverSettings = this.settingsService.getSettings();\r\n this.customerServiceUrl = `${this.serverSettings.CommonApiGatewayUrl}/ids/v1/customer/`;\r\n\r\n }\r\n\r\n getCustomers(paramsContainer): Observable {\r\n return this.http.post(`${this.customerServiceUrl}GetActiveCustomers`, paramsContainer, { headers: this.getCustomerHeaders() })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getCustomerAppVariants(customerId: number, applicationId: number): Promise {\r\n return this.http.post(`${this.customerServiceUrl}GetApplicationVariantsByClientId?clientId=${customerId}&applicationId=${applicationId}`, {}, { headers: this.getCustomerHeaders() })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors))\r\n .toPromise();\r\n }\r\n\r\n private getCustomerHeaders(): HttpHeaders {\r\n const authData = this.authService.getAuthData();\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'UserId': authData.userGuid,\r\n 'CustomerId': '',\r\n 'ApplicationVariantId': authData.applicationVariantId ? authData.applicationVariantId.toString() : '',\r\n 'Permission': 'SSDP.CanReadCompany',\r\n 'Authorization': this.authService.getBearerToken()\r\n });\r\n }\r\n\r\n addCustomer(paramsContainer): Observable {\r\n const url = `${this.customerServiceUrl}addcustomer`;\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.getBearerToken()\r\n });\r\n return this.http.post(url, paramsContainer, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getApplications(): Observable {\r\n const url = `${this.customerServiceUrl}getapplications`;\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'Authorization': this.authService.getBearerToken()\r\n });\r\n return this.http.post(url, null, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n\r\n private extractData(response: Response) {\r\n\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n\r\n return body || {};\r\n }\r\n\r\n public changeSelectedApplication(application: string): void {\r\n this.applicationName = application;\r\n this.applicationSource.next(new ApplicationSelection(application, '' /*this.serverSettings.Environment*/));\r\n }\r\n\r\n public changeSelectedCustomer(customer: ICustomer): void {\r\n\r\n this.customerSource.next(customer);\r\n }\r\n private handleErrors(error: any): Observable {\r\n const errors: string[] = [];\r\n\r\n switch (error.status) {\r\n case 400: // Bad Request or Model State Error\r\n const err = error.json();\r\n if (err.modelState) {\r\n const valErrors = error.json().modelState;\r\n for (const key in valErrors) {\r\n for (let i = 0; i < valErrors[key].length; i++) {\r\n errors.push(valErrors[key][i]);\r\n }\r\n }\r\n } else if (err.message) {\r\n errors.push(err.message);\r\n } else {\r\n errors.push('An Unknown error occurred.');\r\n }\r\n break;\r\n\r\n case 404: // Not Found\r\n errors.push('Resource not found.');\r\n break;\r\n\r\n case 500: // Internal Error\r\n errors.push(error.json().exceptionMessage);\r\n break;\r\n\r\n default:\r\n errors.push('Status: ' + error.status\r\n + ' - Error Message: '\r\n + error.statusText);\r\n break;\r\n }\r\n\r\n return throwError(errors.join(';')); // Observable.throw(errors);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { IApiResult } from '../models/api-result';\r\n\r\n@Injectable()\r\nexport class DeleteFormService {\r\n\r\n httpHelper: HttpHelper;\r\n settings: IServerSettings;\r\n\r\n constructor(private http: HttpClient, private settingsService: SettingsService, authService: AuthenticationService, storageManagerService: StorageManagerService) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n deleteForm(revisionId: string, apiController: string, modifiedByUser:string, appVariantName: string = '', isDelivery = false): Observable {\r\n let headers = this.httpHelper.createHttpHeaders(appVariantName);\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n this.settings = this.settingsService.getSettings();\r\n const apiUrl = this.settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/${apiController}/Deactivate${isDelivery ? 'Delivery' : ''}/${revisionId}`;\r\n\r\n return this.http.post(`${apiUrl}/${action}`, {}, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IEntity, ILLRevisionHistory, IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class ERFormService extends Subject {\r\n\r\n public readonly ER_SPL_NO_CHANGE_NOTIFICATION = 889;\r\n public readonly ER_SPL_OUT_OF_BUSINESS_NOTIFICATION = 890;\r\n\r\n private action: string;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n apiResult: any;\r\n httpHelper: HttpHelper;\r\n\r\n constructor (private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n // Get a list of ER forms for the dashboard\r\n getERForms(): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/ERForms/ERDashboard';\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get ER form data by revisionid\r\n getERFormById(revisionId: string): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/ERForms/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n getRegistrantCompanyContactInfo(revisionId: string): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Create a draft version of a new ER form\r\n createERForm(formValues) {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/ERForms';\r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, formValues, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get ssdp vacabularies\r\n getSSDPVocabularies(): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/Vocabularies';\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get revision history\r\n getRevisionHistory(revisionId: number): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/ERForms/ERVersionHistory/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Save ER Form as a draft\r\n saveERForm(erData, modifiedByUser: string, draftMode: boolean, isIngestion: boolean) {\r\n\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/ERForms?isDraftMode=${ draftMode }&isIngestion=${ isIngestion }`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, erData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n buildERspl(erData: any, modifiedByUser: string, ignoreWarnings: boolean, newSPLVersion: number) {\r\n\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/ERForms/Build?ignoreWarnings=${ignoreWarnings}&newSplVersionNumber=${newSPLVersion}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, erData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n validateERform(erData: any, erRevisionId: number, modifiedByUser: string, hasChanges: boolean, ignoreWarnings: boolean) {\r\n\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/ERForms/Validate?hasChanges=${hasChanges}&erRevisionId=${erRevisionId ? erRevisionId : 0}&ignoreWarnings=${ignoreWarnings}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, erData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of ER deliveries for the dashboard\r\n getERDelilveries(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/ERForms/ERDeliveryDashboard';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get data successfully from api call\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { Injectable, isDevMode } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { SettingsService } from './settings.service';\r\nimport { ISubmission } from '../models/submission.model';\r\nimport { ICreateSubmissionResponse } from '../models/create-submission-response-model';\r\n\r\n@Injectable()\r\nexport class ESGSubmissionService {\r\n httpHelper: HttpHelper;\r\n\r\n constructor(private http: HttpClient, private authService: AuthenticationService, private storageManagerService: StorageManagerService,\r\n private settingsService: SettingsService) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n getFullNameByEmail(email: string) {\r\n const settings = this.settingsService.getSettings();\r\n const action = `ids/v1/User/ByLoginName?loginName=${email}`;\r\n const headers = this.authService.setHeader();\r\n\r\n return this.http.get(`${settings.CommonApiGatewayUrl}/${action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n createDrugProductSubmission(drugProductSubmission: ISubmission[]) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n\r\n const url = `${settings.ApiGatewayUrl}/sub/v1/Submission/CreateDrugProductSubmission`;\r\n\r\n return this.http.post(`${url}`, drugProductSubmission, { headers: headers })\r\n .pipe(map(this.extractSubmissionResponseData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n private extractSubmissionResponseData(response: ICreateSubmissionResponse) {\r\n if (response.status !== 0 || response.errors !== null || response.objectCount > 0) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : !!isDevMode();\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { Inject, Injectable } from \"@angular/core\";\r\nimport { AuthenticationService } from \"./authentication.service\";\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { IResults, IServiceError } from \"../models\";\r\n\r\n\r\n@Injectable()\r\nexport class FeatureService{\r\n\r\n baseUrl: string = '';\r\n\r\n constructor(private http: HttpClient, private authService: AuthenticationService, @Inject('BASE_URL') baseUrl: string) {\r\n this.baseUrl = baseUrl;\r\n }\r\n\r\n public IsFeatureEnabled(name: string): Observable{\r\n\r\n let url = `${this.baseUrl}FeatureFlag?name=${name}`;\r\n let headers = this.authService.setHeader();\r\n\r\n return this.http.get(url, { headers: headers });\r\n }\r\n\r\n private handleHttpError(error: HttpErrorResponse): Observable {\r\n\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n const dataError = new IServiceError();\r\n dataError.errorNumber = error.error ? error.error.number : '';\r\n dataError.message = error.message;\r\n dataError.friendlyMessage = error.status ? `Http call failed with status ${error.status}` : `Http call failed`;\r\n dataError.errorMessage = error.error ? error.error.message : '';\r\n dataError.errorStatus = error.status;\r\n dataError.url = error.url;\r\n\r\n // return an observable of an IServiceError object with a user friendly error message\r\n return of(dataError);\r\n }\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, Subject, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { IServerSettings, IServiceError } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { IFileIngestionHistory } from '../models/file-upload-history.model';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\n\r\n\r\n@Injectable()\r\nexport class FileUploadService extends Subject {\r\n\r\n private action: string;\r\n private apiGatewayUrl: string;\r\n private settings: IServerSettings;\r\n httpHelper: HttpHelper;\r\n\r\n constructor (private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n fetchUploadedFileHistory(dateRangeLimit: string): Observable {\r\n this.settings = this.settingsService.getSettings();\r\n this.apiGatewayUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/SplUpload/History`;\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n\r\n return this.http.get(`${ this.apiGatewayUrl }/${ this.action }?dateRangeLimit=${ dateRangeLimit }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n downloadUploadedFileHistoryLog(fileId:number, reportFilename: string): Observable {\r\n this.settings = this.settingsService.getSettings();\r\n this.apiGatewayUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/SplUpload/ImportLog`;\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n\r\n return this.http.get(`${ this.apiGatewayUrl }/${ this.action }?fileId=${ fileId }&reportFilename=${reportFilename}`, { headers: headers, responseType: 'blob' })\r\n .pipe(map(response => response),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get data successfully from api call\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { Injectable, AfterViewInit } from '@angular/core';\r\nimport { L10n } from '@syncfusion/ej2-base';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class GridPreferencesService implements AfterViewInit {\r\n filterSettings = {};\r\n\r\n constructor(private storageManagerService: StorageManagerService) { }\r\n\r\n ngAfterViewInit() {\r\n this.loadLocalizationSettings();\r\n }\r\n\r\n loadLocalizationSettings() {\r\n const isBncc = document.getElementById('bnccEstablishmentEditAlert');\r\n if (isBncc) {\r\n L10n.load({\r\n 'en-US': {\r\n grid: {\r\n CancelButton: 'Cancel',\r\n OKButton: 'OK'\r\n }\r\n }\r\n });\r\n } else {\r\n L10n.load({\r\n 'en-US': {\r\n grid: {\r\n CancelButton: 'Cancel',\r\n OKButton: 'Apply',\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n onGridPreferencesSave(pageName, gridId, gridReference, event) {\r\n if (event.requestType === 'filtering' || event.requestType === 'refresh') {\r\n return;\r\n }\r\n\r\n this.filterSettings[pageName] = {};\r\n this.filterSettings[pageName][gridId] = [...gridReference.filterSettings.columns];\r\n\r\n gridReference.clearFiltering();\r\n const userguid = this.storageManagerService.read('userData').userguid;\r\n let colsObject = [];\r\n\r\n gridReference.columns.map(column => {\r\n if (column.headerText) {\r\n colsObject.push({ headerText: column.headerText });\r\n }\r\n return column;\r\n });\r\n let gridPrefenceSettings: any = localStorage.getItem('gridPrefenceSettings' + userguid);\r\n gridPrefenceSettings = gridPrefenceSettings ? JSON.parse(gridPrefenceSettings) : {};\r\n gridPrefenceSettings[pageName] = gridPrefenceSettings[pageName] ?? {};\r\n gridPrefenceSettings[pageName][gridId] = { settings: gridReference.getPersistData(), columns: colsObject };\r\n\r\n localStorage.setItem('gridPrefenceSettings' + userguid, JSON.stringify(gridPrefenceSettings));\r\n\r\n if (this.filterSettings[pageName] && this.filterSettings[pageName][gridId]) {\r\n gridReference.filterSettings.columns = this.filterSettings[pageName][gridId];\r\n }\r\n }\r\n\r\n onGridPreferencesRestore(pageName, gridId, gridReference) {\r\n const userguid = this.storageManagerService.read('userData').userguid;\r\n let gridPrefenceSettings: any = localStorage.getItem('gridPrefenceSettings' + userguid);\r\n if (gridPrefenceSettings) {\r\n gridPrefenceSettings = JSON.parse(gridPrefenceSettings);\r\n\r\n if (gridPrefenceSettings[pageName] && gridPrefenceSettings[pageName][gridId]) {\r\n this.restoreHandler(pageName, gridId, gridReference, gridPrefenceSettings[pageName][gridId].settings);\r\n }\r\n }\r\n }\r\n\r\n checkboxClick(grid_ref, disabledColumns) {\r\n setTimeout(function (e) {\r\n const dialogContents = document.getElementsByClassName('e-dlg-content')[0];\r\n let sortedUL = dialogContents.querySelectorAll('ul')[0];\r\n\r\n grid_ref.columnModel.forEach((column, index) => {\r\n if (disabledColumns) {\r\n let disabledColumn = disabledColumns.find(x => x === column.headerText);\r\n if (disabledColumn) {\r\n this.addElement(sortedUL, disabledColumn, index);\r\n }\r\n }\r\n });\r\n }.bind(this));\r\n }\r\n\r\n addElement(parentElement, textContent, position) {\r\n let li = document.createElement(\"li\");\r\n let div = document.createElement(\"div\");\r\n div.setAttribute(\"class\", \"e-ccheck\");\r\n let wrapperDiv = document.createElement(\"div\");\r\n wrapperDiv.setAttribute(\"class\", \"e-checkbox-wrapper e-css e-checkbox-disabled\");\r\n let box = document.createElement(\"span\");\r\n box.setAttribute(\"class\", \"e-icons e-check custom-checkbox-chooser\");\r\n let span = document.createElement(\"span\");\r\n span.setAttribute(\"class\", \"e-label\");\r\n span.appendChild(document.createTextNode(textContent));\r\n wrapperDiv.appendChild(box);\r\n wrapperDiv.appendChild(span);\r\n div.appendChild(wrapperDiv);\r\n li.appendChild(div);\r\n li.setAttribute(\"class\", \"e-cclist e-cc\");\r\n parentElement.insertBefore(li, parentElement.childNodes[position]);\r\n }\r\n\r\n restoreHandler(pageName, gridId, grid, settings) {\r\n let savedProperties = JSON.parse(settings);\r\n let gridColumnsState = Object.assign([], grid.getColumns());\r\n\r\n savedProperties.columns.forEach(function (col: any) {\r\n const headerText = gridColumnsState.find(function (colColumnsState: any) { return colColumnsState.field === col.field; })['headerText'];\r\n const colTemplate = gridColumnsState.find(function (colColumnsState: any) { return colColumnsState.field === col.field; })['template'];\r\n const headerTemplate = gridColumnsState.find(function (colColumnsState: any) { return colColumnsState.field === col.field; })['headerTemplate'];\r\n col.headerText = headerText;\r\n col.template = colTemplate;\r\n col.headerTemplate = headerTemplate;\r\n });\r\n if (this.filterSettings[pageName] && this.filterSettings[pageName][gridId]) {\r\n grid.filterSettings.columns = this.filterSettings[pageName][gridId];\r\n }\r\n\r\n grid.setProperties(savedProperties);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class HCSplValidationService {\r\n constructor(private settingsService: SettingsService, private storageManagerService: StorageManagerService) { \r\n }\r\n\r\n // Page status\r\n public readonly PAGE_STATE_UPLOADING = 'Loading';\r\n public readonly PAGE_STATE_READY = 'Ready';\r\n \r\n getFileUploadUrl(): string {\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/HealthCanada/Validate`;\r\n return `${apiUrl}/${action}`;\r\n } \r\n}\r\n","export { SettingsService } from './settings.service';\r\nexport { CustomerService } from './customer.service';\r\nexport { LoggingService } from './logging.service';\r\nexport { StorageManagerService } from './storage-manager.service';\r\nexport { TemplateService } from './template.service';\r\nexport { AuthorizationService } from './authorization.service';\r\nexport { AuthenticationService } from './authentication.service';\r\nexport { CompanyContactService } from './company-contact.service';\r\nexport { LLFormService } from './ll-form.service';\r\nexport { OrderService } from './order.service';\r\nexport { SubmissionDashboardService } from './submission-dashboard.service';\r\nexport { LLDashboardService } from './ll-dashboard.service';\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IEntity, ILLRevisionHistory, IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class LCRFormService extends Subject {\r\n\r\n private action: string;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n apiResult: any;\r\n httpHelper: HttpHelper;\r\n\r\n constructor(private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n // Get a list of LCR forms for the dashboard\r\n getLCRForms(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = \"ssdpds/v1/LCRForms/LCRDashboard\";\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of LCR deliveries for the dashboard\r\n getLCRDelilveries(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = \"ssdpds/v1/LCRForms/LCRDeliveryDashboard\";\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get LCR form data by revisionid\r\n getLCRFormById(revisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LCRForms/${revisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get LCR form data by revisionid\r\n getLabelerCompanyContactInfo(revisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/${revisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get ssdp vacabularies\r\n getSSDPVocabularies(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/Vocabularies';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get revision history\r\n getRevisionHistory(revisionId: number): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LCRForms/LCRVersionHistory/${revisionId}`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Save LCR Form as a draft\r\n saveLCRForm(llData, modifiedByUser: string, draftMode: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LCRForms?isDraftMode=${draftMode}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get data successfully from api call\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IServerSettings } from '../models/serversettings';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LCRValidationService {\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n private action: string;\r\n httpHelper: HttpHelper;\r\n constructor(private settingsService: SettingsService, private http: HttpClient, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n validateLCR(llData: any, lcrRevisionId: number, modifiedByUser: string, hasChanges: boolean, ignoreWarnings: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LCRForms/Validate?hasChanges=${hasChanges}&lcrRevisionId=${lcrRevisionId ? lcrRevisionId : 0}&ignoreWarnings=${ignoreWarnings}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n buildLCR(llData: any, modifiedByUser: string, ignoreWarnings: boolean, newSPLVersion: number) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LCRForms/Build?ignoreWarnings=${ignoreWarnings}&newSplVersionNumber=${newSPLVersion}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class LLDashboardService extends Subject {\r\n\r\n private action: string;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n httpHelper: HttpHelper;\r\n\r\n constructor (private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n // Get a list of LL forms for the dashboard\r\n getLLForms(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/LLDashboard`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of LL deliveries for the dashboard\r\n getLLDelilveries(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/LLForms/LLMergeDeliveryDashboard';\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n downloadFile(filePath: string, fileName: string) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/FileStorage/DownloadFile?filePath=${filePath}&fileName=${fileName}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers, responseType: 'blob' })\r\n .pipe(map(response => response),\r\n catchError(this.handleErrors));\r\n}\r\n\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { BehaviorSubject, Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IBusinessOperationQualifier, IEntity, ILLCompany, ILLFormDetail, ILLGenericKeys, ILLRevisionHistory, IServerSettings } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class LLFormService extends Subject {\r\n\r\n private action: string;\r\n private data: any;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n apiResult: any;\r\n httpHelper: HttpHelper;\r\n allQualifiers: IBusinessOperationQualifier[];\r\n bOList: IBusinessOperationQualifier[];\r\n INGREDIENTS_SEARCH_MAX_COUNT = 1000;\r\n\r\n llFormProductLabelerCodeSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormHeaderSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormProductDetailsSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormProductInformationSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormActiveIngridientsSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormInActiveIngridientsSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormProductCharacteristicsSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormPackagingSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormMarketingSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormLabelerSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormRegistrantSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormEstablishmentSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n llFormKitPartSubject: BehaviorSubject = new BehaviorSubject(undefined);\r\n GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n\r\n constructor (private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n // Get a list of LL forms for the dashboard\r\n getLLForms(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/LLDashboard`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get LL form data by revisionid\r\n getLLFormById(revisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get LL form data by revisionid\r\n getLLHighLevlInfoById(revisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/ExpiredLL/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get product detail info\r\n getLLFormProductDetail(revisionId: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/GetLLRevisionProduct/${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get product detail info\r\n searchIngredients(srchText: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/IngredientSearch?topN=${ this.INGREDIENTS_SEARCH_MAX_COUNT }&searchTerm=${ srchText }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Create a draft version of a new LL form\r\n createLLForm(formValues) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/LLForms/InsertLLForm';\r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, formValues, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of product types\r\n getProductTypes(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/Vocabularies?vocabType=doc_Type';\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of Cosmetic Products and categories\r\n getCosmeticProducts(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/CosmeticCategoryAndProduct';\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get ssdp vacabularies\r\n getSSDPVocabularies(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/CommonData/Vocabularies';\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get CompanyTypes By CustomerGuid\r\n getLCompanyTypesByCustomerGuid(customerGuid: any): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/CommonData/CompanyTypesByCustomerGuid`;\r\n\r\n const serviceUrl = `${ this.apiUrl }/${ this.action }`;\r\n\r\n return this.http.get(serviceUrl, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get revision history\r\n getRevisionHistory(revisionId: number): Observable {\r\n\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/LLVersionHistory?llRevisionId=${ revisionId }`;\r\n\r\n return this.http.get(`${ this.apiUrl }/${ this.action }`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Save LL Form as a draft\r\n saveLLForm(llData, modifiedByUser: string, draftMode: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms?isDraftMode=${ draftMode }`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n // Catch the $type getting stripped out of Parts\r\n if(llData.products && llData.products.length > 0){\r\n for(let i = 0; i < llData.products.length; i++){\r\n if(llData.products[i].$type === 'RTCD_LLKit'){\r\n for(let x = 0; x < llData.products[i].parts.length; x++){\r\n llData.products[i].parts[x].$type = 'RTCD_LLPart';\r\n }\r\n }\r\n }\r\n }\r\n \r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Check if user previously saved item are a valid entry in the LOV, if not, try to match by text,\r\n // if still can not find a match, display a warning messaage to the user\r\n cloneKitProduct(llData, modifiedByUser: string, itemIndex: number) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/CloneItem?itemIndex=${itemIndex}&modifiedByUser=${modifiedByUser}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${ this.apiUrl }/${ this.action }`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Check if user previously saved item are a valid entry in the LOV, if not, try to match by text,\r\n // if still can not find a match, display a warning messaage to the user\r\n checkForLOVSelection(drpLOV: any[], userSelectId: string, userSelectDesc: string): any {\r\n let newId = userSelectId;\r\n let bIsEntryValid = false;\r\n let invalidEntry = '';\r\n\r\n if (userSelectId && drpLOV) {\r\n let match = drpLOV.filter(x => x.id === userSelectId);\r\n // Id does not match, let's check if the text matches\r\n if (match.length === 0) {\r\n match = drpLOV.filter(x => x.labelAndCode === userSelectDesc);\r\n if (match.length > 0) {\r\n newId = match[0].id;\r\n } else {\r\n bIsEntryValid = true;\r\n invalidEntry = userSelectDesc;\r\n newId = '0';\r\n }\r\n }\r\n }\r\n return [newId, bIsEntryValid, invalidEntry];\r\n }\r\n\r\n /**\r\n * Deep clones the given AbstractControl, preserving values, validators, async validators, and disabled status.\r\n * @param control AbstractControl\r\n * @returns AbstractControl\r\n */\r\ncloneAbstractControl(control: T): T {\r\n let newControl: T;\r\n\r\n if (control instanceof UntypedFormGroup) {\r\n const formGroup = new UntypedFormGroup({}, control.validator, control.asyncValidator);\r\n const controls = control.controls;\r\n\r\n Object.keys(controls).forEach(key => {\r\n formGroup.addControl(key, this.cloneAbstractControl(controls[key]));\r\n });\r\n\r\n newControl = formGroup as any;\r\n } else if (control instanceof UntypedFormArray) {\r\n const formArray = new UntypedFormArray([], control.validator, control.asyncValidator);\r\n\r\n control.controls.forEach(formControl => formArray.push(this.cloneAbstractControl(formControl)))\r\n\r\n newControl = formArray as any;\r\n } else if (control instanceof UntypedFormControl) {\r\n newControl = new UntypedFormControl(control.value, control.validator, control.asyncValidator) as any;\r\n } else {\r\n throw new Error('Error: unexpected control value');\r\n }\r\n\r\n if (control.disabled) {\r\n newControl.disable({ emitEvent: false });\r\n }\r\n\r\n return newControl;\r\n}\r\n\r\n\r\n // deep copy of an object. Removes references to the original object.\r\n deepCopy(value: T): any {\r\n\r\n if (typeof value !== 'object' || value === null) {\r\n return value;\r\n }\r\n if (Array.isArray(value)) {\r\n return this.deepArray(value);\r\n }\r\n return this.deepObject(value);\r\n }\r\n\r\n deepObject(source: T) {\r\n\r\n const result = {};\r\n\r\n Object.keys(source).forEach((key) => {\r\n\r\n const value = source[key];\r\n result[key] = this.deepCopy(value);\r\n }, {});\r\n return result as T;\r\n }\r\n\r\n deepArray(collection: T) {\r\n return collection.map((value) => {\r\n return this.deepCopy(value);\r\n });\r\n }\r\n\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IServerSettings } from '../models/serversettings';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LlValidationService {\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n private action: string;\r\n httpHelper: HttpHelper;\r\n constructor(private settingsService: SettingsService, private http: HttpClient, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n validateLL(llData: any, llRevisionId: number, modifiedByUser: string, hasChanges: boolean, ignoreWarnings: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/ValidateLL?hasChanges=${hasChanges}&llRevisionId=${llRevisionId}&ignoreWarnings=${ignoreWarnings}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData,{ headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n buildLL(llData: any, modifiedByUser: string, ignoreWarnings: boolean, newSPLVersion:number) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/BuildLL?ignoreWarnings=${ignoreWarnings}&newSplVersionNumber=${newSPLVersion}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n mergeLL(llData: any, modifiedByUser: string, ignoreWarnings: boolean) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = `ssdpds/v1/LLForms/MergeSpl?ignoreWarnings=${ignoreWarnings}`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http.post(`${this.apiUrl}/${this.action}`, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class LoggingService {\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n public logError(message: string) {\r\n let url = `${window.location.origin}/api/logging/logError`;\r\n const params = new HttpParams().set('message', message);\r\n this.http.get(url, { params })\r\n .pipe(map(x => {\r\n console.log(x);\r\n }))\r\n .toPromise();\r\n }\r\n\r\n public LogInformation(message: string) {\r\n let url = `${window.location.origin}/api/logging/LogInformation`;\r\n const params = new HttpParams().set('message', message);\r\n this.http.get(url, { params })\r\n .pipe(map(x => {\r\n console.log(x);\r\n }))\r\n .toPromise();\r\n }\r\n\r\n public LogWarning(message: string) {\r\n let url = `${window.location.origin}/api/logging/LogWarning`;\r\n const params = new HttpParams().set('message', message);\r\n this.http.get(url, { params })\r\n .pipe(map(x => {\r\n console.log(x);\r\n }))\r\n .toPromise();\r\n }\r\n\r\n public LogDebug(message: string) {\r\n let url = `${window.location.origin}/api/logging/LogDebug`;\r\n const params = new HttpParams().set('message', message);\r\n this.http.get(url, { params })\r\n .pipe(map(x => {\r\n console.log(x);\r\n }))\r\n .toPromise();\r\n }\r\n\r\n public LogTrace(message: string) {\r\n let url = `${window.location.origin}/api/logging/LogTrace`;\r\n const params = new HttpParams().set('message', message);\r\n this.http.get(url, { params })\r\n .pipe(map(x => {\r\n console.log(x);\r\n }))\r\n .toPromise();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { IApiResult } from '../models/api-result';\r\nimport { IServerSettings } from '../models';\r\nimport { INavdlContact } from '../models/navdl-contact';\r\n@Injectable()\r\nexport class NavDLService {\r\n httpHelper: HttpHelper;\r\n settings: IServerSettings;\r\n action: string;\r\n apiUrl: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: SettingsService,\r\n private authService: AuthenticationService,\r\n private storageManagerService: StorageManagerService\r\n ) {\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n sendNavDLContactMessage(contactForm: INavdlContact) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n const modifiedByUser = this.settingsService.getUserDataName();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.ApiGatewayUrl;\r\n this.action = 'ssdpds/v1/NavDl/Contact';\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n return this.http\r\n .post(`${this.apiUrl}/${this.action}`, contactForm, { headers: headers })\r\n .pipe(map(this.extractData), catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG =\r\n 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg =\r\n error && error.error && error.error.isBusinessErrorMessage\r\n ? true\r\n : !!isDevMode();\r\n error.error =\r\n error && error.error && error.error.message && bDisplayDetailMsg\r\n ? error.error.message\r\n : GENERIC_ERROR_MSG;\r\n\r\n return throwError(() => error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { UploadingEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { DialogUtility } from '@syncfusion/ej2-angular-popups';\r\nimport { EmitType } from '@syncfusion/ej2-base';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Observable, throwError, Subject, of } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IApiResult } from '../models/api-result';\r\nimport { IApiTypedResult, IBusinessOperationQualifier, ILLGenericKeys, ITermByIndustryUsageAndCategory, Order, OrderUser, SplFileStorageResult, User } from '../models/index';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { AuthorizationService } from './authorization.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n\r\n@Injectable()\r\nexport class OrderService extends Subject {\r\n\r\n // Helper class\r\n httpHelper: HttpHelper;\r\n\r\n //\r\n // Public constants\r\n //\r\n\r\n // Order types\r\n public readonly SERVICE_CATEGORY_FULL_CONVERSION: string = 'Full Conversion';\r\n public readonly SERVICE_CATEGORY_PARTIAL_CONVERSION: string = 'Partial Conversion';\r\n public readonly SERVICE_CATEGORY_ESG: string = 'ESG (FDA Submission)';\r\n\r\n // Service groups\r\n public readonly SERVICE_GROUP_ESG: string = 'ESG Submission';\r\n public readonly SERVICE_GROUP_ER: string = 'Establishment Registration and Certification';\r\n public readonly SERVICE_GROUP_REPORT: string = 'Reports';\r\n public readonly SERVICE_GROUP_PUBLISHING: string = 'Composition Publishing';\r\n public readonly SERVICE_GROUP_REMS: string = 'Risk Evaluation & Mitigation Strategy';\r\n public readonly SERVICE_GROUP_LABEL_CONVERSION: string = 'Label Conversion';\r\n\r\n // Delivery priorities\r\n public readonly DELIVERY_PRIORITY_REGULAR: string = 'Regular';\r\n public readonly DELIVERY_PRIORITY_EXPEDITED: string = 'Expedited';\r\n public readonly DELIVERY_PRIORITY_EMERGENCY: string = 'Emergency';\r\n\r\n // Association type codes for reference data\r\n public readonly TERM_ASSOCIATION_TYPE_SERVICE_CATEGORY_TO_SERVICE_TYPE = 4;\r\n public readonly TERM_ASSOCIATION_TYPE_SERVICE_TYPE_TO_DELIVERY_PRIORITY = 5;\r\n public readonly TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_TYPE = 10;\r\n public readonly TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_GROUP = 11;\r\n\r\n // Usage codes for reference data\r\n public readonly USAGE_CODE_SSDP = 3;\r\n\r\n // Industry id's\r\n public readonly INDUSTRY = 1;\r\n\r\n // Term categories\r\n public readonly TERM_CATEGORY_SERVICE_CATEGORY = 47;\r\n public readonly TERM_CATEGORY_SERVICE_TYPE = 48;\r\n public readonly TERM_CATEGORY_DELIVERY_PRIORITY = 49;\r\n public readonly TERM_CATEGORY_ORDER_STATUS = 50;\r\n \r\n\r\n // Order user types\r\n public readonly ORDER_USER_TYPE_ORDER_OWNER = 1;\r\n public readonly ORDER_USER_TYPE_ORDER_RECIPIENT = 2;\r\n public readonly ORDER_USER_TYPE_ORDER_INITIATOR = 3;\r\n public readonly ORDER_USER_TYPE_ORDER_SUBMITTER = 4;\r\n\r\n // Upload file types\r\n public readonly UPLOAD_FILE_TYPE_SOURCE_DOC = 'SourceDoc';\r\n public readonly UPLOAD_FILE_TYPE_DELIVERY = 'Delivery';\r\n\r\n // Order status\r\n public readonly ORDER_STATUS_DRAFT = 'Draft';\r\n public readonly ORDER_STATUS_PENDING = 'Pending';\r\n public readonly ORDER_STATUS_IN_PROCESS = 'In Process';\r\n public readonly ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL = 'Order Delivered - Awaiting Approval';\r\n public readonly ORDER_STATUS_ORDER_COMPLETE = 'Order Complete';\r\n public readonly ORDER_STATUS_CANCELED = 'Canceled';\r\n public readonly ORDER_STATUS_PENDING_CANCELLATION_REQUEST = 'Pending - Cancellation Request';\r\n\r\n // Page status\r\n public readonly PAGE_STATE_LOADING = 'Loading';\r\n public readonly PAGE_STATE_READY = 'Ready';\r\n public readonly PAGE_STATE_SAVING = 'Saving';\r\n\r\n // Permissions\r\n public readonly PERMISSION_CAN_READ_ORDER = 'SSDP.CanReadOrder';\r\n public readonly PERMISSION_CAN_WRITE_ORDER = 'SSDP.CanWriteOrder';\r\n public readonly PERMISSION_CAN_DELETE_DRAFT_ORDER = 'SSDP.CanDeleteDraftOrder';\r\n public readonly PERMISSION_CAN_CANCEL_ORDER = 'SSDP.CanCancelOrder';\r\n public readonly PERMISSION_ORDER_ADMIN = 'SSDP.CanUpdateOrder';\r\n\r\n\r\n\r\n // NOTE: file upload validation settings pulled from SettingsService and appSettings.json\r\n\r\n // These letters not allowed in file name for upload\r\n invalidFileNameCharsArr: string[];\r\n // Invalid characters as display string\r\n invalidFileNameCharsStr: string;\r\n // Invalid names for files\r\n invalidFileNameRegex: RegExp;\r\n // Valid file types as array\r\n validFileExtensionsArr: string[];\r\n // Valid file types as comma delimited string\r\n validFileExtensionsStr: string;\r\n // Max allowable file size in bytes\r\n fileMaxSize: number;\r\n // Min allowable file size in bytes\r\n fileMinSize: number;\r\n // Max allowable file name length\r\n fileNameMaxLength: number;\r\n\r\n constructor(private http: HttpClient,\r\n private settingsService: SettingsService,\r\n private authenticationService: AuthenticationService,\r\n private authorizationService: AuthorizationService,\r\n private storageManagerService: StorageManagerService,\r\n private toastr: ToastrService,\r\n private router: Router\r\n ) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authenticationService, storageManagerService);\r\n\r\n // Pull in file upload validation settings from appsettings.json\r\n let settings = this.settingsService.getSettings();\r\n this.invalidFileNameCharsStr = settings.InvalidFileNameChars;\r\n this.invalidFileNameCharsArr = this.invalidFileNameCharsStr.split(',');\r\n this.invalidFileNameRegex = new RegExp(settings.InvalidFileNameRegex);\r\n this.validFileExtensionsStr = settings.ValidFileExtensions.toLocaleLowerCase();\r\n this.validFileExtensionsArr = this.validFileExtensionsStr.split(',');\r\n this.fileMaxSize = settings.FileMaxSize;\r\n this.fileMinSize = settings.FileMinSize;\r\n this.fileNameMaxLength = settings.FileNameMaxLength;\r\n\r\n }\r\n\r\n // Get order data by id\r\n getOrderByOrderRevisionId(orderRevisionId: number): Observable> {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders/${orderRevisionId}`;\r\n\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => {\r\n return this.extractTypedBody>(response as Response);\r\n }),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get file storage info about SPL XML associated with llRevisionId for an order\r\n getFileStorageSplXml(llRevisionId: number): Observable> {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/FileStorage/SplXml/${llRevisionId}?formType=LL`;\r\n\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => {\r\n return this.extractTypedBody>(response as Response);\r\n }),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Save order. Always creates a new OrderRevision record.\r\n saveOrder(order: Order, modifiedByUser: string): Observable> {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders`;\r\n\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n // Special case, C# also needs current customer name as a header\r\n const sessionCurrentCustomer = this.storageManagerService.read('currentCustomer');\r\n const currentCustomer = typeof sessionCurrentCustomer === 'object' ? sessionCurrentCustomer : JSON.parse(sessionCurrentCustomer);\r\n headers = headers.set('customerName', currentCustomer.customerName);\r\n\r\n // Special case-- isDraftMode should be 1 if orderStatus=draft, else 0\r\n order.isDraftMode = (order.orderStatus === this.ORDER_STATUS_DRAFT ? true : false);\r\n\r\n return this.http.post(`${apiUrl}/${action}?isDraftMode=${order.isDraftMode}`, order, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody>(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Clone order. Makes a copy, ands a comment to the new one saying it was a copy of the old one.\r\n cloneOrder(order: Order, modifiedByUser: string): Observable {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders/OrderClone`;\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n return this.http.post(`${apiUrl}/${action}`, order, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody>(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get list of service types by service category\r\n getServiceCategoryToServiceTypeAssoc(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/TermsAssociation?associationTypeCode=${this.TERM_ASSOCIATION_TYPE_SERVICE_CATEGORY_TO_SERVICE_TYPE}&usageCode=${this.USAGE_CODE_SSDP}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get list of delivery priorities by service type\r\n getServiceTypeToDevlieryPriorityAssoc(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/TermsAssociation?associationTypeCode=${this.TERM_ASSOCIATION_TYPE_SERVICE_TYPE_TO_DELIVERY_PRIORITY}&usageCode=${this.USAGE_CODE_SSDP}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of all employees in a customer\r\n getEmployees(customerGuid: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `ids/v1/User/UsersByCustomerGuid?customerGuid=${customerGuid}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBodyData(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Download a saved file\r\n downloadFile(filePath: string, fileName: string) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/FileStorage/DownloadFile?filePath=${filePath}&fileName=${fileName}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers, responseType: 'blob' })\r\n .pipe(map(response => response),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // After file is downloaded, trigger to save as browser window\r\n postDownloadFile(response: any, fileName: string) {\r\n const URL = window.URL || (window).webkitURL;\r\n const downloadUrl = URL.createObjectURL(response);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.download = fileName;\r\n link.click();\r\n }\r\n\r\n // Convert an order's OrderUser list to user guid array based on OrderUserTypeId using allEmployeesInCompany\r\n // to find first/last names.\r\n getUserGuidsFromOrderUsers(allEmployeesInCompany: User[], orderOwners: OrderUser[], orderUserTypeId: number): string[] {\r\n let userGuids = [];\r\n if (allEmployeesInCompany && orderOwners) {\r\n // Get the user logins we want\r\n const userLoginsWeWant: string[] = orderOwners\r\n .filter(x => x.orderUserTypeId === orderUserTypeId)\r\n .map(x => x.userLogin.toLowerCase());\r\n // Translate to user guids\r\n userGuids = allEmployeesInCompany\r\n .filter(x => userLoginsWeWant.indexOf(x.loginName.toLowerCase()) > -1)\r\n .map(x => x.userGuid);\r\n }\r\n return userGuids;\r\n }\r\n\r\n // Convert an order's OrderUser list to a comma delimited list of names based on OrderUserTypeId using allEmployeesInCompany\r\n // to find first/last names.\r\n getUserNamesFromOrderUsers(allEmployeesInCompany: User[], orderUsers: OrderUser[], orderUserTypeId: number): string {\r\n let userNames = '';\r\n if (allEmployeesInCompany && orderUsers) {\r\n // Get the user logins we want\r\n const userLoginsWeWant: string[] = orderUsers\r\n .filter(x => x.orderUserTypeId === orderUserTypeId)\r\n .map(x => x.userLogin.toLowerCase());\r\n // Translate to user names joined with commas\r\n userNames = allEmployeesInCompany\r\n .filter(x => userLoginsWeWant.indexOf(x.loginName.toLowerCase()) > -1)\r\n .map(x => x.firstName + ' ' + x.lastName)\r\n .join(', ');\r\n }\r\n return userNames;\r\n }\r\n\r\n // Given a list of all employees in company, the subset of userGuids we want, and orderUserTypeId,\r\n // return an array of matching OrderUser objects\r\n userGuidsToOrderUsers(allEmployeesInCompany: User[], userGuids: string[], orderUserTypeId: number): OrderUser[] {\r\n const orderUsers: OrderUser[] = [];\r\n for (const emp of allEmployeesInCompany) {\r\n if (userGuids.indexOf(emp.userGuid) > -1) {\r\n orderUsers.push(new class implements OrderUser {\r\n orderUserTypeId = orderUserTypeId;\r\n userLogin = emp.loginName;\r\n userEmail = emp.emailAddress;\r\n userName = emp.firstName + ' ' + emp.lastName;\r\n userGuid = emp.userGuid;\r\n });\r\n }\r\n }\r\n return orderUsers;\r\n }\r\n\r\n // ------------------------------------------------------------\r\n // Due to Migration, if order owner or order email recipient contains a record that is not present\r\n // add it to its corresponding lists\r\n // ------------------------------------------------------------\r\n GetInactiveOrderUsers(allEmployeesInCompany: User[], orderUsers: OrderUser[], orderUserTypeId: number): any[] {\r\n const inactiveUsers: any[] = [];\r\n if (orderUsers) {\r\n orderUsers.forEach(emp => {\r\n const matchedUser = allEmployeesInCompany.filter(x => x.emailAddress.toUpperCase() === emp.userEmail.toUpperCase() || x.loginName.toUpperCase() === emp.userLogin.toUpperCase());\r\n if (matchedUser && matchedUser.length > 0) {\r\n emp.userGuid = matchedUser[0].userGuid;\r\n emp.userLogin = matchedUser[0].loginName.toLowerCase();\r\n emp.userEmail = matchedUser[0].emailAddress.toLowerCase();\r\n }\r\n if (!allEmployeesInCompany.some(x => x.emailAddress.toUpperCase() === emp.userEmail.toUpperCase() && x.loginName.toUpperCase() === emp.userLogin.toUpperCase())) {\r\n if (emp.orderUserTypeId === orderUserTypeId) {\r\n inactiveUsers.push({\r\n name: emp.userName ? emp.userName : emp.userLogin\r\n });\r\n }\r\n }\r\n });\r\n }\r\n return inactiveUsers;\r\n }\r\n\r\n getFileUploadUrl(): string {\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders/UploadFile`;\r\n return `${apiUrl}/${action}`;\r\n }\r\n\r\n // Convert any non-number or zero to null\r\n // because I hate checking for undefined and zero and stuff.\r\n getNumberOrNull(myNum: number): number {\r\n if (myNum === null || myNum === undefined || myNum === 0) {\r\n return null;\r\n } else {\r\n return myNum;\r\n }\r\n }\r\n\r\n // Get dashboard data inside a APIResult\r\n getOrderTrackerData(dateRangeLimit: string): Observable> {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders/OrderDashboard?dateRangeLimit=${dateRangeLimit}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody>(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get dashboard data inside a APIResult\r\n getBaselineSplData(llRevisionId: number): Observable> {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Orders/BaselineSpl/${llRevisionId}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody>(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Extract body of response object or throw exception if bad status\r\n // Use generic type for better code syntax\r\n private extractTypedBody(response: Response): T {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n let body: T;\r\n if (response) {\r\n body = (response as any) as T;\r\n } else {\r\n body = {} as T;\r\n }\r\n return body;\r\n }\r\n\r\n // Extract data attribute of body of response object or throw exception if bad status\r\n // Use generic type for better code syntax\r\n private extractTypedBodyData(response: Response): T {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n let body: T;\r\n if (response && (response as any).data) {\r\n body = ((response as any).data as any) as T;\r\n } else {\r\n body = {} as T;\r\n }\r\n return body;\r\n }\r\n\r\n // Get the current customer guid from browser storage\r\n public getCustomerGuid(): string {\r\n let customerGuid = null;\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n return customerGuid;\r\n }\r\n\r\n // Return true if supplied Angular FormGroup has any dirty fields\r\n // (fields that have been modified by the user and not saved)\r\n public isAngularFormDirty(angularForm: UntypedFormGroup): boolean {\r\n let formDirty = false;\r\n for (const field in angularForm.controls) {\r\n const fieldControl = angularForm.get(field);\r\n if (fieldControl.touched && fieldControl.dirty) {\r\n formDirty = true;\r\n break;\r\n }\r\n }\r\n // Sometimes we mark the entire form as dirty\r\n if (angularForm.touched && angularForm.dirty) {\r\n formDirty = true;\r\n }\r\n\r\n return formDirty;\r\n }\r\n\r\n public getOrderStatuses(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/industry?industryId=${this.INDUSTRY}&termusageId=${this.USAGE_CODE_SSDP}&categoryId=${this.TERM_CATEGORY_ORDER_STATUS}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n public getServiceTypes(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/industry?industryId=${this.INDUSTRY}&termusageId=${this.USAGE_CODE_SSDP}&categoryId=${this.TERM_CATEGORY_SERVICE_TYPE}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n public getServiceCategories(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/industry?industryId=${this.INDUSTRY}&termusageId=${this.USAGE_CODE_SSDP}&categoryId=${this.TERM_CATEGORY_SERVICE_CATEGORY}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n public getDeliveryPriorities(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/industry?industryId=${this.INDUSTRY}&termusageId=${this.USAGE_CODE_SSDP}&categoryId=${this.TERM_CATEGORY_DELIVERY_PRIORITY}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n public getCountryServiceTypes(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/TermsAssociation?associationTypeCode=${this.TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_TYPE}&usageCode=${this.USAGE_CODE_SSDP}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n public getCountryServiceGroups(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.CommonApiGatewayUrl;\r\n const action = `rds/v1/Terms/TermsAssociation?associationTypeCode=${this.TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_GROUP}&usageCode=${this.USAGE_CODE_SSDP}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(response => this.extractTypedBody(response as Response)),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Show a SyncFusion dialog alert box.\r\n alert(title: string, message: string, callback: Function = null): void {\r\n\r\n // To keep it simple, if no callback, make a dummy one\r\n if (!callback) {\r\n callback = () => { ; };\r\n }\r\n\r\n let callbackAsEmission: EmitType = () => {\r\n callback();\r\n }\r\n\r\n let clickCloseButton = (): void => {\r\n // I can't figure out how to close the dialog from DialogUtility\r\n // programmatically except by finding the HTML button with the \"x\" for closing,\r\n // and forcing a click. Brian W 7/7/20\r\n //\r\n // Also note that the OK button doesn't do the callback, it's when the window\r\n // is closed that the callback is kicked off. Otherwise if you close the box\r\n // with the little \"X\" button or escape key it won't fire.\r\n let closeButton = document.getElementsByClassName('e-dlg-closeicon-btn');\r\n if (closeButton) {\r\n (closeButton[0] as any).click();\r\n } else {\r\n alert('no close button');\r\n }\r\n }\r\n\r\n DialogUtility.alert({\r\n title: title,\r\n content: message,\r\n okButton: { text: 'OK', click: clickCloseButton.bind(this) },\r\n showCloseIcon: true,\r\n closeOnEscape: true,\r\n close: callbackAsEmission,\r\n position: { X: 'center', Y: 'center' },\r\n animationSettings: { effect: 'Zoom' },\r\n cssClass: 'alertBox',\r\n isModal: true\r\n });\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n\r\n // This code is repeated in multiple steps, consolidate here.\r\n requestOrderCancellation(canRequestCancellation: boolean, order: Order, modifiedByUser: string, nextPageUrl: string, requestFromOrderTracker: boolean) {\r\n // Double check perms\r\n if (canRequestCancellation) {\r\n // Perms are good, proceed.\r\n // Only change order status, nothing else, don't worry about dirty flags.\r\n order.beforeOrderStatus = order.orderStatus\r\n order.orderStatus = this.ORDER_STATUS_PENDING_CANCELLATION_REQUEST;\r\n this.saveOrder(order, modifiedByUser).subscribe((response) => {\r\n // Force response to \"any\" to make Visual Studio happy\r\n const responseAsAny: any = response as any;\r\n if (responseAsAny.isSuccess) {\r\n this.alert('Order Cancellation Request', 'Order cancellation request has been received.', () => {\r\n let url = '';\r\n if (requestFromOrderTracker) {\r\n url = nextPageUrl;\r\n }\r\n else {\r\n url = `${nextPageUrl}/${responseAsAny.data.orderRevisionId}`;\r\n }\r\n this.router.navigate([url]).then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n this.handleOrderError(this, responseAsAny, 'Order save failed', true);\r\n }\r\n },\r\n error => this.handleOrderError(this, error, 'Order save failed', true)\r\n );\r\n } else {\r\n // This shouldn't really happen, but just in case it does ...\r\n this.toastr.error('Invalid permissions to request order cancellation.');\r\n return;\r\n }\r\n }\r\n\r\n // Upload file from ejs file upload control to an order.\r\n public uploadOrderDoc(args: UploadingEventArgs,\r\n orderId: number,\r\n orderRevisionId: number,\r\n component: any,\r\n reactiveForm: UntypedFormGroup,\r\n onlyAllowZipFiles: boolean,\r\n uploadFileDocType: string,\r\n ingestFile: boolean = false) {\r\n\r\n // Add all the extra headers and form fields we need to do file upload, and do validation.\r\n if (args) {\r\n const authData = this.authenticationService.getAuthData();\r\n args.currentRequest.setRequestHeader('authorization', this.authenticationService.getBearerToken());\r\n args.currentRequest.setRequestHeader('customerGuid', this.getCustomerGuid());\r\n args.currentRequest.setRequestHeader('modifiedByUser', this.storageManagerService.read('userData').name);\r\n args.currentRequest.setRequestHeader('applicationVariantId', authData.applicationVariantId ? authData.applicationVariantId.toString() : '');\r\n\r\n args.customFormData = [\r\n { 'uploadFileType': uploadFileDocType },\r\n { 'orderId': '' + orderId },\r\n { 'orderRevisionId': '' + orderRevisionId },\r\n { 'ingestFile': '' + ingestFile },\r\n ];\r\n\r\n const fileData = args.fileData;\r\n\r\n const sizeInBytes: number = fileData.size;\r\n const fileType: string = fileData.type;\r\n let fileName: string = fileData.name;\r\n\r\n // Check file size\r\n if (fileData.size > this.fileMaxSize || fileData.size < this.fileMinSize) {\r\n args.cancel = true;\r\n reactiveForm.markAsDirty();\r\n component.pageState = this.PAGE_STATE_READY;\r\n this.alert('File Upload Validation',\r\n `File size should not be smaller than ${this.fileMinSize} and larger than ${this.fileMaxSize} bytes`);\r\n return;\r\n }\r\n\r\n // Check file name against special characters\r\n fileName = fileName.substring(0, fileName.indexOf('.' + fileType));\r\n this.invalidFileNameCharsArr.forEach(char => {\r\n if (fileName.indexOf(char) > -1) {\r\n args.cancel = true;\r\n reactiveForm.markAsDirty();\r\n component.pageState = this.PAGE_STATE_READY;\r\n this.alert('File Upload Validation',\r\n `Special Characters ${this.invalidFileNameCharsStr} are not allowed in the file name`);\r\n return;\r\n }\r\n });\r\n\r\n // Check file name agains restricted words\r\n const matchesRestrictedWord = this.invalidFileNameRegex.test(fileName.toUpperCase());\r\n if (matchesRestrictedWord) {\r\n args.cancel = true;\r\n reactiveForm.markAsDirty();\r\n component.pageState = this.PAGE_STATE_READY;\r\n this.alert('File Upload Validation', 'File name contains restricted words.');\r\n return;\r\n }\r\n\r\n let localValidFileExtensionsArr = this.validFileExtensionsArr;\r\n if (onlyAllowZipFiles) {\r\n localValidFileExtensionsArr = ['.zip'];\r\n }\r\n\r\n // Check file's type\r\n if (!localValidFileExtensionsArr.some(x => x === '.' + fileType.toLowerCase())) {\r\n args.cancel = true;\r\n reactiveForm.markAsDirty();\r\n component.pageState = this.PAGE_STATE_READY;\r\n this.alert('File Upload Validation',\r\n `File type ${fileType} is not supported`);\r\n return;\r\n }\r\n\r\n // Check file name length\r\n if (fileName.length > this.fileNameMaxLength) {\r\n args.cancel = true;\r\n reactiveForm.markAsDirty();\r\n component.pageState = this.PAGE_STATE_READY;\r\n this.alert('File Upload Validation',\r\n `File name should not exceed ${this.fileNameMaxLength} characters`);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n // When dealing with observables that should return Observable>,\r\n // if you get an unexpected error force it into the same format but supply an error message\r\n handleOrderObjectError(error) {\r\n if (error && error.hasOwnProperty('message')) {\r\n // Server sent us back an object with obj.message = 'xxxx'\r\n // so pass that to angular\r\n return of(error);\r\n } else if (error) {\r\n // Unknown error, structure it in a way our angular code can handle\r\n return of({ isSuccess: false, message: 'error: ' + (error.toString()), data: null } as IApiTypedResult);\r\n } else {\r\n // Unknown error, structure it in a way our angular code can handle\r\n return of({ isSuccess: false, message: 'unknown error', data: null } as IApiTypedResult);\r\n }\r\n }\r\n\r\n\r\n // High level error handler for angular components, show message, clean up page.\r\n // errorObject is anything that has a .message property (true angular error or ApiResult) or null.\r\n // If no message found, uses default or 'Unknown error'. If stayHere will remain, else go to order tracker.\r\n // Error message displayed as toaster.\r\n handleOrderError(myComponent: any, errorObject: any, defaultMessage: string = null, stayHere: boolean = false) {\r\n myComponent.pageState = this.PAGE_STATE_READY; // stop spinner\r\n let message = errorObject ? errorObject : 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n\r\n if (errorObject) {\r\n if (errorObject.hasOwnProperty('message') && errorObject.message) {\r\n message = errorObject.message;\r\n }\r\n }\r\n this.toastr.error(message);\r\n if (!stayHere) {\r\n myComponent.router.navigate(['/order-tracker']);\r\n }\r\n }\r\n\r\n // Delivery priority descriptions\r\n getDeliveryPriorityDescription(deliverPriority: string) {\r\n let result = '';\r\n\r\n switch (deliverPriority) {\r\n case this.DELIVERY_PRIORITY_REGULAR:\r\n result = 'Regular';\r\n break;\r\n case this.DELIVERY_PRIORITY_EXPEDITED:\r\n result = 'Expedited';\r\n break;\r\n case this.DELIVERY_PRIORITY_EMERGENCY:\r\n result = 'Emergency';\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { SettingsService } from './settings.service';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport { IApiResult } from '../models/api-result';\r\nimport { RTCDPragmaticValidation } from '../models/rtcd_pragmatic_validation.model';\r\n\r\n@Injectable()\r\nexport class PragmaticValidationService {\r\n httpHelper: HttpHelper;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: SettingsService,\r\n private authService: AuthenticationService,\r\n private storageManagerService: StorageManagerService,\r\n ) {\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n pragmaticValidation(data: RTCDPragmaticValidation) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Pragmatic/Validate`;\r\n return this.http.post(`${apiUrl}/${action}`, data, { headers: headers })\r\n .pipe(map(this.extractData),\r\n map(p => p.data),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n downloadFile(fileName: string, filePath: string) {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Pragmatic/DownloadFile?filePath=${filePath}&fileName=${fileName}`;\r\n return this.http.post(`${apiUrl}/${action}`, { headers: headers, responseType: 'blob' })\r\n .pipe(map(response => response),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage\r\n ? true\r\n : !!isDevMode();\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg\r\n ? error.error.message\r\n : GENERIC_ERROR_MSG;\r\n\r\n return throwError(() => error.error);\r\n }\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { IApiResult } from '../models/api-result';\r\nimport { ILLProductDashboard } from '../models/ll-product-dashboard';\r\n@Injectable()\r\nexport class ProductDashboardService {\r\n\r\n httpHelper: HttpHelper;\r\n\r\n constructor (private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n getProductDashboard(revisionId: number): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n\r\n const url = `${settings.ApiGatewayUrl}/ssdpds/v1/LLForms/ProductDashboard/${revisionId}`;\r\n\r\n return this.http.get(url, { headers: headers })\r\n .pipe(map(this.extractData),\r\n map(p => p.data),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n updateHeaderFields(llId: number, productName: string, businessCategoryId: number, modifiedByUser: string) {\r\n let headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n headers = headers.set('modifiedByUser', modifiedByUser);\r\n\r\n const llData = {\r\n 'businessCategoryId': businessCategoryId,\r\n 'productName': productName,\r\n 'llId': llId\r\n };\r\n\r\n const url = `${settings.ApiGatewayUrl}/ssdpds/v1/LLForms/UpdateProductDashboard`;\r\n\r\n return this.http.post(url, llData, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n \r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n \r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { DataStateChangeEventArgs } from '@syncfusion/ej2-angular-grids';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { IBusinessOperationQualifier, IServerSettings } from '../models/index';\r\nimport { ITermByIndustryUsageAndCategory } from '../models/termByIndustryUsageAndCategory.model';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n@Injectable()\r\nexport class RefdataService extends Subject {\r\n private action: string;\r\n private data: any;\r\n private settings: IServerSettings;\r\n private apiUrl: string;\r\n apiResult: any;\r\n httpHelper: HttpHelper;\r\n allQualifiers: IBusinessOperationQualifier[];\r\n bOList: IBusinessOperationQualifier[];\r\n\r\n constructor(private http: HttpClient, private settingsService: SettingsService, private authService: AuthenticationService, private storageManagerService: StorageManagerService) {\r\n super();\r\n\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n // Get a list of Business Operations from RefDataService API\r\n GetBusinessOperations(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.CommonApiGatewayUrl;\r\n this.action = `rds/v1/Terms/industry?industryId=1&termusageId=3&categoryId=41`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of Active Ingredients types\r\n getActiveIngredientsType(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.CommonApiGatewayUrl;\r\n this.action = `rds/v1/Terms/industry?industryId=1&termusageId=3&categoryId=61`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of Business Operation Qualifiers from RefDataService API\r\n GetAllBusinessOperationQualifier(): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.apiUrl = this.settings.CommonApiGatewayUrl;\r\n // a placeholder for now, will be changed to get qulifiers\r\n this.action = `rds/v1/Terms/TermsAssociation?associationTypeCode=1&usageCode=3&parentListName=Business Operation`;\r\n\r\n return this.http.get(`${this.apiUrl}/${this.action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n // Get a list of Business Operations from cache\r\n GetBusinessOperationsList(): IBusinessOperationQualifier[] {\r\n this.allQualifiers = this.storageManagerService.read('businessOperationQualifiers');\r\n this.bOList = this.getDistintList(this.allQualifiers, 'parentTermValueCode');\r\n return this.bOList;\r\n }\r\n\r\n // Get a list of Business Operation Qualifier based on business operations from cache\r\n GetQualifierByBusOper(businessOperationCode: string): IBusinessOperationQualifier[] {\r\n this.allQualifiers = this.storageManagerService.read('businessOperationQualifiers');\r\n this.bOList = this.allQualifiers.filter(x => x.parentTermValueCode == businessOperationCode);\r\n return this.bOList;\r\n }\r\n\r\n // Get Business Operation description by code\r\n GetBussinesOperationDescByCode(code: string): string {\r\n this.allQualifiers = this.storageManagerService.read('businessOperationQualifiers');\r\n this.bOList = this.allQualifiers.filter(x => x.parentTermValueCode == code);\r\n return this.bOList[0].parentTermValueName;\r\n }\r\n\r\n // Get Business Operation Qualifier description by code\r\n GetBussinesOperationQualifierDescByCode(busOperCode: string, qualCode: string): string {\r\n this.allQualifiers = this.storageManagerService.read('businessOperationQualifiers');\r\n this.bOList = this.allQualifiers.filter(x => x.parentTermValueCode === busOperCode && x.childTermValueCode === qualCode);\r\n return this.bOList.length != 0 ? this.bOList[0].childTermValueName : '';\r\n }\r\n\r\n // returns a unique list of values based on a certain propery in the array list\r\n getDistintList(myArr, prop) {\r\n return myArr.filter((obj, pos, arr) => {\r\n return arr.map(mapObj =>\r\n mapObj[prop]).indexOf(obj[prop]) === pos;\r\n });\r\n }\r\n\r\n private extractData(response: Response) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n\r\n const body = response;\r\n return body || {};\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage ? true : isDevMode() ? true : false;\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg ? error.error.message : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { StorageManagerService, SettingsService } from '.';\r\nimport { Subject } from 'rxjs';\r\nimport { Utilities } from './utilities';\r\n\r\nconst DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT = 480;\r\nconst TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT = 1000 * 60 * 5;\r\nconst CHECK_INTERVAL = 1000; // in ms\r\nconst STORE_KEY = 'absoluteAction';\r\n\r\n\r\n@Injectable()\r\nexport class AbsoluteSessionTimeoutService {\r\n public sessionTimeoutWarning: Subject = new Subject();\r\n firstTimeWarning = true;\r\n\r\n constructor(private auth: AuthenticationService, private router: Router, private ngZone: NgZone, private storageManager: StorageManagerService,\r\n private settingsService: SettingsService) {\r\n\r\n this.check();\r\n this.initInterval();\r\n }\r\n\r\n get lastAction() {\r\n return parseInt(this.storageManager.read(STORE_KEY));\r\n }\r\n\r\n set lastAction(value) {\r\n this.storageManager.write(STORE_KEY, value);\r\n }\r\n\r\n initInterval() {\r\n this.ngZone.runOutsideAngular(() => {\r\n setInterval(() => {\r\n this.check();\r\n }, CHECK_INTERVAL);\r\n });\r\n }\r\n\r\n reset() {\r\n if (isNaN(this.lastAction) ) {\r\n this.lastAction = Date.now();\r\n }\r\n }\r\n\r\n check() {\r\n const now = Date.now();\r\n let sessionInMinutes: number = DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT * 60 * 1000;\r\n\r\n if (!Utilities.IsUndefined(this.settingsService.absoluteSessionTimeout.toString()) && this.settingsService.absoluteSessionTimeout > 0) {\r\n sessionInMinutes = this.settingsService.absoluteSessionTimeout * 60 * 1000;\r\n }\r\n\r\n\r\n const timeleft = this.lastAction + sessionInMinutes;\r\n const diff = timeleft - now;\r\n const isTimeout = diff < 0;\r\n\r\n this.ngZone.run(() => {\r\n if (diff < TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT && this.firstTimeWarning) {\r\n this.firstTimeWarning = false;\r\n this.sessionTimeoutWarning.next(TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT);\r\n }\r\n\r\n if (isTimeout) {\r\n console.log(`Session has been terminated due to absolute session timeout limit ${sessionInMinutes} minutes.`);\r\n this.auth.logout();\r\n this.storageManager.clearAll();\r\n }\r\n });\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Injectable, NgZone } from '@angular/core';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { StorageManagerService, SettingsService } from '.';\r\nimport { Subject } from 'rxjs';\r\nimport { Utilities } from './utilities';\r\n\r\nconst DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT = 30;\r\nconst TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT = 1000 * 60;\r\nconst CHECK_INTERVALL = 1000; // in ms\r\nconst STORE_KEY = 'lastAction';\r\n\r\n\r\n@Injectable()\r\nexport class SessionTimeoutService {\r\n public sessionTimeoutWarning: Subject = new Subject();\r\n\r\n constructor(private auth: AuthenticationService, private router: Router, private ngZone: NgZone, private storageManager: StorageManagerService,\r\n private settingsService: SettingsService) {\r\n\r\n this.check();\r\n this.initListener();\r\n this.initInterval();\r\n }\r\n\r\n get lastAction() {\r\n return parseInt(this.storageManager.read(STORE_KEY));\r\n }\r\n\r\n set lastAction(value) {\r\n this.storageManager.write(STORE_KEY, value);\r\n }\r\n\r\n initListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n document.body.addEventListener('click', () => this.reset());\r\n document.body.addEventListener('keydown', () => this.reset());\r\n });\r\n }\r\n\r\n initInterval() {\r\n this.ngZone.runOutsideAngular(() => {\r\n setInterval(() => {\r\n this.check();\r\n }, CHECK_INTERVALL);\r\n });\r\n }\r\n\r\n reset() {\r\n this.lastAction = Date.now();\r\n }\r\n\r\n check() {\r\n const now = Date.now();\r\n let sessionInMinutes: number = DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT * 60 * 1000;\r\n\r\n if (!Utilities.IsUndefined(this.settingsService.sessionTimout.toString()) && this.settingsService.sessionTimout > 0) {\r\n sessionInMinutes = this.settingsService.sessionTimout * 60 * 1000;\r\n }\r\n\r\n\r\n const timeleft = this.lastAction + sessionInMinutes;\r\n const diff = timeleft - now;\r\n const isTimeout = diff < 0;\r\n\r\n this.ngZone.run(() => {\r\n if (diff < TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT) {\r\n this.sessionTimeoutWarning.next(diff);\r\n }\r\n\r\n if (isTimeout) {\r\n console.log(`Session has been terminated due to inactivity after ${DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT} minutes.`);\r\n this.auth.logout();\r\n this.storageManager.clearAll();\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { IServerSettings } from '../models/serversettings';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SettingsService {\r\n private loadingSource = new BehaviorSubject(false);\r\n isLoading = this.loadingSource.asObservable();\r\n\r\n public serverSettings: any;\r\n ddBrowserRum;\r\n\r\n constructor(private readonly httpService: HttpClient, \r\n private ngzone: NgZone, private storageManagerService: StorageManagerService) { }\r\n\r\n getSettings(): IServerSettings {\r\n return this.serverSettings;\r\n }\r\n\r\n get identityServiceUrl() {\r\n return this.serverSettings.IdentityServiceUrl;\r\n }\r\n\r\n get sessionTimout() {\r\n return this.serverSettings.SessionTimeout;\r\n }\r\n\r\n get absoluteSessionTimeout() {\r\n return this.serverSettings.AbsoluteSessionTimeout;\r\n }\r\n\r\n get maxIdTokeIatOffsetAllowedInSeconds() {\r\n return this.serverSettings.MaxIdTokenIatOffsetAllowedInSeconds;\r\n }\r\n\r\n get submissionDashboardAutoRefreshDays() {\r\n return this.serverSettings.SubmissionDashboardAutoRefreshDays;\r\n }\r\n get splHistoryDashBoardAutoRefreshDays() {\r\n return this.serverSettings.SPLHistoryDashBoardAutoRefreshDays;\r\n }\r\n\r\n get pragmaticValidatorAutoRefreshDays() {\r\n return this.serverSettings.PragmaticValidatorAutoRefreshDays;\r\n }\r\n\r\n get silentRenewOffsetInSeconds() {\r\n return this.serverSettings.SilentRenewOffsetInSeconds;\r\n }\r\n\r\n // Flag for turning on/off DataDog RUM monitor\r\n get dataDogEnabled() {\r\n return this.serverSettings.DataDogEnabled;\r\n }\r\n\r\n // DataDog application ID\r\n get dataDogApplicationId() {\r\n return this.serverSettings.DataDogApplicationId;\r\n }\r\n\r\n // DataDog Client Token\r\n get dataDogClientToken() {\r\n return this.serverSettings.DataDogClientToken;\r\n }\r\n\r\n // DataDog Service Name\r\n get DataDogService() {\r\n return this.serverSettings.DataDogService;\r\n }\r\n\r\n // DataDog Site url\r\n get dataDogSite() {\r\n return this.serverSettings.DataDogSite;\r\n }\r\n\r\n // DataDog version\r\n get dataDogVersion() {\r\n return this.serverSettings.DataDogVersion;\r\n }\r\n\r\n // DataDog environment\r\n get dataDogEnv() {\r\n return this.serverSettings.DataDogEnv;\r\n }\r\n\r\n // DataDog Sample Rate\r\n get dataDogSampleRate() {\r\n return this.serverSettings.DataDogSampleRate;\r\n }\r\n\r\n // DataDog TrackInteractions flag\r\n get dataDogTrackInteractions() {\r\n return this.serverSettings.DataDogTrackInteractions;\r\n }\r\n\r\n // DataDog allowedTracingOrigins flag\r\n get dataDogAllowedTracingOrigins() {\r\n return this.serverSettings.DataDogAllowedTracingOrigins;\r\n }\r\n\r\n // Initialize datadog script element\r\n async initDataDogScriptElement() {\r\n // set datadog script element\r\n this.ddBrowserRum = await import(/* webpackChunkName: \"datadog-browser-rum\" */'@datadog/browser-rum');\r\n }\r\n\r\n // Initialize DataDog monitering service\r\n initDataDogRUM() {\r\n // Init DataDog monitoring service if the flag is on\r\n const bIsDataDogEnabled = this.dataDogEnabled && this.dataDogEnabled.toString().toLowerCase() === 'true' ? true : false;\r\n if (bIsDataDogEnabled) {\r\n this.ddBrowserRum.datadogRum?.init({\r\n applicationId: this.dataDogApplicationId,\r\n clientToken: this.dataDogClientToken,\r\n site: this.dataDogSite,\r\n service: this.DataDogService,\r\n env: this.dataDogEnv,\r\n version: this.dataDogVersion,\r\n sampleRate: this.dataDogSampleRate ? + this.dataDogSampleRate : 100, // set default to 100%\r\n silentMultipleInit: true,\r\n trackInteractions: this.dataDogTrackInteractions && this.dataDogTrackInteractions.toString().toLowerCase() === 'true' ? true : false,\r\n allowedTracingOrigins: this.dataDogAllowedTracingOrigins ? this.dataDogAllowedTracingOrigins.replace(/ /g, '').split(',') : []\r\n });\r\n }\r\n }\r\n\r\n public getCustomerGuid(): string {\r\n let customerGuid = null;\r\n const currentCustomerStr: string = this.storageManagerService.read('currentCustomer');\r\n if (currentCustomerStr) {\r\n const currentCustomer = typeof currentCustomerStr === 'object' ? currentCustomerStr : JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n customerGuid = currentCustomer.customerGuid;\r\n }\r\n }\r\n return customerGuid;\r\n } \r\n \r\n public getUserDataName(): string {\r\n let userData = this.storageManagerService.read('userData');\r\n let name = userData ? userData.name : '';\r\n\r\n return name;\r\n }\r\n\r\n UpdateLoading(value: boolean) {\r\n this.loadingSource.next(value);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageManagerService {\r\n constructor() { }\r\n\r\n // Adding default return in cases where the object being read is not a string. This is not required, but in \r\n // error cases where a read happens before a write this is the value that would be returned.\r\n read(key: string, defaultReturn: any = '') {\r\n\r\n const value = sessionStorage.getItem('SSDrugProductsApp_' + key);\r\n\r\n return value && ( value !== 'undefined' && value !== 'null') ? JSON.parse(value) : defaultReturn;\r\n }\r\n\r\n write(key: string, value: any): void {\r\n sessionStorage.setItem('SSDrugProductsApp_' + key, JSON.stringify(value));\r\n }\r\n\r\n // Delete data\r\n public remove(key: string) {\r\n sessionStorage.removeItem('SSDrugProductsApp_' + key);\r\n }\r\n\r\n // Clear all storage\r\n public clearAll() {\r\n sessionStorage.clear();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ISubmissionDashboard } from '../models/submission-dashboard.model';\r\nimport { IApiResult } from '../models/api-result';\r\n@Injectable()\r\nexport class SubmissionDashboardService {\r\n httpHelper: HttpHelper;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: SettingsService,\r\n private authService: AuthenticationService,\r\n private storageManagerService: StorageManagerService,\r\n private toastr: ToastrService,\r\n ) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n getSubmissionDashboard(dateRangeLimit: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const apiUrl = settings.ApiGatewayUrl;\r\n const action = `ssdpds/v1/Submission/SubmissionDashboard?dateRangeLimit=${dateRangeLimit}`;\r\n return this.http.get(`${apiUrl}/${action}`, { headers: headers })\r\n .pipe(map(this.extractData),\r\n map(p => p.data),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n downloadFile(submissionId: number): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n const settings = this.settingsService.getSettings();\r\n const url = `${settings.ApiGatewayUrl}/ssdpds/v1/Submission/GetSubmissionResponseFiles/${submissionId}`;\r\n return this.http.get(url, { headers: headers }).pipe(\r\n map(this.extractData),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage\r\n ? true\r\n : !!isDevMode();\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg\r\n ? error.error.message\r\n : GENERIC_ERROR_MSG;\r\n\r\n return throwError(error.error);\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, isDevMode } from '@angular/core';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport { HttpHelper } from '../helpers/http-helper';\r\nimport { AuthenticationService } from './authentication.service';\r\nimport { SettingsService } from './settings.service';\r\nimport { StorageManagerService } from './storage-manager.service';\r\nimport { IApiResult } from '../models/api-result';\r\nimport { SubstanceLookupModel } from '../models/substance-lookup.model';\r\nimport { IServerSettings } from '../models';\r\n@Injectable()\r\nexport class SubstanceLookupService {\r\n httpHelper: HttpHelper;\r\n settings: IServerSettings;\r\n action: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private settingsService: SettingsService,\r\n private authService: AuthenticationService,\r\n private storageManagerService: StorageManagerService\r\n ) {\r\n // Define an instance of the http helper class that will be used to create httpHeader for api calls\r\n this.httpHelper = new HttpHelper(http, authService, storageManagerService);\r\n }\r\n\r\n searchSubstanceLookup(userInput: string): Observable {\r\n const headers = this.httpHelper.createHttpHeaders();\r\n this.settings = this.settingsService.getSettings();\r\n this.action = 'ssdpds/v1/SubstanceLookup/SearchSubstances';\r\n\r\n return this.http.post(`${this.settings.ApiGatewayUrl}/${this.action}`, {userInput}, { headers: headers })\r\n .pipe(map(this.extractData),\r\n map(p => p.data),\r\n catchError(this.handleErrors));\r\n }\r\n\r\n private extractData(response: any) {\r\n if (response.status < 200 || response.status >= 300) {\r\n throw new Error('Bad response status: ' + response.status);\r\n }\r\n const body = response as IApiResult;\r\n return body;\r\n }\r\n\r\n // Error handling\r\n private handleErrors(error: any): Observable {\r\n const GENERIC_ERROR_MSG = 'It looks like something went wrong. Try reloading the page or contacting support if this issue continues.';\r\n const bDisplayDetailMsg = error && error.error && error.error.isBusinessErrorMessage\r\n ? true\r\n : !!isDevMode();\r\n error.error = error && error.error && error.error.message && bDisplayDetailMsg\r\n ? error.error.message\r\n : GENERIC_ERROR_MSG;\r\n\r\n return throwError(() =>error.error);\r\n }\r\n}\r\n","import { dynamicschemaData } from '../models/dynamic-schema-data';\r\nimport { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class TemplateService {\r\n public getTemplate() {\r\n let template = new dynamicschemaData();\r\n return template;\r\n }\r\n\r\n public getTemplateText() {\r\n let template = new dynamicschemaData();\r\n return JSON.stringify(template.fields);\r\n }\r\n\r\n}\r\n","// ====================================================\r\n// More Templates: https://www.ebenmonney.com/templates\r\n// Email: support@ebenmonney.com\r\n// ====================================================\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponseBase, HttpResponse, HttpErrorResponse } from '@angular/common/http';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageManagerService } from './storage-manager.service';\r\n\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = 'No Network';\r\n public static readonly noNetworkMessageDetail = 'The server cannot be reached';\r\n public static readonly accessDeniedMessageCaption = 'Access Denied';\r\n public static readonly accessDeniedMessageDetail = '';\r\n\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null;\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n\r\n let sExpires = '';\r\n\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + vEnd;\r\n break;\r\n case String:\r\n sExpires = '; expires=' + vEnd;\r\n break;\r\n case Date:\r\n sExpires = '; expires=' + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n\r\n document.cookie = encodeURIComponent(sKey) + '=' + encodeURIComponent(sValue) + sExpires + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '') + (bSecure ? '; secure' : '');\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie = encodeURIComponent(sKey) + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' + (sDomain ? '; domain=' + sDomain : '') + (sPath ? '; path=' + sPath : '');\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return (new RegExp('(?:^|;\\\\s*)' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=')).test(document.cookie);\r\n },\r\n keys: () => {\r\n const aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, '').split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (let nIdx = 0; nIdx < aKeys.length; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); }\r\n return aKeys;\r\n }\r\n };\r\n\r\n // Define an observable to determine if the client dropdown need to be disabled\r\n // to prevent user from switch clients on a particular form\r\n private toggoleClientDropdownState = new BehaviorSubject(null);\r\n toggoleClientDropdownState$ = this.toggoleClientDropdownState.asObservable();\r\n\r\n getLocalDateString(date: any) {\r\n return (typeof date === \"string\" || !date)\r\n ? date\r\n : date.toLocaleDateString()\r\n }\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse | any, seachInCaptionOnly = true, includeCaptionInResult = false): string {\r\n\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) !== -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n public static getResponseBody(response: HttpResponseBase) {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error || response.message || response.statusText;\r\n }\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status == 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n\r\n public static getQueryParamsFromString(paramString: string) {\r\n\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: { [key: string]: string } = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = Utilities.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n\r\n public static splitInTwo(text: string, separator: string): { firstPart: string, secondPart: string } {\r\n const separatorIndex = text.indexOf(separator);\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n\r\n public static safeStringify(object) {\r\n\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch (error) {\r\n\r\n }\r\n\r\n const simpleObject = {};\r\n\r\n for (const prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n\r\n public static JSonTryParse(value: string) {\r\n\r\n if (value && typeof value === 'object') {\r\n return JSON.parse(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (const prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public static TestIsUndefined(value: any) {\r\n return typeof value === 'undefined';\r\n // return value === undefined;\r\n }\r\n public static IsUndefined(value: string) {\r\n return value === 'undefined';\r\n }\r\n\r\n public static TestIsString(value: any) {\r\n return typeof value === 'string' || value instanceof String;\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase();\r\n });\r\n }\r\n\r\n public static toLowerCase(items: string);\r\n public static toLowerCase(items: string[]);\r\n public static toLowerCase(items: any): string | string[] {\r\n\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl() {\r\n let base = '';\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static printDateOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n const dayNames = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');\r\n const monthNames = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');\r\n\r\n const dayOfWeek = date.getDay();\r\n const dayOfMonth = date.getDate();\r\n let sup = '';\r\n const month = date.getMonth();\r\n const year = date.getFullYear();\r\n\r\n if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) {\r\n sup = 'st';\r\n } else if (dayOfMonth === 2 || dayOfMonth === 22) {\r\n sup = 'nd';\r\n } else if (dayOfMonth === 3 || dayOfMonth === 23) {\r\n sup = 'rd';\r\n } else {\r\n sup = 'th';\r\n }\r\n\r\n const dateString = dayNames[dayOfWeek] + ', ' + dayOfMonth + sup + ' ' + monthNames[month] + ' ' + year;\r\n\r\n return dateString;\r\n }\r\n\r\n public static printTimeOnly(date: Date) {\r\n\r\n date = new Date(date);\r\n\r\n let period = '';\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n\r\n period = hour < 12 ? 'AM' : 'PM';\r\n\r\n if (hour == 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n\r\n if (minute.length == 1) {\r\n minute = '0' + minute;\r\n }\r\n\r\n const timeString = hour + ':' + minute + ' ' + period;\r\n\r\n\r\n return timeString;\r\n }\r\n\r\n public static printDate(date: Date, separator = 'at') {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n public static printFriendlyDate(date: Date, separator = '-') {\r\n const today = new Date(); today.setHours(0, 0, 0, 0);\r\n const yesterday = new Date(today); yesterday.setDate(yesterday.getDate() - 1);\r\n const test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n if (test.toDateString() === today.toDateString()) {\r\n return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n if (test.toDateString() == yesterday.toDateString()) {\r\n return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n } else {\r\n return Utilities.printDate(date, separator);\r\n }\r\n }\r\n\r\n public static printShortDate(date: Date, separator = '/', dateTimeSeparator = '-') {\r\n\r\n let day = date.getDate().toString();\r\n let month = (date.getMonth() + 1).toString();\r\n const year = date.getFullYear();\r\n\r\n if (day.length == 1) {\r\n day = '0' + day;\r\n }\r\n\r\n if (month.length == 1) {\r\n month = '0' + month;\r\n }\r\n\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n\r\n public static parseDate(date) {\r\n\r\n if (date) {\r\n\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) == -1) {\r\n date = date + 'Z';\r\n }\r\n\r\n return new Date(date);\r\n }\r\n\r\n if (typeof date === 'number' || date instanceof Number) {\r\n return new Date(date);\r\n }\r\n }\r\n }\r\n\r\n public static printDuration(start: Date, end: Date) {\r\n\r\n start = new Date(start);\r\n end = new Date(end);\r\n\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n const days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n const hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n const minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n const seconds = delta % 60; // in theory the modulus is not required\r\n\r\n\r\n let printedDays = '';\r\n\r\n if (days) {\r\n printedDays = `${days} days`;\r\n }\r\n\r\n if (hours) {\r\n printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n }\r\n\r\n if (minutes) {\r\n printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n }\r\n\r\n if (seconds) {\r\n printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n }\r\n\r\n\r\n if (!printedDays) {\r\n printedDays = '0';\r\n }\r\n\r\n return printedDays;\r\n }\r\n\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n\r\n let years = (otherDate.getFullYear() - birthDate.getFullYear());\r\n\r\n if (otherDate.getMonth() < birthDate.getMonth() ||\r\n otherDate.getMonth() === birthDate.getMonth() && otherDate.getDate() < birthDate.getDate()) {\r\n years--;\r\n }\r\n\r\n return years;\r\n }\r\n\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n\r\n if (!searchTerm) {\r\n return true;\r\n }\r\n\r\n\r\n if (!caseSensitive) {\r\n searchTerm = searchTerm.toLowerCase();\r\n }\r\n\r\n for (const value of values) {\r\n\r\n if (value != null) {\r\n let strValue = value.toString();\r\n\r\n if (!caseSensitive) {\r\n strValue = strValue.toLowerCase();\r\n }\r\n\r\n if (strValue.indexOf(searchTerm) !== -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n\r\n if (newIndex >= this.length) {\r\n let k = newIndex - this.length;\r\n while ((k--) + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n\r\n public static expandCamelCase(text: string) {\r\n\r\n if (!text) {\r\n return text;\r\n }\r\n\r\n return text.replace(/([A-Z][a-z]+)/g, ' $1')\r\n .replace(/([A-Z][A-Z]+)/g, ' $1')\r\n .replace(/([^A-Za-z ]+)/g, ' $1');\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string) {\r\n\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string) {\r\n\r\n return Utilities.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n let timeout;\r\n\r\n return function () {\r\n const context = this;\r\n const args_ = arguments;\r\n\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args_);\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) {\r\n func.apply(context, args_);\r\n }\r\n };\r\n }\r\n\r\n // Returns an empty string or a customer object\r\n public static getCustomerFromStorage(storageService: StorageManagerService) {\r\n const currentCustomerStr: string = storageService.read('currentCustomer');\r\n\r\n if (currentCustomerStr) {\r\n const currentCustomer = JSON.parse(currentCustomerStr);\r\n if (currentCustomer) {\r\n return currentCustomer;\r\n }\r\n }\r\n\r\n return ''\r\n }\r\n\r\n // Enable/disable dropdown control\r\n toggleClientDropdownState(status: boolean): void {\r\n this.toggoleClientDropdownState.next(status);\r\n }\r\n\r\n public static getLocaleDateString() {\r\n // From here: https://stackoverflow.com/questions/2388115/get-locale-short-date-format-using-javascript\r\n const formats = {\r\n \"af-ZA\": \"yyyy/MM/dd\",\r\n \"am-ET\": \"d/M/yyyy\",\r\n \"ar-AE\": \"dd/MM/yyyy\",\r\n \"ar-BH\": \"dd/MM/yyyy\",\r\n \"ar-DZ\": \"dd-MM-yyyy\",\r\n \"ar-EG\": \"dd/MM/yyyy\",\r\n \"ar-IQ\": \"dd/MM/yyyy\",\r\n \"ar-JO\": \"dd/MM/yyyy\",\r\n \"ar-KW\": \"dd/MM/yyyy\",\r\n \"ar-LB\": \"dd/MM/yyyy\",\r\n \"ar-LY\": \"dd/MM/yyyy\",\r\n \"ar-MA\": \"dd-MM-yyyy\",\r\n \"ar-OM\": \"dd/MM/yyyy\",\r\n \"ar-QA\": \"dd/MM/yyyy\",\r\n \"ar-SA\": \"dd/MM/yy\",\r\n \"ar-SY\": \"dd/MM/yyyy\",\r\n \"ar-TN\": \"dd-MM-yyyy\",\r\n \"ar-YE\": \"dd/MM/yyyy\",\r\n \"arn-CL\": \"dd-MM-yyyy\",\r\n \"as-IN\": \"dd-MM-yyyy\",\r\n \"az-Cyrl-AZ\": \"dd.MM.yyyy\",\r\n \"az-Latn-AZ\": \"dd.MM.yyyy\",\r\n \"ba-RU\": \"dd.MM.yy\",\r\n \"be-BY\": \"dd.MM.yyyy\",\r\n \"bg-BG\": \"dd.M.yyyy\",\r\n \"bn-BD\": \"dd-MM-yy\",\r\n \"bn-IN\": \"dd-MM-yy\",\r\n \"bo-CN\": \"yyyy/M/d\",\r\n \"br-FR\": \"dd/MM/yyyy\",\r\n \"bs-Cyrl-BA\": \"d.M.yyyy\",\r\n \"bs-Latn-BA\": \"d.M.yyyy\",\r\n \"ca-ES\": \"dd/MM/yyyy\",\r\n \"co-FR\": \"dd/MM/yyyy\",\r\n \"cs-CZ\": \"d.M.yyyy\",\r\n \"cy-GB\": \"dd/MM/yyyy\",\r\n \"da-DK\": \"dd-MM-yyyy\",\r\n \"de-AT\": \"dd.MM.yyyy\",\r\n \"de-CH\": \"dd.MM.yyyy\",\r\n \"de-DE\": \"dd.MM.yyyy\",\r\n \"de-LI\": \"dd.MM.yyyy\",\r\n \"de-LU\": \"dd.MM.yyyy\",\r\n \"dsb-DE\": \"d. M. yyyy\",\r\n \"dv-MV\": \"dd/MM/yy\",\r\n \"el-GR\": \"d/M/yyyy\",\r\n \"en-029\": \"MM/dd/yyyy\",\r\n \"en-AU\": \"d/MM/yyyy\",\r\n \"en-BZ\": \"dd/MM/yyyy\",\r\n \"en-CA\": \"dd/MM/yyyy\",\r\n \"en-GB\": \"dd/MM/yyyy\",\r\n \"en-IE\": \"dd/MM/yyyy\",\r\n \"en-IN\": \"dd-MM-yyyy\",\r\n \"en-JM\": \"dd/MM/yyyy\",\r\n \"en-MY\": \"d/M/yyyy\",\r\n \"en-NZ\": \"d/MM/yyyy\",\r\n \"en-PH\": \"M/d/yyyy\",\r\n \"en-SG\": \"d/M/yyyy\",\r\n \"en-TT\": \"dd/MM/yyyy\",\r\n \"en-US\": \"M/d/yyyy\",\r\n \"en-ZA\": \"yyyy/MM/dd\",\r\n \"en-ZW\": \"M/d/yyyy\",\r\n \"es-AR\": \"dd/MM/yyyy\",\r\n \"es-BO\": \"dd/MM/yyyy\",\r\n \"es-CL\": \"dd-MM-yyyy\",\r\n \"es-CO\": \"dd/MM/yyyy\",\r\n \"es-CR\": \"dd/MM/yyyy\",\r\n \"es-DO\": \"dd/MM/yyyy\",\r\n \"es-EC\": \"dd/MM/yyyy\",\r\n \"es-ES\": \"dd/MM/yyyy\",\r\n \"es-GT\": \"dd/MM/yyyy\",\r\n \"es-HN\": \"dd/MM/yyyy\",\r\n \"es-MX\": \"dd/MM/yyyy\",\r\n \"es-NI\": \"dd/MM/yyyy\",\r\n \"es-PA\": \"MM/dd/yyyy\",\r\n \"es-PE\": \"dd/MM/yyyy\",\r\n \"es-PR\": \"dd/MM/yyyy\",\r\n \"es-PY\": \"dd/MM/yyyy\",\r\n \"es-SV\": \"dd/MM/yyyy\",\r\n \"es-US\": \"M/d/yyyy\",\r\n \"es-UY\": \"dd/MM/yyyy\",\r\n \"es-VE\": \"dd/MM/yyyy\",\r\n \"et-EE\": \"d.MM.yyyy\",\r\n \"eu-ES\": \"yyyy/MM/dd\",\r\n \"fa-IR\": \"MM/dd/yyyy\",\r\n \"fi-FI\": \"d.M.yyyy\",\r\n \"fil-PH\": \"M/d/yyyy\",\r\n \"fo-FO\": \"dd-MM-yyyy\",\r\n \"fr-BE\": \"d/MM/yyyy\",\r\n \"fr-CA\": \"yyyy-MM-dd\",\r\n \"fr-CH\": \"dd.MM.yyyy\",\r\n \"fr-FR\": \"dd/MM/yyyy\",\r\n \"fr-LU\": \"dd/MM/yyyy\",\r\n \"fr-MC\": \"dd/MM/yyyy\",\r\n \"fy-NL\": \"d-M-yyyy\",\r\n \"ga-IE\": \"dd/MM/yyyy\",\r\n \"gd-GB\": \"dd/MM/yyyy\",\r\n \"gl-ES\": \"dd/MM/yy\",\r\n \"gsw-FR\": \"dd/MM/yyyy\",\r\n \"gu-IN\": \"dd-MM-yy\",\r\n \"ha-Latn-NG\": \"d/M/yyyy\",\r\n \"he-IL\": \"dd/MM/yyyy\",\r\n \"hi-IN\": \"dd-MM-yyyy\",\r\n \"hr-BA\": \"d.M.yyyy.\",\r\n \"hr-HR\": \"d.M.yyyy\",\r\n \"hsb-DE\": \"d. M. yyyy\",\r\n \"hu-HU\": \"yyyy. MM. dd.\",\r\n \"hy-AM\": \"dd.MM.yyyy\",\r\n \"id-ID\": \"dd/MM/yyyy\",\r\n \"ig-NG\": \"d/M/yyyy\",\r\n \"ii-CN\": \"yyyy/M/d\",\r\n \"is-IS\": \"d.M.yyyy\",\r\n \"it-CH\": \"dd.MM.yyyy\",\r\n \"it-IT\": \"dd/MM/yyyy\",\r\n \"iu-Cans-CA\": \"d/M/yyyy\",\r\n \"iu-Latn-CA\": \"d/MM/yyyy\",\r\n \"ja-JP\": \"yyyy/MM/dd\",\r\n \"ka-GE\": \"dd.MM.yyyy\",\r\n \"kk-KZ\": \"dd.MM.yyyy\",\r\n \"kl-GL\": \"dd-MM-yyyy\",\r\n \"km-KH\": \"yyyy-MM-dd\",\r\n \"kn-IN\": \"dd-MM-yy\",\r\n \"ko-KR\": \"yyyy. MM. dd\",\r\n \"kok-IN\": \"dd-MM-yyyy\",\r\n \"ky-KG\": \"dd.MM.yy\",\r\n \"lb-LU\": \"dd/MM/yyyy\",\r\n \"lo-LA\": \"dd/MM/yyyy\",\r\n \"lt-LT\": \"yyyy.MM.dd\",\r\n \"lv-LV\": \"yyyy.MM.dd.\",\r\n \"mi-NZ\": \"dd/MM/yyyy\",\r\n \"mk-MK\": \"dd.MM.yyyy\",\r\n \"ml-IN\": \"dd-MM-yy\",\r\n \"mn-MN\": \"yy.MM.dd\",\r\n \"mn-Mong-CN\": \"yyyy/M/d\",\r\n \"moh-CA\": \"M/d/yyyy\",\r\n \"mr-IN\": \"dd-MM-yyyy\",\r\n \"ms-BN\": \"dd/MM/yyyy\",\r\n \"ms-MY\": \"dd/MM/yyyy\",\r\n \"mt-MT\": \"dd/MM/yyyy\",\r\n \"nb-NO\": \"dd.MM.yyyy\",\r\n \"ne-NP\": \"M/d/yyyy\",\r\n \"nl-BE\": \"d/MM/yyyy\",\r\n \"nl-NL\": \"d-M-yyyy\",\r\n \"nn-NO\": \"dd.MM.yyyy\",\r\n \"nso-ZA\": \"yyyy/MM/dd\",\r\n \"oc-FR\": \"dd/MM/yyyy\",\r\n \"or-IN\": \"dd-MM-yy\",\r\n \"pa-IN\": \"dd-MM-yy\",\r\n \"pl-PL\": \"dd.MM.yyyy\",\r\n \"prs-AF\": \"dd/MM/yy\",\r\n \"ps-AF\": \"dd/MM/yy\",\r\n \"pt-BR\": \"d/M/yyyy\",\r\n \"pt-PT\": \"dd-MM-yyyy\",\r\n \"qut-GT\": \"dd/MM/yyyy\",\r\n \"quz-BO\": \"dd/MM/yyyy\",\r\n \"quz-EC\": \"dd/MM/yyyy\",\r\n \"quz-PE\": \"dd/MM/yyyy\",\r\n \"rm-CH\": \"dd/MM/yyyy\",\r\n \"ro-RO\": \"dd.MM.yyyy\",\r\n \"ru-RU\": \"dd.MM.yyyy\",\r\n \"rw-RW\": \"M/d/yyyy\",\r\n \"sa-IN\": \"dd-MM-yyyy\",\r\n \"sah-RU\": \"MM.dd.yyyy\",\r\n \"se-FI\": \"d.M.yyyy\",\r\n \"se-NO\": \"dd.MM.yyyy\",\r\n \"se-SE\": \"yyyy-MM-dd\",\r\n \"si-LK\": \"yyyy-MM-dd\",\r\n \"sk-SK\": \"d. M. yyyy\",\r\n \"sl-SI\": \"d.M.yyyy\",\r\n \"sma-NO\": \"dd.MM.yyyy\",\r\n \"sma-SE\": \"yyyy-MM-dd\",\r\n \"smj-NO\": \"dd.MM.yyyy\",\r\n \"smj-SE\": \"yyyy-MM-dd\",\r\n \"smn-FI\": \"d.M.yyyy\",\r\n \"sms-FI\": \"d.M.yyyy\",\r\n \"sq-AL\": \"yyyy-MM-dd\",\r\n \"sr-Cyrl-BA\": \"d.M.yyyy\",\r\n \"sr-Cyrl-CS\": \"d.M.yyyy\",\r\n \"sr-Cyrl-ME\": \"d.M.yyyy\",\r\n \"sr-Cyrl-RS\": \"d.M.yyyy\",\r\n \"sr-Latn-BA\": \"d.M.yyyy\",\r\n \"sr-Latn-CS\": \"d.M.yyyy\",\r\n \"sr-Latn-ME\": \"d.M.yyyy\",\r\n \"sr-Latn-RS\": \"d.M.yyyy\",\r\n \"sv-FI\": \"d.M.yyyy\",\r\n \"sv-SE\": \"yyyy-MM-dd\",\r\n \"sw-KE\": \"M/d/yyyy\",\r\n \"syr-SY\": \"dd/MM/yyyy\",\r\n \"ta-IN\": \"dd-MM-yyyy\",\r\n \"te-IN\": \"dd-MM-yy\",\r\n \"tg-Cyrl-TJ\": \"dd.MM.yy\",\r\n \"th-TH\": \"d/M/yyyy\",\r\n \"tk-TM\": \"dd.MM.yy\",\r\n \"tn-ZA\": \"yyyy/MM/dd\",\r\n \"tr-TR\": \"dd.MM.yyyy\",\r\n \"tt-RU\": \"dd.MM.yyyy\",\r\n \"tzm-Latn-DZ\": \"dd-MM-yyyy\",\r\n \"ug-CN\": \"yyyy-M-d\",\r\n \"uk-UA\": \"dd.MM.yyyy\",\r\n \"ur-PK\": \"dd/MM/yyyy\",\r\n \"uz-Cyrl-UZ\": \"dd.MM.yyyy\",\r\n \"uz-Latn-UZ\": \"dd/MM yyyy\",\r\n \"vi-VN\": \"dd/MM/yyyy\",\r\n \"wo-SN\": \"dd/MM/yyyy\",\r\n \"xh-ZA\": \"yyyy/MM/dd\",\r\n \"yo-NG\": \"d/M/yyyy\",\r\n \"zh-CN\": \"yyyy/M/d\",\r\n \"zh-HK\": \"d/M/yyyy\",\r\n \"zh-MO\": \"d/M/yyyy\",\r\n \"zh-SG\": \"d/M/yyyy\",\r\n \"zh-TW\": \"yyyy/M/d\",\r\n \"zu-ZA\": \"yyyy/MM/dd\",\r\n };\r\n\r\n return formats[navigator.language] || \"dd/MM/yyyy\";\r\n }\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n","\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nimport { registerLicense } from '@syncfusion/ej2-base';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\n// Registering Syncfusion license key\r\nregisterLicense('Mgo+DSMBaFt/QHFqVVhkW1pFdEBBXHxAd1p/VWJYdVt5flBPcDwsT3RfQF9jT3xbdkxmWHxXeHNVRA==;ORg4AjUWIQA/Gnt2VVhhQlFaclhJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxRdkNhUX9XdXVWT2hUU0Y=;Mgo+DSMBMAY9C3t2VVhhQlFaclhJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxRdkNhUX9XdXVWT2hVVEY=');\r\n\r\nconst providers = [\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\n\r\nplatformBrowserDynamic(providers).bootstrapModule(AppModule).then(ref => {\r\n // Ensure Angular destroys itself on hot reloads.\r\n if (window['ngRef']) {\r\n window['ngRef'].destroy();\r\n }\r\n window['ngRef'] = ref;\r\n\r\n // Otherwise, log the boot error\r\n }).catch(err => console.error(err));\r\n\r\n"],"names":["RouterModule","PreloadAllModules","ErrorComponent","SupportComponent","AccessdeniedComponent","UnauthorizedComponent","ForbiddenComponent","ERFormComponent","ERFormDashboardComponent","VersionModalComponent","EsigModalComponent","NoEsgAccessModalComponent","CompanyDetailsComponent","ContactComponent","CompanyAuthorizationGuard","ContactAuthorizationGuard","ContactEditGuard","CompanyEditGuard","ERFormCAGuard","ERFormCDGuard","OrderStep1Guard","OrderStep2Guard","OrderStep3Guard","BusinessCategoryAuthorizationGuard","SubmissionAuthorizationGuard","CompanyResolverService","ERFormResolverService","OrderResolverService","ERDashboardResolverService","LCRDashboardResolverService","BusinessCategoryResolverService","CompanyDashboardComponent","ContactDashboardComponent","CreateLLFormComponent","LCRFormComponent","OrderStep1Component","OrderStep2Component","OrderStep3Component","OrderTrackerComponent","LCRFormGuard","LCRFormResolverService","LCRFormAuthorizationGuard","LCRFormDashboardComponent","BusinessCategoryComponent","BusinessCategoryEditGuard","HealthCanadaSplValidationComponent","FooterDashboardGuard","SiteLayoutComponent","SplViewerComponent","PageNotFoundComponent","AutoLoginGuard","SubmissionDashboardComponent","SubstanceLookupComponent","SubstanceLookupGuard","CosmeticBuilderComponent","SplUploadGuard","SplUploadComponent","SplUploadResolverService","OrderComponent","OrderGuard","NavigatorComponent","routes","path","component","children","redirectTo","pathMatch","loadChildren","then","m","BNCCModule","canActivate","LabelSPLModule","ProductModule","CosmeticFileUploadModule","resolve","businessCategoryData","canDeactivate","companyData","formData","orderDataResolved","splUploadData","AppRoutingModule","forRoot","preloadingStrategy","imports","exports","HttpClientModule","HttpClientJsonpModule","HTTP_INTERCEPTORS","BrowserModule","BrowserAnimationsModule","ToastrModule","AppComponent","SplitWordsPipe","UtcToLocalePipe","HideByAccessDirective","LabelControlDirective","KeyUpDirective","DisableControlDirective","LLFormAuthorizationGuard","LLFormGuard","LLFormResolverService","LLDashboardResolverService","AuthenticationService","AuthorizationService","CustomerService","LoggingService","SettingsService","StorageManagerService","TemplateService","CompanyContactService","LLDashboardService","SessionTimeoutService","RefdataService","BlockUIModule","LLFormService","OrderService","Utilities","CustomerSelectorComponent","FooterComponent","HomeComponent","NavMenuComponent","ContactDetailComponent","OrderSummaryComponent","OrderAdminComponent","DatePipe","AbsoluteSessionTimeoutService","SanitizeHtmlPipe","LCRFormService","ERFormService","LlValidationService","LCRValidationService","JwtInterceptor","HCSplValidationService","IRevisionHistory","DeleteFormService","RTSharedModule","AuthConfigModule","ESGSubmissionService","SubmissionDashboardService","SubstanceLookupService","GridPreferencesService","PragmaticValidationService","ColumnChooserService","FeatureService","FileUploadHistoryGridComponent","FileUploadService","AccordionModule","NavDLService","AppModule","bootstrap","provide","useClass","multi","withServerTransition","appId","timeOut","preventDuplicates","positionClass","declarations","HttpClient","APP_INITIALIZER","map","switchMap","AuthModule","OidcConfigService","OidcSecurityService","configureAuth","httpClient","settingsService","oidcService","setupAction$","get","pipe","customConfig","serverSettings","stsServer","IdentityServiceUrl","authWellknownEndpoint","redirectUrl","window","location","origin","clientId","scope","postLogoutRedirectUri","responseType","triggerAuthorizationResultEvent","startCheckSession","silentRenew","renewTimeBeforeTokenExpiresInSeconds","useRefreshToken","maxIdTokenIatOffsetAllowedInSeconds","issValidationOff","autoUserinfo","postLoginRoute","forbiddenRoute","unauthorizedRoute","customParams","prompt","config","withConfig","toPromise","useFactory","deps","i0","constructor","currentYear","Date","getFullYear","selectors","inputs","lastLogonDate","decls","vars","consts","template","EventEmitter","authenticationService","storageManagerService","utilService","toastr","text","value","skipNavigation","e","type","which","keyCode","main","document","getElementById","focus","preventDefault","stopPropagation","logout","accessPermissions","read","captureLogoutEvent","email","subscribe","res","clearAll","error","errorMessage","ngAfterViewInit","customerSelectionEnabled","sub","toggoleClientDropdownState$","status","toggleClientDropdownState","sessionCustomers","sessionCurrentCustomer","userData","customers","currentCustomer","JSON","parse","switchCustomersddw","customerId","ngOnDestroy","subscription","unsubscribe","switchClient","event","changedCustomerId","itemData","sessionCustomerStr","changedCustomer","find","c","changedCustomerEmitter","emit","viewQuery","ctx","BehaviorSubject","throwError","NavigationEnd","NavigationCancel","NavigationError","NavigationStart","authorizationService","customerService","router","sessionTimeoutservice","cdRef","absoluteSessionTimeoutService","X","Y","effect","click","onAbsoluteContinueClicked","bind","buttonModel","content","isPrimary","sessionTimeoutModal","hide","onContinueClicked","isIframe","parent","opener","lastLogonDateSourceSubject","next","hasPermission","hasPermissionSubject","permissionsSet","permissionsSetSubject","events","routerEvent","loading","onActivate","componentRef","orderTrackerComponent","ngOnInit","authenticateUsersWithCustomers","cust","initPendo","userguid","customerName","userName","name","preferred_username","applications","loadInitialToolbar","loadData","length","AName","applicationName","getPermisions","hasApplicationPermissions","write","lastlogondate","userGuid","navigate","user","setAccessPermissions","navMenuComponent","manageNavMenuAccess","eligibleCustomers","getIsAuthorized","isAuthorized","reset","loggedIn","sessionTimeoutWarning","time","sessionExpireSecondsLeft","displaySessionExpireWarning","absoluteSessionExpireMinutesLeft","displayAbsoluteSessionExpireWarning","getCustomersWithResponse","getCustomers","data","cu","getCustomerAppVariants","applicationId","findIndex","x","push","sort","y","toLowerCase","bHasOnlyOneClient","hasCurrentCustomer","selectedCustomer","handleError","getCustomersCallback","detectChanges","that","getBearerToken","setTimeout","isOnLogin","show","absoluteSessionTimeoutModal","paramsContainer","changeDataScope","dataScope","dataScopeName","receiveCustomer","customer","dataSourceApi","oldCustomer","stringify","reviveToken","currentUrl","url","indexOf","substring","numberStartIndex","slice","search","validationSpecialist","hcValidationFormMenu","defaultHomepageLink","navigateByUrl","includes","editBNCCFormMenu","reload","bnccUrl","editCompanyMenu","editContactMenu","editLLFormMenu","editLCRFormMenu","editERFormMenu","submissionMenu","ordersFormMenu","undefined","splIngestLLForm","splViewLLForm","setDataScopes","dataSource","forEach","element","i","ds","id","termValueCode","toUpperCase","dataScopes","editBusinessCategoryMenu","editOrdersMenu","hasAccessToAppVariant","ingestBNCC","ingestPLRSPL","substanceLookup","console","log","fadeInOut","initTabIndex","activeElement","blur","initDataDogScriptElement","initDataDogRUM","catch","Tooltip","authService","args","resetPage","authData","getAuthData","currentRequest","setRequestHeader","getCustomerGuid","applicationVariantId","toString","getUserDataName","cancel","uploadStatus","apiResult","currentTarget","response","buildResult","downloadSPLButtonEnabled","hasValidationErrors","validationFileName","file","ndcProductsIncludedCount","marketingEndDateRemovedProductsCount","duplicatesProductsRemovedCount","expiredProductsRemovedCount","monographMarketingCategoriesRemovedCount","cosmetic","cosmeticXml","xml","cosmeticXmlFileName","xmlFileName","pragmaticResponseFile","pragmaticResultsFileName","replace","pragmaticValidationResult","getpragmaticValidationText","pragmaticValidationClass","class","uploadSaveUrl","getProcessFormURL","onUploadFailure","setDownloadClickEvent","fileName","a","createElement","setAttribute","body","appendChild","removeChild","createBlobURL","mimeType","blob","Blob","URL","createObjectURL","downloadSummaryReport","summaryReportCsv","blobUrl","today","companyName","legalAuthenticatorCompanyName","fullDate","getMonth","getDate","downloadCosmeticXml","downloadPragmaticResponseFile","atob","validationStatus","downloadSummaryReportEnabled","settings","getSettings","apiUrl","ApiGatewayUrl","action","tooltipValue","grid","target","scrollWidth","clientWidth","errorGrid","rowInfo","getRowInfo","rowData","tooltipObj","column","field","customiseCell","cell","classList","add","tooltip","showHideErrorsWarnings","isHideErrorsWarnings","returnObj","UntypedFormArray","EstablishmentModalComponent","fb","llFormService","companyService","llService","dialog","modalDialog","dlgButtonClick","llFormEstablishmentSubject","initializeModal","formProductLabeler","estabForm","markAsPristine","llFormLabelerSubject","lb","labelerForm","llFormProductInformationSubject","pi","productInfoForm","group","companies","array","company","setCompaniesDdw","valueChanges","llFormData","llFormDetails","revisionEstabCompanies","establishments","setControl","setOrigCompanies","establishmentsExist","ndcProductLinkNotAllowed","fdaCenter","setBOs","controls","companyRevisionId","setOrigBOs","boChkChanged","compIndex","boIndex","checked","products","at","product","patchValue","selected","productChkChanged","ci","bi","bo","selectedProducts","filter","s","businessOperations","boDisplayed","busOpCode","estabCompanies","formArray","estabCompany","establishmentCompany","confidential","confidentiality","busOps","companyCnt","updateOn","busOp","companySelectionChanged","isInteracted","ddwCompanySelected","index","BOs","setBOForm","estab","allEstablishmentCompanies","revisionEstab","rc","revisionEstabConfidentiality","dunsNumber","busOpId","busOpLabel","businessOperationsCompanyRevisionId","ndcProductCode","establishment","availableEstabCompaniesCount","b","productsFormArray","setProducts","bop","boSelected","boObject","code","label","llFormProductLabelerCodeSubject","productProductCode","productLabelerCode","split","productLabeler","estabCompanyId","llProducts","establishmentsArray","ndcProductCodes","companyBo","llForm","t","uniqueNdcCodes","item","self","llProductCodes","p","allCodes","concat","allCodesUnique","busOpSelected","compare","companyDataSource","companyTypes","establishmentOwnedAndEstablishmentThirdParty","est","companyFormControls","busOpsArray","arr","busOpsArrayChkVisible","val","productsArray","productsArrayChkVisible","addCompany","removeCompany","removeAt","isDuplicateCompanies","isDuplicate","valueArr","some","idx","saveEstab","form","areCompaniesLatest","modalEstabData","originalFormData","visible","pageLoaded","notLatestCompanies","isCompanyLatest","estabModalCancel","originalEstabForm","onDialogCreated","onDialogDestroyed","onDialogOpen","cloneAbstractControl","deepCopy","ngOnChanges","changes","property","currentValue","updateEstablishments","ILLGenericKeys","ILLRelationship","forkJoin","of","catchError","LLFormEstablishmentComponent","refDataService","prod","newCode","ndcLabelerCode","duns","flattenBusOps","establishmentSectionForm","oldNdcProductCode","newNdcProductCode","modifyExistingEstablishments","productToReplace","pr","deletedProductIndex","splice","getEstabCompanies","initializeForm","patchForm","checkLabelerMismatch","labelerCodeOutput","Array","from","Set","establishmentsThirdParty","estabCompanyFormArray","addEstabCompanyForm","parentComponent","currentCustomerStr","customerGuid","validators","setEstabCompanyForm","boString","selectedBoCounter","estabModalOpen","establishmentModal","warningModalText","prodIndex","labelerCode","itemCode","missingCodesArray","markAsDirty","saveModalForm","setEstabCompanyFormEdited","estabCompanyEdited","boProducts","modalCompanies","flatBusOps","bp","flattenBusOpsEdited","showCompanyDialog","companyData$","getBusinessCategories","getCountries","getContacts","GetAllBusinessOperationQualifier","getCompanyRevisionHistory","getBusinessOperationQualifierByCompany","getCompanyById","getNDCLabelerCodesByCompany","err","companyDetailsComponent","populateDataFromResolver","setButtons","getFormControlByName","checkUserPermission","companyDialog","busCat","countries","contacts","busQual","companyHistory_grid_data","modalCompany","newCompany","setSavedEstCompany","companyDialogCancelButtonClicked","getLCompanyTypesByCustomerGuid","companyForm","clearValidators","compareName","bame","ILLCompany","LLFormLabelerComponent","cdref","confirmDialogCompany","ndcUserLabelerCodeBeforeSelectionChanged","userNdcLabelerCode","lCompanyRevisionId","labelerCompanyCodeChangedObject","setNDCddw","ndcDdw","setChangedLabelerCompany","labelerCodeValue","ndcDataSource","ndcType","confirmDlgButtonsCompanyBtnClickNo","confirmDlgButtonsCompanyBtnClickYes","confirmDialogNDC","labeler","changedCompany","labelerCompanies","labelerCompany","ndcCodeChangedObject","confirmDlgButtonsNDCClickNo","confirmDlgButtonsNDCClickYes","enablePrivateNdcInput","labelerCompanyRevisionId","privateNdc","removeAttribute","missingLabelerError","companyDdw","formNdcCode","privateCode","ndcLabelerCodes","n","labelers","ndcCodes","formLabeler","lCompanySelectionChanged","oldLabelerCompanyId","previousItemData","newLabelerCompanyId","ndcRadioChanged","lNdcSelectionChanged","oldNdcCode","newNdcCode","privateNdcCodeKeyUp","privateNdcCodeChanged","ndcProductCodeChangedObject","onTabPressed","companyLov","company$","message","GENERIC_ERROR_MSG","setSavedLabelerCompany","dataBind","refresh","ILLProduct","ILLFormDetail","LLFormProductDetailsComponent","datepipe","frmProductDetails","proprietaryName","proprietaryNameSuffix","genericName","selectedDosage","proprietaryNameModel","placeholder","created","onTextBoxCreateProprietaryName","proprietaryNameSuffixModel","onTextBoxCreateSuffix","genericNameModel","onTextBoxCreateGenericName","decodeHtml","llFormProductDetailsSubject","proprietaryNameOutput","onActionSuccess","encodeHtml","ieProprietaryName","ctrl","containerEle","querySelector","ej2_instances","ipeSuffix","ipeGenericName","onTextBoxCreateDosage","ipeDosage","str","buf","unshift","charCodeAt","join","match","dec","String","fromCharCode","editorChanged","partIndex","parts","dosageForm","getGenericKeyObject","estGenName","populateControls","dataProductDetail","selectedDosageValue","selectedDosageId","allLOV","dosageFormLOV","getLOVDataByType","dosageFormModel","fields","width","dosageFormId","dataLOV","vocaB_TYPE","newLOV","container","retVal","list","v","LLFormProductInformationComponent","storage","confirmDialog","frmProductInformation","confirmDlgBtnClickNo","confirmDlgBtnClickYes","drpProductTypes","drpRouteAdmin","drpDeaSchedule","srcNDC1","srcNDC2","hiddenProductType","productTypesLOV","getLOVDataByTypeForLL","deaScheduleLOV","routeAdminLOV","frmDetailData","productId","newProduct","bCreateEmptyItem","emptySelectItem","DisplayType","formType","lsP_FORM_TYPE","codes","getNdcProductCode","isPart","sourceNDCCode","routeOfAdmins","getSavedMultiSelectIds","deaSchedule","setId","serviceType","canDisplayCertificationStatus","listingRecordCertifiedThroughStatus","bIsKit","packageConfigurations","j","packages","singlePackage","packageCode","ddwChanged","arrIds","newUOMValue","checkForLOVSelection","inactiveROAsList","uniquIds","ndcProductCodeChanged","LLFormRegistrantComponent","registrantForm","rCompanyRevisionId","llFormRegistrantSubject","registrant","trim","isCompanyInactive","registrantCompanies","registrants","ddwChange","registrantCompany","confidentialityChange","returnVal","companyDetail","inactiveLabelerContactName","setSavedRegistrantCompany","Validators","NgbTabset","ProductLabelingListingComponent","route","sanitizer","dashboardService","toHtml","input","DOMParser","parseFromString","documentElement","textContent","viewChildren","comps","tabset","first","activeTab","activeId","draftsGrid","deliveriesGrid","LLForm_grid","cssClass","toBrackets","tabChanged","nextId","isDeleteAllowedOnTab","llFormGridRowDeselected","toolbarOptions","createCustomToolbarItems","hasDeletePermission","bHasPermission","selectedLLRevisionId","searchForm","searchText","required","initialPage","currentPage","pageSize","pageSizes","formatOptions","format","getLocaleDateString","snapshot","isArray","LLForm_grid_data","count_LLForm","dashboardDeliveriesData","getElementsByTagName","downloadFile","filePath","webkitURL","downloadUrl","link","href","download","begin","requestType","columns","col","currentFilteringColumn","currentFilterObject","operator","viewFormOrGoToDashboard","llRevisionId","isDraftMode","deletePermission","writePermission","toolbarItems","tooltipText","prefixIcon","getStatusClass","getStatusIcon","customizeCell","style","color","llFormGridRowSelected","selectedLLRevisionDraftMode","selectedLLRevisionProductType","productType","selectedLLRevisionVersion","formVersion","selectedLLOrderId","selectedLLRevisionFileName","llDeliveriesGridRowSelected","formRevisionId","orderId","f","rowSelecting","isHeaderCheckboxClicked","getSelectedRecords","clearSelection","onSubmitionToFDA","isSuccessfulySubmitted","toolbarClick","deleteButton","revisionId","openDeleteModal","deleteButtonDrafts","sendToFDAButton","showEsignatureModal","featureService","fileuploadhistorygrid","getFileHistoryDashboard","needsToPoll","hasIngestPermission","setFeatureFlag","IsFeatureEnabled","isFeatureFlagVisible","TooltipComponent","ILLBusinessCategory","activatedRoute","EditBCModalDialog","toolTips","businessCategory_grid_data","frmEditBusinessCategory","description","openEditModal","categoryId","setValue","currBusinessCategoryId","submitted","bc","activeFlag","saveBusinessCategory","businessCategory","invalid","dirty","modifiedByUser","createBusinessCategory","success","refreshBusinessCategoryGrid","warning","cancelBtnClicked","innerHTML","businessCategory_grid","CustomSidebarComponent","onCreated","sidebar","openSidebarClick","closeSideBarClick","expandAll","sidebarExpanded","accordionObj","expandItem","collapseAll","onWindowScroll","scrollBarOffset","pageYOffset","scrollTop","defaultSideBarTop","contentQueries","Subject","DeleteButtonComponent","deleteService","storageService","pageLoading","pageLoadingChange","deleteForm","apiController","appVariantName","isDelivery","isSuccess","redirectPage","onFormDeactivatedSuccessful","deleteModal","confirmDialogSelection$","buildDlgBtnNo","buildDlgBtnYes","isDraft","isBaseRevision","initialUrl","skipLocationChange","ErrorMessagesComponent","showMessages","splValidation","validationMessages","messages","splErrorMessages","splValidationMessages","defaultDisplay","paramMap","setMessage","submissionService","submitterName","submissionDate","toLocaleString","month","day","year","getCustomerFromStorage","clientName","clientGuid","hasEsgAccess","setLocalVariables","localFileName","localDocumentType","documentType","localFormRevisionId","localSplVersionNumber","splVersionNumber","localOrderId","userNameField","passwordField","eSignatureErrorMessage","sendModalVisible","esigModal","noEsgAccessModal","eSigCancel","confirmClicked","btnConfirm","disabled","showloading","eSigConfirmation","buildDrugProductSubmissionModel","createDrugProductSubmission","submission","postAuthMessageModal","componentName","submissionItemType","startsWith","submissionBuilder","submissionId","submissionGuid","distributionChannel","submissionStatusCode","submissionQueueStatusCode","submissionTypeCode","submissionItems","submissionItemTypeCode","rootId","sourceFilePath","sourceFileName","submissionXMLText","submissionXMLFileLocation","submissionCompressedFileCloudLocation","submissionCompressedFileName","createUserGuid","submitterUserGuid","changeUserGuid","createDate","changeDate","submissionStatusDescription","submissionCoreId","submissionItemTypeDescription","onEmailBlur","getFullNameByEmail","firstName","lastName","userGUID","postAuthClose","noAccessModalClose","detach","FileUploadComponent","addHeaders","fileData","size","fileMaxSize","fileMinSize","uploading","uploadObj","remove","allFilesUploadedCheck","failure","uploadedFiles","totalFiles","filesData","UpdateLoading","all","getFilesData","filteredList","obj1","obj2","uploadSettings","saveUrl","FileMinSize","FileMaxSize","dropArea","onclick","contains","parentElement","getAttribute","browseClick","getElementsByClassName","onFailure","statusText","ProductAccordionItemComponent","deleteProductItem","productToDeleteEmitter","formProdIndex","showPartItem","showPartEmitter","outputs","PragmaticGridColumnComponent","onDownload","WarningIconComponent","bIsOrder","bIsCheckForLOVEntry","NgbTabsetConfig","PageService","ToolbarService","VirtualScrollService","companySvc","hasWritePermission","sessionStorage","getCompanies","selectedCompanyRevisionId","company_grid","GetCompanyDashboard","drafts_grid_data","count_draftcompany","company_grid_data","count_company","viewCompany","companyId","companyGridRowSelected","companyGridRowDeselected","currentGrid","UntypedFormGroup","selectCompanyTypeValidator","IContactCompany","IBusinessOperationQualifier","INdcLabeler","NonLatestCompanyContact","ckName","dbField","dropdownCtrlName","address","city","countryId","countryRegion","zip","businessCategoryId","fei","isLabeler","isRegistrant","isUSAgent","isImporter","isEstablishmentOwner","isThirdPartyEstablishment","labelerCodes","contactEst","contact3rdPartyEst","contactImporter","contactLabeler","contactRegistrant","pattern","minlength","minLength","maxLength","contact_Est","contact_3rdParty_Est","contact_Labeler","contact_Importer","contact_Registrant","contact_usAgent","contact_allCompanyTypes","addLabelerFormGroup","businessOperationsForm","createItem","allCompanyTypes","validator","params","contactValidationTitleMsg","clearEditFlags","parentComponentInput","selectCompanyTypeFromModal","buttonText","pageTitle","version","formStatus","selectedBusinessCategoryId","selectedCountryId","selectedRegionId","businessCategories","businessOperationsTermList","GetBusinessOperationsList","businessOperationArray","bIsDraftMode","companyAssociations","displayCompany","bIsInternationalCompany","isInternationalCompany","regionFromDrp","formActiveFlag","regions","regions$","getRegionsByCountry","setLabelerForm","draftData","bHasDeletePermission","countryID","bRet","COUNTRY_USA","initBusinessOperationQualifier","countryRegionDdw","getCompanyId","getContactList","currentContact","contactId","selectedContact","contactRevisionId","getContactById","contactData","countryCode","Number","validateRegion","regionCode","regionAndAbbreviation","countrySelectionChanged","stateSelectionChanged","contactDrpSelectionChanged","associatedContact","associationType","associationActiveFlag","companyType","currentCompanyTypeInfo","ValidateContactAssociation","showEditLinkFlags","hideEditLinkFlags","contact","isValid","dialogConfirmation","saveCompany","formValues","bValidationErrorExist","valid","prepareDataForSave","uniqueLabelers","removeDuplicatesLabelersFromArray","companyForCreation","companyDetails","CompanyContactAssociation","getSelectedContactsForSave","businessOperQualifier","getSelectedBusinessOperQualifiersForSave","createCompany","routeReuseStrategy","shouldReuseRoute","onSameUrlNavigation","companyRevId","companyOutput","customizeErrorCell","uniqueArray","uniqueFormArray","isEstablishment","isEstablishmentChecked","is3rdPartyEstablishmentChecked","lstCompanyAssociations","companyTypeCtrlNames","ctrlCheckbox","ctrlContactDrp","companyContactRoleCode","lstBusiOperQualifiers","businessOperationsForms","businessOperationsQualifiers","qualifier","parentTermValueCode","parentTermValueName","GetBussinesOperationDescByCode","boq","childTermValueCode","childTermValueName","GetBussinesOperationQualifierDescByCode","checkForDuplicate","IBusiOperQuals","businessOperationBusinessOperationQualifierList","busOperCode","qualCode","bFound","establishmentOwner","thirdPartyEstablishment","importer","usAgent","setUpdateCompanyButtonStatus","contactType","IsAssociatedContactLatest","nonLatestCompanyContact","EstablishmentContactOwned","contactName","showEditLink_Est","EstablishmentThirdPartyContact","showEditLink_3rdParty_Est","ImporterContact","showEditLink_Importer","LabelerContact","showEditLink_Labeler","RegistrantContact","showEditLink_Registrant","USAgentContact","showEditLink_USAgent","setBusinessOperationForm","disableUpdateCompanyButton","isFound","latestAvailableContactsList","availableContact","businessOperationsArray","busOperQual","businessOperationsQualifierList","GetQualifierByBusOper","getGenericKeyObjectForBC","parentVersion","showMessage","ejDialog","editContactInfo","clearForm","closeConfirmDialog","selectCompanyType","changeFormArrayControlStatus","clearBusOpAndQualifiers","setValidators","updateValueAndValidity","setEmptyBusOpForm","setBusOpFormRequired","enable","disable","selectAllCompanyTypes","controlName","cancelButtonClickedOutput","closeDialog","msArray","boq_mdrp","toArray","busQ","boSelectionChanged","markAsTouched","boqSelectionChanged","boQualifierSelectionChanged","chipSelected","chipRemoved","bRequired","addItem","removeItem","setEditLinkFlags","flag","setDraftMode","setActiveMode","scroll","scrollHeight","labelerFormsArray","addLabelerFormGroupButtonClick","removeLabelerFormGroupButtonClick","isLabelerCodeDuplicate","ngAfterViewChecked","currentGridId","firstChild","companyHistoryGrid","tooltipCompanies","tooltipError","logValidationErrors","Object","keys","key","abstractControl","formErrors","touched","errorKey","errors","control","selectedContactRevisionId","contactGrid","GetContactDashboard","count_drafts","mappedData","d","assign","status$","loAFlag","contact_grid_data","count_contact","viewContact","contactGridRowSelected","contactGridRowDeselected","SecurityContext","phoneNumberValidator","authorizService","contactService","isActive","phoneExt","areaCode","dialCode","phoneNumber","contactForm","emailValidator","saveAsDraft","initParams","isFormDraftFlag","displayContact","contactRetrievedOutput","getBusinessCategory","bFirstTime","setcontactForm","saveContact","createContact","bSavedContact","bFromCompanyPage","contactOutput","getLatestContactVersion","phoneExtension","sanitizedValue","sanitize","HTML","bFromCompanyPageEditLink","isRequiredTypes","country","COMPANY_TYPE_EST","COMPANY_TYPE_LABELER","COMPANY_TYPE_REGISTRANT","matches","onSaveComplete","features","sortOptions","direction","getContactRevisionId","isNewContact","getContactRevisionHistory","queryParams","ref","referrerUrl","contactHistoryGrid","tooltipContact","tooltipCompany","contactHistory_grid_data","savedContact","contactRetrieved","ILLKit","formName","productTypeId","wizardForm","effectiveDate","isKit","dateFormat","getProductTypes","productTypesLov","productTypesDataSource","productTypeSelectionChanged","selectedProductType","getProductTypeDesc","createLLForm","splVersion","$type","kit","part","newProductListing","saveLLForm","onOpen","onBlur","processCustomer","dlgBtnClick","customerToFind","customerChanged","button","getButtons","interval","FormType","orderService","pragmaticValidationService","erFormService","pollData","getDeliveryDashboard","isInitialCall","gridDataSetup","getERDelilveries","result","processDeliveryDashboardData","numberOfDaysAgo","getTime","parseInt","pragmaticValidatorAutoRefreshDays","ERDeliveries_grid_data","pragmaticValidationDate","filteredDataPragmaticTaskStatusInProgress","pragmaticTaskStatusCode","filteredDataWithConfigDaysAgo","gridName","ERForm_grid_data","count_ERForm","ERDraftForm_grid_data","count_draftERForm","count_deliveriesERForm","deliverieGrid","erFormGridRowDeselected","selectedErRevisionId","pragmaticValidation","foundItemIndex","selectedERRevisionFileName","closeButton","pragmaticData","erRevisionId","fileType","ER","createUser","changeUser","pragmaticTaskStatus","getActiveGrid","ERForm_grid","tooltipDrafts","tooltipDeliveries","tooltipER","viewERForm","deleteButtonDelivery","erFormGridRowSelected","selectedERRevisionProductType","selectedERRevisionVersion","closest","UUID","IER","IEstablishment","IImporter","ISplValidation","ISSDPConctact","erService","http","splServiceTypeId","registrantCompanyRevisionId","missingCompanyRevisionId","effectiveTime","ddwSubmissionType","ddwSubmissionTypePreviousData","updatedVersion","versionToDisplay","formDetailData","erForm","buildModalDialog","invalidSplVersion","splInput","estabFormGroup","establishmentId","establishmenName","sequence","estabCompanyRevisionId","establishmentContact","usAgentCompany","usAgentCompanyRevisionId","usAgentContact","importers","importerFormGroup","importerId","importerCompanyRevisionId","importerCompany","importerContact","erId","majorRevision","splTitle","splServiceType","versionNumber","ipeBusinessCategory","registrantContact","registrantContactRevisionId","establishmentCompanyId","initValidation","setERForm","registrantCompanyId","setEstabForm","estabs","establishmentName","addImporters","usAgentCompanyId","estabFormControls","importersArray","estabIndex","onClick","clickEventArgs","originalEvent","ignoreWarningsToggle","ignoreWarnings","parsedRevisionId","isEditMode","isNaN","canCreateCompany","saveERForm","isValidate","isBuild","isIngestion","duplicateCompanies","setErrors","setFormErrors","erData","saveLoading","buildLoading","isSaving","sentFromBuildSpl","getClass","estabDuplicate","importerDuplicate","impArr","splSubmissionTypeDdwDS","toDateString","busCategory","estabContact","imp","ddwSelectionChanged","innerIndex","usBasedCode","usUMICode","ddwOnClear","ER_SPL_NO_CHANGE_NOTIFICATION","ER_SPL_OUT_OF_BUSINESS_NOTIFICATION","restrictedSplSubmissionType","splSubmissionTypeName","labelAndCode","getState","getCountryCode","TextFieldName","idFieldName","getCode","desc","pos","generateGUID","erRevisions","revisionCurrentRevision","current","revision","r","businessCategoryModel","countryList","regionList","populateHeaders","outerIndex","estabUsAgentCompanies","usAgents","estabImporterCompanies","registrantCompaniesDdwDS","cId","estabCompaniesDdwDS","estabUsAgentCompaniesDdwDS","estabImporterCompaniesDdwDS","lastModifiedBy","lastModifiedDate","transform","modifiedByDate","splSubmissionTypeMissing","revisionDateMissing","setIdModel","splVersionModalOpen","validateSplVersionInput","formatSplVersion","parseFloat","toFixed","expanding","header","checkboxEle","onOverlayClick","revHistoryDialog","revHistoryVisible","onBusOpsOverlayClick","busOpsDialog","busOpsDialogVisible","customValidateFn","ret","buildERModal","choice","buildERComplete","buildERspl","validateERform","hasChanges","ignoreWarningsValidate","validateLoading","showValidationMessages","errorMessagesComponent","revisionDateChanged","confirm","displayRevisionHistory","revisionHistoryClose","goToRevision","showBusOps","onBusOpsCloseClicked","addEstab","markAllAsTouched","removeEstab","bMissingEstCompany","addImporter","removeImporter","importerIndex","isContactLatest","contactDialogCancelButtonClicked","contactComponent","contactDialog","showContactDialog","contactDetailComponent","modalContact","updatedContact","setSavedContact","modalCompanyType","modifiedCompanyOldRevisionId","setSavedEstabCompany","setSavedUSAgentCompany","setSavedImportersCompany","estabFormGroupIndex","usagent","comp","registrantDdw","showToolTip","isEllipsisActive","showSFToolTip","outerText","open","hideSFToolTip","close","hideToolTip","offsetWidth","FeatureComponent","toastrService","ngContentSelectors","ExcelExportService","FilterService","PdfExportService","DataUtil","NgbTooltipConfig","NgbTooltipModule","SplUploadFileStatus","PragmaticValidationStatus","tooltipConfig","gridPreferencesService","fileUploadService","tooltipContent","enableHtmlParse","placement","autoClose","dateRangeSelectionChanged","dateRangeLimitValue","selectedDateRangeFilter","openTooltip","contents","closeTooltip","keydownEnter","copiedToClipboard","navigator","clipboard","writeText","ordersGridToolbarOptions","tooltipContents","tooltipControl","historyGrid","gridData","mapData","parseJson","appDefaults","selectionOptions","mode","fileStatusText","getFileStatusText","fileStatus","selectedFileName","recordDoubleClickRow","complete","columnType","filterModel","dlgDiv","pageCountMsg","pageItemCounter","innerText","fileCount","substr","messageEvent","formatVersionNumber","fetchUploadedFileHistory","selectedRowIndexes","getSelectedRowIndexes","processDashboardData","checkBoxChange","selectedFileCount","dataBound","selectRows","postDownloadFile","downloadLogFile","fileId","txtFileName","downloadUploadedFileHistoryLog","splHistoryDashBoardAutoRefreshDays","uploadedDate","filteredDataTaskStatusInProgress","removedToasterWarning","splUploadFileStatus","Passed","Failed","Received","InProcess","hcSplValidationService","pageState","PAGE_STATE_UPLOADING","PAGE_STATE_READY","setValidationStatus","getFileUploadUrl","validationStatusClassName","toLocaleLowerCase","login","setUserName","SidebarProductsComponent","lcrFormService","getLCRDelilveries","LCRDeliveries_grid_data","LCRForm_grid_data","count_LCRForm","LCRDraftForm_grid_data","count_draftLCRForm","count_deliveriesLCRForm","selectedLCRRevisionFileName","formRevisionID","LCR","lcrFormGridRowDeselected","selectedLcrRevisionId","LCRForm_grid","viewLCRForm","lcrRevisionId","lcrFormGridRowSelected","selectedLCRRevisionProductType","selectedLCRRevisionVersion","IContactDetail","ICompanyDetail","LCRData","lcrService","validationService","llservice","frmLCR","emailAddress","cityStateCountry","drpSplTransmissionType","splRevisionDate","drpBusinessCategory","drpLabelerCompany","drpNdcLabelerCode","getLCRFormRevisionId","contactNotAssociated","labelerCompanyMissing","routerUrl","isContactInactive","busCategoryId","labelerCompanySelectionChanged","displayLabelerContact","bShowViewContactLink","bShowViewCompanyLink","displayCompanyAndAssociatedContactDetail","populateLabelerCompanyDrp","splTransmissionTypeLOV","ndcLablerCode","lcrRevisions","lcrRevisionCurrentRevision","splTransmissionTypeSelectionChanged","checkForSPLTransmissionType","bIsRequired","formValue","labelerCodeDesc","NDC_LABELER_CODE_INACTIVATION","NDC_LABELER_CODE_INACTIVATION_ANIMAL_DRUG","drpLabelerCompanyLOV","labelerCompanyName","drpNdcLabelerCodeLOV","labelCompanyRevisionId","companyDetailUrl","lablerCompany","inactiveLabelerCompanyName","labelCompanyContactRevisionId","contactDetailUrl","phoneArea","phone","state","getFormData","lcrData","contactDetail","lcrId","saveLCRForm","clearOutValidators","resetFlags","validateLCR","buildLCR","buildLCRModal","buildLCRComplete","navDLService","jobTitle","medicalDevice","pharmaceutical","consumerOtc","cosmetics","demo","comments","onSubmit","atLeastOneChecked","sendNavDLContactMessage","countryLOV","ctx_r32","orderAdminForm","order","serviceCategory","SERVICE_CATEGORY_ESG","ingestFileValue","uploadOrderDoc","postSaveDataNewOrderRevisionId","UPLOAD_FILE_TYPE_DELIVERY","atLeastOneGoodUpload","myFileData","statusCode","onOrderAdminFileUpload","orderRevisionId","getNumberOrNull","requestDeletionOfExistingDeliveryDoc","orderStatus","confirmedDueDate","adminFileUpload","ingestFile","adminFileMinSize","adminFileMaxSize","adminFileUploadAsyncSettings","orderStatusesNoDraft","orderStatuses","termValueDescription","ORDER_STATUS_DRAFT","metaDataXmlFileName","metaDataXmlFilePath","dataCollectionForm","getFileStorageSplXml","handleOrderObjectError","responseTyped","showIngestFile","showIngestFile$","allBrowseButtonWrappers","orderAdminBrowseWrapper","onIngestFileChange","onIngestFilechanged","deleteExistingDeliveryFile","undeleteExistingDeliveryFile","addCorsHeaders","isScsIngestFileFeatureVisible","$event","Error","Order","freezeChangeEventsTemporarily","oldServiceCategory","orderStep1Form","newServiceCategory","isDeliveryPrioritySelected","deliveryPriority","isServiceTypeSelected","serviceTypeId","isServiceCategorySelected","serviceGroup","populateServiceTypesLOV","populateServiceGroupLOV","updateDeliveryPrioritiesVisibility","orderAdmin","SERVICE_CATEGORY_FULL_CONVERSION","SERVICE_CATEGORY_PARTIAL_CONVERSION","oldServiceType","newServiceType","oldServiceGroup","populateEmployeeLists","drpOrderOwners","getUserGuidsFromOrderUsers","allEmployeesInCompany","orderUsers","ORDER_USER_TYPE_ORDER_OWNER","drpOrderRecipients","ORDER_USER_TYPE_ORDER_RECIPIENT","resetOrderData","isServiceGroupSelected","serviceTypesLOV","checkOrderType","showOrderType","relatedKeyLabels","PAGE_STATE_LOADING","beforeOrderStatus","beforeConfirmedDate","canEdit","canOrderAdmin","canRequestCancellation","deliveryDoc","deliveryDocStatusChange","PERMISSION_CAN_WRITE_ORDER","PERMISSION_ORDER_ADMIN","orderName","populateFormControls","orderSummary","isServiceTypeEnabled","isDeliveryPriorityEnabled","handleOrderError","serviceCategoryToServiceTypeAssoc","serviceTypeToDeliveryPriorityAssoc","orderApiResult","inactiveOrderOwnersList","GetInactiveOrderUsers","inactiveOrderEmailRecipientList","ORDER_STATUS_ORDER_DELIVERED_AWAITING_APPROVAL","ORDER_STATUS_ORDER_COMPLETE","saveButtonCaption","ORDER_STATUS_PENDING","ORDER_STATUS_IN_PROCESS","PERMISSION_CAN_CANCEL_ORDER","sourceDocuments","deliveryDocs","mediaFileType","matchesParentFilter","parentTermListName","matchesServiceType","childTermListName","matchesServiceCategory","serviceGroupsLOV","localeCompare","onlyUnique","orderOwnersLOV","emp","orderRecipientsLOV","getServiceTypeCode","splService","isOrderTypeSelected","baselineOrderId","actualDeliveryDate","productName","additionalInformation","acctMgrInstructions","commentsChangeUser","commentsChangeDate","orderComments","colOrDrugFactChangeInstruction","principalDisplayPanelChangeInstruction","LLMetadataChangeInstruction","orderDescription","SERVICE_GROUP_LABEL_CONVERSION","SERVICE_GROUP_REMS","SERVICE_GROUP_PUBLISHING","hasRegularPriority","hasExpeditedPriority","hasEmergencyPriority","currentDeliveryPriority","DELIVERY_PRIORITY_REGULAR","DELIVERY_PRIORITY_EXPEDITED","DELIVERY_PRIORITY_EMERGENCY","postSaveWaitingForDeliveryUpload","postSaveData","isDeleted","saveData","nextPage","PAGE_STATE_SAVING","postSaveDataMessage","postSaveDataRedirectUrl","postSaveWaitingForSourceDocUpload","nextPageUrl","requestOrderCancellation","isAngularFormDirty","queryParamMap","sourceDocsWaitingToBeUploaded","deliveryDocsWaitingToBeUploaded","getServiceTypeObj","orderOwners","userGuidsToOrderUsers","orderRecipients","saveOrder","upload","scrollTo","relatedKeys","ctx_r76","orderStep2Form","UPLOAD_FILE_TYPE_SOURCE_DOC","confirmDlgButtonsBtnClickNo","confirmDlgButtonsBtnClickYes","sourceDocs","baselineSplGridSelectedId","wasFirstTimeBaselineSplGridSelectionDone","validFileExtensionsStr","ValidFileExtensions","externalTrackingNumber","llFormGrid","baselineSplGrid","fileUpload","llFormToolbarOptions","llFormInitialPage","llFormGridSelectionOptions","baselineSplInitialPage","baselineSplSelectionOptions","gridFormatOptions","showLlForm","SERVICE_GROUP_ESG","SERVICE_GROUP_ER","showOrderDescription","SERVICE_GROUP_REPORT","fileUploadAsyncSettings","dropElement","tooltipDC","tooltipSPL","llFormGridData","currentDataCollectionForm","selectedRowIndex","llFormGridSelectedRowData","getBaselineSpls","bIsSelectedLLFormActive","getLLByRevisionId","allowSelection","isForm","myDoc","serviceCategories","baselineSplGridData","getBaselineSplData","baselineSplLoading","baselineSplRecordCount","baselineWorkFlowOrderId","workflowOrderId","getLLHighLevlInfoById","selectedRecords","baselineSplGridRowSelected","baselineSplGridRowDeselected","viewLLForm","deleteExistingFile","undeleteExistingFile","getLocalDateString","validateDataCollectionSelection","onRemove","canSubmitOrder","orderStep3Form","showTextboxesForChanges","validateForSubmission","orderUserTypeId","alert","submissionMessage","workFlowOrderIdDesc","serviceTypeDesc","workFlowOrderId","deliveryPrDesc","getDeliveryPriorityDescription","inactiveOwnerList","orderOwnersDesc","getUserNamesFromOrderUsers","inactiveOwnerNames","whichStep","serviceTypes","isAcceptDelivery","isResubmitOrder","isRequestOrderCancellation","draft","isAllowedOnGrid","isAllowedOnDraftGrid","resubmit","acceptDelivery","ejDialogOrderTracker","hideDialog","showWelcomeMessage","orderTrackerGridInitialPage","orderTrackerGridFormatOptions","whichStatusesAllowAcceptDelivery","whichStatusesAllowResubmit","whichStatusesAllowCancel","whichStatusesAllowDelete","orderTrackerForm","orderTrackerAllGrid","orderTrackerDraftGrid","canOrderResubmit","canCancelOrder","canCreate","canDeleteDraft","PERMISSION_CAN_DELETE_DRAFT_ORDER","canResubmit","canAcceptDelivery","canCancel","orderTrackerGridToolbarOptions","canDelete","currentOrderStatus","resetCurrentSelectedToolbarAction","isAcceptDeliveryAllowedOnTab","isResubmitOrderAllowedOnTab","isRequestOrderCancellationAllowedOnTab","isCreateNewOrderAllowed","selectedOrderRevisionId","currentSelectedToolbarAction","getOrderTrackerData","untypedApiResult","orderTrackerAllGridData","orderTrackerDraftGridData","setToolbarState","whichGrid","orderTrackerGridRowSelected","selectedRowData","orderTrackerGridRowDeselected","ordersInProcess","getOrderByOrderRevisionId","apiTypedResult","apiTypedResult2","modifiedByUserGuid","getEmployees","initiators","ORDER_USER_TYPE_ORDER_INITIATOR","cloneOrder","ORDER_RESUBMIT_MESSAGE","ctx_r101","ctx_r137","validForm","canModifyOrder","getForm","processedFilesCount","isNewOrder","showAlertMessage","countrySelected","showLlFormFunc","fieldsNotEmpty","countryChanged","currentCountry","filterServiceGroup","formInit","validateAndSaveOrder","reason","hasFailedFiles","navLink","orderForm","step1","step2","step3","admin","countryServiceGroup","countryServiceType","countryServiceTypesCodes","matchesCountryServiceCat","section","ctx_r42","ctx_r46","ctx_r49","ctx_r52","ctx_r55","ctx_r58","ctx_r61","confirmDeleteDialog","productToDelete","deletedProdIndex","selectProduct","productsAccordion","deletedDlgBtnNo","deleteDlgBtnYes","sbModalDialog","select","items","clearPartsActive","isAnyPartActive","currentPartIndex","selectPart","PROD_TYPE_KIT","currentIndex","isExpanded","productIndex","oldIndex","newIndex","showPart","partsArray","active","partDiv","addedPart","addedPartIndex","accordionCreated","collapseItem","cloneProduct","cloneProductIndex","showProduct","deleteProduct","sbmodalValVisible","onOverlayDeleteDlgClick","showSFToolTipPart","tooltipObjPart","hideSFToolTipPart","scrollToElement","scrollToElementOutput","AccumulationDataLabelService","AccumulationAnnotationService","BlobUtility","submissionDashboardService","formatOptionsWithTime","getDashboard","getSubmissionDashboard","submission_grid_data","count_submissions","submissionDashboardAutoRefreshDays","filteredDataStatus4","submissionGrid","removeFileNameExtension","filename","pop","b64toBlob","fileNameWithoutExtension","downloadFileName","downloadSourceFile","DOCUMENT","renderer","substanceLookupService","findMatch","inputArea","nativeElement","inputCleanup","clearText","username","searchSubstanceLookup","userInputArray","splitStringWithQuotes","userInput","substanceLookupResults","entries","found","child","failedIngrediant","totalNumberOfIngredients","tempDiv","elementsToReplace","querySelectorAll","textNode","createTextNode","parentNode","replaceChild","cleanedText","formatXml","tab","formatted","indent","node","balanceQuotes","inputString","quotationCount","insideQuotes","currentToken","char","copy","isCopying","range","createRange","getSelection","removeAllRanges","selectNode","addRange","execCommand","updatedSPLVersion","revisionHistory","Revisions","formGroup","splVersionModal","onStart","stateFlags","processComplete","onClose","DateToLocalePipe","date","isDateTime","newDate","toLocaleDateString","toLocaleTimeString","pure","bypassSecurityTrustHtml","separator","splitArray","utcDate","indexOfDate","newDateParsedToNumber","offset","getTimezoneOffset","sign","setHours","getHours","CommonModule","FormsModule","ReactiveFormsModule","NgbModule","DatePickerModule","GridModule","GroupService","ReorderService","SortService","GridAllModule","FreezeService","SelectionService","SidebarModule","UploaderModule","DialogModule","TooltipModule","DropDownListModule","MultiSelectAllModule","AutoCompleteModule","RadioButtonModule","CheckBoxModule","InPlaceEditorModule","AccumulationChartModule","PieSeriesService","AccumulationLegendService","AccumulationTooltipService","ngModule","providers","controlValue","hostVars","hostBindings","crossValidator","disableControl","condition","ngControl","forbiddenNameValidator","nameRe","forbidden","test","templateRef","viewContainer","appHideByAccess","permission","permitted","createEmbeddedView","clear","keyEvent","keycodes","BNCCFormGuard","checkAccess","canLoad","segments","factory","bhasPermission","providedIn","LabelSPLFormGuard","hasAccess","PERMISSION_CAN_READ_ORDER","animate","transition","trigger","opacity","flyInOut","duration","b64Data","contentType","sliceSize","byteCharacters","byteArrays","byteNumbers","byteArray","Uint8Array","ckEstabOwned","ckEstab3rdParty","ck3","ck4","ck5","ck6","bothEstbChecked","HttpHeaders","HttpHelper","createHttpHeaders","applicationVariantName","headers","currentContactId","currentCompanyId","currentCompanyRevisionId","accept","set","retry","intercept","request","req","clone","handle","areaCodeValue","phoneNumberValue","ApplicationSelection","application","environment","IBNCCEstablishment","IBusinessOperationQualifierList","IBusinessOperation","dynamicschemaData","options","IErRevisionHistory","IFdaCenter","IServiceError","IUserAccessPermissions","ILLProductBase","ILLSignature","ILLActiveIngridient","ILLInactiveIngridient","ILLNameDescription","ILLPackageConfigurations","ILLPackage","ILLPackageMarketing","ILLEstablishment","OrderUser","IVocab","ILLCustomerCompaniesByTypeWrapper","ILLRevisionHistory","ILLPart","ISplMessage","ISplMessages","User","SplFileStorageResult","SplMergeInput","IRevision","BNCCFormResolverService","bnccService","bnccForm","getCurrentNavigation","extras","getBNCCForm","getRevisionHistory","getERForms","getERFormById","getSSDPVocabularies","ProductDashboardResolverService","getLCRForms","getLCRFormById","getLLForms","getLLDelilveries","refService","getLLFormById","getCosmeticProducts","getActiveIngredientsType","getServiceCategoryToServiceTypeAssoc","getServiceTypeToDevlieryPriorityAssoc","getOrderStatuses","getServiceCategories","getCountryServiceGroups","getCountryServiceTypes","productDashboardService","getProductDashboard","isDevMode","oidcSecurityService","ngzone","isAuthenticated$","getToken","getUserData","userData$","authorize","refreshSession","forceRefreshSession","logoutStarted","logoff","displayableId","token","getHeaders","post","setInterval","setContentType","TestIsObjectEmpty","appendAuthHeader","bearerToken","appVariantId","setHeader","CommonApiGatewayUrl","extractData","handleErrors","runOutsideAngular","apiKey","o","w","z","_q","call","arguments","async","src","insertBefore","initialize","visitor","account","bDisplayDetailMsg","isBusinessErrorMessage","tap","getPermissions","permissions$","objectAccessed","IsUndefined","permissions","handleHttpError","accessSettings","subscribedChannels","app","ErrorEvent","dataError","errorNumber","number","friendlyMessage","errorStatus","BNCCFormService","httpHelper","saveBNCCForm","bnccData","draftMode","createBNCCForm","bnccRevisionId","getCompanyData","setProperties","objectData","bnccProp","hasOwnProperty","setEstablishmentData","newEstablishment","isManualEntry","establishmentDUNS","llModifiedOn","modifiedDate","llFormVersion","llFormName","certificationStatus","listingRecordCertifiedThroughDate","certificationDate","marketingCategory","marketingStartDate","marketingEndDate","addEstablishmentToBNCCData","dictionaryKey","bIncludeInactiveRecords","getBusinessOperations","applicationSource","asObservable","customerSource","customerServiceUrl","getCustomerHeaders","addCustomer","getApplications","changeSelectedApplication","changeSelectedCustomer","json","modelState","valErrors","exceptionMessage","getRegistrantCompanyContactInfo","createERForm","newSPLVersion","drugProductSubmission","extractSubmissionResponseData","objectCount","baseUrl","dateRangeLimit","apiGatewayUrl","reportFilename","L10n","loadLocalizationSettings","isBncc","load","CancelButton","OKButton","onGridPreferencesSave","pageName","gridId","gridReference","filterSettings","clearFiltering","colsObject","headerText","gridPrefenceSettings","localStorage","getItem","getPersistData","setItem","onGridPreferencesRestore","restoreHandler","checkboxClick","grid_ref","disabledColumns","dialogContents","sortedUL","columnModel","disabledColumn","addElement","position","li","div","wrapperDiv","box","span","childNodes","savedProperties","gridColumnsState","getColumns","colColumnsState","colTemplate","headerTemplate","getLabelerCompanyContactInfo","llData","UntypedFormControl","getLLFormProductDetail","searchIngredients","srchText","INGREDIENTS_SEARCH_MAX_COUNT","serviceUrl","cloneKitProduct","itemIndex","drpLOV","userSelectId","userSelectDesc","newId","bIsEntryValid","invalidEntry","newControl","asyncValidator","addControl","formControl","emitEvent","deepArray","deepObject","source","collection","validateLL","buildLL","mergeLL","HttpParams","logError","LogInformation","LogWarning","LogDebug","LogTrace","DialogUtility","invalidFileNameCharsStr","InvalidFileNameChars","invalidFileNameCharsArr","invalidFileNameRegex","RegExp","InvalidFileNameRegex","validFileExtensionsArr","fileNameMaxLength","FileNameMaxLength","extractTypedBody","TERM_ASSOCIATION_TYPE_SERVICE_CATEGORY_TO_SERVICE_TYPE","USAGE_CODE_SSDP","TERM_ASSOCIATION_TYPE_SERVICE_TYPE_TO_DELIVERY_PRIORITY","extractTypedBodyData","userGuids","userLoginsWeWant","userLogin","loginName","userNames","inactiveUsers","matchedUser","userEmail","myNum","angularForm","formDirty","fieldControl","INDUSTRY","TERM_CATEGORY_ORDER_STATUS","getServiceTypes","TERM_CATEGORY_SERVICE_TYPE","TERM_CATEGORY_SERVICE_CATEGORY","getDeliveryPriorities","TERM_CATEGORY_DELIVERY_PRIORITY","TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_TYPE","TERM_ASSOCIATION_TYPE_COUNTRY_TO_SERVICE_GROUP","title","callback","callbackAsEmission","clickCloseButton","okButton","showCloseIcon","closeOnEscape","animationSettings","isModal","requestFromOrderTracker","ORDER_STATUS_PENDING_CANCELLATION_REQUEST","responseAsAny","reactiveForm","onlyAllowZipFiles","uploadFileDocType","customFormData","sizeInBytes","matchesRestrictedWord","localValidFileExtensionsArr","myComponent","errorObject","defaultMessage","stayHere","deliverPriority","ProductDashboardService","updateHeaderFields","llId","GetBusinessOperations","allQualifiers","bOList","getDistintList","businessOperationCode","myArr","prop","obj","mapObj","DEFAULT_MINUTES_UNITL_SESSION_TIMEOUT","TIMELEFT_IN_MILLISECONDS_BEFORE_SESSION_TIMEOUT","CHECK_INTERVAL","STORE_KEY","auth","ngZone","storageManager","check","initInterval","lastAction","now","sessionInMinutes","absoluteSessionTimeout","timeleft","diff","isTimeout","run","firstTimeWarning","CHECK_INTERVALL","initListener","addEventListener","sessionTimout","httpService","loadingSource","identityServiceUrl","SessionTimeout","AbsoluteSessionTimeout","maxIdTokeIatOffsetAllowedInSeconds","MaxIdTokenIatOffsetAllowedInSeconds","SubmissionDashboardAutoRefreshDays","SPLHistoryDashBoardAutoRefreshDays","PragmaticValidatorAutoRefreshDays","silentRenewOffsetInSeconds","SilentRenewOffsetInSeconds","dataDogEnabled","DataDogEnabled","dataDogApplicationId","DataDogApplicationId","dataDogClientToken","DataDogClientToken","DataDogService","dataDogSite","DataDogSite","dataDogVersion","DataDogVersion","dataDogEnv","DataDogEnv","dataDogSampleRate","DataDogSampleRate","dataDogTrackInteractions","DataDogTrackInteractions","dataDogAllowedTracingOrigins","DataDogAllowedTracingOrigins","ddBrowserRum","bIsDataDogEnabled","datadogRum","init","clientToken","site","service","env","sampleRate","silentMultipleInit","trackInteractions","allowedTracingOrigins","defaultReturn","getTemplate","getTemplateText","HttpResponseBase","HttpResponse","HttpErrorResponse","toggoleClientDropdownState","sKey","decodeURIComponent","cookie","encodeURIComponent","sValue","vEnd","sPath","sDomain","bSecure","sExpires","Infinity","toUTCString","hasItem","aKeys","nIdx","getHttpResponseMessage","responses","checkNoNetwork","noNetworkMessageCaption","captionAndMessageSeparator","noNetworkMessageDetail","responseObject","getResponseBody","checkAccessDenied","accessDeniedMessageCaption","accessDeniedMessageDetail","findHttpResponseMessage","messageToFind","seachInCaptionOnly","includeCaptionInResult","searchString","httpMessages","fullMessage","splitInTwo","firstPart","secondPart","checkNotFound","checkIsLocalHost","base","hostname","getQueryParamsFromString","paramString","param","keyValue","separatorIndex","part1","part2","safeStringify","object","simpleObject","JSonTryParse","TestIsUndefined","TestIsString","capitalizeFirstLetter","charAt","toTitleCase","subString","loweredRoles","uniqueId","randomNumber","min","max","Math","floor","random","protocol","port","printDateOnly","dayNames","monthNames","dayOfWeek","getDay","dayOfMonth","sup","dateString","printTimeOnly","period","minute","getMinutes","hour","timeString","printDate","printFriendlyDate","yesterday","setDate","printShortDate","dateTimeSeparator","parseDate","printDuration","start","end","delta","abs","valueOf","days","hours","minutes","seconds","printedDays","getAge","birthDate","otherDate","years","searchArray","searchTerm","caseSensitive","values","strValue","moveArrayItem","k","expandCamelCase","testIsAbsoluteUrl","convertToAbsoluteUrl","debounce","func","wait","immediate","timeout","context","args_","later","apply","callNow","clearTimeout","formats","language","production","enableProdMode","registerLicense","getBaseUrl","__NgCli_bootstrap_1","bootstrapModule","destroy"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}