{"version":3,"file":"main.js","mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,wCAAwC;AACxC;AACA;;;;;;;;;;AC5QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/autocomplete/abstract-autocomplete-data-loader.ts","./src/app/components/autocomplete/autocomplete.component.ts","./src/app/components/autocomplete/autocomplete.module.ts","./src/app/components/card-skeleton/card-skeleton.component.ts","./src/app/components/card-skeleton/card-skeleton.module.ts","./src/app/components/customer-address-card/customer-address-card.component.ts","./src/app/components/customer-address-card/customer-address-card.module.ts","./src/app/components/customer-and-address-card/customer-and-address-card.component.ts","./src/app/components/customer-and-address-card/customer-and-address-card.module.ts","./src/app/components/datetime-modal/datetime-modal.component.ts","./src/app/components/datetime-modal/datetime-modal.module.ts","./src/app/components/equipment-card/equipment-card.component.ts","./src/app/components/equipment-card/equipment-card.module.ts","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.module.ts","./src/app/components/pending-list-skeleton/pending-list-skeleton.component.ts","./src/app/components/pending-list-skeleton/pending-list-skeleton.module.ts","./src/app/components/quote-card/quote-card.component.ts","./src/app/components/quote-card/quote-card.module.ts","./src/app/components/recommendation-card/recommendation-card.component.ts","./src/app/components/recommendation-card/recommendation-card.module.ts","./src/app/guards/auth.guard.ts","./src/app/guards/auto-login.guard.ts","./src/app/guards/auto-logout.guard.ts","./src/app/guards/can-edit-survey-customer-address.guard.ts","./src/app/guards/gateway-configuration.guard.ts","./src/app/guards/menu-disabled-page.guard.ts","./src/app/guards/menu-enabled-page.guard.ts","./src/app/guards/quote-email-add-rec-file-modal-deactivate.guard.ts","./src/app/guards/quote-questions-deactivate.guard.ts","./src/app/guards/recommendation-add.guard.ts","./src/app/guards/recommendation-questions-deactivate.guard.ts","./src/app/http-interceptors/gateway-api-interceptor.ts","./src/app/http-interceptors/index.ts","./src/app/http-interceptors/noop-interceptor.ts","./src/app/models/customer-address/customer-address-type-enum.ts","./src/app/models/equipment/equipment-type-enum.ts","./src/app/pages/dashboard/dashboard-routing.module.ts","./src/app/pages/dashboard/dashboard.module.ts","./src/app/pages/dashboard/dashboard.page.ts","./src/app/pages/generic-add-step-one/generic-add-step-one-model-enum.ts","./src/app/pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal-routing.module.ts","./src/app/pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.module.ts","./src/app/pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.page.ts","./src/app/pages/quote/quote-questions/quote-questions-routing.module.ts","./src/app/pages/quote/quote-questions/quote-questions.module.ts","./src/app/pages/quote/quote-questions/quote-questions.page.ts","./src/app/pages/recommendation/recommendation-edit/recommendation-edit-routing.module.ts","./src/app/pages/recommendation/recommendation-edit/recommendation-edit.module.ts","./src/app/pages/recommendation/recommendation-edit/recommendation-edit.page.ts","./src/app/pages/recommendation/recommendation-questions/recommendation-questions-routing.module.ts","./src/app/pages/recommendation/recommendation-questions/recommendation-questions.module.ts","./src/app/pages/recommendation/recommendation-questions/recommendation-questions.page.ts","./src/app/pages/search-results/search-results/search-results-routing.module.ts","./src/app/pages/search-results/search-results/search-results.module.ts","./src/app/pages/search-results/search-results/search-results.page.ts","./src/app/pages/search/search/search-routing.module.ts","./src/app/pages/search/search/search.module.ts","./src/app/pages/search/search/search.page.ts","./src/app/pipes/customer-filter.pipe.ts","./src/app/pipes/join.pipe.ts","./src/app/pipes/key-value-filter.pipe.ts","./src/app/pipes/pipes.module.ts","./src/app/pipes/slugify.pipe.ts","./src/app/pipes/string-date-formatter.pipe.ts","./src/app/resolvers/customer-location-field-requirements/customer-location-field-requirements-resolver.ts","./src/app/resolvers/labor-rate-group/labor-rate-group-resolver.ts","./src/app/resolvers/phone-number-format/phone-number-format-resolver.ts","./src/app/resolvers/price-matrix/price-matrix-resolver.ts","./src/app/resolvers/quote-status/quote-status-resolver.ts","./src/app/resolvers/recommendation-status/recommendation-status-resolver.ts","./src/app/resolvers/recommendation-user-defined-status/recommendation-user-defined-status-resolver.ts","./src/app/resolvers/region/region-resolver.ts","./src/app/resolvers/tax-schedule/tax-schedule-resolver.ts","./src/app/resolvers/technician/technician-resolver.ts","./src/app/services/autocomplete-data-loader/user-autocomplete-data-loader.service.ts","./src/app/services/autocomplete-data-loader/user-defined-statuses-autocomplete-data-loader.service.ts","./src/app/services/customer-address/customer-address.service.ts","./src/app/services/customer/customer.service.ts","./src/app/services/equipment/equipment.service.ts","./src/app/services/error-handling/error-handling.service.ts","./src/app/services/events/events.service.ts","./src/app/services/format/format.service.ts","./src/app/services/loading-controller-wrapper/loading-controller-wrapper.service.ts","./src/app/services/permission-checker/permission-checker.service.ts","./src/app/services/quote/quote.service.ts","./src/app/services/recommendation/recommendation.service.ts","./src/app/services/storage/storage.service.ts","./src/app/services/toast-controller-wrapper/toast-controller-wrapper.service.ts","./src/app/services/user-data/user-data.service.ts","./src/app/services/user/user.service.ts","./src/app/services/utility.service.ts","./src/app/services/xoi.service.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/@ionic/core/dist/esm|lazy|/^/.*/.entry/.js$/|include: /.entry/.js$/|exclude: /.system/.entry/.js$/|groupOptions: {}|namespace object","./node_modules/moment/locale|sync|/^/.*$"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\nimport { AuthGuard } from './guards/auth.guard';\nimport { AutoLoginGuard } from './guards/auto-login.guard';\nimport { AutoLogoutGuard } from './guards/auto-logout.guard';\nimport { CanEditSurveyCustomerAddressGuard } from './guards/can-edit-survey-customer-address.guard';\nimport { GatewayConfigurationGuard } from './guards/gateway-configuration.guard';\nimport { MenuDisabledPageGuard } from './guards/menu-disabled-page.guard';\nimport { MenuEnabledPageGuard } from './guards/menu-enabled-page.guard';\nimport { QuoteEmailAddRecFileModalDeactivateGuard } from './guards/quote-email-add-rec-file-modal-deactivate.guard';\nimport { QuoteQuestionsDeactivateGuard } from './guards/quote-questions-deactivate.guard';\nimport { RecommendationAddGuard } from './guards/recommendation-add.guard';\nimport { RecommendationQuestionsDeactivateGuard } from './guards/recommendation-questions-deactivate.guard';\nimport { DashboardPageModule } from './pages/dashboard/dashboard.module';\nimport { QuoteEmailAddRecFileModalPageModule } from './pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.module';\nimport { QuoteEmailAddRecFileModalPage } from './pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.page';\nimport { QuoteQuestionsPageModule } from './pages/quote/quote-questions/quote-questions.module';\nimport { QuoteQuestionsPage } from './pages/quote/quote-questions/quote-questions.page';\nimport { RecommendationEditPageModule } from './pages/recommendation/recommendation-edit/recommendation-edit.module';\nimport { RecommendationQuestionsPageModule } from './pages/recommendation/recommendation-questions/recommendation-questions.module';\nimport { RecommendationQuestionsPage } from './pages/recommendation/recommendation-questions/recommendation-questions.page';\nimport { SearchResultsPageModule } from './pages/search-results/search-results/search-results.module';\nimport { SearchPageModule } from './pages/search/search/search.module';\nimport { CustomerLocationFieldRequirementsResolver } from './resolvers/customer-location-field-requirements/customer-location-field-requirements-resolver';\nimport { LaborRateGroupResolver } from './resolvers/labor-rate-group/labor-rate-group-resolver';\nimport { PhoneNumberFormatResolver } from './resolvers/phone-number-format/phone-number-format-resolver';\nimport { PriceMatrixResolver } from './resolvers/price-matrix/price-matrix-resolver';\nimport { QuoteStatusResolver } from './resolvers/quote-status/quote-status-resolver';\nimport { RecommendationStatusResolver } from './resolvers/recommendation-status/recommendation-status-resolver';\nimport { RecommendationUserDefinedStatusResolver } from './resolvers/recommendation-user-defined-status/recommendation-user-defined-status-resolver';\nimport { RegionResolver } from './resolvers/region/region-resolver';\nimport { TaxScheduleResolver } from './resolvers/tax-schedule/tax-schedule-resolver';\nimport { TechnicianResolver } from './resolvers/technician/technician-resolver';\n\nconst routes: Routes = [\n {\n path: '',\n redirectTo: 'dashboard',\n pathMatch: 'full'\n },\n {\n path: 'dashboard',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/dashboard/dashboard.module').then(m => m.DashboardPageModule)\n },\n {\n path: 'search',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/search/search/search.module').then(m => m.SearchPageModule),\n resolve: {\n recommendationStatus: RecommendationStatusResolver,\n recommendationUserDefinedStatus: RecommendationUserDefinedStatusResolver,\n quoteStatus: QuoteStatusResolver,\n }\n },\n {\n path: 'search-results',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/search-results/search-results/search-results.module').then(m => m.SearchResultsPageModule)\n },\n {\n path: 'login',\n canActivate: [MenuEnabledPageGuard, GatewayConfigurationGuard, AutoLoginGuard],\n loadChildren: () => import('./pages/user/login/login.module').then(m => m.LoginPageModule)\n },\n {\n path: 'gateway',\n canActivate: [MenuEnabledPageGuard, AutoLogoutGuard],\n loadChildren: () => import('./pages/user/gateway/gateway.module').then(m => m.GatewayPageModule)\n },\n {\n path: 'account',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/user/account/account.module').then(m => m.AccountPageModule)\n },\n {\n path: 'survey-prospect-customer-add',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer/survey-prospect-customer-add/survey-prospect-customer-add.module').then(m => m.SurveyProspectCustomerAddPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n technician: TechnicianResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver,\n }\n },\n {\n path: 'survey-prospect-customer-edit/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer/survey-prospect-customer-edit/survey-prospect-customer-edit.module').then(m => m.SurveyProspectCustomerEditPageModule)\n },\n {\n path: 'survey-prospect-customer-view/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer/survey-prospect-customer-view/survey-prospect-customer-view.module').then(m => m.SurveyProspectCustomerViewPageModule)\n },\n {\n path: 'survey-prospect-customer-address-add/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer-address/survey-prospect-customer-address-add/survey-prospect-customer-address-add.module').then(m => m.SurveyProspectCustomerAddressAddPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n technician: TechnicianResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver,\n }\n },\n {\n path: 'survey-prospect-customer-address-details/:addressId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer-address/survey-prospect-customer-address-details/survey-prospect-customer-address-details.module').then(m => m.SurveyProspectCustomerAddressDetailsPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver\n }\n },\n {\n path: 'survey-prospect-customer-address-edit/:addressId',\n canActivate: [AuthGuard, MenuEnabledPageGuard, CanEditSurveyCustomerAddressGuard],\n loadChildren: () => import('./pages/survey-prospect-customer-address/survey-prospect-customer-address-edit/survey-prospect-customer-address-edit.module').then(m => m.SurveyProspectCustomerAddressEditPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n technician: TechnicianResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver,\n }\n },\n {\n path: 'survey-prospect-customer-address-view',\n children: [\n {\n path: ':addressId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-prospect-customer-address/survey-prospect-customer-address-view/survey-prospect-customer-address-view.module').then(m => m.SurveyProspectCustomerAddressViewPageModule)\n },\n {\n path: 'survey-equipments',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-list/survey-equipment-list.module').then(m => m.SurveyEquipmentListPageModule)\n },\n {\n path: 'survey-equipment',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-add/survey-equipment-add.module').then(m => m.SurveyEquipmentAddPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-view/survey-equipment-file-view.module').then(m => m.SurveyEquipmentFileViewPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-upload/survey-equipment-file-upload.module').then(m => m.SurveyEquipmentFileUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-image-upload/survey-equipment-file-image-upload.module').then(m => m.SurveyEquipmentFileImageUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-audio-upload/survey-equipment-file-audio-upload.module').then(m => m.SurveyEquipmentFileAudioUploadPageModule)\n },\n ],\n },\n {\n path: 'survey-equipment/:equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-edit/survey-equipment-edit.module').then(m => m.SurveyEquipmentEditPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-view/survey-equipment-file-view.module').then(m => m.SurveyEquipmentFileViewPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-upload/survey-equipment-file-upload.module').then(m => m.SurveyEquipmentFileUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-image-upload/survey-equipment-file-image-upload.module').then(m => m.SurveyEquipmentFileImageUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-audio-upload/survey-equipment-file-audio-upload.module').then(m => m.SurveyEquipmentFileAudioUploadPageModule)\n },\n ],\n },\n ]\n },\n ]\n },\n {\n path: 'customer-add',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer/customer-add/customer-add.module').then(m => m.CustomerAddPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver\n }\n },\n {\n path: 'customer-view/:type/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer/customer-view/customer-view.module').then(m => m.CustomerViewPageModule)\n },\n {\n path: 'customer-edit/:type/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer/customer-edit/customer-edit.module').then(m => m.CustomerEditPageModule)\n },\n {\n path: 'customer-address-add/:type/:customerId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer-address/customer-address-add/customer-address-add.module').then(m => m.CustomerAddressAddPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver\n }\n },\n {\n path: 'customer-address-view',\n children: [\n {\n path: ':type/:addressId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer-address/customer-address-view/customer-address-view.module').then(m => m.CustomerAddressViewPageModule)\n },\n {\n path: 'equipments',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment/equipment-list/equipment-list.module').then(m => m.EquipmentListPageModule)\n },\n {\n path: 'equipment',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment/equipment-add/equipment-add.module').then(m => m.EquipmentAddPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-upload/equipment-file-upload.module').then(m => m.EquipmentFileUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-audio-upload/equipment-file-audio-upload.module').then(m => m.EquipmentFileAudioUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-image-upload/equipment-file-image-upload.module').then(m => m.EquipmentFileImageUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n ]\n },\n {\n path: 'equipment/:equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment/equipment-edit/equipment-edit.module').then(m => m.EquipmentEditPageModule),\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-upload/equipment-file-upload.module').then(m => m.EquipmentFileUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-audio-upload/equipment-file-audio-upload.module').then(m => m.EquipmentFileAudioUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-image-upload/equipment-file-image-upload.module').then(m => m.EquipmentFileImageUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n ]\n },\n {\n path: 'survey-equipments',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-list/survey-equipment-list.module').then(m => m.SurveyEquipmentListPageModule)\n },\n {\n path: 'survey-equipment',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-add/survey-equipment-add.module').then(m => m.SurveyEquipmentAddPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-view/survey-equipment-file-view.module').then(m => m.SurveyEquipmentFileViewPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-upload/survey-equipment-file-upload.module').then(m => m.SurveyEquipmentFileUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-image-upload/survey-equipment-file-image-upload.module').then(m => m.SurveyEquipmentFileImageUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-audio-upload/survey-equipment-file-audio-upload.module').then(m => m.SurveyEquipmentFileAudioUploadPageModule)\n },\n ],\n },\n {\n path: 'survey-equipment/:equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment/survey-equipment-edit/survey-equipment-edit.module').then(m => m.SurveyEquipmentEditPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-view/survey-equipment-file-view.module').then(m => m.SurveyEquipmentFileViewPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-upload/survey-equipment-file-upload.module').then(m => m.SurveyEquipmentFileUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-image-upload/survey-equipment-file-image-upload.module').then(m => m.SurveyEquipmentFileImageUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/survey-equipment-files/survey-equipment-file-audio-upload/survey-equipment-file-audio-upload.module').then(m => m.SurveyEquipmentFileAudioUploadPageModule)\n },\n ],\n },\n {\n path: 'quotes',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-list/quote-list.module').then(m => m.QuoteListPageModule)\n },\n {\n path: 'recommendations',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-list/recommendation-list.module').then(m => m.RecommendationListPageModule)\n },\n ]\n }\n ]\n },\n {\n path: 'customer-address-edit/:type/:addressId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer-address/customer-address-edit/customer-address-edit.module').then(m => m.CustomerAddressEditPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n laborRateGroup: LaborRateGroupResolver,\n priceMatrix: PriceMatrixResolver,\n taxSchedule: TaxScheduleResolver,\n customerLocationFieldRequirements: CustomerLocationFieldRequirementsResolver\n }\n },\n {\n path: 'customer-address-details/:type/:addressId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/customer-address/customer-address-details/customer-address-details.module').then(m => m.CustomerAddressDetailsPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver\n }\n },\n {\n path: 'select-customer/:model',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/generic-add-step-one/generic-add-step-one.module').then(m => m.GenericAddStepOnePageModule)\n },\n {\n path: 'select-location/:model',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/generic-add-step-two/generic-add-step-two.module').then(m => m.GenericAddStepTwoPageModule)\n },\n {\n path: 'recommendation',\n canActivate: [AuthGuard, MenuEnabledPageGuard, RecommendationAddGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-add/recommendation-add.module').then(m => m.RecommendationAddPageModule)\n },\n {\n path: 'recommendation/:recommendationId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-edit/recommendation-edit.module').then(m => m.RecommendationEditPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n {\n path: 'copy',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-copy/recommendation-copy.module').then(m => m.RecommendationCopyPageModule)\n },\n {\n path: 'item-replace-list',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-copy-item-replace-list/recommendation-copy-item-replace-list.module').then(m => m.RecommendationCopyItemReplaceListPageModule)\n },\n {\n path: 'item-update-list',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-copy-item-update-list/recommendation-copy-item-update-list.module').then(m => m.RecommendationCopyItemUpdateListPageModule)\n },\n {\n path: 'replace-item',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-copy-replace-item/recommendation-copy-replace-item.module').then(m => m.RecommendationCopyReplaceItemPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n ]\n },\n {\n path: 'equipment',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-equipment-add/recommendation-equipment-add.module').then(m => m.RecommendationEquipmentAddPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-upload/equipment-file-upload.module').then(m => m.EquipmentFileUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-audio-upload/equipment-file-audio-upload.module').then(m => m.EquipmentFileAudioUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-image-upload/equipment-file-image-upload.module').then(m => m.EquipmentFileImageUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n\n ],\n },\n {\n path: 'equipment',\n children: [\n {\n path: ':equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-equipment-edit/recommendation-equipment-edit.module').then(m => m.RecommendationEquipmentEditPageModule),\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-upload/equipment-file-upload.module').then(m => m.EquipmentFileUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-audio-upload/equipment-file-audio-upload.module').then(m => m.EquipmentFileAudioUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-image-upload/equipment-file-image-upload.module').then(m => m.EquipmentFileImageUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n\n ]\n }\n ]\n },\n {\n path: 'equipment-list',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-equipment-list/recommendation-equipment-list.module').then(m => m.RecommendationEquipmentListPageModule)\n },\n {\n path: 'equipment-view',\n children: [\n {\n path: ':equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-equipment-view/recommendation-equipment-view.module').then(m => m.RecommendationEquipmentViewPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-upload/equipment-file-upload.module').then(m => m.EquipmentFileUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-audio-upload/equipment-file-audio-upload.module').then(m => m.EquipmentFileAudioUploadPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-image-upload/equipment-file-image-upload.module').then(m => m.EquipmentFileImageUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n ]\n }\n ]\n },\n {\n path: 'equipment-review',\n children: [\n {\n path: ':equipmentId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-equipment-review/recommendation-equipment-review.module').then(m => m.RecommendationEquipmentReviewPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/equipment-files/equipment-file-view/equipment-file-view.module').then(m => m.EquipmentFileViewPageModule)\n },\n ]\n }\n ]\n },\n {\n path: 'items',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-list/recommendation-item-list.module').then(m => m.RecommendationItemListPageModule)\n },\n {\n path: 'item-type',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-app-type-select/recommendation-item-app-type-select.module').then(m => m.RecommendationItemAppTypeSelectPageModule)\n },\n {\n path: 'item',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-add/recommendation-item-add.module').then(m => m.RecommendationItemAddPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-questions/recommendation-item-questions.module').then(m => m.RecommendationItemQuestionsPageModule)\n },\n ],\n },\n {\n path: 'labor',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-add-service-labor/recommendation-item-add-service-labor.module').then(m => m.RecommendationItemAddServiceLaborPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n {\n path: 'assembly',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-add-assembly/recommendation-item-add-assembly.module').then(m => m.RecommendationItemAddAssemblyPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n {\n path: 'items',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-add-assembly-items/recommendation-item-add-assembly-items.module').then(m => m.RecommendationItemAddAssemblyItemsPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-questions/recommendation-item-questions.module').then(m => m.RecommendationItemQuestionsPageModule)\n },\n ]\n },\n {\n path: 'item/:id',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-edit/recommendation-item-edit.module').then(m => m.RecommendationItemEditPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-item-questions-edit/recommendation-item-questions-edit.module').then(m => m.RecommendationItemQuestionsEditPageModule)\n },\n ],\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n canDeactivate: [RecommendationQuestionsDeactivateGuard],\n component: RecommendationQuestionsPage // The deactivation guard does not work with page module lazy loading\n // loadChildren: () => import('./pages/recommendation/recommendation-questions/recommendation-questions.module').then(m => m.RecommendationQuestionsPageModule)\n },\n {\n path: 'image-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-file-image-upload/recommendation-file-image-upload.module').then(m => m.RecommendationFileImageUploadPageModule)\n },\n {\n path: 'audio-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-file-audio-upload/recommendation-file-audio-upload.module').then(m => m.RecommendationFileAudioUploadPageModule)\n },\n {\n path: 'file-upload',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-file-upload/recommendation-file-upload.module').then(m => m.RecommendationFileUploadPageModule)\n },\n {\n path: 'file-view/:fileId',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/recommendation/recommendation-file-view/recommendation-file-view.module').then(m => m.RecommendationFileViewPageModule)\n },\n\n ]\n },\n {\n path: 'quote',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-add/quote-add.module').then(m => m.QuoteAddPageModule)\n },\n {\n path: 'quote/:quoteId',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-edit/quote-edit.module').then(m => m.QuoteEditPageModule)\n },\n {\n path: 'recommendations',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-edit-recommendation/quote-edit-recommendation.module').then(m => m.QuoteEditRecommendationPageModule)\n },\n {\n path: 'items',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-items-list/quote-items-list.module').then(m => m.QuoteItemsListPageModule)\n },\n {\n path: 'item-type',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-app-type-select/quote-item-app-type-select.module').then(m => m.QuoteItemAppTypeSelectPageModule)\n },\n {\n path: 'item',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-add/quote-item-add.module').then(m => m.QuoteItemAddPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-questions/quote-item-questions.module').then(m => m.QuoteItemQuestionsPageModule)\n },\n ]\n },\n {\n path: 'labor',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-add-service-labor/quote-item-add-service-labor.module').then(m => m.QuoteItemAddServiceLaborPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n {\n path: 'assembly',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-add-assembly/quote-item-add-assembly.module').then(m => m.QuoteItemAddAssemblyPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n {\n path: 'items',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-add-assembly-items/quote-item-add-assembly-items.module').then(m => m.QuoteItemAddAssemblyItemsPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-item-questions/quote-item-questions.module').then(m => m.QuoteItemQuestionsPageModule)\n },\n ]\n },\n {\n path: 'items/:id',\n children: [\n {\n path: '',\n loadChildren: () => import('./pages/quote/quote-item-edit/quote-item-edit.module').then(m => m.QuoteItemEditPageModule)\n },\n {\n path: 'questions',\n loadChildren: () => import('./pages/quote/quote-item-questions-edit/quote-item-questions-edit.module').then(m => m.QuoteItemQuestionsEditPageModule)\n },\n ]\n },\n {\n path: 'markup-adjustment',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-markup-adjustment/quote-markup-adjustment.module').then(m => m.QuoteMarkupAdjustmentPageModule)\n },\n {\n path: 'questions',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n canDeactivate: [QuoteQuestionsDeactivateGuard],\n component: QuoteQuestionsPage,\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver,\n }\n // loadChildren: () => import('./pages/quote/quote-questions/quote-questions.module').then( m => m.QuoteQuestionsPageModule)\n },\n {\n path: 'email',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-email-preview/quote-email-preview.module').then(m => m.QuoteEmailPreviewPageModule)\n },\n {\n path: 'attachments',\n canActivate: [AuthGuard, MenuDisabledPageGuard],\n canDeactivate: [QuoteEmailAddRecFileModalDeactivateGuard],\n component: QuoteEmailAddRecFileModalPage\n // loadChildren: () => import('./pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.module').then( m => m.QuoteEmailAddRecFileModalPageModule)\n },\n ]\n },\n {\n path: 'approval',\n canActivate: [AuthGuard, MenuDisabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-customer-approval/quote-customer-approval.module').then(m => m.QuoteCustomerApprovalPageModule)\n },\n {\n path: 'approval-view',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-customer-approval-view/quote-customer-approval-view.module').then(m => m.QuoteCustomerApprovalViewPageModule)\n },\n {\n path: 'service-call',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-service-call/quote-service-call.module').then(m => m.QuoteServiceCallPageModule),\n resolve: {\n phoneNumberFormat: PhoneNumberFormatResolver\n }\n },\n {\n path: 'existing-service-call',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/confirm-add-to-existing-service-call-view/confirm-add-to-existing-service-call-view.module').then(m => m.ConfirmAddToExistingServiceCallViewPageModule)\n },\n\n {\n path: 'copy',\n children: [\n {\n path: '',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-copy/quote-copy.module').then(m => m.QuoteCopyPageModule)\n },\n {\n path: 'item-replace-list',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-copy-item-replace-list/quote-copy-item-replace-list.module').then(m => m.QuoteCopyItemReplaceListPageModule)\n },\n {\n path: 'item-update-list',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-copy-item-update-list/quote-copy-item-update-list.module').then(m => m.QuoteCopyItemUpdateListPageModule)\n },\n {\n path: 'replace-item',\n canActivate: [AuthGuard, MenuEnabledPageGuard],\n loadChildren: () => import('./pages/quote/quote-copy-replace-item/quote-copy-replace-item.module').then(m => m.QuoteCopyReplaceItemPageModule),\n resolve: {\n regions: RegionResolver\n }\n },\n ]\n },\n ]\n },\n {\n path: '**', // 404 route\n redirectTo: 'dashboard'\n },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, useHash: true })\n ],\n exports: [RouterModule],\n providers: [\n PhoneNumberFormatResolver,\n RecommendationStatusResolver,\n RecommendationUserDefinedStatusResolver,\n QuoteStatusResolver,\n LaborRateGroupResolver,\n PriceMatrixResolver,\n TaxScheduleResolver,\n CustomerLocationFieldRequirementsResolver,\n TechnicianResolver,\n RegionResolver,\n DashboardPageModule,\n SearchPageModule,\n SearchResultsPageModule,\n RecommendationEditPageModule,\n RecommendationQuestionsPageModule,\n QuoteQuestionsPageModule,\n QuoteEmailAddRecFileModalPageModule\n ]\n})\nexport class AppRoutingModule { }\n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { MenuController, NavController, Platform } from '@ionic/angular';\nimport { environment } from 'src/environments/environment';\nimport { EventsService } from './services/events/events.service';\nimport { UserDataService } from './services/user-data/user-data.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n\n showFooter: boolean = false;\n app_version: string;\n\n constructor(\n private router: Router,\n private navController: NavController,\n private menu: MenuController,\n private userData: UserDataService,\n private eventsService: EventsService) {\n }\n\n async ngOnInit() {\n this.app_version = environment.APP_VERSION;\n\n this.eventsService.getLoginSubject().subscribe(data => {\n this.showFooter = true;\n });\n this.eventsService.getLogoutSubject().subscribe(data => {\n this.showFooter = false;\n });\n\n this.showFooter = await this.userData.hasLoggedIn();\n\n // After a full reload make sure to send the user to the home/dashboard page.\n await this.navController.navigateRoot(['']);\n }\n\n async logout() {\n this.showFooter = false;\n await this.menu.toggle(); // close the menu before leaving\n await this.userData.removeLoginData();\n this.router.navigate(['/login']);\n }\n\n // Before reloading the full page of the application ask for confirmation.\n @HostListener('window:beforeunload')\n canDeactivate() {\n return false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\n\nimport { AppComponent } from './app.component';\nimport { AppRoutingModule } from './app-routing.module';\n\nimport { IonicStorageModule } from '@ionic/storage-angular';\nimport { HttpClientModule } from '@angular/common/http';\nimport { httpInterceptorProviders } from './http-interceptors';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FooterModule } from './components/footer/footer.module';\nimport { FileOpener } from '@ionic-native/file-opener/ngx';\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [BrowserModule, IonicModule.forRoot({swipeBackEnabled:false}), AppRoutingModule, IonicStorageModule.forRoot(), HttpClientModule, ReactiveFormsModule, FooterModule],\n providers: [{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy, }, httpInterceptorProviders, FileOpener],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Observable } from \"rxjs\";\nimport { ReturnMessage } from \"src/app/models/return-message\";\nimport { AutocompleteDataLoader } from \"./autocomplete-data-loader\";\nimport { AutocompleteOption } from \"./autocomplete-option\";\n\nexport abstract class AbstractAutocompleteDataLoader implements AutocompleteDataLoader {\n\n abstract load(searchTerm: string): Observable>;\n abstract loadAll(): Observable>;\n \n fromDictionary(dictionary: any): AutocompleteOption[] {\n let options = [];\n for (let key in dictionary) {\n options.push({ id: key, description: dictionary[key] });\n }\n return options;\n }\n \n }","import { Component, OnInit, Input, Output, EventEmitter, TemplateRef } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Observable, of, Subject } from 'rxjs';\nimport { catchError, debounceTime, finalize, switchMap, repeat } from 'rxjs/operators';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { environment } from 'src/environments/environment';\nimport { AutocompleteDataLoader } from './autocomplete-data-loader';\nimport { AutocompleteOption } from './autocomplete-option';\n\n/**\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n \n \n \n \n ID: {{option.id}} - Description: {{option.description}}\n \n \n \n \n\n \n \n\n \n \n \n \n \n ID: {{option.Id}}\n {{option.description}}\n \n \n Some more information about the option selected...\n \n \n \n\n */\n@Component({\n selector: 'app-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: AutocompleteComponent\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: AutocompleteComponent\n }\n ]\n})\nexport class AutocompleteComponent implements OnInit, ControlValueAccessor, Validator {\n\n @Input() readonly: boolean = false;\n\n // The label value displayed on top of the field.\n @Input('label') labelValue: string;\n\n @Input('maxlength') maxlength: string;\n \n @Input('autocapitalize') autocapitalize: boolean = false;\n \n @Input('spellcheck') spellcheck: boolean = false;\n \n @Input('autocorrect') autocorrect: string = \"off\";\n\n // The label displayed when there are not results found after a search.\n @Input('labelNoResults') labelNoResultsValue: string;\n\n // Two way binding properties for the selected option\n @Input() selection: AutocompleteOption = null;\n @Output() selectionChange = new EventEmitter();\n\n\n updateOption(option: AutocompleteOption) {\n // Avoid any action when the option passed as psarameter is null or undefined and at the same time the existing selected option is null or undefined.\n if ((option === undefined || option === null || (typeof option === 'string' && (option) === '')) &&\n (this.selection === undefined || this.selection === null)) {\n return;\n }\n\n // After setting the value of the input field set the skipSearch flag to true to avoid triggering an unwanted search.\n this.skipSearch = true;\n\n // Set the option selected\n this.selection = option;\n this.selectionChange.emit(this.selection);\n }\n\n // The object used to load information.\n loader: AutocompleteDataLoader;\n\n // Setter function for the loader object\n @Input() set dataLoader(loader: AutocompleteDataLoader) {\n\n function instanceOfAutocompleteDataLoader(object: any): object is AutocompleteDataLoader {\n return 'load' in object && 'loadAll' in object;\n }\n if (instanceOfAutocompleteDataLoader(loader)) {\n this.loader = loader;\n }\n else {\n throw Error('loader object is not an instance of AutocompleteDataLoader');\n }\n\n this.results$ = this.searchTerms.pipe(\n // Add debounce to the field\n debounceTime(this.autocompleteDebounceTime),\n\n // switch to new search observable each time the term changes\n switchMap((term: string) => {\n let obs: Observable>;\n if (term !== '') {\n obs = this.loader.load(this.searchTerm)\n .pipe(\n finalize(() => {\n this.loading = false;\n })\n );\n }\n else {\n obs = this.loader.loadAll()\n .pipe(\n finalize(() => {\n this.loading = false;\n this.allRequested = !this.allRequested;\n })\n );\n }\n return obs;\n }\n ),\n catchError(err => { return of(err.error) }),\n repeat()\n );\n\n this.results$.subscribe((response) => {\n if (response.success) {\n this.options = response.payload;\n }\n else {\n this.options = [];\n }\n }\n );\n }\n\n // Fuction used to format the value displayed after an option is selected\n @Input() formatValue: (args: AutocompleteOption) => string;\n\n // Template for the results list\n @Input() resultsTemplate: TemplateRef;\n\n // Template for the options in the list\n @Input() optionTemplate: TemplateRef;\n\n // Option list\n options: AutocompleteOption[];\n\n // Value of the search input field\n searchTerm: string;\n\n getSearchTerm() { return this.searchTerm; }\n\n // Indicates if the user clicked the magnifying glass icon to load all the options\n allRequested: boolean = false;\n\n // Indicates if the control should skip the next search\n skipSearch: boolean = false;\n\n // Indicates if the control never executed a search\n initialSearch: boolean = true;\n\n // Used to indicate if the progress bar under the field shuld be visible or not\n loading: boolean = false;\n\n cntxt; // Used to access the selectOption function when specifying a template for the results list\n\n @Input() required: boolean = false;\n\n constructor(private toastWrapper: ToastControllerWrapperService,\n private userDataService: UserDataService) {\n this.cntxt = this;\n }\n\n // The Validator and ControlValueAccessor interfaces are used to integrate the component with the FormsModule and ReactiveFormsModule\n\n // --> Validator interface\n\n onValidationChange: any = () => {};\n\n validate(control: AbstractControl): ValidationErrors {\n return null;\n }\n registerOnValidatorChange?(fn: () => void): void {\n this.onValidationChange = fn;\n }\n // --> End Validator interface\n\n // --> ControlValueAccessor interface\n\n onChange = (option) => { };\n onTouched = () => { };\n disabled = false;\n touched = false;\n\n writeValue(obj: AutocompleteOption): void {\n this.initialSearch = false;\n this.updateOption(obj);\n }\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n markAsTouched() {\n if (!this.touched) {\n this.onTouched();\n }\n this.touched = true;\n }\n // --> End ControlValueAccessor interface\n\n // Field debounce time\n autocompleteDebounceTime: number = environment.DEFAULT_AUTOCOMPLETE_DEBOUNCE_TIME;\n\n results$!: Observable>;\n private searchTerms = new Subject();\n\n async ngOnInit() {\n this.autocompleteDebounceTime = await this.userDataService.getAutocompleteTime();\n\n this.selectionChange.subscribe((option: AutocompleteOption) => {\n\n // Set (and format if necessary) the value of the input field.\n if (this.formatValue) {\n this.searchTerm = option ? this.formatValue(this.selection) : null;\n }\n else {\n this.searchTerm = option ? this.selection.description : null;\n }\n\n // Removed existing options hidding options list.\n this.options = null;\n\n // Update the state of the component.\n this.markAsTouched();\n\n // Call the function event handler used by the validation interface\n this.onChange(this.selection);\n this.onValidationChange();\n });\n }\n\n async showAll() {\n\n if (!this.loader) {\n // console.log(\"No data loader service set for autocomplete component set\");\n return;\n }\n\n this.initialSearch = false;\n\n if (this.allRequested && this.options != null) {\n // The user clicked the magnifying glass icon after all options were displayed so we close the list.\n this.options = null;\n\n // nothing was requested\n this.allRequested = !this.allRequested;\n } else {\n // The user clicked the magnifying glass icon when not all the options are displayed (or the list is closed) so we search for all available options and display the list.\n // show the progress bar below the field\n this.loading = true;\n\n // search all options\n this.searchTerms.next('');\n }\n }\n\n async search() {\n this.markAsTouched();\n\n if (!this.loader) {\n // console.log(\"No data loader service set for autocomplete component set\");\n return;\n }\n\n if (this.skipSearch && !this.initialSearch) {\n // The user selected an option and the input field value changed but we don't want to trigger another search\n this.skipSearch = false;\n return;\n }\n\n if (this.initialSearch) {\n this.initialSearch = false;\n }\n\n // The user don't want to see all the available options.\n this.allRequested = false;\n\n if (this.searchTerm != '') {\n // show the progress bar\n this.loading = true;\n\n // search based on the search term\n this.searchTerms.next(this.searchTerm);\n\n // trigget the onChange event when the user type something in the input field to get the validations done again\n this.onChange(this.selection);\n // this.onValidationChange();\n\n } else {\n // When the search field is empty clear the selection by setting 'selection' to null\n this.options = null;\n\n // Also set the 'options' list to null to hide the results list.\n this.updateOption(null);\n\n this.onChange(this.selection);\n // this.onValidationChange();\n }\n }\n\n // Called when the user selects an option from the options list\n selectOption(option: AutocompleteOption) {\n this.updateOption(option);\n }\n\n // Called when the user click the X icon to clear the selected value\n clear() {\n this.markAsTouched();\n this.updateOption(null);\n this.closeOptionsList();\n this.onChange(this.selection);\n // this.onValidationChange();\n }\n\n closeOptionsList() {\n this.options = null;\n this.allRequested = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { FormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [AutocompleteComponent],\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ],\n exports: [AutocompleteComponent]\n})\nexport class AutocompleteModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-card-skeleton',\n templateUrl: './card-skeleton.component.html',\n styleUrls: ['./card-skeleton.component.scss'],\n})\nexport class CardSkeletonComponent implements OnInit {\n\n @Input() hidden: boolean;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CardSkeletonComponent } from './card-skeleton.component';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [CardSkeletonComponent],\n imports: [\n CommonModule,\n IonicModule,\n ],\n exports: [CardSkeletonComponent]\n})\nexport class CardSkeletonModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SearchResultCustomerAddress } from 'src/app/models/search/search-result-customer-address';\n\n@Component({\n selector: 'app-customer-address-card',\n templateUrl: './customer-address-card.component.html',\n styleUrls: ['./customer-address-card.component.scss'],\n})\nexport class CustomerAddressCardComponent implements OnInit {\n\n @Input() address: SearchResultCustomerAddress;\n @Input('showCustomer') showCustomer: boolean = true;\n \n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomerAddressCardComponent } from './customer-address-card.component';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\nimport { IonicModule } from '@ionic/angular';\n\n@NgModule({\n declarations: [CustomerAddressCardComponent],\n imports: [\n CommonModule,\n IonicModule,\n PipesModule\n ],\n exports: [CustomerAddressCardComponent],\n})\nexport class CustomerAddressCardModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CustomerAndAddressHeader } from 'src/app/models/customer-address/customer-and-address-header';\nimport { ResponseGetQuoteCopyHeader } from 'src/app/models/quote/response-get-quote-copy-header';\nimport { ResponseRecommendationCopyHeader } from 'src/app/models/recommendation/response-recommendation-copy-header';\nimport { SurveyProspectCustomerHeaderDetails } from 'src/app/models/survey-customer-address/survey-prospect-customer-header-details';\n\n@Component({\n selector: 'app-customer-and-address-card',\n templateUrl: './customer-and-address-card.component.html',\n styleUrls: ['./customer-and-address-card.component.scss'],\n})\nexport class CustomerAndAddressCardComponent implements OnInit {\n\n @Input() header: CustomerAndAddressHeader | SurveyProspectCustomerHeaderDetails | ResponseRecommendationCopyHeader | ResponseGetQuoteCopyHeader;\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomerAndAddressCardComponent } from './customer-and-address-card.component';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [CustomerAndAddressCardComponent],\n exports: [CustomerAndAddressCardComponent],\n imports: [\n CommonModule,\n IonicModule,\n PipesModule\n ]\n})\nexport class CustomerAndAddressCardModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport * as moment from 'moment';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-datetime-modal',\n templateUrl: './datetime-modal.component.html',\n styleUrls: ['./datetime-modal.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: DatetimeModalComponent\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: DatetimeModalComponent\n }\n ]\n})\nexport class DatetimeModalComponent implements OnInit, ControlValueAccessor, Validator {\n\n @Input('label') labelValue: string;\n @Input('labelClass') labelClass: string = '';\n @Input('required') required: boolean = false;\n\n @Input('displayFormat') displayFormat: string = environment.DATE_OUTPUT_FORMAT; // format used to display the selected date\n @Input('valueFormat') valueFormat: string = 'YYYY-MM-DD'; // format applied to the values returned by the component\n @Input('parseFormat') parseFormat: string = 'YYYY-MM-DD'; // format used to parse values passed into the component\n\n @Input() value: string;\n @Output() valueChange = new EventEmitter();\n\n @Input('presentation') presentation: string = 'date'; // possible values: date, time\n\n @Input('hourCycle') hourCycle: string = 'h12'; // refer to https://ionicframework.com/docs/api/datetime#hour-cycle\n\n internalValue: string; // value provided by the internal ion-datetime this is a ISO-8601 date string\n dateObj: Date; // a javascript date object used when converting the date to other formats\n\n modalId: string;\n\n onChange = (option) => { };\n onTouched = () => { };\n disabled = false;\n touched = false;\n\n constructor() {\n this.modalId = Math.random().toString(36);\n }\n\n ngOnInit() {}\n\n onIonChange() {\n this.markAsTouched();\n if (this.internalValue) {\n this.dateObj = moment(this.internalValue).toDate();\n this.value = moment(this.dateObj).format(this.valueFormat);\n }\n this.valueChange.emit(this.value);\n this.onChange(this.value);\n }\n\n clear() {\n this.markAsTouched();\n this.internalValue = null;\n this.value = null;\n this.dateObj = null;\n this.valueChange.emit(this.value);\n this.onChange(this.value);\n }\n\n validate(control: AbstractControl): ValidationErrors {\n return null;\n }\n\n registerOnValidatorChange?(fn: () => void): void { }\n\n writeValue(obj: string): void {\n this.value = obj;\n if (this.value) {\n this.dateObj = moment(this.value, this.parseFormat).toDate();\n this.internalValue = moment(this.dateObj).format();\n }\n else {\n this.internalValue = null;\n }\n this.valueChange.emit(this.value);\n }\n\n registerOnChange(onChange: any): void {\n this.onChange = onChange;\n }\n registerOnTouched(onTouched: any): void {\n this.onTouched = onTouched;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n markAsTouched() {\n if (!this.touched) {\n this.onTouched();\n }\n this.touched = true;\n }\n\n applyFormat() {\n return (this.dateObj) ? moment(this.dateObj).format(this.displayFormat) : '';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DatetimeModalComponent } from './datetime-modal.component';\nimport { FormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [DatetimeModalComponent],\n exports: [DatetimeModalComponent],\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ]\n})\nexport class DatetimeModalModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SearchResultEquipment } from 'src/app/models/search/search-result-equipment';\nimport { ReturnSurveyEquipment } from 'src/app/models/survey-equipment/return-survey-equipment';\n\n@Component({\n selector: 'app-equipment-card',\n templateUrl: './equipment-card.component.html',\n styleUrls: ['./equipment-card.component.scss'],\n})\nexport class EquipmentCardComponent implements OnInit {\n\n private _value: EquipmentCardModel = null;\n get model(): SearchResultEquipment | ReturnSurveyEquipment {\n return this._value;\n }\n\n @Input('equipment')\n set model(val: SearchResultEquipment | ReturnSurveyEquipment) {\n this._value = Object.assign({} as EquipmentCardModel, val);\n }\n \n constructor() { }\n\n ngOnInit() {}\n\n}\n\ninterface EquipmentCardModel {\n id: string;\n description: string;\n entitytype: string;\n serialNumber: string;\n contractNumber: string;\n subLocation: string;\n creationDate: Date;\n existingAddress: string;\n status: string;\n type: string;\n make: string;\n model: string;\n addressId: string;\n addressType: string;\n customerNumber: string;\n addressCode: string;\n equipmentId: string;\n manufacturerId: string;\n modelNumber: string;\n sublocationId: string;\n installationDate: string;\n installationBy: string;\n warrantyExpires: string;\n extendedWarranty: string;\n extendedwarrantyExpires: string;\n serviceLevelId: string;\n barCodeId: string;\n userDefine1a: string;\n userDefine2a: string;\n userDefine3a: string;\n userDefine4a: string;\n userDefine5a: string;\n userDefine9a: string;\n createdBy: number;\n createdDate: string;\n modifiedBy: number;\n modifiedDate: string;\n generateGpEquipmentId: boolean;\n suspendMccCalls: boolean;\n isSurveyEquipment: boolean;\n prospectCustomerAddressId?: number;\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EquipmentCardComponent } from './equipment-card.component';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [EquipmentCardComponent],\n exports: [EquipmentCardComponent],\n imports: [\n CommonModule,\n IonicModule,\n PipesModule\n ]\n})\nexport class EquipmentCardModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ActionSheetController, Platform } from '@ionic/angular';\nimport { GenericAddStepOneModelEnum } from 'src/app/pages/generic-add-step-one/generic-add-step-one-model-enum';\nimport { PermissionCheckerService } from 'src/app/services/permission-checker/permission-checker.service';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent implements OnInit {\n\n customerPermissions: boolean;\n equipmentPermissions: boolean;\n recommendationsPermissions: boolean;\n quotesPermissions: boolean;\n canUseSurveyCustomer: boolean;\n isReadOnly: boolean;\n app_version: string;\n \n actionSheet: any;\n\n constructor(\n private router: Router,\n private actionSheetCtrl: ActionSheetController,\n private platform: Platform,\n private permissionChecker: PermissionCheckerService) { \n this.app_version = environment.APP_VERSION;\n }\n\n ngOnInit() { }\n\n async presentActionSheet() {\n var buttons = await this.getActionSheetOptions();\n\n this.actionSheet = await this.actionSheetCtrl.create({\n header: 'Choose an Action',\n buttons: buttons\n });\n\n await this.actionSheet.present();\n }\n\n async getActionSheetOptions() {\n\n this.customerPermissions = await this.permissionChecker.canCRUDCustomers();\n this.equipmentPermissions = await this.permissionChecker.canCRUDEquipments();\n this.recommendationsPermissions = await this.permissionChecker.canCRUDRecommendations();\n this.quotesPermissions = await this.permissionChecker.canCRUDQuotes();\n this.canUseSurveyCustomer = await this.permissionChecker.canUseSurveyCustomer();\n this.isReadOnly = await this.permissionChecker.isReadOnly();\n \n var buttonsForSheet = [];\n\n if (!this.isReadOnly && this.canUseSurveyCustomer) {\n buttonsForSheet.push({\n text: 'Contract Survey Prospect Customer',\n icon: !this.platform.is('ios') ? 'add' : null,\n handler: async () => {\n await this.actionSheet.dismiss();\n this.router.navigate(['/survey-prospect-customer-add']);\n }\n });\n }\n\n if (this.customerPermissions) {\n buttonsForSheet.push({\n text: 'Service Call Prospect Customer',\n icon: !this.platform.is('ios') ? 'add' : null,\n handler: () => {\n this.router.navigate(['/customer-add']);\n }\n });\n }\n\n if (this.recommendationsPermissions) {\n buttonsForSheet.push({\n text: 'Recommendation',\n icon: !this.platform.is('ios') ? 'add' : null,\n handler: () => {\n this.router.navigate(['select-customer', GenericAddStepOneModelEnum.RECOMMENDATION ]);\n }\n });\n }\n\n if (this.quotesPermissions) {\n buttonsForSheet.push({\n text: 'Quotes',\n icon: !this.platform.is('ios') ? 'add' : null,\n handler: () => {\n this.router.navigate(['select-customer', GenericAddStepOneModelEnum.QUOTE ]);\n }\n });\n }\n\n buttonsForSheet.push({\n text: 'Cancel',\n role: 'cancel',\n icon: !this.platform.is('ios') ? 'close' : null,\n handler: () => {\n console.log('Cancel clicked');\n }\n });\n\n return buttonsForSheet;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FooterComponent } from './footer.component';\nimport { IonicModule } from '@ionic/angular';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\n\n\n@NgModule({\n declarations: [FooterComponent],\n exports: [FooterComponent],\n imports: [\n CommonModule,\n RouterModule,\n IonicModule\n ]\n})\nexport class FooterModule { }\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-pending-list-skeleton',\n templateUrl: './pending-list-skeleton.component.html',\n styleUrls: ['./pending-list-skeleton.component.scss'],\n})\nexport class PendingListSkeletonComponent implements OnInit {\n\n slots: number[] = [];\n @Input('count') set count(n: number) {\n if (n <= 0)\n n = 1;\n\n for(var i = 1; i <= n; i++) {\n this.slots.push(i);\n }\n }\n\n @Input('hidden') hidden: boolean;\n \n constructor() { \n }\n \n ngOnInit() {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PendingListSkeletonComponent } from './pending-list-skeleton.component';\nimport { CardSkeletonModule } from '../card-skeleton/card-skeleton.module';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [PendingListSkeletonComponent],\n exports: [PendingListSkeletonComponent],\n imports: [\n CommonModule,\n IonicModule,\n CardSkeletonModule\n ]\n})\nexport class PendingListSkeletonModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CopyQuoteNavigationState } from 'src/app/models/quote/copy-quote-navigation-state';\nimport { ReturnPendingQuote } from 'src/app/models/quote/return-pending-quote';\nimport { SearchResultQuote } from 'src/app/models/search/search-result-quote';\nimport { GenericAddStepOneModelEnum } from 'src/app/pages/generic-add-step-one/generic-add-step-one-model-enum';\n\n@Component({\n selector: 'app-quote-card',\n templateUrl: './quote-card.component.html',\n styleUrls: ['./quote-card.component.scss'],\n})\nexport class QuoteCardComponent implements OnInit {\n\n @Input() showCopyOption: boolean = true;\n @Input() showStatus: boolean = true;\n \n model: QuoteCardModel;\n @Input() set quote(obj: SearchResultQuote | ReturnPendingQuote) {\n this.model = {} as QuoteCardModel;\n this.model = Object.assign(this.model, obj);\n }\n\n constructor(\n private router: Router\n ) { }\n\n ngOnInit() {}\n\n copy() {\n this.router.navigate(['select-customer', GenericAddStepOneModelEnum.QUOTE_COPY], {\n state: {\n srcQuoteId: this.model.id\n }\n });\n }\n}\n\ninterface QuoteCardModel {\n id: number;\n description: string;\n status: string;\n creationDate: Date;\n addressId: string;\n addressType: string;\n customer: string;\n created: Date;\n customerAndAddressExist: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { QuoteCardComponent } from './quote-card.component';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\nimport { IonicModule } from '@ionic/angular';\n\n\n\n@NgModule({\n declarations: [QuoteCardComponent],\n exports: [QuoteCardComponent],\n imports: [\n CommonModule,\n IonicModule,\n PipesModule\n ]\n})\nexport class QuoteCardModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CopyRecommendationNavigationState } from 'src/app/models/recommendation/copy-recommendation-navigation-state';\nimport { ReturnPendingRecommendation } from 'src/app/models/recommendation/return-pending-recommendation';\nimport { SearchResultRecommendation } from 'src/app/models/search/search-result-recommendation';\nimport { GenericAddStepOneModelEnum } from 'src/app/pages/generic-add-step-one/generic-add-step-one-model-enum';\n\n@Component({\n selector: 'app-recommendation-card',\n templateUrl: './recommendation-card.component.html',\n styleUrls: ['./recommendation-card.component.scss'],\n})\nexport class RecommendationCardComponent implements OnInit {\n\n @Input() showCopyOption: boolean = true;\n @Input() showStatus: boolean = true;\n\n model: RecommendationCardModel;\n @Input() set recommendation(obj: SearchResultRecommendation | ReturnPendingRecommendation) {\n this.model = {} as RecommendationCardModel;\n this.model = Object.assign(this.model, obj);\n }\n\n constructor(private router: Router) { }\n\n ngOnInit() {}\n\n copy() {\n this.router.navigate(['select-customer', GenericAddStepOneModelEnum.RECOMMENDATION_COPY], {\n state: {\n srcRecommendationId: this.model.id\n }\n });\n }\n\n}\n\ninterface RecommendationCardModel {\n id: number;\n description: string;\n benefits: string;\n status: string;\n numberOfItems: number;\n numberOfUnreadMessages: number;\n creationDate: string;\n modifiedDate: string;\n customerAddressId: string;\n customerAddressType: string;\n userDefinedStatusId: number;\n userDefinedStatus: string;\n customer: string;\n created: Date;\n addressId: string;\n addressType: string;\n customerAndAddressExist: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RecommendationCardComponent } from './recommendation-card.component';\nimport { IonicModule } from '@ionic/angular';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\n\n\n\n@NgModule({\n declarations: [RecommendationCardComponent],\n exports: [RecommendationCardComponent],\n imports: [\n CommonModule,\n IonicModule,\n PipesModule\n ]\n})\nexport class RecommendationCardModule { }\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n\n constructor(\n private router: Router,\n private userData: UserDataService\n ) { }\n \n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.canAccessPage();\n }\n \n async canAccessPage(): Promise {\n\n var isGatewayUrlConfigured = await this.userData.isGatewayConfigured();\n var hasLoggedIn = await this.userData.hasLoggedIn();\n\n if (isGatewayUrlConfigured && hasLoggedIn) {\n return true;\n }\n else {\n return this.router.parseUrl('/login');\n }\n \n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Route, Router, RouterStateSnapshot, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutoLoginGuard implements CanActivate {\n\n constructor(\n private router: Router,\n private userData: UserDataService\n ) { }\n \n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\n return this.hasUserLoggedIn();\n }\n\n async hasUserLoggedIn(): Promise {\n\n if (await this.userData.hasLoggedIn()) {\n return this.router.parseUrl('/dashboard');\n }\n else {\n return true;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { EventsService } from '../services/events/events.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AutoLogoutGuard implements CanActivate {\n\n constructor(\n private userData: UserDataService,\n private eventsService: EventsService\n ) { }\n \n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.autoLogout();\n }\n \n async autoLogout(): Promise {\n\n if (await this.userData.hasLoggedIn()) {\n await this.userData.removeLoginData();\n await this.userData.logoutOfGateway();\n }\n this.eventsService.publishLogout();\n return true;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PermissionCheckerService } from '../services/permission-checker/permission-checker.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CanEditSurveyCustomerAddressGuard implements CanActivate {\n \n constructor(private router: Router, \n private permissionChecker: PermissionCheckerService) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n\n return this.canAccessPage();\n }\n \n async canAccessPage(): Promise {\n\n var canCRUDCustomerLocations = await this.permissionChecker.canCRUDCustomerLocations();\n if (canCRUDCustomerLocations) {\n return true;\n }\n else {\n return this.router.parseUrl('/dashboard');\n }\n \n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanLoad, Route, Router, RouterStateSnapshot, UrlSegment, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GatewayConfigurationGuard implements CanActivate {\n\n constructor(\n private router: Router,\n private userData: UserDataService\n ) { }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {\n return this.verifyGatewayUrlConfiguration();\n }\n\n async verifyGatewayUrlConfiguration(): Promise {\n var isGatewayUrlConfigured = await this.userData.isGatewayConfigured();\n if (isGatewayUrlConfigured) {\n return true;\n }\n else {\n return this.router.parseUrl('/gateway');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { MenuController } from '@ionic/angular';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MenuDisabledPageGuard implements CanActivate {\n\n constructor(private menuCtrl: MenuController) { }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n\n this.menuCtrl.enable(false);\n\n return true;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { MenuController } from '@ionic/angular';\nimport { Observable } from 'rxjs';\nimport { UserDataService } from '../services/user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MenuEnabledPageGuard implements CanActivate {\n\n constructor(private menuCtrl: MenuController, private userData: UserDataService) { }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n this.userData.hasLoggedIn().then(hasLoggedIn => {\n this.menuCtrl.enable(hasLoggedIn);\n });\n return true;\n\n }\n \n\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\nimport { Observable, Subject } from 'rxjs';\nimport { QuoteEmailAddRecFileModalPage } from '../pages/quote/quote-email-add-rec-file-modal/quote-email-add-rec-file-modal.page';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QuoteEmailAddRecFileModalDeactivateGuard implements CanDeactivate {\n\n constructor(\n private router: Router,\n private alertCtrl: AlertController) { }\n\n canDeactivate(\n page: QuoteEmailAddRecFileModalPage,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.canLeavePage(page)\n }\n\n canLeavePage(page: QuoteEmailAddRecFileModalPage): Observable | boolean {\n\n // return page.filesSizeValid;\n\n if (page.filesSizeValid) {\n return true;\n }\n else {\n var subject = new Subject();\n this.showConfirmationDialog(subject);\n return subject.asObservable();\n }\n }\n\n async showConfirmationDialog(subject: Subject) {\n const confirmDialog = await this.alertCtrl.create({\n header: \"Invalid selection\",\n message: \"The file/s size exceeds the maximum allowed.\",\n buttons: [\n {\n text: \"Ok\",\n role: \"cancel\",\n handler: () => subject.next(false)\n }\n ]\n });\n await confirmDialog.present();\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\nimport { Observable, Subject } from 'rxjs';\nimport { QuoteQuestionsPage } from '../pages/quote/quote-questions/quote-questions.page';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QuoteQuestionsDeactivateGuard implements CanDeactivate {\n\n constructor(\n private router: Router,\n private alertCtrl: AlertController) { }\n\n canDeactivate(\n page: QuoteQuestionsPage,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.canLeavePage(page)\n }\n\n canLeavePage(page: QuoteQuestionsPage): Observable | boolean {\n\n if (page.canLeave || !page.form.dirty) {\n return true;\n }\n else {\n var subject = new Subject();\n this.showConfirmationDialog(subject);\n return subject.asObservable();\n }\n }\n\n async showConfirmationDialog(subject: Subject) {\n const confirmDialog = await this.alertCtrl.create({\n header: \"Losing Unsaved Data\",\n message: \"Unsaved changes on the page. Do you want to continue?\",\n buttons: [\n {\n text: \"Cancel\",\n role: \"cancel\",\n handler: () => subject.next(false)\n },\n {\n text: \"Confirm\",\n handler: () => subject.next(true)\n }\n ]\n });\n await confirmDialog.present();\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PermissionCheckerService } from '../services/permission-checker/permission-checker.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RecommendationAddGuard implements CanActivate {\n\n constructor(private router: Router,\n private permissionChecker: PermissionCheckerService) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.canAccessPage();\n }\n\n async canAccessPage(): Promise {\n var canCRUDRecommendations = await this.permissionChecker.canCRUDRecommendations();\n if (canCRUDRecommendations) {\n return true;\n }\n else {\n return this.router.parseUrl('/dashboard');\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\nimport { Observable, Subject } from 'rxjs';\nimport { RecommendationQuestionsPage } from '../pages/recommendation/recommendation-questions/recommendation-questions.page';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RecommendationQuestionsDeactivateGuard implements CanDeactivate {\n\n constructor(\n private router: Router,\n private alertCtrl: AlertController) { }\n\n canDeactivate(\n page: RecommendationQuestionsPage,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return this.canLeavePage(page)\n }\n\n canLeavePage(page: RecommendationQuestionsPage): Observable | boolean {\n\n if (page.canLeave || !page.form.dirty) {\n return true;\n }\n else {\n var subject = new Subject();\n this.showConfirmationDialog(subject);\n return subject.asObservable();\n }\n }\n\n async showConfirmationDialog(subject: Subject) {\n const confirmDialog = await this.alertCtrl.create({\n header: \"Losing Unsaved Data\",\n message: \"Unsaved changes on the page. Do you want to continue?\",\n buttons: [\n {\n text: \"Cancel\",\n role: \"cancel\",\n handler: () => subject.next(false)\n },\n {\n text: \"Confirm\",\n handler: () => subject.next(true)\n }\n ]\n });\n await confirmDialog.present();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { combineLatest, from, Observable, of } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { catchError, concatMap, timeout } from 'rxjs/operators';\nimport { ErrorHandlingService } from '../services/error-handling/error-handling.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GatewayApiInterceptor implements HttpInterceptor {\n\n constructor(private userData: UserDataService,\n private errorHandlingService: ErrorHandlingService) { }\n\n intercept(req: HttpRequest, next: HttpHandler):\n Observable> {\n\n var getUrl = from(this.userData.getGatewayUrl());\n var getApiKey = from(this.userData.getApiKey());\n\n return combineLatest([getUrl, getApiKey]).pipe(\n concatMap(results => {\n\n let gatewayUrl = results[0];\n let apiKey = results[1];\n\n let finalUrl = null;\n\n const isFullUrl = req.headers.get('isFullUrl') || 'false';\n if (isFullUrl === 'true') {\n finalUrl = req.url;\n }\n else {\n // If the gateway URL was not set then do not modify the original request URL\n finalUrl = gatewayUrl != null ? `${gatewayUrl}${req.url}` : req.url;\n }\n\n // If the API Key is not present then send 'Basic none' as the Authorization header value\n let authBasicValue = apiKey != null ? `Basic ${apiKey}` : 'Basic none';\n\n // If the original request includes a 'timeout' header then use the value from that header as the request timeout,\n // if not then use the default timeout value from the environment object.\n const timeoutValue = req.headers.get('timeout') || environment.DEFAULT_HTTP_REQUEST_TIMEOUT;\n const timeoutValueNumeric = Number(timeoutValue);\n\n const platform = this.userData.getPlatform();\n\n // Create a clone of the request with the new URL and the required headers.\n // While cloning the original headers remove the custom 'timeout' header.\n const authReq = req.clone({\n url: finalUrl,\n headers: req.headers.delete('timeout')\n .delete('isFullUrl')\n .set('AppVersion', environment.APP_VERSION)\n .set('Platform', platform)\n .set('Authorization', authBasicValue)\n });\n\n return next.handle(authReq).pipe(\n timeout(timeoutValueNumeric),\n catchError(error => {\n this.errorHandlingService.handleError(error);\n throw error;\n })\n );\n }));\n }\n}\n","/* \"Barrel\" of Http Interceptors */\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { GatewayApiInterceptor } from './gateway-api-interceptor';\n\nimport { NoopInterceptor } from './noop-interceptor';\n\n/** Http interceptor providers in outside-in order */\nexport const httpInterceptorProviders = [\n { provide: HTTP_INTERCEPTORS, useClass: NoopInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: GatewayApiInterceptor, multi: true },\n];","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n/** Pass untouched request through to the next request handler. */\n@Injectable()\nexport class NoopInterceptor implements HttpInterceptor {\n\n intercept(req: HttpRequest, next: HttpHandler):\n Observable> {\n return next.handle(req);\n }\n}","export enum CustomerAddressTypeEnum {\n EXISTING_CUSTOMER_ADDRESS = \"ExistingCustomerAddress\",\n EXISTING_CUSTOMER_PROSPECT_CUSTOMER_ADDRESS = \"ExistingCustomerProspectCustomerAddress\",\n PROSPECT_CUSTOMER_ADDRESS = \"ProspectCustomerAddress\",\n SURVEY_PROSPECT_CUSTOMER_ADDRESS = \"SurveyProspectCustomerAddress\"\n}\n","export enum EquipmentTypeEnum {\n RECOMMENDATION_EQUIPMENT = \"RecommendationEquipment\",\n SERVICE_CUSTOMER_EQUIPMENT = \"ServiceCustomerEquipment\",\n UPDATE_EQUIPMENT = \"UpdateEquipment\",\n SURVEY_EQUIPMENT = \"SurveyEquipment\"\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { DashboardPage } from './dashboard.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: DashboardPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DashboardPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { DashboardPageRoutingModule } from './dashboard-routing.module';\n\nimport { DashboardPage } from './dashboard.page';\nimport { AutocompleteModule } from 'src/app/components/autocomplete/autocomplete.module';\nimport { PendingListSkeletonModule } from 'src/app/components/pending-list-skeleton/pending-list-skeleton.module';\nimport { QuoteCardModule } from 'src/app/components/quote-card/quote-card.module';\nimport { RecommendationCardModule } from 'src/app/components/recommendation-card/recommendation-card.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n DashboardPageRoutingModule,\n ReactiveFormsModule,\n AutocompleteModule,\n PendingListSkeletonModule,\n QuoteCardModule,\n RecommendationCardModule\n ],\n declarations: [DashboardPage]\n})\nexport class DashboardPageModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AutocompleteOption } from 'src/app/components/autocomplete/autocomplete-option';\nimport { DashboardCounts } from 'src/app/models/dashboard/dashboard-counts';\nimport { ReturnPendingQuote } from 'src/app/models/quote/return-pending-quote';\nimport { ReturnPendingRecommendation } from 'src/app/models/recommendation/return-pending-recommendation';\nimport { PostUserId } from 'src/app/models/user/post-user-id';\nimport { User } from 'src/app/models/user/user';\nimport { QuoteService } from 'src/app/services/quote/quote.service';\nimport { RecommendationService } from 'src/app/services/recommendation/recommendation.service';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { UserAutocompleteDataLoaderService } from 'src/app/services/autocomplete-data-loader/user-autocomplete-data-loader.service';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { RecommendationEditNavigationState } from 'src/app/models/recommendation/recommendation-edit-navigation-state';\nimport { QuoteEditNavigationState } from 'src/app/models/quote/quote-edit-navigation-state';\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@capacitor/splash-screen';\nimport { Title } from '@angular/platform-browser';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.page.html',\n styleUrls: ['./dashboard.page.scss'],\n})\nexport class DashboardPage implements OnInit {\n\n title: string = 'Dashboard';\n user: User;\n counts: DashboardCounts;\n pendingQuotesUser: AutocompleteOption;\n pendingRecommendationsUser: AutocompleteOption;\n pendingQuotes: ReturnPendingQuote[] = null;\n pendingRecommendations: ReturnPendingRecommendation[] = null;\n\n constructor(\n private router: Router,\n private titleService: Title,\n private platform: Platform,\n private toastWrapper: ToastControllerWrapperService,\n private userService: UserService,\n private userData: UserDataService,\n private quoteService: QuoteService,\n private recommendationService: RecommendationService,\n public userAutoCompDataLoader: UserAutocompleteDataLoaderService\n ) {\n }\n\n ngOnInit() {\n }\n \n ionViewWillEnter() {\n this.userData.getUser().then(u => this.user = u);\n this.titleService.setTitle(this.title);\n this.platform.ready().then(() => SplashScreen.hide());\n this.loadDashboardCounts();\n this.loadPendingQuotes();\n this.loadPendingRecommendations();\n }\n\n loadDashboardCounts() {\n this.userService.getDashboardCounts()\n .subscribe(\n (data) => {\n if (data.success) {\n this.counts = data.payload.counts;\n }\n }\n );\n }\n\n loadPendingQuotes() {\n\n var postUserId = { id: null };\n if (this.pendingQuotesUser) {\n postUserId = { id: this.pendingQuotesUser.id };\n }\n\n this.quoteService.getPendingQuotes(postUserId)\n .subscribe(\n (data) => {\n if (data.success) {\n this.pendingQuotes = data.payload.quotes;\n }\n }\n );\n }\n\n loadPendingRecommendations() {\n var postUserId = { id: null };\n if (this.pendingRecommendationsUser) {\n postUserId = { id: this.pendingRecommendationsUser.id };\n }\n\n this.recommendationService.getPendingRecommendations(postUserId)\n .subscribe(\n (data) => {\n if (data.success) {\n this.pendingRecommendations = data.payload.recommendations;\n }\n }\n );\n }\n\n trackById(index: number, item: any): number {\n return item.id;\n }\n\n getItemCardHeight() {\n return 170;\n }\n\n goToRecommendation(recommendation: ReturnPendingRecommendation) {\n const customerAddressExists = recommendation.addressId !== null;\n\n if (customerAddressExists) {\n this.router.navigate(['recommendation', recommendation.id], {\n state: {\n recommendationId: recommendation.id,\n addressId: recommendation.addressId,\n addressType: recommendation.addressType\n }\n });\n } else {\n this.toastWrapper.presentErrorToast('Customer/Address not found.');\n }\n }\n\n goToQuote(quote: ReturnPendingQuote) {\n const customerAddressExists = quote.addressId !== null;\n\n if (customerAddressExists) {\n this.router.navigate(['quote', quote.id], {\n state: {\n quoteId: quote.id,\n addressId: quote.addressId,\n addressType: quote.addressType\n }\n });\n } else {\n this.toastWrapper.presentErrorToast('Customer/Address not found.');\n }\n }\n}\n","export enum GenericAddStepOneModelEnum {\n RECOMMENDATION = \"recommendation\",\n QUOTE = \"quote\",\n RECOMMENDATION_COPY = \"recommendation-copy\",\n QUOTE_COPY = \"quote-copy\",\n EQUIPMENT = \"equipment\"\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { QuoteEmailAddRecFileModalPage } from './quote-email-add-rec-file-modal.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: QuoteEmailAddRecFileModalPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class QuoteEmailAddRecFileModalPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { QuoteEmailAddRecFileModalPageRoutingModule } from './quote-email-add-rec-file-modal-routing.module';\n\nimport { QuoteEmailAddRecFileModalPage } from './quote-email-add-rec-file-modal.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n QuoteEmailAddRecFileModalPageRoutingModule\n ],\n declarations: [QuoteEmailAddRecFileModalPage]\n})\nexport class QuoteEmailAddRecFileModalPageModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NavController } from '@ionic/angular';\nimport { QuoteEmailAddRecFileModalNavigationState } from 'src/app/models/quote/quote-email-add-rec-file-modal-navigation-state';\n\n@Component({\n selector: 'app-quote-email-add-rec-file-modal',\n templateUrl: './quote-email-add-rec-file-modal.page.html',\n styleUrls: ['./quote-email-add-rec-file-modal.page.scss'],\n})\nexport class QuoteEmailAddRecFileModalPage implements OnInit {\n\n navigationState: QuoteEmailAddRecFileModalNavigationState;\n canExit: boolean;\n filesSizeValid: boolean = true;\n selectedFilesSize: number = 0;\n recommendationFiles: any;\n maximumEmailAttachmentSize: number;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private navController: NavController,\n ) { }\n\n ngOnInit() {\n this.navigationState = this.router.getCurrentNavigation()?.extras.state;\n if (!this.navigationState) {\n this.navController.navigateRoot(['']);\n return;\n }\n this.recommendationFiles = this.navigationState.recommendationFiles;\n this.maximumEmailAttachmentSize = this.navigationState.maximumEmailAttachmentSize;\n }\n\n confirmAddRecommendationFiles() {\n this.router.navigate(['..'], { relativeTo: this.route });\n }\n\n toggleSelectFileForAttachment(file) {\n if (file.fileSizeKb <= this.maximumEmailAttachmentSize) {\n this.updateSelectedFilesSize(file);\n this.filesSizeValid = this.selectedFilesSize <= this.maximumEmailAttachmentSize;\n }\n }\n\n updateSelectedFilesSize(file) {\n if (file.selectedForEmailAttachment) {\n this.selectedFilesSize += file.fileSizeKb;\n } else {\n this.selectedFilesSize -= file.fileSizeKb\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { QuoteQuestionsPage } from './quote-questions.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: QuoteQuestionsPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class QuoteQuestionsPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { QuoteQuestionsPageRoutingModule } from './quote-questions-routing.module';\n\nimport { QuoteQuestionsPage } from './quote-questions.page';\nimport { DatetimeModalModule } from 'src/app/components/datetime-modal/datetime-modal.module';\nimport { TextMaskModule } from 'angular2-text-mask';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n QuoteQuestionsPageRoutingModule,\n ReactiveFormsModule,\n DatetimeModalModule,\n TextMaskModule,\n ],\n declarations: [QuoteQuestionsPage]\n})\nexport class QuoteQuestionsPageModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { forkJoin } from 'rxjs';\nimport { LoadingControllerWrapperService } from 'src/app/services/loading-controller-wrapper/loading-controller-wrapper.service';\nimport { PermissionCheckerService } from 'src/app/services/permission-checker/permission-checker.service';\nimport { QuoteService } from 'src/app/services/quote/quote.service';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\nimport { finalize } from 'rxjs/operators';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { ReturnQuoteQuestionsPayload } from 'src/app/models/quote/return-quote-questions-payload';\nimport { ReturnQuoteQuestion } from 'src/app/models/quote/return-quote-question';\nimport { QuoteQuestionsNavigationState } from 'src/app/models/quote/quote-questions-navigation-state';\nimport { Title } from '@angular/platform-browser';\nimport { NavController } from '@ionic/angular';\nimport { FormArray } from '@angular/forms';\nimport { environment } from 'src/environments/environment';\nimport { PhoneNumberFormat } from 'src/app/models/customer/phone-number-format';\nimport { FormatService } from 'src/app/services/format/format.service';\n\n@Component({\n selector: 'app-quote-questions',\n templateUrl: './quote-questions.page.html',\n styleUrls: ['./quote-questions.page.scss'],\n})\nexport class QuoteQuestionsPage implements OnInit {\n\n title: string = 'Quote Questions';\n quoteQuestions: ReturnQuoteQuestion[] = null;\n disableSubmitButton: boolean;\n canLeave: boolean;\n canCRUDQuotes: boolean;\n form: FormGroup = new FormGroup({});\n navigationState: QuoteQuestionsNavigationState;\n\n maxLengths: any = {\n 'Text': 30,\n 'Number': 25,\n 'Purchase_Order': 15,\n 'Email': 40,\n 'Default': 255\n };\n\n DFLT_FIELD_CONF_NAME = 'Default';\n PHONE_NBR_DATA_TYPE = 'PhoneNumber';\n PURCHASE_ORDER_FIELD = 'Purchase_Order';\n CALLER_PHONE_NUMBER = 'Caller_Phone';\n\n fieldsConfiguration: any = {\n 'Text': {\n validationMessages: [\n { name: 'maxlength', message: `This field max length is ${this.maxLengths.Text}.` }\n ],\n validators: [Validators.maxLength(this.maxLengths.Text)],\n inputMode: 'text'\n },\n 'Purchase_Order': {\n validationMessages: [\n { name: 'maxlength', message: `This field max length is ${this.maxLengths.Purchase_Order}.` }\n ],\n validators: [Validators.maxLength(this.maxLengths.Purchase_Order)],\n inputMode: 'text'\n },\n 'Number': {\n validationMessages: [\n { name: 'pattern', message: 'This field only accepts numeric values.' },\n { name: 'maxlength', message: `This field max length is ${this.maxLengths.Number}.` }\n ],\n validators: [Validators.pattern(environment.NUMBER_REGEX), Validators.maxLength(this.maxLengths.Number)],\n inputMode: 'number'\n },\n 'Email': {\n validationMessages: [\n { name: 'pattern', message: 'This field needs to be a valid email address.' },\n { name: 'maxlength', message: `This field max length is ${this.maxLengths.Email}.` }\n ],\n validators: [Validators.pattern(environment.EMAIL_ADDRESS_REGEX), Validators.maxLength(this.maxLengths.Email)],\n inputMode: 'email'\n },\n 'Default': {\n validationMessages: [\n { name: 'maxlength', message: `This field max length is ${this.maxLengths.Default}.` }\n ],\n validators: [Validators.maxLength(this.maxLengths.Default)],\n inputMode: 'text'\n }\n\n };\n\n format: PhoneNumberFormat;\n phonePlaceholder: string;\n phoneNumberMask: (string | RegExp)[];\n\n get questions() {\n return this.form.get('questions') as FormArray;\n }\n\n get shouldRenderContent() {\n return this.quoteQuestions != null && this.questions != null;\n }\n\n get questionsExist() {\n return this.form && this.quoteQuestions.length > 0;\n }\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private fb: FormBuilder,\n private navController: NavController,\n private titleService: Title,\n private loadingWrapper: LoadingControllerWrapperService,\n private toastWrapper: ToastControllerWrapperService,\n private permissionChecker: PermissionCheckerService,\n private quoteService: QuoteService,\n private formatService: FormatService,\n ) { }\n\n ngOnInit() {\n this.navigationState = this.router.getCurrentNavigation()?.extras.state;\n this.disableSubmitButton = true;\n this.canLeave = false;\n }\n\n async ionViewWillEnter() {\n this.titleService.setTitle(this.title);\n if (!this.navigationState) {\n this.navController.navigateRoot(['']);\n return;\n }\n\n await this.loadingWrapper.presentLoading('');\n forkJoin([\n this.route.snapshot.data.phoneNumberFormat,\n this.permissionChecker.canCRUDQuotes(),\n this.quoteService.getQuoteQuestions(this.navigationState.quoteId)\n ])\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(([phoneNumberFormat, canCRUDQuotes, getQuoteQuestions]: [PhoneNumberFormat, boolean, ReturnMessage]) => {\n\n this.format = phoneNumberFormat;\n this.phonePlaceholder = this.formatService.createPhonePlaceHolder(this.format);\n this.phoneNumberMask = this.formatService.createPhoneNumberMask(this.format);\n\n this.canCRUDQuotes = canCRUDQuotes;\n this.quoteQuestions = getQuoteQuestions.success ? getQuoteQuestions.payload.questions : [];\n if (!this.quoteQuestions || this.quoteQuestions.length === 0) {\n this.disableSubmitButton = true;\n this.canLeave = true;\n } else {\n this.disableSubmitButton = false;\n this.canLeave = false;\n }\n this.buildForm();\n },\n error => {\n // the api returns HTTP 400 when there is no questions instead of an empty list...\n this.quoteQuestions = [];\n });\n }\n\n buildForm() {\n this.form = this.fb.group({\n questions: this.fb.array([])\n });\n\n for (const question of this.quoteQuestions) {\n let fieldConfiguration = this.getFieldConfigurationByQuestion(question);\n if (fieldConfiguration) {\n let questionInitialValue = question.value;\n\n // The field caller phone number comes unformatted from the database so we need to apply the format first\n if (question.userDefinedField == this.CALLER_PHONE_NUMBER) {\n questionInitialValue = this.formatService.applyPhoneNumberFormat(this.format.phoneNumberFormat, question.value);\n }\n\n this.addQuestion(this.fb.control(questionInitialValue || '', fieldConfiguration.validators));\n }\n }\n }\n\n getFieldConfigurationByQuestion(question: ReturnQuoteQuestion) {\n let dfltConf = this.fieldsConfiguration[this.DFLT_FIELD_CONF_NAME];\n if (!question)\n return dfltConf;\n\n if (question.userDefinedField == this.PURCHASE_ORDER_FIELD) {\n return this.fieldsConfiguration[this.PURCHASE_ORDER_FIELD];\n }\n\n return this.fieldsConfiguration[question.dataType] || dfltConf;\n }\n\n getFieldConfigurationByQuestionIndex(index: number) {\n return this.getFieldConfigurationByQuestion(this.quoteQuestions[index]);\n }\n\n addQuestion(question: FormControl) {\n this.questions.push(question);\n }\n\n getQuestionDescription(index: number) {\n return this.quoteQuestions[index] ? this.quoteQuestions[index].question : '';\n }\n\n getQuestionDataType(index: number) {\n return this.quoteQuestions[index] && this.quoteQuestions[index].dataType ? this.quoteQuestions[index].dataType : this.DFLT_FIELD_CONF_NAME;\n }\n\n getValidationMessages(index: number) {\n let fieldConfiguration = this.getFieldConfigurationByQuestionIndex(index);\n return fieldConfiguration.validationMessages;\n }\n\n getInputMode(index: number) {\n let fieldConfiguration = this.getFieldConfigurationByQuestionIndex(index);\n return fieldConfiguration.inputMode;\n }\n\n addPhoneNumberMissingZeros(formattedPhoneNumber: string) {\n // unapply/apply adds missing zeros at the end\n let unformattedPhoneNumber = this.formatService.unapplyPhoneNumberFormat(this.format.phoneNumberFormat, formattedPhoneNumber);\n let reformattedPhoneNumber = this.formatService.applyPhoneNumberFormat(this.format.phoneNumberFormat, unformattedPhoneNumber);\n return reformattedPhoneNumber;\n }\n\n UpdatePhoneNumber(post: any, i: number) {\n if (this.quoteQuestions[i].userDefinedField == this.CALLER_PHONE_NUMBER) {\n // If the field is caller phone number we need to send back the UNFORMATTED phone number\n let formattedPhoneNumber = this.form.value.questions[i];\n let unformattedPhoneNumber = this.formatService.unapplyPhoneNumberFormat(this.format.phoneNumberFormat, formattedPhoneNumber);\n post.questionsAnswers.push({ id: this.quoteQuestions[i].id, value: unformattedPhoneNumber });\n }\n else {\n // for user defined fields with phone data type we need to send the FORMATTED phone number\n let formattedPhoneNumber = this.addPhoneNumberMissingZeros(this.form.value.questions[i]);\n post.questionsAnswers.push({ id: this.quoteQuestions[i].id, value: formattedPhoneNumber });\n }\n }\n\n async submit() {\n\n if (this.form.valid) {\n this.canLeave = true;\n\n await this.toastWrapper.dismissToast();\n await this.loadingWrapper.presentLoading('');\n\n let post = { questionsAnswers: [] };\n\n for (var i = 0; i < this.quoteQuestions.length; i++) {\n if (this.quoteQuestions[i].dataType == this.PHONE_NBR_DATA_TYPE) {\n this.UpdatePhoneNumber(post, i);\n }\n else {\n post.questionsAnswers.push({ id: this.quoteQuestions[i].id, value: this.form.value.questions[i] });\n }\n }\n\n this.quoteService\n .updateQuoteQuestions(post)\n .pipe(\n finalize(async () => {\n await this.loadingWrapper.dismissLoading();\n })\n )\n .subscribe((response) => {\n if (response.success) {\n this.router.navigate(['..'], { relativeTo: this.route });\n }\n });\n } else {\n await this.toastWrapper.dismissToast();\n await this.toastWrapper.presentErrorToast('Please complete the form');\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AuthGuard } from 'src/app/guards/auth.guard';\nimport { MenuEnabledPageGuard } from 'src/app/guards/menu-enabled-page.guard';\n\nimport { RecommendationEditPage } from './recommendation-edit.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: RecommendationEditPage\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RecommendationEditPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { RecommendationEditPageRoutingModule } from './recommendation-edit-routing.module';\n\nimport { RecommendationEditPage } from './recommendation-edit.page';\nimport { CustomerAndAddressCardModule } from 'src/app/components/customer-and-address-card/customer-and-address-card.module';\nimport { CardSkeletonModule } from 'src/app/components/card-skeleton/card-skeleton.module';\nimport { AutocompleteModule } from 'src/app/components/autocomplete/autocomplete.module';\nimport { PipesModule } from 'src/app/pipes/pipes.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ReactiveFormsModule,\n RecommendationEditPageRoutingModule,\n CustomerAndAddressCardModule,\n CardSkeletonModule,\n AutocompleteModule,\n PipesModule\n ],\n declarations: [RecommendationEditPage]\n})\nexport class RecommendationEditPageModule {}\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ActionSheetController, AlertController, IonContent, NavController } from '@ionic/angular';\nimport { finalize } from 'rxjs/operators';\nimport { CustomerAndAddressHeader } from 'src/app/models/customer-address/customer-and-address-header';\nimport { PostRecommendationUpdate } from 'src/app/models/recommendation/post-recommendation-update';\nimport { RecommendationEditNavigationState } from 'src/app/models/recommendation/recommendation-edit-navigation-state';\nimport { RecommendationEquipmentEditNavigationState } from 'src/app/models/recommendation/recommendation-equipment-edit-navigation-state';\nimport { RecommendationEquipmentListNavigationState } from 'src/app/models/recommendation/recommendation-equipment-list-navigation-state';\nimport { RecommendationEquipmentViewNavigationState } from 'src/app/models/recommendation/recommendation-equipment-view-navigation-state';\nimport { RecommendationFileViewNavigationState } from 'src/app/models/recommendation/recommendation-file-view-navigation-state';\nimport { ResponseStatusLevel } from 'src/app/models/recommendation/response-status-level';\nimport { ReturnRecommendation } from 'src/app/models/recommendation/return-recommendation';\nimport { ReturnRecommendationFile } from 'src/app/models/recommendation/return-recommendation-file';\nimport { ReturnRecommendationHistory } from 'src/app/models/recommendation/return-recommendation-history';\nimport { SearchResultQuote } from 'src/app/models/search/search-result-quote';\nimport { UserDefinedStatusesAutocompleteDataLoaderService } from 'src/app/services/autocomplete-data-loader/user-defined-statuses-autocomplete-data-loader.service';\nimport { CustomerAddressService } from 'src/app/services/customer-address/customer-address.service';\nimport { EquipmentService } from 'src/app/services/equipment/equipment.service';\nimport { LoadingControllerWrapperService } from 'src/app/services/loading-controller-wrapper/loading-controller-wrapper.service';\nimport { PermissionCheckerService } from 'src/app/services/permission-checker/permission-checker.service';\nimport { RecommendationService } from 'src/app/services/recommendation/recommendation.service';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { UtilityService } from 'src/app/services/utility.service';\nimport { XoiService } from 'src/app/services/xoi.service';\nimport { Platform } from '@ionic/angular';\nimport { RecommendationEquipmentAddNavigationState } from 'src/app/models/recommendation/recommendation-equipment-add-navigation-state';\nimport { EquipmentTypeEnum } from 'src/app/models/equipment/equipment-type-enum';\nimport { RecommendationItemListNavigationState } from 'src/app/models/recommendation/recommendation-item-list-navigation-state';\nimport { forkJoin } from 'rxjs';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { ReturnRecommendationPayload } from 'src/app/models/recommendation/return-recommendation-payload';\nimport { ReturnCount } from 'src/app/models/recommendation/return-count';\nimport { ReturnRecommendationFilePayload } from 'src/app/models/recommendation/return-recommendation-file-payload';\nimport { SearchResultEquipmentPayload } from 'src/app/models/search/search-result-equipment-payload';\nimport { FileImageUploadNavigationState } from 'src/app/models/shared/file-image-upload-navigation-state';\nimport { RecommendationFileAudioUploadNavigationState } from 'src/app/models/recommendation/recommendation-file-audio-upload-navigation-state';\nimport { QuoteAddNavigationState } from 'src/app/models/quote/quote-add-navigation-state';\nimport { QuoteEditNavigationState } from 'src/app/models/quote/quote-edit-navigation-state';\nimport { GenericAddStepOneModelEnum } from '../../generic-add-step-one/generic-add-step-one-model-enum';\nimport { CopyRecommendationNavigationState } from 'src/app/models/recommendation/copy-recommendation-navigation-state';\nimport { RecommendationFileUploadNavigationState } from 'src/app/models/recommendation/recommendation-file-upload-navigation-state';\nimport { RecommendationQuestionsNavigationState } from 'src/app/models/recommendation/recommendation-questions-navigation-state';\nimport { Title } from '@angular/platform-browser';\nimport { AppLauncher, CanOpenURLResult } from '@capacitor/app-launcher';\nimport { Browser } from '@capacitor/browser';\nimport { ResponseRegions } from 'src/app/models/shared/response-regions';\n\n@Component({\n selector: 'app-recommendation-edit',\n templateUrl: './recommendation-edit.page.html',\n styleUrls: ['./recommendation-edit.page.scss', '../../../shared-styles/upload-media-buttons.scss'],\n})\nexport class RecommendationEditPage implements OnInit {\n\n @ViewChild('content') content: IonContent;\n\n title: string = '';\n navigationState: RecommendationEditNavigationState;\n header: CustomerAndAddressHeader = null;\n history: ReturnRecommendationHistory[];\n itemCount: number;\n associatedQuotes: SearchResultQuote[];\n statusOfRecommendation: ResponseStatusLevel;\n files: ReturnRecommendationFile[];\n recommendation: ReturnRecommendation = null;\n form: FormGroup;\n canCRUDRecommendations: boolean;\n canUpdateCustomStatus: boolean;\n canCopyRecommendations: boolean;\n canCreateQuote: boolean;\n hasEquipments: boolean;\n isMobilePlatform: boolean;\n regions: ResponseRegions;\n isReadOnly: boolean;\n canCRUDEquipments: boolean;\n\n validation_messages = {\n 'description': [\n { description: 'required', message: 'Description is required.' },\n { description: 'maxlength', message: 'Description max length is 30.' },\n ]\n };\n\n constructor(private router: Router,\n private fb: FormBuilder,\n private route: ActivatedRoute,\n private navController: NavController,\n private titleService: Title,\n private platform: Platform,\n private alertCtrl: AlertController,\n private actionSheetCtrl: ActionSheetController,\n private loadingWrapper: LoadingControllerWrapperService,\n private toastWrapper: ToastControllerWrapperService,\n private customerAddressService: CustomerAddressService,\n private recommendationService: RecommendationService,\n private permissionChecker: PermissionCheckerService,\n private userDataService: UserDataService,\n private equipmentService: EquipmentService,\n private utilitiesService: UtilityService,\n private xoiService: XoiService,\n public userStatusesDataLoader: UserDefinedStatusesAutocompleteDataLoaderService,\n ) {\n this.statusOfRecommendation = { statusLevel: -1 };\n }\n\n async ngOnInit() {\n this.navigationState = this.router.getCurrentNavigation().extras.state;\n this.form = this.fb.group({\n description: [null, [Validators.required, Validators.maxLength(30)]],\n details: [''],\n benefits: [''],\n userDefinedStatus: [null],\n regionId: [''],\n });\n this.isMobilePlatform = this.userDataService.isMobilePlatform();\n this.canCRUDRecommendations = await this.permissionChecker.canCRUDRecommendations();\n this.canUpdateCustomStatus = this.canCRUDRecommendations;\n this.canCopyRecommendations = this.canCRUDRecommendations;\n this.isReadOnly = await this.permissionChecker.isReadOnly();\n }\n\n async ionViewWillEnter() {\n this.title = `Recommendation #${this.navigationState?.recommendationId}`;\n this.titleService.setTitle(this.title);\n if (!this.navigationState) {\n this.navController.navigateRoot(['']);\n return;\n }\n await this.load();\n }\n\n async load() {\n if (!this.navigationState) {\n return;\n }\n\n await this.loadingWrapper.presentLoading('');\n\n forkJoin([\n this.permissionChecker.canCRUDRecommendations(),\n this.permissionChecker.canCRUDEquipments(),\n this.customerAddressService.getHeaderDetails(this.navigationState.addressId, this.navigationState.addressType),\n this.recommendationService.getStatusOfRecommendation(this.navigationState.recommendationId),\n this.recommendationService.get(this.navigationState.recommendationId),\n this.recommendationService.getItemsCount(this.navigationState.recommendationId),\n this.recommendationService.getAssociatedQuotes(this.navigationState.recommendationId),\n this.recommendationService.getHistory(this.navigationState.recommendationId),\n this.recommendationService.getFiles(this.navigationState.recommendationId),\n this.equipmentService.list(this.navigationState.addressId, this.navigationState.addressType),\n this.route.snapshot.data.regions\n ])\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(([canCrudRec, canCrudEquip, getHeaderDetails, getStatusOfRecommendation, get, getItemsCount, getAssociatedQuotes, getHistory, getFiles, list, regions]:\n [boolean,\n boolean,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ReturnMessage,\n ResponseRegions]) => {\n this.canCRUDRecommendations = canCrudRec;\n this.canCRUDEquipments = canCrudEquip;\n this.header = getHeaderDetails.success ? getHeaderDetails.payload : null;\n this.statusOfRecommendation = getStatusOfRecommendation.success ? getStatusOfRecommendation.payload : null;\n this.recommendation = get.success ? get.payload.recommendation : null;\n\n if (this.recommendation) {\n this.form.patchValue({\n description: this.recommendation.description,\n details: this.recommendation.details ? this.recommendation.details : '',\n benefits: this.recommendation.benefits ? this.recommendation.benefits : '',\n userDefinedStatus: this.recommendation.userDefinedStatusId ? { id: this.recommendation.userDefinedStatusId, description: this.recommendation.userDefinedStatus } : null\n });\n\n if (this.recommendation.readOnly) {\n this.canCRUDRecommendations = false;\n }\n }\n\n this.itemCount = getItemsCount.success ? getItemsCount.payload.count : null;\n this.associatedQuotes = getAssociatedQuotes.success ? getAssociatedQuotes.payload : [];\n this.history = getHistory.success ? getHistory.payload : null;\n this.files = getFiles.success ? getFiles.payload.files : [];\n this.hasEquipments = list.success ? list.payload.equipment.length > 0 : false;\n\n this.regions = regions;\n if (this.recommendation && this.recommendation.regionId) {\n this.form.get('regionId').setValue(this.recommendation.regionId.toString(), { emitEvent: false });\n }\n\n this.content.scrollToTop();\n });\n }\n\n async submit() {\n if (this.form.valid) {\n await this.loadingWrapper.presentLoading('');\n\n var post = {\n id: this.recommendation.id,\n description: this.form.value.description,\n benefits: this.form.value.benefits,\n details: this.form.value.details,\n userDefinedStatusId: this.form.value.userDefinedStatus ? this.form.value.userDefinedStatus.id : null,\n regionId: this.form.value.regionId != \"0\" ? this.form.value.regionId : null\n };\n\n this.recommendationService.update(post)\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(response => {\n if (response.success) {\n this.recommendationService.getHistory(this.navigationState.recommendationId)\n .subscribe(response => response.success ? this.history = response.payload : null);\n }\n });\n }\n else {\n this.form.markAllAsTouched();\n await this.toastWrapper.presentErrorToast('Please complete the form');\n }\n }\n\n goToEquipmentAdd() {\n if (this.canCRUDRecommendations) {\n if (this.hasEquipments) {\n this.router.navigate(['equipment-list'], { // show list of available equipments\n relativeTo: this.route,\n state: {\n recommendationId: this.navigationState.recommendationId,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType\n }\n });\n }\n else {\n this.router.navigate(['equipment'], { // add a new equipment\n relativeTo: this.route,\n state: {\n recommendationId: this.navigationState.recommendationId,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType\n }\n });\n }\n }\n else {\n this.toastWrapper.presentErrorToast('You do not have permission to add equipment');\n }\n }\n\n goToEquipmentEdit() {\n if (this.canCRUDRecommendations) {\n \n let canEditEquipment = this.recommendation.equipmentType === EquipmentTypeEnum.RECOMMENDATION_EQUIPMENT || this.recommendation.equipmentType === EquipmentTypeEnum.UPDATE_EQUIPMENT;\n if (canEditEquipment) {\n\n this.router.navigate(['equipment', this.recommendation.equipmentId],\n {\n relativeTo: this.route,\n state: {\n recommendationId: this.recommendation.id,\n equipmentType: this.recommendation.equipmentType,\n equipmentId: this.recommendation.equipmentId,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType,\n isGpEquipmentPendingChanges: this.recommendation.isGpEquipmentPendingChange\n }\n });\n }\n else {\n this.router.navigate(['equipment-view', this.recommendation.equipmentId],\n {\n relativeTo: this.route,\n state: {\n recommendationId: this.recommendation.id,\n equipmentType: this.recommendation.equipmentType,\n equipmentId: this.recommendation.equipmentId,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType,\n isGpEquipmentPendingChange: false\n }\n });\n }\n\n }\n else {\n this.toastWrapper.presentErrorToast('You do not have permission to edit equipment');\n }\n }\n\n goToAddItems() {\n this.router.navigate(['items'], {\n relativeTo: this.route,\n state: {\n recommendationId: this.recommendation.id,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType\n }\n });\n }\n\n goToQuote(quote: SearchResultQuote) {\n this.router.navigate(['quote', quote.id], {\n state: {\n quoteId: quote.id,\n addressId: quote.addressId,\n addressType: quote.addressType\n }\n })\n }\n\n goToRecommendationQuestions() {\n this.router.navigate(['questions'], {\n relativeTo: this.route,\n state: {\n recommendationId: this.navigationState.recommendationId\n }\n });\n }\n\n notifyOffice() {\n this.recommendationService.notifyOffice(this.recommendation.id)\n .subscribe(response => {\n this.toastWrapper.display('The email has been sent.');\n this.recommendationService.getHistory(this.recommendation.id)\n .subscribe(response => this.history = response.payload);\n }\n );\n }\n\n async nofityByEmail() {\n const prompt = await this.alertCtrl.create({\n header: 'Send Email',\n message: \"Please Provide an Email\",\n inputs: [\n {\n name: 'email',\n placeholder: 'example@email.com',\n value: this.recommendation.email\n },\n ],\n buttons: [\n {\n text: 'Cancel',\n handler: data => {\n console.log('Cancel');\n }\n },\n {\n text: 'Send Email',\n handler: data => {\n this.sendEmailWithCustomerEmail(data);\n }\n }\n ]\n });\n await prompt.present();\n }\n\n sendEmailWithCustomerEmail(data) {\n var emailAddressFieldValidation = this.utilitiesService.validateEmailAddressField(data.email);\n if (!emailAddressFieldValidation.validEmailAddressField) {\n this.toastWrapper.presentErrorToast(emailAddressFieldValidation.errorMessage);\n }\n else {\n this.recommendationService.notifyCustomerWithCustomerEmail(this.recommendation.id, data).subscribe(\n data => {\n this.toastWrapper.display('The email has been sent.');\n this.recommendationService.getHistory(this.recommendation.id)\n .subscribe(data => this.history = data.payload);\n }\n );\n }\n }\n\n createQuote() {\n this.router.navigate(['quote'], {\n state: {\n recommendationId: this.navigationState.recommendationId,\n addressId: this.navigationState.addressId,\n addressType: this.navigationState.addressType\n }\n })\n }\n\n goToFileAudioUpload() {\n this.router.navigate(['audio-upload'], {\n relativeTo: this.route,\n state: {\n recommendationId: this.navigationState.recommendationId,\n existingFileNames: this.files.map(f => f.name)\n }\n });\n }\n\n goToFileImageUpload() {\n this.router.navigate(['image-upload'], {\n relativeTo: this.route,\n state: { \n recommendationId: this.navigationState.recommendationId,\n existingFileNames: this.files.map(f => f.name)\n },\n });\n }\n\n goToFileUpload() {\n this.router.navigate(['file-upload'], {\n relativeTo: this.route,\n state: {\n recommendationId: this.navigationState.recommendationId\n }\n });\n }\n\n async presentFileActionSheet(uploadedFile) {\n var buttons = this.getFileActionSheetOptions(uploadedFile);\n const actionSheet = await this.actionSheetCtrl.create({\n header: uploadedFile.name + \" - \" + uploadedFile.createdDate,\n buttons: buttons\n });\n await actionSheet.present();\n }\n\n getFileActionSheetOptions(uploadedFile: ReturnRecommendationFile) {\n var buttonsForSheet = [];\n buttonsForSheet.push(\n {\n text: 'View',\n icon: 'eye',\n handler: () => {\n this.router.navigate(['file-view', uploadedFile.id], {\n relativeTo: this.route,\n state: {\n file: uploadedFile,\n recommendation: this.recommendation,\n header: this.header\n }\n });\n }\n }\n );\n if (this.recommendation.allowFileDeletion && this.isReadOnly == false) {\n buttonsForSheet.push(\n {\n text: 'Delete',\n icon: 'trash',\n handler: () => {\n this.recommendationService.deleteFile(uploadedFile.id).subscribe(\n response => {\n if (response.success) {\n this.recommendationService.getFiles(this.navigationState.recommendationId)\n .subscribe(response => response.success ? this.files = response.payload.files : []);\n }\n }\n );\n }\n }\n );\n }\n buttonsForSheet.push(\n {\n text: 'Cancel',\n role: 'cancel',\n icon: 'close'\n }\n );\n return buttonsForSheet;\n }\n\n async createXoiJob() {\n await this.loadingWrapper.presentLoading('');\n this.xoiService.createXoiJobAndJobShare(this.navigationState.recommendationId)\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(\n response => {\n if (response.success) {\n this.recommendation.xoiJobId = response.payload.xoiJobInfo.JobId;\n this.recommendation.xoiShareLink = response.payload.xoiJobInfo.ShareLink;\n this.recommendation.xoiJobDetails = response.payload.xoiJobInfo.JobDetails;\n this.toastWrapper.display(\"XOi Vision job created.\");\n }\n }\n );\n }\n\n launchXoi() {\n if (this.isMobilePlatform) {\n this.launchExternalApp();\n }\n else {\n window.open(this.recommendation.xoiShareLink, '_blank');\n }\n }\n\n launchExternalApp() {\n\n if (this.platform.is('android') || this.platform.is('ios')) {\n var xoiShareLink = this.recommendation.xoiShareLink;\n var jsonObj = {\n \"jobId\": this.recommendation.xoiJobId,\n \"owner\": this.recommendation.xoiJobDetails[\"assigneeId\"],\n \"jobLocation\": this.recommendation.xoiJobDetails[\"jobLocation\"],\n \"customerName\": this.recommendation.xoiJobDetails[\"customerName\"],\n \"workOrderNumber\": this.recommendation.xoiJobDetails[\"workOrderNumber\"],\n \"supportsMultipleWorkflows\": true\n };\n\n var jsonObjStringified = JSON.stringify(jsonObj);\n console.log(\"Deeplink JSON payload:\", jsonObjStringified);\n var jsonEncodedXoiJobString = encodeURI(jsonObjStringified);\n var uri = \"xoi-vision://my-work/edit?payload=\" + jsonEncodedXoiJobString\n var packageName = 'io.xoi.vision.ea';\n\n console.log('Starting/loading XOi Vision job page.');\n AppLauncher.openUrl({ url: uri }).catch(function(err) {\n // If the deeplink failed then open the browser\n console.log('Error starting/loading XOi Vision job page. ' + err);\n console.log('Starting/loading browser job page.');\n Browser.open({ url: xoiShareLink }).catch(function(err2) {\n console.log('Error starting/loading browser job page. ' + err2);\n });\n });\n }\n else {\n //we only support android and ios. If any other os, then load the web url.\n window.open(this.recommendation.xoiShareLink, '_blank');\n }\n\n }\n\n trackById(index: number, item: any): number {\n return item.id;\n }\n\n copyRecommendation() {\n this.router.navigate(['select-customer', GenericAddStepOneModelEnum.RECOMMENDATION_COPY], {\n state: {\n srcRecommendationId: this.navigationState.recommendationId\n }\n });\n }\n\n regionUpdated(event) {\n if (event.target.value == 0) {\n this.form.get('regionId').setValue('');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { RecommendationQuestionsPage } from './recommendation-questions.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: RecommendationQuestionsPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RecommendationQuestionsPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { RecommendationQuestionsPageRoutingModule } from './recommendation-questions-routing.module';\n\nimport { RecommendationQuestionsPage } from './recommendation-questions.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n RecommendationQuestionsPageRoutingModule,\n ReactiveFormsModule\n ],\n declarations: [RecommendationQuestionsPage]\n})\nexport class RecommendationQuestionsPageModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NavController } from '@ionic/angular';\nimport { forkJoin } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { RecommendationQuestionsNavigationState } from 'src/app/models/recommendation/recommendation-questions-navigation-state';\nimport { ReturnRecommendationQuestion } from 'src/app/models/recommendation/return-recommendation-question';\nimport { ReturnRecommendationQuestionsPayload } from 'src/app/models/recommendation/return-recommendation-questions-payload';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { LoadingControllerWrapperService } from 'src/app/services/loading-controller-wrapper/loading-controller-wrapper.service';\nimport { PermissionCheckerService } from 'src/app/services/permission-checker/permission-checker.service';\nimport { RecommendationService } from 'src/app/services/recommendation/recommendation.service';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\n\n@Component({\n selector: 'app-recommendation-questions',\n templateUrl: './recommendation-questions.page.html',\n styleUrls: ['./recommendation-questions.page.scss'],\n})\nexport class RecommendationQuestionsPage implements OnInit {\n\n title: string = 'Recommendation Questions';\n questions: ReturnRecommendationQuestion[] = null;\n disableSubmitButton: boolean;\n canLeave: boolean;\n canCRUDRecommendations: boolean;\n form: FormGroup = new FormGroup({});\n navigationState: RecommendationQuestionsNavigationState;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private navController: NavController,\n private titleService: Title,\n private loadingWrapper: LoadingControllerWrapperService,\n private toastWrapper: ToastControllerWrapperService,\n private permissionChecker: PermissionCheckerService,\n private recommendationService: RecommendationService\n ) { }\n\n ngOnInit() {\n this.navigationState = this.router.getCurrentNavigation()?.extras.state;\n this.disableSubmitButton = true;\n this.canLeave = false;\n }\n\n async ionViewWillEnter() {\n this.titleService.setTitle(this.title);\n if (!this.navigationState) {\n this.navController.navigateRoot(['']);\n return;\n }\n\n await this.loadingWrapper.presentLoading('');\n forkJoin([\n this.permissionChecker.canCRUDRecommendations(),\n this.recommendationService.getRecommendationQuestions(this.navigationState.recommendationId)\n ])\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(([canCRUDRecommendations, getRecommendationQuestions]: [boolean, ReturnMessage]) => {\n this.canCRUDRecommendations = canCRUDRecommendations;\n this.questions = getRecommendationQuestions.success ? getRecommendationQuestions.payload.questions : null;\n\n if (!this.questions || this.questions.length === 0) {\n this.disableSubmitButton = true;\n this.canLeave = true;\n } else {\n // Build the form dynamically based on the existing list of questions.\n const group: any = {};\n for (const question of this.questions) {\n group[question.id] = new FormControl(question.value || '');\n }\n this.form = new FormGroup(group);\n\n this.disableSubmitButton = false;\n this.canLeave = false;\n }\n });\n }\n\n async submit() {\n if (this.form.valid) {\n this.canLeave = true;\n\n await this.toastWrapper.dismissToast();\n await this.loadingWrapper.presentLoading('');\n\n let post = {\n questionsAnswers: [],\n };\n\n for (const key in this.form.value) {\n post.questionsAnswers.push({ id: key, value: this.form.value[key] });\n }\n\n this.recommendationService\n .updateRecommendationQuestions(post)\n .pipe(\n finalize(async () => {\n await this.loadingWrapper.dismissLoading();\n })\n )\n .subscribe((response) => {\n if (response.success) {\n this.router.navigate(['..'], { relativeTo: this.route });\n }\n });\n } else {\n await this.toastWrapper.dismissToast();\n await this.toastWrapper.presentErrorToast('Please complete the form');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { SearchResultsPage } from './search-results.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: SearchResultsPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SearchResultsPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { SearchResultsPageRoutingModule } from './search-results-routing.module';\n\nimport { SearchResultsPage } from './search-results.page';\nimport { CustomerAddressCardModule } from 'src/app/components/customer-address-card/customer-address-card.module';\nimport { EquipmentCardModule } from 'src/app/components/equipment-card/equipment-card.module';\nimport { RecommendationCardModule } from 'src/app/components/recommendation-card/recommendation-card.module';\nimport { QuoteCardModule } from 'src/app/components/quote-card/quote-card.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n SearchResultsPageRoutingModule,\n CustomerAddressCardModule,\n EquipmentCardModule,\n RecommendationCardModule,\n QuoteCardModule\n ],\n declarations: [SearchResultsPage]\n})\nexport class SearchResultsPageModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { Router } from '@angular/router';\nimport { NavController } from '@ionic/angular';\nimport { CustomerAddressTypeEnum } from 'src/app/models/customer-address/customer-address-type-enum';\nimport { QuoteEditNavigationState } from 'src/app/models/quote/quote-edit-navigation-state';\nimport { RecommendationEditNavigationState } from 'src/app/models/recommendation/recommendation-edit-navigation-state';\nimport { RecommendationEquipmentEditNavigationState } from 'src/app/models/recommendation/recommendation-equipment-edit-navigation-state';\nimport { SearchResultCustomerAddress } from 'src/app/models/search/search-result-customer-address';\nimport { SearchResultEquipment } from 'src/app/models/search/search-result-equipment';\nimport { SearchResultQuote } from 'src/app/models/search/search-result-quote';\nimport { SearchResultRecommendation } from 'src/app/models/search/search-result-recommendation';\nimport { SearchResults } from 'src/app/models/search/search-results';\nimport { SurveyProspectCustomerAddressViewNavigationState } from 'src/app/models/survey-customer-address/survey-prospect-customer-address-view-navigation-state';\nimport { SurveyEquipmentEditNavidationState } from 'src/app/models/survey-equipment/survey-equipment-edit-navidation-state';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\nimport { PermissionCheckerService } from '../../../services/permission-checker/permission-checker.service';\n\n@Component({\n selector: 'app-search-results',\n templateUrl: './search-results.page.html',\n styleUrls: ['./search-results.page.scss'],\n})\nexport class SearchResultsPage implements OnInit {\n\n title: string = 'Search Results';\n searchResults: SearchResults;\n canCRUDQuotes: boolean;\n canCRUDRecommendations: boolean;\n\n constructor(\n private router: Router,\n private navController: NavController,\n private titleService: Title,\n private toastWrapper: ToastControllerWrapperService,\n private permissionChecker: PermissionCheckerService\n ) {\n this.searchResults = this.router.getCurrentNavigation().extras.state;\n if (!this.searchResults) {\n this.navController.navigateRoot(['']);\n }\n }\n\n ngOnInit() {\n \n }\n\n async ionViewWillEnter() {\n this.titleService.setTitle(this.title);\n this.canCRUDQuotes = await this.permissionChecker.canCRUDQuotes();\n this.canCRUDRecommendations = await this.permissionChecker.canCRUDRecommendations();\n }\n\n goToRecommendation(recommendation: SearchResultRecommendation) {\n if (recommendation.customerAndAddressExist) {\n this.router.navigate(['recommendation', recommendation.id], {\n state: {\n recommendationId: recommendation.id,\n addressId: recommendation.customerAddressId,\n addressType: recommendation.customerAddressType\n }\n });\n }\n else {\n this.toastWrapper.presentErrorToast('Customer/Address not found.');\n }\n }\n\n goToQuoteEdit(quote: SearchResultQuote) {\n if (quote.customerAndAddressExist) {\n this.router.navigate(['quote', quote.id], {\n state: {\n quoteId: quote.id,\n addressId: quote.addressId,\n addressType: quote.addressType\n }\n });\n }\n else {\n this.toastWrapper.presentErrorToast('Customer/Address not found.');\n }\n }\n\n goToSurveyEquipment(equipment: SearchResultEquipment) {\n switch (equipment.addressType) {\n case CustomerAddressTypeEnum.SURVEY_PROSPECT_CUSTOMER_ADDRESS:\n this.router.navigate(['survey-prospect-customer-address-view', equipment.addressId, 'survey-equipment', equipment.id],\n {\n state: {\n equipmentId: parseInt(equipment.id),\n surveyCustomerAddressId: parseInt(equipment.addressId),\n }\n });\n break;\n case CustomerAddressTypeEnum.EXISTING_CUSTOMER_ADDRESS:\n let addressId = `${equipment.customerNumber}-${equipment.addressCode}`;\n this.router.navigate(['customer-address-view', equipment.addressType, addressId, 'survey-equipment', equipment.id],\n {\n state: {\n equipmentId: parseInt(equipment.id),\n addressId: addressId,\n addressType: equipment.addressType\n }\n });\n break;\n default:\n throw `Invalid address type: ${equipment.addressType}`;\n }\n }\n\n goToPendingEquipment(equipment: SearchResultEquipment) {\n if (!equipment.addressType) {\n this.toastWrapper.presentErrorToast('Invalid adress type');\n }\n this.router.navigate(['customer-address-view', equipment.addressType, equipment.addressId, 'equipment', equipment.id],\n {\n state: {\n equipmentType: equipment.entitytype,\n equipmentId: equipment.id,\n addressId: equipment.addressId,\n addressType: equipment.addressType\n }\n });\n }\n\n goToExistingEquipment(equipment: SearchResultEquipment) {\n if (!equipment.addressType) {\n this.toastWrapper.presentErrorToast('Invalid adress type');\n }\n this.router.navigate(['customer-address-view', equipment.addressType, equipment.addressId, 'equipment', equipment.id],\n {\n state: {\n equipmentType: equipment.entitytype,\n equipmentId: equipment.id,\n addressId: equipment.addressId,\n addressType: equipment.addressType\n }\n });\n }\n\n goToSurveyCustomerAddress(address: SearchResultCustomerAddress) {\n this.router.navigate(['survey-prospect-customer-address-view', address.id], {\n state: {\n addressId: parseInt(address.id)\n }\n })\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { SearchPage } from './search.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: SearchPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SearchPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { SearchPageRoutingModule } from './search-routing.module';\n\nimport { SearchPage } from './search.page';\nimport { DatetimeModalModule } from 'src/app/components/datetime-modal/datetime-modal.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n SearchPageRoutingModule,\n DatetimeModalModule\n ],\n declarations: [SearchPage]\n})\nexport class SearchPageModule {}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { finalize } from 'rxjs/operators';\nimport { QuoteStatus } from 'src/app/models/quote/quote-status';\nimport { RecommendationStatus } from 'src/app/models/recommendation/recommendation-status';\nimport { RecommendationUserDefinedStatus } from 'src/app/models/recommendation/recommendation-user-defined-status';\nimport { PostSearch } from 'src/app/models/search/post-search';\nimport { LoadingControllerWrapperService } from 'src/app/services/loading-controller-wrapper/loading-controller-wrapper.service';\nimport { ToastControllerWrapperService } from 'src/app/services/toast-controller-wrapper/toast-controller-wrapper.service';\nimport { UserService } from 'src/app/services/user/user.service';\nimport { Geolocation } from '@capacitor/geolocation';\nimport { PostFieldFromGpsGet } from 'src/app/models/search/post-field-from-gps-get';\nimport { BarcodeScanner } from '@capacitor-community/barcode-scanner';\nimport { UserDataService } from 'src/app/services/user-data/user-data.service';\nimport { forkJoin } from 'rxjs';\nimport { Title } from '@angular/platform-browser';\nimport { SearchResults } from 'src/app/models/search/search-results';\n\n@Component({\n selector: 'app-search',\n templateUrl: './search.page.html',\n styleUrls: ['./search.page.scss', '../../../shared-styles/barcode-scanner.scss'],\n})\nexport class SearchPage implements OnInit, OnDestroy {\n\n title: string = 'Search';\n recommendationStatuses: RecommendationStatus[] = [];\n recommendationUserDefinedStatus: RecommendationUserDefinedStatus = { description: 'Custom Status' };\n quoteStatuses: QuoteStatus[] = [];\n postSearch: PostSearch = {};\n isMobilePlatform: boolean;\n scanActive: boolean;\n\n constructor(private route: ActivatedRoute,\n private router: Router,\n private titleService: Title,\n private toastWrapper: ToastControllerWrapperService,\n private loadingWrapper: LoadingControllerWrapperService,\n private userService: UserService,\n private userData: UserDataService\n ) { }\n\n async ngOnInit() {\n this.isMobilePlatform = this.userData.isMobilePlatform();\n this.postSearch = {};\n\n await this.loadingWrapper.presentLoading('');\n forkJoin([\n this.route.snapshot.data.recommendationStatus,\n this.route.snapshot.data.quoteStatus,\n this.route.snapshot.data.recommendationUserDefinedStatus\n ])\n .pipe(finalize(async () => await this.loadingWrapper.dismissLoading()))\n .subscribe(([recommendationStatus, quoteStatus, recommendationUserDefinedStatus]: [RecommendationStatus[], QuoteStatus[], RecommendationUserDefinedStatus]) => {\n this.recommendationStatuses = recommendationStatus,\n this.quoteStatuses = quoteStatus,\n this.recommendationUserDefinedStatus = recommendationUserDefinedStatus\n });\n }\n\n ionViewWillEnter() {\n this.titleService.setTitle(this.title);\n }\n \n ngOnDestroy() {\n this.stopScanner();\n }\n\n async submitSearch() {\n\n await this.toastWrapper.dismissToast();\n await this.loadingWrapper.presentLoading('');\n\n this.userService.search(this.postSearch)\n .pipe(finalize(async () => {\n await this.loadingWrapper.dismissLoading();\n }))\n .subscribe(\n async response => {\n if (response.success) {\n if (this.resultsFound(response.payload)) {\n this.router.navigate(['/search-results'], { state: response.payload })\n }\n else {\n await this.toastWrapper.presentErrorToast('There were no search results.');\n }\n }\n }\n );\n }\n\n resultsFound(results: SearchResults) {\n return results.exisitingCustomerResults.length > 0\n || results.existingEquipmentResults.length > 0\n || results.prospectCustomerResults.length > 0\n || results.quoteResults.length > 0\n || results.recommendationEquipmentResults.length > 0\n || results.recommendationResults.length > 0\n || results.surveyCustomerResults.length > 0\n || results.surveyEquipmentResults.length > 0;\n }\n\n async triggerGpsPopulation() {\n try {\n\n await this.loadingWrapper.presentLoading('');\n\n const position = await Geolocation.getCurrentPosition();\n let coordinates = {\n longitude: position.coords.longitude,\n latitude: position.coords.latitude\n };\n\n this.userService.getFieldsFromGps(coordinates)\n .pipe(finalize(async () => {\n await this.loadingWrapper.dismissLoading();\n }))\n .subscribe(\n async response => {\n if (response.success) {\n this.postSearch.city = response.payload.city;\n this.postSearch.street = response.payload.street;\n this.postSearch.street_number = response.payload.streetNumber;\n }\n else {\n await this.toastWrapper.presentErrorToast(response.message);\n }\n }\n );\n\n } catch (error) {\n await this.loadingWrapper.dismissLoading();\n this.toastWrapper.presentErrorToast('Cannot get your current location.');\n }\n\n }\n\n async triggerBarcodeScanner() {\n if (this.isMobilePlatform) {\n const allowed = await BarcodeScanner.checkPermission({ force: true });\n if (allowed.granted) {\n this.scanActive = true;\n await BarcodeScanner.hideBackground();\n const result = await BarcodeScanner.startScan();\n if (result.hasContent) {\n this.postSearch.serial_number = result.content;\n this.scanActive = false;\n }\n }\n }\n }\n\n stopScanner() {\n if (this.isMobilePlatform) {\n BarcodeScanner.stopScan().catch(reason => {\n console.log(\"Stopping barcode scanner: \", reason);\n });\n }\n this.scanActive = false;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AutocompleteOption } from '../components/autocomplete/autocomplete-option';\n\n@Pipe({\n name: 'customerFilter'\n})\nexport class CustomerFilterPipe implements PipeTransform {\n\n transform(value: AutocompleteOption[], type: string): any {\n return value.filter(v => v.sourceObject.type === type)\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'join'\n})\nexport class JoinPipe implements PipeTransform {\n\n transform(separator: string, ...args: any[]): unknown {\n\n\n var filtered = [];\n if (!args) return '';\n\n if (!separator) separator = ', ';\n for(var i = 0; i < args.length; i++) {\n if (args[i]) {\n filtered.push(args[i]);\n }\n }\n return filtered.join(separator);\n\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'keyValueFilter'\n})\nexport class KeyValueFilterPipe implements PipeTransform {\n\n // transform(value: unknown, ...args: unknown[]): unknown {\n // return null;\n // }\n\n transform(value): any[] {\n let keys = [];\n for (let key in value) {\n keys.push({ key: key, value: value[key] });\n }\n return keys;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomerFilterPipe } from './customer-filter.pipe';\nimport { JoinPipe } from './join.pipe';\nimport { KeyValueFilterPipe } from './key-value-filter.pipe';\nimport { FormsModule } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { StringDateFormatterPipe } from './string-date-formatter.pipe';\nimport { SlugifyPipe } from './slugify.pipe';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule\n ],\n declarations: [CustomerFilterPipe, JoinPipe, KeyValueFilterPipe, StringDateFormatterPipe, SlugifyPipe],\n exports: [CustomerFilterPipe, JoinPipe, KeyValueFilterPipe, StringDateFormatterPipe, SlugifyPipe]\n})\nexport class PipesModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'slugify'\n})\nexport class SlugifyPipe implements PipeTransform {\n\n transform(str: string): string {\n return typeof str === 'string'\n ? str.toLowerCase().replace(/\\s+/g, '-')\n : str;\n}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\nimport { environment } from 'src/environments/environment';\n\n@Pipe({\n name: 'stringDateFormatter'\n})\nexport class StringDateFormatterPipe implements PipeTransform {\n\n transform(value: string, inFormat: string = 'YYYY-MM-DD', outFormat: string = environment.DATE_OUTPUT_FORMAT): unknown {\n if (!value || value === '')\n return '';\n\n if (!inFormat) {\n inFormat = 'YYYY-MM-DD';\n }\n\n if (!outFormat) {\n outFormat = environment.DATE_OUTPUT_FORMAT;\n }\n\n return moment(value, inFormat).format(outFormat);\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { CustomerLocationFieldRequirements } from \"src/app/models/customer-address/customer-location-field-requirements\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\n\n@Injectable()\nexport class CustomerLocationFieldRequirementsResolver implements Resolve {\n \n constructor(private customerService: CustomerService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getCustomerLocationFieldRequirements().pipe(map(response => { \n if (response.success) {\n return response.payload.requirements;\n }\n else {\n return {\n customerNumber: false,\n addressCode: false,\n addressName: false\n };\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { GenericSelectOptions } from \"src/app/models/shared/generic-select-options\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\n\n@Injectable()\nexport class LaborRateGroupResolver implements Resolve {\n \n constructor(private customerService: CustomerService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getLaborRateGroupOptions().pipe(map(response => { \n if (response.success) {\n return response.payload;\n }\n else {\n return { defaultOption: '', options: []};\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { PhoneNumberFormat } from \"src/app/models/customer/phone-number-format\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\nimport { FormatService } from \"src/app/services/format/format.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Injectable()\nexport class PhoneNumberFormatResolver implements Resolve {\n\n constructor(private customerService: CustomerService, private formatService: FormatService) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getPhoneNumberFormat().pipe(map(response => {\n let format = null;\n if (response.success) {\n format = response.payload;\n format.phoneNumberFormat = this.formatService.validatePhoneNumberFormat(format.phoneNumberFormat);\n }\n else {\n format = { phoneNumberFormat: environment.DEFAULT_PHONE_NUMBER_FORMAT };\n }\n return format;\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { GenericSelectOptions } from \"src/app/models/shared/generic-select-options\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\n\n@Injectable()\nexport class PriceMatrixResolver implements Resolve {\n \n constructor(private customerService: CustomerService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getPriceMatrixOptions().pipe(map(response => { \n if (response.success) {\n return response.payload;\n }\n else {\n return { defaultOption: '', options: []};\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { QuoteStatus } from \"src/app/models/quote/quote-status\";\nimport { QuoteService } from \"src/app/services/quote/quote.service\";\n\n@Injectable()\nexport class QuoteStatusResolver implements Resolve {\n \n constructor(private quoteService: QuoteService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.quoteService.getStatus().pipe(map(response => { \n if (response.success) {\n return response.payload.statuses;\n }\n else {\n return [];\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { RecommendationStatus } from \"src/app/models/recommendation/recommendation-status\";\nimport { RecommendationService } from \"src/app/services/recommendation/recommendation.service\";\n\n@Injectable()\nexport class RecommendationStatusResolver implements Resolve {\n \n constructor(private recommendationService: RecommendationService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.recommendationService.getStatus().pipe(map(response => { \n if (response.success) {\n return response.payload.statuses;\n }\n else {\n return [];\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { RecommendationUserDefinedStatus } from \"src/app/models/recommendation/recommendation-user-defined-status\";\nimport { RecommendationService } from \"src/app/services/recommendation/recommendation.service\";\n\n@Injectable()\nexport class RecommendationUserDefinedStatusResolver implements Resolve {\n \n constructor(private recommendationService: RecommendationService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.recommendationService.getRecommendationUserDefinedStatusDescription().pipe(map(response => { \n if (response.success) {\n return response.payload;\n }\n else {\n return { description: '' };\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { ResponseRegions } from \"src/app/models/shared/response-regions\";\nimport { RecommendationService } from \"src/app/services/recommendation/recommendation.service\";\n\n@Injectable()\nexport class RegionResolver implements Resolve> {\n\n constructor(private recommendationService: RecommendationService) { }\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.recommendationService.getRegions()\n .pipe(map(response => {\n if (response.success) {\n return response.payload;\n }\n else {\n return {\n options: [],\n defaultOption: null,\n lockRegion: false\n };\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve(response) });\n return responsePromise;\n }\n\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { GenericSelectOptions } from \"src/app/models/shared/generic-select-options\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\n\n@Injectable()\nexport class TaxScheduleResolver implements Resolve {\n \n constructor(private customerService: CustomerService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getTaxSchedule().pipe(map(response => { \n if (response.success) {\n return response.payload;\n }\n else {\n return { defaultOption: '', options: []};\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n}","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from \"@angular/router\";\nimport { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\"\nimport { GenericSelectOptions } from \"src/app/models/shared/generic-select-options\";\nimport { CustomerService } from \"src/app/services/customer/customer.service\";\n\n@Injectable()\nexport class TechnicianResolver implements Resolve {\n \n constructor(private customerService: CustomerService) {}\n\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> {\n const response = this.customerService.getTechnicians().pipe(map(response => { \n if (response.success) {\n return response.payload;\n }\n else {\n return { defaultOption: '', options: []};\n }\n }));\n const responsePromise = new Promise>((resolve, reject) => { resolve( response )});\n return responsePromise;\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAutocompleteDataLoader } from 'src/app/components/autocomplete/abstract-autocomplete-data-loader';\nimport { AutocompleteOption } from 'src/app/components/autocomplete/autocomplete-option';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { UserService } from '../user/user.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserAutocompleteDataLoaderService extends AbstractAutocompleteDataLoader {\n\n constructor(private userService: UserService) {super();}\n\n load(searchTerm: string): Observable> {\n var postFilterFields = { search: searchTerm };\n return this.userService.autocompleteUsers(postFilterFields)\n .pipe(\n map(response => {\n if (response.success) {\n response.payload = this.fromDictionary(response.payload.users);\n }\n return response;\n })\n );\n }\n\n loadAll(): Observable> {\n var postFilterFields = { searchAll: true };\n return this.userService.autocompleteUsers(postFilterFields)\n .pipe(\n map(response => {\n if (response.success) {\n response.payload = this.fromDictionary(response.payload.users);\n }\n return response;\n })\n );\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAutocompleteDataLoader } from 'src/app/components/autocomplete/abstract-autocomplete-data-loader';\nimport { AutocompleteOption } from 'src/app/components/autocomplete/autocomplete-option';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { RecommendationService } from '../recommendation/recommendation.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserDefinedStatusesAutocompleteDataLoaderService extends AbstractAutocompleteDataLoader {\n\n constructor(private recommendationService: RecommendationService) {super();}\n\n load(searchTerm: string): Observable> {\n var postFilterFields = { search: searchTerm };\n return this.recommendationService.autocompleteUserDefinedStatuses(postFilterFields)\n .pipe(\n map(response => {\n if (response.success) {\n response.payload = this.fromDictionary(response.payload);\n }\n return response;\n })\n );\n }\n\n loadAll(): Observable> {\n var postFilterFields = { searchAll: true };\n return this.recommendationService.autocompleteUserDefinedStatuses(postFilterFields)\n .pipe(\n map(response => {\n if (response.success) {\n response.payload = this.fromDictionary(response.payload);\n }\n return response;\n })\n );\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { CustomerAndAddressHeader } from 'src/app/models/customer-address/customer-and-address-header';\nimport { PostExistingCustomerProspectCustomerAddressCreate } from 'src/app/models/customer-address/post-existing-customer-prospect-customer-address-create';\nimport { PostProspectCustomerAddressCreate } from 'src/app/models/customer-address/post-prospect-customer-address-create';\nimport { PostProspectCustomerAddressUpdate } from 'src/app/models/customer-address/post-prospect-customer-address-update';\nimport { ResponseCreateCustomerAddress } from 'src/app/models/customer-address/response-create-customer-address';\nimport { ReturnGenericAddressPayload } from 'src/app/models/customer-address/return-generic-address-payload';\nimport { SearchResultCustomerAddressPayload } from 'src/app/models/customer-address/search-result-customer-address-payload';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerAddressService {\n\n private apis = {\n add: 'zmp_existingCustomerProspectCustomerAddress/Create/',\n update: 'zmp_existingCustomerProspectCustomerAddress/Update',\n addProspect: 'zmp_prospectCustomerAddress/Create/',\n updateProspect: 'zmp_prospectCustomerAddress/Update',\n getGeneric: 'mfqAppAddress/Get',\n getHeaderDetails: 'utility/GetCustomerAndAddressHeader',\n search: 'mfqAppAddress/Index/'\n };\n\n constructor(\n private http: HttpClient) { }\n\n search(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.search, data);\n }\n\n add(data: PostExistingCustomerProspectCustomerAddressCreate) {\n return this.http.post>(this.apis.add, data);\n }\n\n addProspect(data: PostProspectCustomerAddressCreate): Observable> {\n return this.http.post>(this.apis.addProspect, data);\n }\n\n update(data: PostProspectCustomerAddressUpdate) {\n return this.http.post>(this.apis.update, data);\n }\n\n updateProspect(data: PostProspectCustomerAddressUpdate): Observable> {\n return this.http.post>(this.apis.updateProspect, data);\n }\n\n getGeneric(id: string, type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n return this.http.get>(this.apis.getGeneric, options);\n }\n\n getHeaderDetails(id: string, type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n return this.http.get>(this.apis.getHeaderDetails, options);\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ResponseCreateProspectCustomerPayload } from 'src/app/models/customer/response-create-prospect-customer-payload';\nimport { PhoneNumberFormat } from 'src/app/models/customer/phone-number-format';\nimport { PostCustomerIndex } from 'src/app/models/customer/post-customer-index';\nimport { PostProspectCustomerCreate } from 'src/app/models/customer/post-prospect-customer-create';\nimport { SearchResultCustomerPayload } from 'src/app/models/customer/search-result-customer-payload';\nimport { CustomerLocationFieldRequirementsPayload } from 'src/app/models/customer-address/customer-location-field-requirements-payload';\nimport { SearchResultGenericCustomerAddressPayload } from 'src/app/models/customer-address/search-result-generic-customer-address-payload';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { GenericSelectOptions } from 'src/app/models/shared/generic-select-options';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { CustomerTypeEnum } from 'src/app/models/customer/customer-type-enum';\nimport { ReturnGenericCustomerPayload } from 'src/app/models/customer/return-generic-customer-payload';\nimport { PostProspectCustomerUpdate } from 'src/app/models/customer/post-prospect-customer-update';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomerService {\n\n private apis = {\n add: 'zmp_prospectCustomer/Create',\n update: 'zmp_prospectCustomer/Update',\n get: 'zmp_customer/Get/',\n getGeneric: 'mfqAppCustomer/Get/',\n getGenericAddresses: 'mfqAppCustomer/GetAddresses/',\n getAddresses: 'zmp_customer/GetAddresses/',\n nameSearch: 'mfqAppCustomer/Index/',\n getLabourRateGroupOptions: 'utility/GetLabourRateGroups/',\n getPriceMatrixOptions: 'utility/GetPriceMatrix/',\n getTaxSchedule: 'utility/GetTaxSchedule/',\n autocompleteMasterLocationGroup: 'utility/AutocompleteMasterLocationGroup/',\n customerLocationFieldRequirements: 'utility/GetCustomerAndLocationFieldRequirements/',\n getPhoneNumberFormat: 'utility/GetPhoneNumberFormat/',\n getTechnicians: 'utility/GetTechnicians'\n };\n\n constructor(\n private http: HttpClient) { }\n\n autocompleteMasterLocationGroup(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteMasterLocationGroup, data);\n }\n\n getLaborRateGroupOptions(): Observable> {\n return this.http.get>(this.apis.getLabourRateGroupOptions);\n }\n\n getTaxSchedule(): Observable> {\n return this.http.get>(this.apis.getTaxSchedule);\n }\n\n getPriceMatrixOptions(): Observable> {\n return this.http.get>(this.apis.getPriceMatrixOptions);\n }\n\n\n add(data: PostProspectCustomerCreate): Observable> {\n return this.http.post>(this.apis.add, data);\n }\n\n update(data: PostProspectCustomerUpdate): Observable> {\n return this.http.post>(this.apis.update, data);\n }\n\n // get(id) {\n // var params = { id: id };\n // return this.http\n // .get(this.apis.get, params)\n // .map(this.extractData);\n // }\n\n getGeneric(id: string | number, type: string | CustomerTypeEnum): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n return this.http.get>(this.apis.getGeneric, options);\n }\n\n\n // getAddresses(id) {\n // var params = { id: id };\n // return this.http\n // .get(this.apis.getAddresses, params)\n // .map(this.extractData);\n // }\n\n\n getGenericAddresses(id: string, type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n return this.http\n .get>(this.apis.getGenericAddresses, options);\n }\n\n getAllGenericAddresses(id: string | number, type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n const data = { noResultLimit: true };\n return this.http\n .post>(this.apis.getGenericAddresses, data, options);\n }\n\n searchGenericAddresses(id: string, type: string, data: PostFilterFields): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('type', type)\n };\n return this.http.post>(this.apis.getGenericAddresses, data, options);\n }\n\n nameSearch(data: PostCustomerIndex): Observable> {\n return this.http.post>(this.apis.nameSearch, data);\n }\n\n getCustomerLocationFieldRequirements(): Observable> {\n return this.http.get>(this.apis.customerLocationFieldRequirements);\n }\n\n getPhoneNumberFormat(): Observable> {\n return this.http.get>(this.apis.getPhoneNumberFormat);\n }\n\n getTechnicians(): Observable> {\n return this.http.get>(this.apis.getTechnicians);\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PostDeleteEquipmentFileInfo } from 'src/app/models/equipment-file/post-delete-equipment-file-info';\nimport { PostEquipmentFileInfo } from 'src/app/models/equipment-file/post-equipment-file-info';\nimport { ResponseUploadEquipmentFile } from 'src/app/models/equipment-file/response-upload-equipment-file';\nimport { ReturnEquipmentFilePayload } from 'src/app/models/equipment-file/return-equipment-file-payload';\nimport { ReturnEquipmentFilesPayload } from 'src/app/models/equipment-file/return-equipment-files-payload';\nimport { PostExistingEquipmentCreate } from 'src/app/models/equipment/post-existing-equipment-create';\nimport { PostGenericEquipmentUpdate } from 'src/app/models/equipment/post-generic-equipment-update';\nimport { PostModelNumberAutocomplete } from 'src/app/models/equipment/post-model-number-autocomplete';\nimport { PostRecommendationEquipmentCreate } from 'src/app/models/equipment/post-recommendation-equipment-create';\nimport { ResponseCreateRecommendationEquipment } from 'src/app/models/equipment/response-create-recommendation-equipment';\nimport { ReturnEquipmentAfterUpdate } from 'src/app/models/equipment/return-equipment-after-update';\nimport { ReturnEquipmentHeader } from 'src/app/models/equipment/return-equipment-header';\nimport { ReturnGenericEquipmentPayload } from 'src/app/models/equipment/return-generic-equipment-payload';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { SearchResultEquipmentPayload } from 'src/app/models/search/search-result-equipment-payload';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EquipmentService {\n\n private apis = {\n add: 'mfqAppEquipment/Create/',\n addRecommendationEquipment: 'mfqAppEquipment/CreateRecommendationEquipment/',\n update: 'mfqAppEquipment/Update/',\n list: 'mfqAppAddress/GetEquipment/',\n getEquipment: 'mfqAppEquipment/Get/',\n getHeaderDetails: 'mfqAppEquipment/GetHeader/',\n autocompleteEquipmentType: 'mfqAppEquipment/AutocompleteEquipmentType/',\n autocompleteManufacturer: 'mfqAppEquipment/AutocompleteManufacturer/',\n autocompleteModelNumber: 'mfqAppEquipment/AutocompleteModelNumber/',\n autocompleteInstallationBy: 'mfqAppEquipment/AutocompleteInstallationBy/',\n autocompleteExtendedWarrantyType: 'mfqAppEquipment/AutocompleteExtendedWarrantyType/',\n autocompleteServiceLevel: 'mfqAppEquipment/AutocompleteServiceLevel/',\n getStagingEquipmentFiles: 'mfqAppEquipment/GetStagingEquipmentFiles/',\n getEquipmentFiles: 'mfqAppEquipment/GetEquipmentFiles/',\n uploadEquipmentFile: 'mfqAppEquipment/UploadEquipmentFile/',\n deleteEquipmentFile: 'mfqAppEquipment/DeleteEquipmentFile/',\n clearStagingEquipmentFileTable: 'mfqAppEquipment/ClearStagingEquipmentFileTable/',\n getFullImage: 'mfqAppEquipment/GetFullImage/'\n };\n\n constructor(private http: HttpClient) { }\n\n autocompleteEquipmentType(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteEquipmentType, data);\n }\n\n autocompleteManufacturer(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteManufacturer, data);\n }\n\n autocompleteModelNumber(data: PostModelNumberAutocomplete): Observable> {\n return this.http.post>(this.apis.autocompleteModelNumber, data);\n }\n\n autocompleteInstallationBy(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteInstallationBy, data);\n }\n\n autocompleteExtendedWarrantyType(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteExtendedWarrantyType, data);\n }\n\n autocompleteServiceLevel(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteServiceLevel, data);\n }\n\n list(addressId: string, addressType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.get>(this.apis.list, options);\n }\n\n listFilter(addressId: string, addressType: string, filterData: PostFilterFields): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.post>(this.apis.list, filterData, options);\n }\n\n add(addressId: string, addressType: string, data: PostExistingEquipmentCreate): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.post>(this.apis.add, data, options);\n }\n\n addRecommendationEquipment(data: PostRecommendationEquipmentCreate): Observable> {\n return this.http.post>(this.apis.addRecommendationEquipment, data);\n }\n\n update(data: PostGenericEquipmentUpdate): Observable> {\n return this.http.post>(this.apis.update, data);\n }\n\n getHeaderDetails(equipmentId: string, equipmentType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', equipmentId)\n .set('type', equipmentType)\n };\n return this.http.get>(this.apis.getHeaderDetails, options);\n }\n\n get(equipmentId: string, equipmentType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', equipmentId)\n .set('type', equipmentType)\n };\n return this.http.get>(this.apis.getEquipment, options);\n }\n\n getStagingEquipmentFiles(): Observable> {\n return this.http.post>(this.apis.getStagingEquipmentFiles, null);\n }\n\n getEquipmentFiles(data: PostEquipmentFileInfo): Observable> {\n return this.http.post>(this.apis.getEquipmentFiles, data);\n }\n\n uploadEquipmentFile(data: FormData): Observable> {\n return this.http.post>(this.apis.uploadEquipmentFile, data);\n }\n\n deleteEquipmentFile(data: PostDeleteEquipmentFileInfo): Observable> {\n return this.http.post>(this.apis.deleteEquipmentFile, data);\n }\n\n clearStagingEquipmentFileTable(): Observable> {\n return this.http.post>(this.apis.clearStagingEquipmentFileTable, null);\n }\n\n getFullImage(id: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getFullImage, options);\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\r\nimport { TimeoutError } from 'rxjs';\nimport { EventsService } from '../events/events.service';\nimport { ToastControllerWrapperService } from '../toast-controller-wrapper/toast-controller-wrapper.service';\nimport { UserDataService } from '../user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorHandlingService {\n\n ERROR_SENDING_EMAIL_STRING: string = 'Error sending email';\n constructor(private userData: UserDataService,\n private toastWrapper: ToastControllerWrapperService,\n private router: Router,\n private eventsService: EventsService,\n private alertController: AlertController\n ) { }\n\n async handleError(error: HttpErrorResponse) {\n\n if (error instanceof TimeoutError) {\n this.toastWrapper.presentErrorToast('Timeout occured. Server could not be found.');\n }\n else {\n\n if (error.status === 0) {\n // client-side or network error\n switch (error.statusText) {\n case 'Unknown Error':\n this.toastWrapper.presentErrorToast('Could not find server.');\n break;\n }\n }\n else {\n // back-end error\n switch (error.status) {\n case 302:\n // Special case. mfq_recommendationItemController.Create returns HTTP code 302 when there are questions associated to the inventory item so ignore it\n break;\n case 400:\n case 403:\n if (error.error) {\n var apiResponse = error.error;\n if (apiResponse.payload && apiResponse.payload.error && apiResponse.payload.error.Message) {\n this.toastWrapper.presentErrorToast(apiResponse.payload.error.Message);\n } else if (apiResponse.message) {\n this.toastWrapper.presentErrorToast(apiResponse.message);\n }\n else {\n this.toastWrapper.presentErrorToast('An unknown error occured, please contact administration.');\n }\n }\n break;\n case 401:\n if (await(this.userData.hasLoggedIn())) {\n await this.userData.removeLoginData();\n this.eventsService.publishLogout();\n await this.router.navigate(['/login']);\n this.toastWrapper.presentErrorToast('There was an authorization error, possibly due to your app out of date and does not match the server.');\n }\n break;\n case 404:\n this.toastWrapper.presentErrorToast('Could not find server.');\n break;\n case 408:\n this.toastWrapper.presentErrorToast('Timeout occured. Server could not be found.');\n break;\n case 409:\n this.toastWrapper.presentErrorToast(error.error);\n break;\n case 500:\n this.toastWrapper.presentErrorToast(error.statusText);\n break;\n default:\n this.toastWrapper.presentErrorToast('An unknown error occured, please contact administration.');\n break;\n }\n }\n }\n }\n\n async displayErrorAsDialog(errorHeader: string, errorMessage: string, allowBackdropDismiss: boolean = false) {\n const msgDialog = await this.alertController.create({\n backdropDismiss: allowBackdropDismiss,\n header: errorHeader,\n message: errorMessage,\n buttons: [\n {\n text: 'OK',\n role: 'confirm',\n handler: () => {\n msgDialog.dismiss();\n }\n }\n ]\n });\n await msgDialog.present();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PostServiceCallCreate } from 'src/app/models/quote/post-service-call-create';\nimport { PostServiceCallQuoteItemCreate } from 'src/app/models/quote/post-service-call-quote-item-create';\nimport { QuoteAssemblyAddedEvent } from 'src/app/models/quote/quote-assembly-added-event';\nimport { QuoteServiceCallNavigationState } from 'src/app/models/quote/quote-service-call-navigation-state';\nimport { ResponseCreateServiceCall } from 'src/app/models/quote/response-create-service-call';\nimport { PostRecommendationItemCreate } from 'src/app/models/recommendation/post-recommendation-item-create';\nimport { RecommendationAssemblyAddedEvent } from 'src/app/models/recommendation/recommendation-assembly-added-event';\nimport { ReturnMessage } from 'src/app/models/return-message';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventsService {\n\n private loginSubject = new Subject();\n private logoutSubject = new Subject();\n\n private recommendationItemAdded = new Subject();\n private recommendationAssemblyAdded = new Subject();\n\n private quoteItemAdded = new Subject();\n private quoteAssemblyAdded = new Subject();\n\n private serviceCallCreated = new Subject<{ quoteId: number; addressId: string}>();\n\n constructor() { }\n\n publishLogin(data: any) {\n this.loginSubject.next(data);\n }\n\n publishLogout() {\n this.logoutSubject.next();\n }\n\n getLoginSubject() {\n return this.loginSubject;\n }\n\n getLogoutSubject() {\n return this.logoutSubject;\n }\n\n getRecommendationItemAddedSubject() {\n return this.recommendationItemAdded;\n }\n\n getRecommendationAssemblyAddedSubject() {\n return this.recommendationAssemblyAdded;\n }\n\n getQuoteItemAddedSubject() {\n return this.quoteItemAdded;\n }\n\n getQuoteAssemblyAddedSubject() {\n return this.quoteAssemblyAdded;\n }\n\n getServiceCallCreatedSubject() {\n return this.serviceCallCreated;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { PhoneNumberFormat } from 'src/app/models/customer/phone-number-format';\nimport { ToastControllerWrapperService } from '../toast-controller-wrapper/toast-controller-wrapper.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormatService {\n\n constructor(\n public toasterWrapper: ToastControllerWrapperService,\n\n ) { }\n\n //REGION - PHONE NUMBER FORMAT\n\n validatePhoneNumberFormat(phoneNumberFormat) {\n //not allowed to have _'s in format because it's used as a placeholder - strip it out and notify the user\n if (phoneNumberFormat.indexOf(\"_\") !== -1) {\n console.log(\"'_' character detected in phone number format. Stripping it out.\");\n this.toasterWrapper.presentErrorToast(\n 'The \"_\" character was detected in phone number format [' + phoneNumberFormat + '] and is not allowed as it is reserved as a placeholder and will be removed. Please contact your system administrator.'\n );\n phoneNumberFormat = phoneNumberFormat.replace(/_/g, '');\n }\n return phoneNumberFormat;\n }\n\n applyPhoneNumberFormat(phoneNumberFormat, phoneNumber) {\n var formattedPhoneNumber = '';\n var nextCharContactNumber = 0;\n for (var i = 0; i < phoneNumberFormat.length; i++) {\n var nextCharOfPhoneNumberFormat = phoneNumberFormat[i];\n if (nextCharOfPhoneNumberFormat == 'X') {\n if (phoneNumber != null && nextCharContactNumber < phoneNumber.length) {\n formattedPhoneNumber += phoneNumber[nextCharContactNumber];\n nextCharContactNumber++;\n }\n else {\n formattedPhoneNumber += '0';\n }\n }\n else {\n formattedPhoneNumber += nextCharOfPhoneNumberFormat;\n }\n }\n\n return formattedPhoneNumber;\n }\n\n createPhoneNumberMask(format: PhoneNumberFormat) {\n let phoneNumberFormat = format.phoneNumberFormat;\n var phoneNumberMask: (string | RegExp)[] = [];\n for (var i = 0; i < phoneNumberFormat.length; i++) {\n if (phoneNumberFormat[i] == 'X') {\n phoneNumberMask.push(/./);\n }\n else {\n phoneNumberMask.push(phoneNumberFormat[i]);\n }\n }\n\n return phoneNumberMask;\n }\n\n createPhonePlaceHolder(format: PhoneNumberFormat) {\n return format.phoneNumberFormat.replace(/X/g, '0');\n }\n\n unapplyPhoneNumberFormat(phoneNumberFormat: string, phoneNumber: string) {\n var unformatedPhoneNumber = \"\";\n for (var i = 0; i <= phoneNumberFormat.length; i++) {\n if (phoneNumberFormat[i] == 'X') {\n //wildcard for user input\n unformatedPhoneNumber += (phoneNumber && phoneNumber[i] ? phoneNumber[i] : '0');\n }\n }\n unformatedPhoneNumber = unformatedPhoneNumber.replace(/_/g, '0');\n return unformatedPhoneNumber;\n }\n\n requiredPhoneNumber(format: PhoneNumberFormat): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (!format || !format.phoneNumberFormat) {\n return null;\n }\n let unformatterValue = this.unapplyPhoneNumberFormat(format.phoneNumberFormat, control.value);\n let notValid = (unformatterValue === '00000000000000');\n return notValid ? { required: true } : null;\n }\n }\n\n //ENDREGION - PHONE NUMBER FORMAT\n}\n","import { Injectable } from '@angular/core';\nimport { LoadingController } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoadingControllerWrapperService {\n\n loading: any;\n\n constructor(private loadingController: LoadingController) { }\n\n async presentLoading(message: string): Promise {\n this.loading = await this.loadingController.create({\n message: message\n });\n return await this.loading.present();\n }\n\n async dismissLoading(): Promise {\n if (!this.loading) return;\n return await this.loading.dismiss();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { UserDataService } from '../user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionCheckerService {\n\n constructor(private userData: UserDataService) { }\n\n async getUserPermissions() {\n return await this.userData.getUserPermissions();\n }\n\n async isReadOnly() {\n return (await this.getUserPermissions()).readOnly;\n }\n\n async hasPermission(permissionString: string) {\n return (await this.getUserPermissions()).permissionTypes.includes(permissionString);\n }\n\n async canCRUDCustomers() {\n return !(await this.isReadOnly()) && await this.hasPermission('ServiceCall_Customers');\n }\n\n async canCRUDCustomerLocations() {\n return !(await this.isReadOnly()) && await this.hasPermission('ServiceCall_Location');\n }\n\n async canCRUDEquipments() {\n return !(await this.isReadOnly()) && await this.hasPermission('ServiceCall_Equipment');\n }\n\n async canCRUDRecommendations() {\n return !(await this.isReadOnly());\n }\n\n async canCRUDQuotes() {\n return !(await this.isReadOnly()) && await this.hasPermission('ServiceCall_Quote');\n }\n\n async canCRUDServiceCalls() {\n return !(await this.isReadOnly()) && await this.hasPermission('ServiceCall_ServiceCalls');\n }\n\n async canSeeCosts() {\n return await this.hasPermission('ServiceCall_ShowCosts');\n }\n\n async canSeePrices() {\n return await this.hasPermission('ServiceCall_ShowPrices');\n }\n\n async canUseSurveyCustomer() {\n return await this.hasPermission('ServiceCall_SurveyProspectCustomer');\n }\n\n async canEmailCustomerQuote() {\n return await this.hasPermission('ServiceCall_EmailCustomerQuote');\n }\n\n async canEmailCustomerQuoteAsPdfOnly() {\n return await this.hasPermission('ServiceCall_EmailCustomerQuoteAsPdfOnly');\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PostServiceCallQuoteCalculateApplicationMarkupAndTotal } from 'src/app/models/quote/post-service-call-quote-calculate-application-markup-and-total';\nimport { PostServiceCallQuoteCalculateMarkupPageTotal } from 'src/app/models/quote/post-service-call-quote-calculate-markup-page-total';\nimport { PostServiceCallQuoteUpdateMarkupAndBidPrices } from 'src/app/models/quote/post-service-call-quote-update-markup-and-bid-prices';\nimport { QuoteStatusPayload } from 'src/app/models/quote/quote-status-payload';\nimport { ResponseCalculateMarkupPageTotal } from 'src/app/models/quote/response-calculate-markup-page-total';\nimport { ResponseDeclineQuote } from 'src/app/models/quote/response-decline-quote';\nimport { ResponseGetCustomerApprovalInfo } from 'src/app/models/quote/response-get-customer-approval-info';\nimport { ResponseGetValuesForMarkups } from 'src/app/models/quote/response-get-values-for-markups';\nimport { ResponseIsReadOnly } from 'src/app/models/quote/response-is-read-only';\nimport { ReturnPendingQuotePayload } from 'src/app/models/quote/return-pending-quote-payload';\nimport { ReturnServiceCallQuoteMarkupAndTotalForApplicationType } from 'src/app/models/quote/return-service-call-quote-markup-and-total-for-application-type';\nimport { PostEmail } from 'src/app/models/shared/post-email';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { PostUserId } from 'src/app/models/user/post-user-id';\nimport { ResponseSendEmail } from 'src/app/models/quote/response-send-email';\nimport { ResponseApproval } from 'src/app/models/quote/response-approval';\nimport { PostServieCallQuoteApprove } from 'src/app/models/quote/post-servie-call-quote-approve';\nimport { SearchResultQuotesPayload } from 'src/app/models/quote/search-result-quotes-payload';\nimport { PostServiceCallCreate } from 'src/app/models/quote/post-service-call-create';\nimport { ResponseCreateServiceCall } from 'src/app/models/quote/response-create-service-call';\nimport { PostAddToExistingServiceCall } from 'src/app/models/quote/post-add-to-existing-service-call';\nimport { ResponseAddToExistingServiceCall } from 'src/app/models/quote/response-add-to-existing-service-call';\nimport { PostServiceCallQuoteCreate } from 'src/app/models/quote/post-service-call-quote-create';\nimport { ResponseServiceCallQuoteAction } from 'src/app/models/quote/response-service-call-quote-action';\nimport { PostServiceCallQuoteUpdate } from 'src/app/models/quote/post-service-call-quote-update';\nimport { PostQuoteItemAssemblyCreate } from 'src/app/models/quote/post-quote-item-assembly-create';\nimport { ReturnQuoteQuestionsPayload } from 'src/app/models/quote/return-quote-questions-payload';\nimport { ReturnAttributeAnswer } from 'src/app/models/recommendation/return-attribute-answer';\nimport { ReturnServiceCallSetup } from 'src/app/models/quote/return-service-call-setup';\nimport { PostServiceCallQuoteItemAttributeAnswerUpdate } from 'src/app/models/quote/post-service-call-quote-item-attribute-answer-update';\nimport { PostQuoteQuestionsUpdate } from 'src/app/models/quote/post-quote-questions-update';\nimport { PostServiceCallQuoteItemsWithAttributesCreate } from 'src/app/models/quote/post-service-call-quote-items-with-attributes-create';\nimport { PostGetInventoryAttributes } from 'src/app/models/shared/post-get-inventory-attributes';\nimport { ResponseGetInventoryItemAttributesPayload } from 'src/app/models/quote/response-get-inventory-item-attributes-payload';\nimport { ReturnServiceCallQuote } from 'src/app/models/quote/return-service-call-quote';\nimport { ReturnQuoteHeader } from 'src/app/models/quote/return-quote-header';\nimport { PostRecommendationsForQuoteEditGet } from 'src/app/models/quote/post-recommendations-for-quote-edit-get';\nimport { ResponseGetRecommendationsForQuoteEdit } from 'src/app/models/quote/response-get-recommendations-for-quote-edit';\nimport { PostQuoteRecommendationUpate } from 'src/app/models/quote/post-quote-recommendation-upate';\nimport { ResponseUpdateQuoteRecommendations } from 'src/app/models/quote/response-update-quote-recommendations';\nimport { PostServiceCallQuoteItemSummaryGet } from 'src/app/models/quote/post-service-call-quote-item-summary-get';\nimport { ReturnItemsPayload } from 'src/app/models/recommendation/return-items-payload';\nimport { PostUpdateQuantities } from 'src/app/models/shared/post-update-quantities';\nimport { ReturnCalculateItemValues } from 'src/app/models/shared/return-calculate-item-values';\nimport { ResponseGetApplicationTypes } from 'src/app/models/shared/response-get-application-types';\nimport { PostServiceCallQuoteItemCreate } from 'src/app/models/quote/post-service-call-quote-item-create';\nimport { ReturnItem } from 'src/app/models/shared/return-item';\nimport { PostCalculateItemValues } from 'src/app/models/shared/post-calculate-item-values';\nimport { PostItemUpdate } from 'src/app/models/recommendation/post-item-update';\nimport { ResponseUpdateItem } from 'src/app/models/quote/response-update-item';\nimport { PostRecommendationItemSearch } from 'src/app/models/recommendation/post-recommendation-item-search';\nimport { SearchResultProductItemPayload } from 'src/app/models/shared/search-result-product-item-payload';\nimport { ApplicationTypeCategoryPayload } from 'src/app/models/shared/application-type-category-payload';\nimport { PostServiceCallQuoteTotalMarkupUpdateValues } from 'src/app/models/quote/post-service-call-quote-total-markup-update-values';\nimport { ResponseRecalculateMarkupsAndTotalsForQuote } from 'src/app/models/quote/response-recalculate-markups-and-totals-for-quote';\nimport { PostItemGetDetails } from 'src/app/models/shared/post-item-get-details';\nimport { ReturnSearchedRecommendationItemPayload } from 'src/app/models/recommendation/return-searched-recommendation-item-payload';\nimport { ResponseItemDetailsInAssemblyPayload } from 'src/app/models/shared/response-item-details-in-assembly-payload';\nimport { ReturnSearchedRecommendationItemsPayload } from 'src/app/models/recommendation/return-searched-recommendation-items-payload';\nimport { ResponseRegions } from 'src/app/models/shared/response-regions';\nimport { PostGetPayCodes } from 'src/app/models/shared/post-get-pay-codes';\nimport { ResponsePayCodes } from 'src/app/models/shared/response-pay-codes';\nimport { ResponseValidQuoteTemplate } from 'src/app/models/quote/response-valid-quote-template';\nimport { ResponseInfoQuoteEmailPreview } from 'src/app/models/quote/response-info-quote-email-preview';\nimport { ResponseGetFiles } from 'src/app/models/quote/response-get-files';\nimport { ResponseGetQuoteCopyHeader } from 'src/app/models/quote/response-get-quote-copy-header';\nimport { CopyServiceCallQuotePost } from 'src/app/models/quote/copy-service-call-quote-post';\nimport { CopyServiceCallQuoteResponse } from 'src/app/models/quote/copy-service-call-quote-response';\nimport { UtilityService } from '../utility.service';\nimport { UserDataService } from '../user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QuoteService {\n\n private apis = {\n add: 'mfq_serviceCallQuote/Create/',\n update: 'mfq_serviceCallQuote/Update/',\n get: 'mfq_serviceCallQuote/Get/',\n getPendingQuotes: 'mfq_serviceCallQuote/GetPendingQuotes/',\n getHeaderDetails: 'mfq_serviceCallQuote/GetHeader/',\n getRecommendationsForQuoteEdit: 'mfq_serviceCallQuote/GetRecommendationsForQuoteEdit/',\n updateQuoteRecommendations: 'mfq_serviceCallQuote/UpdateQuoteRecommendations/',\n getItemsSummary: 'mfq_serviceCallQuote/GetItemsSummary/',\n getCustomerApprovalInfo: 'mfq_serviceCallQuote/GetCustomerApprovalInfo/',\n getQuoteQuestions: 'mfq_serviceCallQuote/GetQuoteQuestions/',\n getRecommendationIdsInQuote: 'mfq_serviceCallQuote/GetRecommendationIdsInQuote/',\n updateQuoteQuestions: 'mfq_serviceCallQuote/UpdateQuoteQuestions/',\n sendEmail: 'mfq_serviceCallQuote/SendEmail/',\n requestInternalApproval: 'mfq_serviceCallQuote/RequestInternalApproval/',\n internallyApprove: 'mfq_serviceCallQuote/InternallyApprove/',\n approveQuote: 'mfq_serviceCallQuote/ApproveQuote/',\n getValuesForMarkups: 'mfq_serviceCallQuote/GetValuesForMarkups/',\n calculateMarkupAndTotalForApplicationType: 'mfq_serviceCallQuote/CalculateMarkupAndBidPriceForApplicationType/',\n recalculateMarkupsAndTotalsForQuoteFromTotalMarkup: 'mfq_serviceCallQuote/RecalculateMarkupsAndTotalsForQuoteFromTotalMarkup/',\n recalculateMarkupsAndTotalsForQuoteFromTotalBidPrice: 'mfq_serviceCallQuote/RecalculateMarkupsAndTotalsForQuoteFromTotalBidPrice',\n updateMarkupAndBidPrices: 'mfq_serviceCallQuote/UpdateMarkupAndBidPrices/',\n declineQuote: 'mfq_serviceCallQuote/DeclineQuote/',\n calculateMarkupPageTotal: 'mfq_serviceCallQuote/CalculateMarkupPageTotal/',\n isReadOnly: 'mfq_serviceCallQuote/IsReadOnly/',\n downloadCsv: 'mfq_serviceCallQuote/GetQuoteCsv/',\n validQuoteTemplate: 'mfq_serviceCallQuote/QuoteTemplateIsValid/',\n validQuoteDocumentTemplate: 'mfq_serviceCallQuote/QuoteDocumentTemplateIsValid/',\n getFiles: 'mfq_serviceCallQuote/GetFiles/',\n getInfoForQuoteEmailPreview: 'mfq_serviceCallQuote/GetInfoForQuoteEmailPreview/',\n getQuoteCopyHeader: 'mfq_serviceCallQuote/GetQuoteCopyHeader/',\n copy: 'mfq_serviceCallQuote/Copy',\n getQuoteCSV: 'mfq_serviceCallQuote/GetQuoteCsv',\n previewQuoteDefaultPdf: 'mfq_serviceCallQuote/PreviewQuoteDefaultPdf',\n previewQuotePdf: 'mfq_serviceCallQuote/PreviewQuotePdf',\n previewQuoteDefaultDocx: 'mfq_serviceCallQuote/PreviewQuoteDefaultDocx',\n previewQuoteDocx: 'mfq_serviceCallQuote/PreviewQuoteDocx',\n\n updateQuantities: 'mfq_serviceCallQuoteItem/UpdateQuantities/',\n getItemTotals: 'mfq_serviceCallQuoteItem/GetItemTotals/',\n getItem: 'mfq_serviceCallQuoteItem/Get/',\n updateItem: 'mfq_serviceCallQuoteItem/Update/',\n deleteItem: 'mfq_serviceCallQuoteItem/Delete/',\n addItem: 'mfq_serviceCallQuoteItem/Create/',\n createItemsWithAttributes: 'mfq_serviceCallQuoteItem/CreateItemsWithAttributes/',\n getAttributes: 'mfq_serviceCallQuoteItem/GetAttributes/',\n addAssemblyItems: 'mfq_serviceCallQuoteItem/CreateAssemblyItems/',\n\n getApplicationTypes: 'utility/GetApplicationTypes/',\n autocompleteSalesPersonId: 'utility/AutocompleteSalesPersonId/',\n getPayCodes: 'utility/GetPayCodes/',\n autocompleteJobTitle: 'utility/AutocompleteJobTitle/',\n autocompleteQuoteTemplate: 'utility/AutocompleteQuoteTemplate/',\n autocompleteQuoteDocumentTemplate: 'utility/AutocompleteQuoteDocumentTemplate/',\n autocompleteQuoteUserDefinedStatuses: 'utility/AutocompleteQuoteUserDefinedStatus/',\n\n itemSearch: 'mfqAppItems/SearchForItems/',\n calculateItemValues: 'mfqAppItems/CalculateItemValues/',\n getItemItemDetails: 'mfqAppItems/GetItemItemDetails/',\n getCategoriesForApplicationType: 'mfqAppItems/GetCategoriesForApplicationType/',\n getInventoryItemAttributes: 'mfqAppItems/GetInventoryItemAttributes/',\n getSubItemsForAssemblyOption: 'mfqAppItems/GetSubItemsForAssemblyOption/',\n getItemDetailsInAssembly: 'mfqAppItems/GetItemDetailsInAssembly/',\n\n updateAttributes: 'mfq_serviceCallQuoteItemAttributeAnswer/Update/',\n\n getServiceCallSetupValues: 'mfqAppServiceCall/GetServiceCallSetupValues/',\n taskSearch: 'mfqAppServiceCall/AutocompleteTasks/',\n tasklistSearch: 'mfqAppServiceCall/AutocompleteTaskLists/',\n addServiceCall: 'mfqAppServiceCall/Create/',\n addToExistingServiceCall: 'mfqAppServiceCall/AddToExistingServiceCall/',\n autocompleteTechnicianId: 'mfqAppServiceCall/AutocompleteTechnician/',\n autocompleteServiceCall: 'mfqAppServiceCall/AutocompleteServiceCall/',\n autocompleteContractNumber: 'mfqAppServiceCall/AutocompleteContractNumber/',\n\n list: 'mfqAppAddress/GetQuotes/',\n getStatus: 'mfq_serviceCallQuoteStatus/Index/',\n getRegions: 'zmp_region/Index/',\n\n };\n\n constructor(\n private http: HttpClient,\n private utilityService: UtilityService,\n private userData: UserDataService\n ) { }\n\n autocompleteTechnicianId(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteTechnicianId, data);\n }\n\n autocompleteSalesPersonId(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteSalesPersonId, data);\n }\n\n calculateMarkupPageTotal(data: PostServiceCallQuoteCalculateMarkupPageTotal): Observable> {\n return this.http.post>(this.apis.calculateMarkupPageTotal, data);\n }\n\n calculateMarkupAndTotalForApplicationType(data: PostServiceCallQuoteCalculateApplicationMarkupAndTotal): Observable> {\n return this.http.post>(this.apis.calculateMarkupAndTotalForApplicationType, data);\n }\n\n updateMarkupAndBidPrices(data: PostServiceCallQuoteUpdateMarkupAndBidPrices): Observable> {\n return this.http.post>(this.apis.updateMarkupAndBidPrices, data);\n }\n\n isReadOnly(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.isReadOnly, options);\n }\n\n declineQuote(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.declineQuote, options);\n }\n\n getCustomerApprovalInfo(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getCustomerApprovalInfo, options);\n }\n\n getValuesForMarkups(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getValuesForMarkups, options);\n }\n\n sendEmail(id: number, data: PostEmail): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.post>(this.apis.sendEmail, data, options);\n }\n\n requestInternalApproval(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.requestInternalApproval, options);\n }\n\n internallyApprove(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.internallyApprove, options);\n }\n\n approveQuote(data: PostServieCallQuoteApprove): Observable> {\n return this.http.post>(this.apis.approveQuote, data);\n }\n\n list(addressId: string, addressType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.get>(this.apis.list, options);\n }\n\n listFilter(addressId: string, addressType: string, filterData: PostFilterFields): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.post>(this.apis.list, filterData, options);\n }\n\n addServiceCall(data: PostServiceCallCreate): Observable> {\n return this.http.post>(this.apis.addServiceCall, data);\n }\n\n addToExistingServiceCall(data: PostAddToExistingServiceCall): Observable> {\n return this.http.post>(this.apis.addToExistingServiceCall, data);\n }\n\n add(data: PostServiceCallQuoteCreate): Observable> {\n return this.http.post>(this.apis.add, data);\n }\n\n update(data: PostServiceCallQuoteUpdate): Observable> {\n return this.http.post>(this.apis.update, data);\n }\n\n deleteItem(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.delete>(this.apis.deleteItem, options);\n }\n\n addAssemblyItems(data: PostQuoteItemAssemblyCreate): Observable> {\n return this.http.post>(this.apis.addAssemblyItems, data);\n }\n\n getPendingQuotes(data: PostUserId): Observable> {\n return this.http.post>(this.apis.getPendingQuotes, data);\n }\n\n getQuoteQuestions(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getQuoteQuestions, options);\n }\n\n getAttributes(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getAttributes, options);\n }\n\n getRecommendationIdsInQuote(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getRecommendationIdsInQuote, options);\n }\n\n getServiceCallSetupValues(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getServiceCallSetupValues, options);\n }\n\n updateAttributes(data: PostServiceCallQuoteItemAttributeAnswerUpdate): Observable> {\n return this.http.post>(this.apis.updateAttributes, data);\n }\n\n updateQuoteQuestions(data: PostQuoteQuestionsUpdate): Observable> {\n return this.http.post>(this.apis.updateQuoteQuestions, data);\n }\n\n createItemsWithAttributes(data: PostServiceCallQuoteItemsWithAttributesCreate): Observable> {\n return this.http.post>(this.apis.createItemsWithAttributes, data);\n }\n\n getInventoryItemAttributes(data: PostGetInventoryAttributes): Observable> {\n return this.http.post>(this.apis.getInventoryItemAttributes, data);\n }\n\n getStatus(): Observable> {\n return this.http.get>(this.apis.getStatus);\n }\n\n get(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.get, options);\n }\n\n getHeaderDetails(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getHeaderDetails, options);\n }\n\n getRecommendationsForQuoteEdit(data: PostRecommendationsForQuoteEditGet): Observable> {\n return this.http.post>(this.apis.getRecommendationsForQuoteEdit, data);\n }\n\n updateQuoteRecommendations(data: PostQuoteRecommendationUpate): Observable> {\n return this.http.post>(this.apis.updateQuoteRecommendations, data);\n }\n\n getItemsSummary(data: PostServiceCallQuoteItemSummaryGet): Observable> {\n return this.http.post>(this.apis.getItemsSummary, data);\n }\n\n updateQuantities(data: PostUpdateQuantities): Observable> {\n return this.http.post>(this.apis.updateQuantities, data);\n }\n\n getApplicationTypes(): Observable> {\n return this.http.get>(this.apis.getApplicationTypes);\n }\n\n addItem(data: PostServiceCallQuoteItemCreate): Observable> {\n return this.http.post>(this.apis.addItem, data);\n }\n\n getItem(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getItem, options);\n }\n\n calculateItemValues(data: PostCalculateItemValues): Observable> {\n return this.http.post>(this.apis.calculateItemValues, data);\n }\n\n updateItem(data: PostItemUpdate): Observable> {\n return this.http.post>(this.apis.updateItem, data);\n }\n\n itemSearch(data: PostRecommendationItemSearch): Observable> {\n return this.http.post>(this.apis.itemSearch, data);\n }\n\n getCategoriesForApplicationType(type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', type)\n };\n return this.http.get>(this.apis.getCategoriesForApplicationType, options);\n }\n\n recalculateMarkupsAndTotalsForQuoteFromTotalMarkup(data: PostServiceCallQuoteTotalMarkupUpdateValues)\n : Observable> {\n return this.http.post>(this.apis.recalculateMarkupsAndTotalsForQuoteFromTotalMarkup, data);\n }\n\n recalculateMarkupsAndTotalsForQuoteFromTotalBidPrice(data: PostServiceCallQuoteTotalMarkupUpdateValues)\n : Observable> {\n return this.http.post>(this.apis.recalculateMarkupsAndTotalsForQuoteFromTotalBidPrice, data);\n }\n\n getItemItemDetails(id: string, type: string, offerType: string, offerId: string)\n : Observable> {\n const options = {\n params: new HttpParams()\n .set('type', type)\n .set('offerType', offerType)\n .set('offerId', offerId)\n };\n var sendObject = { id: id };\n return this.http.post>(this.apis.getItemItemDetails, sendObject, options);\n }\n\n getItemServiceLabourItemDetails(type: string, offerType: string, offerId: string, regionId: number, payCodeId: string, jobTitleId: string, jobTitleDescription: string)\n : Observable> {\n const options = {\n params: new HttpParams()\n .set('type', type)\n .set('offerType', offerType)\n .set('offerId', offerId)\n };\n var sendObject = {\n jobTitleId: jobTitleId,\n jobTitleDescription: jobTitleDescription,\n regionId: regionId,\n payCodeId: payCodeId\n };\n return this.http.post>(this.apis.getItemItemDetails, sendObject, options);\n }\n\n getItemDetailsInAssembly(id: string, offerType: string, offerId: number, regionId: number)\n : Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('offerType', offerType)\n .set('offerId', offerId)\n .set('regionId', regionId)\n };\n return this.http.get>(this.apis.getItemDetailsInAssembly, options);\n }\n\n getSubItemsForAssemblyOption(id: number, offerType: string, offerId: number, regionId: number)\n : Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('offerType', offerType)\n .set('offerId', offerId)\n .set('regionId', regionId)\n };\n return this.http.get>(this.apis.getSubItemsForAssemblyOption, options);\n }\n\n taskSearch(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.taskSearch, data);\n }\n\n tasklistSearch(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.tasklistSearch, data);\n }\n\n downloadCsv(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.downloadCsv, options);\n }\n\n getRegions(): Observable> {\n return this.http.get>(this.apis.getRegions);\n }\n\n getPayCodes(data: PostGetPayCodes): Observable> {\n return this.http.post>(this.apis.getPayCodes, data);\n }\n\n autocompleteJobTitle(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteJobTitle, data);\n }\n\n autocompleteServiceCall(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteServiceCall, data);\n }\n\n autocompleteQuoteTemplate(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteQuoteTemplate, data);\n }\n\n autocompleteQuoteDocumentTemplate(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteQuoteDocumentTemplate, data);\n }\n\n autocompleteContractNumber(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteContractNumber, data);\n }\n\n validQuoteTemplate(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.validQuoteTemplate, data);\n }\n\n validQuoteDocumentTemplate(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.validQuoteDocumentTemplate, data);\n }\n\n getInfoForQuoteEmailPreview(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getInfoForQuoteEmailPreview, options);\n }\n\n getFiles(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getFiles, options);\n }\n\n getQuoteCopyHeader(srcQuoteId: number, addressId: string, addressType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('srcQuoteId', srcQuoteId)\n .set('addressId', addressId)\n .set('addressType', addressType)\n };\n return this.http.get>(this.apis.getQuoteCopyHeader, options);\n }\n\n copy(data: CopyServiceCallQuotePost): Observable> {\n return this.http.post>(this.apis.copy, data);\n }\n\n getServiceLabourItemDetails(type: string, offerType: string, offerId: string, labourRateGroup: string, regionId: number, payCodeId: string, jobTitleId: string, jobTitleDescription: string)\n : Observable> {\n const options = {\n params: new HttpParams()\n .set('type', type)\n .set('offerType', offerType)\n .set('offerId', offerId)\n };\n var sendObject = {\n labourRateGroup: labourRateGroup,\n jobTitleId: jobTitleId,\n jobTitleDescription: jobTitleDescription,\n regionId: regionId,\n payCodeId: payCodeId\n };\n return this.http.post>(this.apis.getItemItemDetails, sendObject, options);\n }\n\n getQuoteCSVDownloadURL(quoteId: number) {\n return `${this.apis.getQuoteCSV}/${quoteId}`;\n }\n\n getQuoteFileName(params: { extension: string, quoteId: number, quoteDescription: string }) {\n var editedQuoteDescription = \"\";\n if (params.quoteDescription !== null) {\n editedQuoteDescription = params.quoteDescription.replace(/[^a-z0-9]/gi, '_');\n }\n var fileName = `Service_Call_Quote_${params.quoteId}-${editedQuoteDescription}.${params.extension}`;\n return fileName;\n }\n\n downloadQuoteCSV(quoteId: number): Observable {\n return this.http.get(`${this.apis.getQuoteCSV}/${quoteId}`, {\n responseType: 'blob'\n });\n }\n\n downloadPreviewQuoteDefaultPdf(params: { quoteId: number; userRequestId: number; quoteTemplateType: string; attachToServiceCall: boolean }): Observable {\n var url = `${this.apis.previewQuoteDefaultPdf}/${params.quoteId}/${params.userRequestId}/${params.quoteTemplateType}?attachToServiceCall=${params.attachToServiceCall}`;\n return this.http.get(url, { responseType: 'blob'});\n }\n\n downloadPreviewQuotePdf(params: { quoteId: number; quoteTemplate: string; userRequestId: number; quoteTemplateType: string; attachToServiceCall: boolean }): Observable {\n var url = `${this.apis.previewQuotePdf}/${params.quoteId}/${params.quoteTemplate}/${params.userRequestId}/${params.quoteTemplateType}?attachToServiceCall=${params.attachToServiceCall}`;\n return this.http.get(url, { responseType: 'blob'});\n }\n \n downloadPreviewQuoteDefaultDocx(params: { quoteId: number; userRequestId: number; quoteTemplateType: string; attachToServiceCall: boolean }): Observable {\n var url = `${this.apis.previewQuoteDefaultDocx}/${params.quoteId}/${params.userRequestId}/${params.quoteTemplateType}?attachToServiceCall=${params.attachToServiceCall}`;\n return this.http.get(url, { responseType: 'blob'});\n }\n\n downloadPreviewQuoteDocx(params: { quoteId: number; quoteTemplate: string; userRequestId: number; quoteTemplateType: string; attachToServiceCall: boolean }): Observable {\n var url = `${this.apis.previewQuoteDocx}/${params.quoteId}/${params.quoteTemplate}/${params.userRequestId}/${params.quoteTemplateType}?attachToServiceCall=${params.attachToServiceCall}`;\n return this.http.get(url, { responseType: 'blob'});\n }\n\n quoteCopyStates: any = {};\n setQuoteCopyState(srcQuoteId: number, state: { copyQuotePost: CopyServiceCallQuotePost; copyResponse: CopyServiceCallQuoteResponse; }) {\n this.quoteCopyStates[srcQuoteId] = state;\n }\n\n getQuoteCopyState(srcQuoteId: number): { copyQuotePost: CopyServiceCallQuotePost; copyResponse: CopyServiceCallQuoteResponse; } {\n return this.quoteCopyStates[srcQuoteId];\n }\n\n removeQuoteCopyState(srcQuoteId: number) {\n delete this.quoteCopyStates[srcQuoteId];\n }\n\n autocompleteQuoteUserDefinedStatuses(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteQuoteUserDefinedStatuses, data);\n }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReturnGenericEquipmentPayload } from 'src/app/models/equipment/return-generic-equipment-payload';\nimport { ApplicationTypeCategoryPayload } from 'src/app/models/shared/application-type-category-payload';\nimport { CopyRecommendationPost } from 'src/app/models/recommendation/copy-recommendation-post';\nimport { CopyRecommendationResponse } from 'src/app/models/recommendation/copy-recommendation-response';\nimport { PostAttachEquipment } from 'src/app/models/recommendation/post-attach-equipment';\nimport { PostCalculateItemValues } from 'src/app/models/shared/post-calculate-item-values';\nimport { PostEmail } from 'src/app/models/shared/post-email';\nimport { PostGetInventoryAttributes } from 'src/app/models/shared/post-get-inventory-attributes';\nimport { PostItemGetDetails } from 'src/app/models/shared/post-item-get-details';\nimport { PostItemUpdate } from 'src/app/models/recommendation/post-item-update';\nimport { PostRecommendationCreate } from 'src/app/models/recommendation/post-recommendation-create';\nimport { PostRecommendationItemAssemblyCreate } from 'src/app/models/recommendation/post-recommendation-item-assembly-create';\nimport { PostRecommendationItemAttributeAnswersUpdate } from 'src/app/models/recommendation/post-recommendation-item-attribute-answers-update';\nimport { PostRecommendationItemCreate } from 'src/app/models/recommendation/post-recommendation-item-create';\nimport { PostRecommendationItemSearch } from 'src/app/models/recommendation/post-recommendation-item-search';\nimport { PostRecommendationItemsWithAttributesCreate } from 'src/app/models/recommendation/post-recommendation-items-with-attributes-create';\nimport { PostRecommendationQuestionUpdate } from 'src/app/models/recommendation/post-recommendation-question-update';\nimport { PostRecommendationTemplateAutocomplete } from 'src/app/models/recommendation/post-recommendation-template-autocomplete';\nimport { PostRecommendationUpdate } from 'src/app/models/recommendation/post-recommendation-update';\nimport { PostUpdateQuantities } from 'src/app/models/shared/post-update-quantities';\nimport { RecommendationStatusPayload } from 'src/app/models/recommendation/recommendation-status-payload';\nimport { RecommendationTemplatePayload } from 'src/app/models/recommendation/recommendation-template-payload';\nimport { RecommendationUserDefinedStatus } from 'src/app/models/recommendation/recommendation-user-defined-status';\nimport { ResponseAttachEquipmentToRecommendation } from 'src/app/models/recommendation/response-attach-equipment-to-recommendation';\nimport { ResponseGetApplicationTypes } from 'src/app/models/shared/response-get-application-types';\nimport { ResponseGetNumberOfQuotesWithRecommendationItem } from 'src/app/models/recommendation/response-get-number-of-quotes-with-recommendation-item';\nimport { ResponseItemDetailsInAssemblyPayload } from 'src/app/models/shared/response-item-details-in-assembly-payload';\nimport { ResponsePayCodes } from 'src/app/models/shared/response-pay-codes';\nimport { ResponseRecommendationCopyHeader } from 'src/app/models/recommendation/response-recommendation-copy-header';\nimport { ResponseRecommendationIsReadOnly } from 'src/app/models/recommendation/response-recommendation-is-read-only';\nimport { ResponseRecommendationItemUpdate } from 'src/app/models/recommendation/response-recommendation-item-update';\nimport { ResponseRecommendationUpdate } from 'src/app/models/recommendation/response-recommendation-update';\nimport { ResponseRegions } from 'src/app/models/shared/response-regions';\nimport { ResponseStatusLevel } from 'src/app/models/recommendation/response-status-level';\nimport { ReturnAttributeAnswer } from 'src/app/models/recommendation/return-attribute-answer';\nimport { ReturnCalculateItemValues } from 'src/app/models/shared/return-calculate-item-values';\nimport { ReturnCount } from 'src/app/models/recommendation/return-count';\nimport { ReturnInventoryItemAttributePayload } from 'src/app/models/shared/return-inventory-item-attribute-payload';\nimport { ReturnItem } from 'src/app/models/shared/return-item';\nimport { ReturnItemsPayload } from 'src/app/models/recommendation/return-items-payload';\nimport { ReturnPendingRecommendationPayload } from 'src/app/models/recommendation/return-pending-recommendation-payload';\nimport { ReturnRecommendation } from 'src/app/models/recommendation/return-recommendation';\nimport { ReturnRecommendationFile } from 'src/app/models/recommendation/return-recommendation-file';\nimport { ReturnRecommendationFilePayload } from 'src/app/models/recommendation/return-recommendation-file-payload';\nimport { ReturnRecommendationHeader } from 'src/app/models/recommendation/return-recommendation-header';\nimport { ReturnRecommendationHistory } from 'src/app/models/recommendation/return-recommendation-history';\nimport { ReturnRecommendationItemTotals } from 'src/app/models/recommendation/return-recommendation-item-totals';\nimport { ReturnRecommendationPayload } from 'src/app/models/recommendation/return-recommendation-payload';\nimport { ReturnRecommendationQuestionsPayload } from 'src/app/models/recommendation/return-recommendation-questions-payload';\nimport { ReturnSearchedRecommendationItemPayload } from 'src/app/models/recommendation/return-searched-recommendation-item-payload';\nimport { ReturnSearchedRecommendationItemsPayload } from 'src/app/models/recommendation/return-searched-recommendation-items-payload';\nimport { SearchResultProductItem } from 'src/app/models/recommendation/search-result-product-item';\nimport { SearchResultProductItemPayload } from 'src/app/models/shared/search-result-product-item-payload';\nimport { SearchResultRecommendationPayload } from 'src/app/models/recommendation/search-result-recommendation-payload';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { PostFieldFromGpsGet } from 'src/app/models/search/post-field-from-gps-get';\nimport { SearchResultQuote } from 'src/app/models/search/search-result-quote';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { PostGetPayCodes } from 'src/app/models/shared/post-get-pay-codes';\nimport { PostUserId } from 'src/app/models/user/post-user-id';\nimport { ResponseRecommendationFileUpload } from 'src/app/models/recommendation/response-recommendation-file-upload';\nimport { PostGetItemServiceLabourItemDetails } from 'src/app/models/shared/post-get-item-service-labour-item-details';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RecommendationService {\n\n private apis = {\n add: 'mfq_recommendation/Create/',\n update: 'mfq_recommendation/Update/',\n get: 'mfq_recommendation/Get/',\n getHeaderDetails: 'mfq_recommendation/GetHeader/',\n getPendingRecommendations: 'mfq_recommendation/GetPendingRecommendations/',\n addExistingEquipment: 'mfq_recommendation/AttachEquipmentToRecommendation/',\n getItemsSummary: 'mfq_recommendation/GetItemsSummary/',\n getHistory: 'mfq_recommendation/GetHistory/',\n getUnreadHistoryCount: 'mfq_recommendation/GetUnreadHistoryCount/',\n notifyOffice: 'mfq_recommendation/NotifyOffice/',\n notifyCustomer: 'mfq_recommendation/NotifyCustomer/',\n getAssociatedQuotes: 'mfq_recommendation/GetAssociatedQuotes/',\n getItemTotals: 'mfq_recommendation/GetItemTotals/',\n getItemsCount: 'mfq_recommendation/GetItemsCount/',\n getFiles: 'mfq_recommendation/GetFiles/',\n isReadOnly: 'mfq_recommendation/IsReadOnly/',\n getStatusOfRecommendation: 'mfq_recommendation/GetStatus/',\n getRecommendationUserDefinedStatusDescription: 'mfq_recommendation/GetRecommendationUserDefinedStatusDescription/',\n getRecommendationCopyHeader: 'mfq_recommendation/GetRecommendationCopyHeader/',\n copy: 'mfq_recommendation/Copy/',\n\n addAssemblyItems: 'mfq_recommendationItem/CreateAssemblyItems/',\n getItem: 'mfq_recommendationItem/Get/',\n updateQuantities: 'mfq_recommendationItem/UpdateQuantities/',\n updateItem: 'mfq_recommendationItem/Update/',\n deleteItem: 'mfq_recommendationItem/Delete/',\n getNumberOfQuotesWithRecommendationItem: 'mfq_recommendationItem/GetNumberOfQuotesWithRecommendationItem/',\n addItem: 'mfq_recommendationItem/Create/',\n createItemsWithAttributes: 'mfq_recommendationItem/CreateItemsWithAttributes/',\n getAttributes: 'mfq_recommendationItem/GetAttributes/',\n\n getEquipment: 'mfqAppEquipment/Get/',\n\n list: 'mfqAppAddress/GetRecommendations/',\n\n getApplicationTypes: 'utility/GetApplicationTypes/',\n autocompleteUserDefinedStatuses: 'utility/AutocompleteRecommendationUserDefinedStatus/',\n getPayCodes: 'utility/GetPayCodes/',\n autocompleteJobTitle: 'utility/AutocompleteJobTitle/',\n\n getCategoriesForApplicationType: 'mfqAppItems/GetCategoriesForApplicationType/',\n getItemItemDetails: 'mfqAppItems/GetItemItemDetails/',\n getSubItemsForAssemblyOption: 'mfqAppItems/GetSubItemsForAssemblyOption/',\n getItemDetailsInAssembly: 'mfqAppItems/GetItemDetailsInAssembly/',\n calculateItemValues: 'mfqAppItems/CalculateItemValues/',\n itemSearch: 'mfqAppItems/SearchForItems/',\n getInventoryItemAttributes: 'mfqAppItems/GetInventoryItemAttributes/',\n\n recommendationTemplateSearch: 'mfq_recommendationTemplates/Autocomplete/',\n\n getStatus: 'mfq_recommendationStatus/Index/',\n\n updateAttributes: 'mfq_recommendationItemAttributeAnswer/Update/',\n\n uploadFile: 'mfq_recommendationFiles/Create/',\n deleteFile: 'mfq_recommendationFiles/Delete/',\n getFile: 'mfq_recommendationFiles/Get/',\n\n getRegions: 'zmp_region/Index/',\n\n getRecommendationQuestions: 'mfq_recommendationUserDefinedValue/GetRecommendationQuestions/',\n updateRecommendationQuestions: 'mfq_recommendationUserDefinedValue/UpdateRecommendationQuestions/'\n };\n\n constructor(\n private http: HttpClient\n ) { }\n\n deleteFile(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.delete>(this.apis.deleteFile, options);\n }\n\n isReadOnly(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.isReadOnly, options);\n }\n\n getFile(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getFile, options);\n }\n\n getPendingRecommendations(data: PostUserId): Observable> {\n return this.http.post>(this.apis.getPendingRecommendations, data);\n }\n\n list(addressId: string, addressType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.get>(this.apis.list, options);\n }\n\n listFilter(addressId: string, addressType: string, filterData: PostFilterFields): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n };\n return this.http.post>(this.apis.list, filterData, options);\n }\n\n listFilterForQuotes(addressId: string, addressType: string, filterData: PostFilterFields): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', addressId)\n .set('type', addressType)\n .set('quoteSearch', true)\n };\n return this.http.post>(this.apis.list, filterData, options);\n }\n\n add(data: PostRecommendationCreate): Observable> {\n return this.http.post>(this.apis.add, data);\n }\n\n createItemsWithAttributes(data: PostRecommendationItemsWithAttributesCreate): Observable> {\n return this.http.post>(this.apis.createItemsWithAttributes, data);\n }\n\n // ionicUploadFile(file_path, options) {\n // return this.http.upload(file_path, this.apis.uploadFile, options);\n // }\n\n update(data: PostRecommendationUpdate): Observable> {\n return this.http.post>(this.apis.update, data);\n }\n\n fileUpload(data: FormData): Observable> {\n return this.http.post>(this.apis.uploadFile, data);\n }\n\n updateQuantities(data: PostUpdateQuantities): Observable> {\n return this.http.post>(this.apis.updateQuantities, data);\n }\n\n itemSearch(data: PostRecommendationItemSearch): Observable> {\n return this.http.post>(this.apis.itemSearch, data);\n }\n\n recommendationTemplateSearch(data: PostRecommendationTemplateAutocomplete): Observable> {\n return this.http.post>(this.apis.recommendationTemplateSearch, data);\n }\n\n calculateItemValues(data: PostCalculateItemValues): Observable> {\n return this.http.post>(this.apis.calculateItemValues, data);\n }\n\n getInventoryItemAttributes(data: PostGetInventoryAttributes): Observable> {\n return this.http.post>(this.apis.getInventoryItemAttributes, data);\n }\n\n updateItem(data: PostItemUpdate): Observable> {\n return this.http.post>(this.apis.updateItem, data);\n }\n\n addExistingEquipment(data: PostAttachEquipment): Observable> {\n return this.http.post>(this.apis.addExistingEquipment, data);\n }\n\n addItem(data: PostRecommendationItemCreate): Observable> {\n return this.http.post>(this.apis.addItem, data);\n }\n\n addAssemblyItems(data: PostRecommendationItemAssemblyCreate): Observable> {\n return this.http.post>(this.apis.addAssemblyItems, data);\n }\n\n getApplicationTypes(): Observable> {\n return this.http.get>(this.apis.getApplicationTypes);\n }\n\n getCategoriesForApplicationType(type: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', type)\n };\n return this.http.get>(this.apis.getCategoriesForApplicationType, options);\n }\n\n getStatus(): Observable> {\n return this.http.get>(this.apis.getStatus);\n }\n\n getHeaderDetails(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getHeaderDetails, options);\n }\n\n getAttributes(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getAttributes, options);\n }\n\n updateAttributes(data: PostRecommendationItemAttributeAnswersUpdate): Observable> {\n return this.http.post>(this.apis.updateAttributes, data);\n }\n\n getNumberOfQuotesWithRecommendationItem(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getNumberOfQuotesWithRecommendationItem, options);\n }\n\n get(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.get, options);\n }\n\n getFiles(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getFiles, options);\n }\n\n getItem(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getItem, options);\n }\n\n getEquipment(equipmentId: string, equipmentType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', equipmentId)\n .set('type', equipmentType)\n };\n return this.http.get>(this.apis.getEquipment, options);\n }\n\n getHistory(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getHistory, options);\n }\n\n getItemsSummary(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getItemsSummary, options);\n }\n\n getUnreadHistoryCount(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getUnreadHistoryCount, options);\n }\n\n notifyOffice(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.notifyOffice, options);\n }\n\n notifyCustomer(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.notifyCustomer, options);\n }\n\n notifyCustomerWithCustomerEmail(id: number, data: PostEmail): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.post>(this.apis.notifyCustomer, data, options);\n }\n\n getAssociatedQuotes(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getAssociatedQuotes, options);\n }\n\n getItemTotals(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getItemTotals, options);\n }\n\n getItemsCount(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getItemsCount, options);\n }\n\n deleteItem(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.delete>(this.apis.deleteItem, options);\n }\n\n getItemItemDetails(id: string, type: string, offerType: string, offerId: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('type', type)\n .set('offerType', offerType)\n .set('offerId', offerId)\n };\n var sendObject = { id: id };\n return this.http.post>(this.apis.getItemItemDetails, sendObject, options);\n }\n\n getItemServiceLabourItemDetails(post: PostGetItemServiceLabourItemDetails): Observable> {\n const options = {\n params: new HttpParams()\n .set('type', post.type)\n .set('offerType', post.offerType)\n .set('offerId', post.offerId)\n };\n return this.http.post>(this.apis.getItemItemDetails, post.item, options);\n }\n\n getServiceLabourItemDetails(type: string, offerType: string, offerId: number, labourRateGroup: string, regionId: number, payCodeId: string, jobTitleId: string, jobTitleDescription: string) {\n const options = {\n params: new HttpParams()\n .set('type', type)\n .set('offerType', offerType)\n .set('offerId', offerId)\n };\n var sendObject = {\n labourRateGroup: labourRateGroup,\n jobTitleId: jobTitleId,\n jobTitleDescription: jobTitleDescription,\n regionId: regionId,\n payCodeId: payCodeId\n };\n return this.http\n .post(this.apis.getItemItemDetails, sendObject, options);\n }\n\n getItemDetailsInAssembly(id: string, offerType: string, offerId: number, regionId: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('offerType', offerType)\n .set('offerId', offerId)\n .set('regionId', regionId)\n };\n return this.http.get>(this.apis.getItemDetailsInAssembly, options);\n }\n\n getSubItemsForAssemblyOption(id: number, offerType: string, offerId: string, regionId: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n .set('offerType', offerType)\n .set('offerId', offerId)\n .set('regionId', regionId)\n };\n return this.http.get>(this.apis.getSubItemsForAssemblyOption, options);\n }\n\n autocompleteUserDefinedStatuses(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteUserDefinedStatuses, data);\n }\n\n getRegions(): Observable> {\n return this.http.get>(this.apis.getRegions);\n }\n\n getRegionsWithoutNoneOption(): Observable> {\n const options = {\n params: new HttpParams()\n .set('includeNoneOption', false)\n };\n return this.http.get>(this.apis.getRegions, options);\n }\n\n getPayCodes(data: PostGetPayCodes): Observable> {\n return this.http.post>(this.apis.getPayCodes, data);\n }\n\n autocompleteJobTitle(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteJobTitle, data);\n }\n\n getStatusOfRecommendation(id: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', id)\n };\n return this.http.get>(this.apis.getStatusOfRecommendation, options);\n }\n\n getRecommendationUserDefinedStatusDescription(): Observable> {\n return this.http.get>(this.apis.getRecommendationUserDefinedStatusDescription);\n }\n\n getRecommendationCopyHeader(srcRecommendationId: number, addressId: string, addressType: string): Observable> {\n const options = {\n params: new HttpParams()\n .set('srcRecommendationId', srcRecommendationId)\n .set('addressId', addressId)\n .set('addressType', addressType)\n };\n return this.http.get>(this.apis.getRecommendationCopyHeader, options);\n }\n\n getRecommendationQuestions(recommendationId: number): Observable> {\n const options = {\n params: new HttpParams()\n .set('id', recommendationId)\n };\n return this.http.get>(this.apis.getRecommendationQuestions, options);\n }\n\n updateRecommendationQuestions(data: PostRecommendationQuestionUpdate): Observable> {\n return this.http.post>(this.apis.updateRecommendationQuestions, data);\n }\n\n copy(data: CopyRecommendationPost): Observable> {\n return this.http.post>(this.apis.copy, data);\n }\n\n recommendationCopyStates: any = {};\n setRecommendationCopyState(srcRecommendationId: number, state: { copyRecommendationPost: CopyRecommendationPost; copyResponse: CopyRecommendationResponse; }) {\n this.recommendationCopyStates[srcRecommendationId] = state;\n }\n\n getRecommendationCopyState(srcRecommendationId: number): { copyRecommendationPost: CopyRecommendationPost; copyResponse: CopyRecommendationResponse; } {\n return this.recommendationCopyStates[srcRecommendationId];\n }\n\n removeRecommendationCopyState(srcRecommendationId: number) {\n delete this.recommendationCopyStates[srcRecommendationId];\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Storage } from '@ionic/storage-angular';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageService {\n private cache = [];\n\n private _storage: Storage | null = null;\n\n constructor(private storage: Storage) {\n }\n\n async init(): Promise {\n if (this._storage == null) {\n this._storage = await this.storage.create();\n }\n }\n\n async setEntry(key: string, value: any): Promise {\n await this.init();\n this.cache[key] = value;\n return this._storage.set(key, value);\n }\n\n async getEntry(key: string): Promise {\n await this.init();\n if (!(key in this.cache)) {\n this.cache[key] = await this._storage.get(key);\n }\n return this.cache[key];\n }\n\n async removeEntry(key: string): Promise {\n await this.init();\n if (key in this.cache) {\n delete this.cache[key];\n }\n return this._storage.remove(key);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ToastController } from '@ionic/angular';\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastControllerWrapperService {\n\n toast: any;\n\n constructor(private toastController: ToastController) { }\n\n async display(message: string): Promise {\n\n try {\n this.toast.dismiss();\n } catch (erro) {}\n\n this.toast = await this.toastController.create({\n message: message,\n position: 'top',\n buttons: [\n {\n text: 'Hide',\n side: 'end',\n role: 'cancel'\n }\n ],\n duration: environment.TOAST_DEFAULT_DURATION\n });\n return this.toast.present();\n }\n\n async success(message: string): Promise {\n\n try {\n this.toast.dismiss();\n } catch (erro) {}\n\n this.toast = await this.toastController.create({\n message: message,\n icon: 'checkmark',\n position: 'top',\n color: 'success',\n buttons: [\n {\n text: 'Hide',\n side: 'end',\n role: 'cancel'\n }\n ],\n duration: environment.TOAST_SUCCESS_DEFAULT_DURATION\n });\n return this.toast.present();\n }\n\n async presentErrorToast(message: string): Promise {\n\n try {\n this.toast.dismiss();\n } catch (erro) {}\n\n this.toast = await this.toastController.create({\n message: message,\n icon: 'warning',\n color: 'danger',\n position: 'top',\n buttons: [\n {\n text: 'Hide',\n side: 'end',\n role: 'cancel'\n }\n ],\n duration: environment.TOAST_ERROR_DEFAULT_DURATION\n });\n return this.toast.present();\n }\n\n async dismissToast(): Promise {\n if (!this.toast) return;\n return await this.toast.dismiss();\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Platform } from '@ionic/angular';\nimport { environment } from 'src/environments/environment';\nimport { LoginResponse } from 'src/app/models/user/login-response';\nimport { User } from 'src/app/models/user/user';\nimport { UserPermissions } from 'src/app/models/user/user-permissions';\nimport { StorageService } from 'src/app/services/storage/storage.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserDataService {\n\n APP_VERSION: string = 'app_version';\n COMPILATION_DATE: string = 'compilation_date';\n GATEWAY_URL: string = 'gateway_url';\n SYSTEM_INFORMATION: string = 'system_information';\n USER_NAME: string = 'username';\n USER_EMAIL: string = 'email';\n API_KEY: string = 'api_key';\n AUTOCOMPLETE_TIME: string = 'autocompleteTime';\n USER: string = 'user';\n USER_PERMISSIONS: string = 'permissionObject';\n\n constructor(private storageService: StorageService,\n private platform: Platform) { }\n\n async isGatewayConfigured(): Promise {\n var url = await this.storageService.getEntry(this.GATEWAY_URL);\n return url != null;\n }\n\n getGatewayUrl(): Promise {\n return this.storageService.getEntry(this.GATEWAY_URL);\n }\n\n setGatewayUrl(url: string): Promise {\n return this.storageService.setEntry(this.GATEWAY_URL, url);\n }\n\n logoutOfGateway(): Promise {\n return this.storageService.removeEntry(this.GATEWAY_URL);\n }\n\n async hasLoggedIn(): Promise {\n var api_key = await this.storageService.getEntry(this.API_KEY);\n return api_key != null;\n }\n\n async setLoginData(response: LoginResponse): Promise {\n await this.storageService.setEntry(this.USER_NAME, response.user.userName);\n await this.storageService.setEntry(this.USER_EMAIL, response.user.emailAddress);\n await this.storageService.setEntry(this.API_KEY, response.api_key);\n var autocompleteTime = environment.DEFAULT_AUTOCOMPLETE_DEBOUNCE_TIME;\n if (response.autocompleteTime && response.autocompleteTime > environment.DEFAULT_AUTOCOMPLETE_DEBOUNCE_TIME) {\n autocompleteTime = response.autocompleteTime;\n }\n await this.storageService.setEntry(this.AUTOCOMPLETE_TIME, autocompleteTime);\n await this.storageService.setEntry(this.USER, response.user);\n await this.storageService.setEntry(this.USER_PERMISSIONS, response.permissions);\n }\n\n async removeLoginData(): Promise {\n await this.storageService.removeEntry(this.USER_NAME);\n await this.storageService.removeEntry(this.USER_EMAIL);\n await this.storageService.removeEntry(this.API_KEY);\n await this.storageService.removeEntry(this.AUTOCOMPLETE_TIME);\n await this.storageService.removeEntry(this.USER);\n await this.storageService.removeEntry(this.USER_PERMISSIONS);\n }\n\n getApiKey(): Promise {\n return this.storageService.getEntry(this.API_KEY);\n }\n\n getPlatform() {\n var platformType = 'web';\n if (this.platform.is('android')) {\n platformType = \"android\";\n } else if (this.platform.is('ios')) {\n platformType = 'ios';\n }\n return platformType;\n }\n\n isMobilePlatform() {\n return this.getPlatform() != 'web';\n }\n\n getUser(): Promise{\n return this.storageService.getEntry(this.USER);\n }\n\n getUserPermissions(): Promise {\n return this.storageService.getEntry(this.USER_PERMISSIONS);\n }\n\n async isReadOnly(): Promise{\n return (await this.getUserPermissions()).readOnly;\n }\n\n getAutocompleteTime(): Promise {\n return this.storageService.getEntry(this.AUTOCOMPLETE_TIME);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { PostLogin } from 'src/app/models/user/post-login';\nimport { ReturnMessage } from 'src/app/models/return-message';\nimport { LoginResponse } from 'src/app/models/user/login-response';\nimport { PostFilterFields } from 'src/app/models/shared/post-filter-fields';\nimport { DashboardCountsPayload } from 'src/app/models/dashboard/dashboard-counts-payload';\nimport { PostSearch } from 'src/app/models/search/post-search';\nimport { SearchResults } from 'src/app/models/search/search-results';\nimport { PostFieldFromGpsGet } from 'src/app/models/search/post-field-from-gps-get';\nimport { GpsSearchResult } from 'src/app/models/search/gps-search-result';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n\n private apis = {\n login: 'zmp_user/Login',\n autocompleteUsers: 'zmp_user/AutocompleteUsers',\n dashboardCounts: 'zmp_user/DashboardContent',\n search: 'utility/Search',\n getFieldsFromGps: '/utility/GetFieldsFromGps',\n };\n\n constructor(\n private http: HttpClient\n ) { }\n\n login(postLogin: PostLogin): Observable> {\n return this.http.post>(this.apis.login, postLogin);\n }\n\n autocompleteUsers(data: PostFilterFields): Observable> {\n return this.http.post>(this.apis.autocompleteUsers, data);\n }\n\n getDashboardCounts(): Observable> {\n return this.http.get>(this.apis.dashboardCounts);\n }\n\n getFieldsFromGps(data: PostFieldFromGpsGet): Observable> {\n return this.http.post>(this.apis.getFieldsFromGps, data);\n }\n\n search(formData: PostSearch): Observable> {\n return this.http.post>(this.apis.search, formData);\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { FormGroup, ValidationErrors } from '@angular/forms';\nimport { Directory, Filesystem, WriteFileResult } from '@capacitor/filesystem';\nimport { FileOpener } from '@ionic-native/file-opener/ngx';\nimport * as EmailValidator from 'email-validator';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { EquipmentUserDefinedFieldLabelsPayload } from '../models/equipment/equipment-user-defined-field-labels-payload';\nimport { ReturnMessage } from '../models/return-message';\nimport { PostGetPayCodes } from '../models/shared/post-get-pay-codes';\nimport { ResponseGetApplicationTypes } from '../models/shared/response-get-application-types';\nimport { ResponsePayCodes } from '../models/shared/response-pay-codes';\nimport { UserDataService } from './user-data/user-data.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilityService {\n\n private apis = {\n getApplicationTypes: 'utility/GetApplicationTypes/',\n autocompleteUserDefinedStatuses: 'utility/AutocompleteRecommendationUserDefinedStatus/',\n getPayCodes: 'utility/GetPayCodes/',\n autocompleteJobTitle: 'utility/AutocompleteJobTitle/',\n autocompleteSalesPersonId: 'utility/AutocompleteSalesPersonId/',\n autocompleteQuoteTemplate: 'utility/AutocompleteQuoteTemplate/',\n autocompleteQuoteDocumentTemplate: 'utility/AutocompleteQuoteDocumentTemplate/',\n getEquipmentUserDefinedFieldLabels: 'utility/GetEquipmentUserDefinedFieldLabels/',\n }\n\n\n constructor(private http: HttpClient,\n private userDataService: UserDataService,\n private fileOpener: FileOpener) { }\n\n validateEmailAddressField(emailAddressField) {\n //QU-15915 - allow multiple email addresses to be in the emailaddress field, and they can be separated by commas or semi-colons.\n //first replace all commas with semi-colons, then split the string by semicolons and validate each email address\n var emailAddressFieldIsValid = true;\n var emailAddressString = emailAddressField.replace(/,/g, ';');\n var emailAddressList = emailAddressString.split(';').map((e) => e.trim());\n var errorMessage = '';\n for (let email of emailAddressList) {\n if (email != undefined && email != null && email.trim() != '') {\n if (!EmailValidator.validate(email)) {\n emailAddressFieldIsValid = false;\n errorMessage = 'The email address [' + email + '] is not valid';\n break;\n }\n }\n }\n return {\n validEmailAddressField: emailAddressFieldIsValid,\n errorMessage: errorMessage,\n };\n\n }\n\n download(url: string) {\n return this.http.get(url, {\n responseType: 'blob',\n headers: new HttpHeaders({\n isFullUrl: 'true' // used by the http interceptor to know if it should preappend the gateway base URL to the request URL\n })\n });\n }\n\n convertBlobToBase64 = (blob: Blob) =>\n new Promise((resolve, reject) => {\n const reader = new FileReader;\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.readAsDataURL(blob);\n });\n\n async createDocumentsFolderIfNotExist() {\n try {\n await Filesystem.mkdir({\n path: environment.MOBILE_DOCUMENTS_FOLDER,\n recursive: true,\n directory: Directory.Documents\n });\n } catch(e) {\n console.log(e);\n }\n }\n\n async doesFileExist(fileName: string) {\n const readDirResult = await Filesystem.readdir({\n path: environment.MOBILE_DOCUMENTS_FOLDER,\n directory: Directory.Documents\n });\n return readDirResult.files.some(f => { \n return f.toLocaleLowerCase() === fileName.toLocaleLowerCase(); \n });\n }\n\n async CheckDuplicatedName(fileName: string) {\n let assignedFileName = fileName;\n let exists = false;\n let copyNumber = 2;\n do {\n exists = await this.doesFileExist(assignedFileName);\n if (exists) {\n assignedFileName = `(${copyNumber}) ${fileName}`;\n copyNumber++;\n }\n } while (exists);\n return assignedFileName;\n }\n\n async saveFile(fileName: string, base64data: string) {\n await this.createDocumentsFolderIfNotExist();\n let assignedFileName = await this.CheckDuplicatedName(fileName);\n return await Filesystem.writeFile({\n path: `${environment.MOBILE_DOCUMENTS_FOLDER}/${assignedFileName}`,\n data: base64data,\n directory: Directory.Documents\n });\n }\n\n async saveBinaryDataAsFile(fileName: string, blob: Blob): Promise {\n const base64data = await this.convertBlobToBase64(blob) as string;\n return await this.saveFile(fileName, base64data);\n }\n\n async saveBase64DataAsFile(fileName: string, base64data: string): Promise {\n return await this.saveFile(fileName, base64data);\n }\n\n async getFileBlob(uri: string) {\n return await fetch(uri).then((r) => r.blob());\n }\n\n async getBase64DataAsBlob(base64Data: string) {\n const response = await fetch(base64Data);\n return await response.blob();\n }\n\n checkRegex(regexToUse: RegExp, varToTestAgainst: string): boolean {\n varToTestAgainst = varToTestAgainst.replace(/\\r?\\n|\\r/g, '');\n return regexToUse.test(varToTestAgainst);\n }\n\n removeDollarAmountCharacters(value: string) {\n return value.replace('$', '').replace(/,/g, '').replace(/\\r?\\n|\\r/g, '');\n }\n\n parseDollarAmount(value: string): number {\n return Number.parseFloat(this.removeDollarAmountCharacters(value));\n }\n\n removePercentCharacters(value: string) {\n return value.replace('%', '');\n }\n\n parsePercentage(value: string): number {\n return Number.parseFloat(this.removePercentCharacters(value));\n }\n\n getApplicationTypes(): Observable> {\n return this.http.get>(this.apis.getApplicationTypes);\n }\n\n getPayCodes(data: PostGetPayCodes): Observable> {\n return this.http.post>(this.apis.getPayCodes, data);\n }\n\n async openFileDownload(fileName: string, blob: Blob, fileMIMEType: string) {\n if (this.userDataService.isMobilePlatform()) {\n const savedFile = await this.saveBinaryDataAsFile(fileName, blob);\n await this.fileOpener.open(savedFile.uri, fileMIMEType);\n }\n else {\n const a = document.createElement('a');\n document.body.appendChild(a);\n const url = window.URL.createObjectURL(blob);\n a.href = url;\n a.download = fileName;\n a.click();\n window.URL.revokeObjectURL(url);\n }\n }\n\n logFormValidationErrors(form: FormGroup) {\n Object.keys(form.controls).forEach(key => {\n const controlErrors: ValidationErrors = form.get(key).errors;\n if (controlErrors != null) {\n Object.keys(controlErrors).forEach(keyError => {\n console.log('Key control: ' + key + ', keyError: ' + keyError + ', err value: ', controlErrors[keyError]);\n });\n }\n });\n }\n\n getEquipmentUserDefinedFieldLabels(): Observable> {\n return this.http.get>(this.apis.getEquipmentUserDefinedFieldLabels);\n }\n}\n\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ReturnMessage } from '../models/return-message';\nimport { XoiJobInfo } from '../models/xoi/xoi-job-info';\nimport { XoiJobInfoPayload } from '../models/xoi/xoi-job-info-payload';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class XoiService {\n\n private apis = {\n createXoiJobAndJobShare: 'XoiIntegration/CreateXoiJobAndJobShare/',\n };\n\n constructor(private http: HttpClient) { }\n\n createXoiJobAndJobShare(id: number): Observable> {\n return this.http.post>(this.apis.createXoiJobAndJobShare, id);\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n APP_VERSION: '7.2.1',\r\n COMPILE_DATE: 'May 02, 2023',\r\n GATEWAY_HANDSHAKE_TIMEOUT: 30000,\r\n TOAST_DEFAULT_DURATION: 8000,\r\n TOAST_SUCCESS_DEFAULT_DURATION: 4000,\r\n TOAST_ERROR_DEFAULT_DURATION: 8000,\r\n DEFAULT_AUTOCOMPLETE_DEBOUNCE_TIME: 800,\r\n DEFAULT_INPUT_DEBOUNCE_TIME: 800,\r\n DEFAULT_HTTP_REQUEST_TIMEOUT: 120000,\r\n DEFAULT_PHONE_NUMBER_FORMAT: '(XXX) XXX-XXXX Ext. XXXX',\r\n NUMBER_REGEX: /^(\\-)?\\d+(,\\d{3})*(\\.\\d*)?$/,\r\n EMAIL_ADDRESS_REGEX: \"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}$\",\r\n URL_REGEX: /^(https?):\\/\\/((?:[a-z0-9.-]|%[0-9A-F]{2}){3,})(?::(\\d+))?((?:\\/(?:[a-z0-9-._~!$&'()*+,;=:@]|%[0-9A-F]{2})*)*)(?:\\?((?:[a-z0-9-._~!$&'()*+,;=:\\/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-z0-9-._~!$&'()*+,;=:\\/?@]|%[0-9A-F]{2})*))?$/i,\r\n MOBILE_DOCUMENTS_FOLDER: 'Quadra/ServiceCall',\r\n DATE_OUTPUT_FORMAT: 'MM/DD/YYYY'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t470,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t22725,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t36149,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t19288,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"default-node_modules_ionic_core_dist_esm_framework-delegate-ce4f806c_js\",\n\t\t\"default-node_modules_ionic_core_dist_esm_index-7cd5eefa_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t61031,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t58310,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t81983,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t17039,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t57945,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t8714,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t31786,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t24702,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t94094,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t50795,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t36976,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t51417,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t78412,\n\t\t\"default-node_modules_ionic_core_dist_esm_index-7cd5eefa_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t94706,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t73459,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t23354,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t41025,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t98592,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t52526,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"default-node_modules_ionic_core_dist_esm_framework-delegate-ce4f806c_js\",\n\t\t\"default-node_modules_ionic_core_dist_esm_index-7cd5eefa_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t92447,\n\t\t\"default-node_modules_ionic_core_dist_esm_framework-delegate-ce4f806c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t24820,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js\"\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t83212,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t87557,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"default-node_modules_ionic_core_dist_esm_framework-delegate-ce4f806c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t28692,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t93544,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t40042,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t70718,\n\t\t\"default-node_modules_ionic_core_dist_esm_index-7cd5eefa_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t67780,\n\t\t\"default-node_modules_ionic_core_dist_esm_index-7cd5eefa_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t76488,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t47937,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t50942,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t20816,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t19062,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t13466,\n\t\t\"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t18404,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t60953,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t44254,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t45195,\n\t\t\"default-node_modules_ionic_core_dist_esm_framework-delegate-ce4f806c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t86116,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t79781,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t48323,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t376,\n\t\t\"default-node_modules_ionic_core_dist_esm_theme-7670341c_js\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t82072,\n\t\t\"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 50863;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./af\": 51975,\n\t\"./af.js\": 51975,\n\t\"./ar\": 24145,\n\t\"./ar-dz\": 75982,\n\t\"./ar-dz.js\": 75982,\n\t\"./ar-kw\": 56242,\n\t\"./ar-kw.js\": 56242,\n\t\"./ar-ly\": 26864,\n\t\"./ar-ly.js\": 26864,\n\t\"./ar-ma\": 22239,\n\t\"./ar-ma.js\": 22239,\n\t\"./ar-sa\": 834,\n\t\"./ar-sa.js\": 834,\n\t\"./ar-tn\": 22387,\n\t\"./ar-tn.js\": 22387,\n\t\"./ar.js\": 24145,\n\t\"./az\": 32351,\n\t\"./az.js\": 32351,\n\t\"./be\": 35392,\n\t\"./be.js\": 35392,\n\t\"./bg\": 38946,\n\t\"./bg.js\": 38946,\n\t\"./bm\": 91284,\n\t\"./bm.js\": 91284,\n\t\"./bn\": 84885,\n\t\"./bn-bd\": 64936,\n\t\"./bn-bd.js\": 64936,\n\t\"./bn.js\": 84885,\n\t\"./bo\": 52342,\n\t\"./bo.js\": 52342,\n\t\"./br\": 21319,\n\t\"./br.js\": 21319,\n\t\"./bs\": 90605,\n\t\"./bs.js\": 90605,\n\t\"./ca\": 97135,\n\t\"./ca.js\": 97135,\n\t\"./cs\": 17783,\n\t\"./cs.js\": 17783,\n\t\"./cv\": 8060,\n\t\"./cv.js\": 8060,\n\t\"./cy\": 65052,\n\t\"./cy.js\": 65052,\n\t\"./da\": 6997,\n\t\"./da.js\": 6997,\n\t\"./de\": 74846,\n\t\"./de-at\": 15074,\n\t\"./de-at.js\": 15074,\n\t\"./de-ch\": 87973,\n\t\"./de-ch.js\": 87973,\n\t\"./de.js\": 74846,\n\t\"./dv\": 48879,\n\t\"./dv.js\": 48879,\n\t\"./el\": 88233,\n\t\"./el.js\": 88233,\n\t\"./en-au\": 32333,\n\t\"./en-au.js\": 32333,\n\t\"./en-ca\": 48371,\n\t\"./en-ca.js\": 48371,\n\t\"./en-gb\": 85980,\n\t\"./en-gb.js\": 85980,\n\t\"./en-ie\": 15263,\n\t\"./en-ie.js\": 15263,\n\t\"./en-il\": 96225,\n\t\"./en-il.js\": 96225,\n\t\"./en-in\": 89198,\n\t\"./en-in.js\": 89198,\n\t\"./en-nz\": 76014,\n\t\"./en-nz.js\": 76014,\n\t\"./en-sg\": 58604,\n\t\"./en-sg.js\": 58604,\n\t\"./eo\": 38351,\n\t\"./eo.js\": 38351,\n\t\"./es\": 47446,\n\t\"./es-do\": 15381,\n\t\"./es-do.js\": 15381,\n\t\"./es-mx\": 41268,\n\t\"./es-mx.js\": 41268,\n\t\"./es-us\": 93922,\n\t\"./es-us.js\": 93922,\n\t\"./es.js\": 47446,\n\t\"./et\": 93874,\n\t\"./et.js\": 93874,\n\t\"./eu\": 29501,\n\t\"./eu.js\": 29501,\n\t\"./fa\": 62986,\n\t\"./fa.js\": 62986,\n\t\"./fi\": 63517,\n\t\"./fi.js\": 63517,\n\t\"./fil\": 40471,\n\t\"./fil.js\": 40471,\n\t\"./fo\": 69848,\n\t\"./fo.js\": 69848,\n\t\"./fr\": 22104,\n\t\"./fr-ca\": 14079,\n\t\"./fr-ca.js\": 14079,\n\t\"./fr-ch\": 15960,\n\t\"./fr-ch.js\": 15960,\n\t\"./fr.js\": 22104,\n\t\"./fy\": 59942,\n\t\"./fy.js\": 59942,\n\t\"./ga\": 86259,\n\t\"./ga.js\": 86259,\n\t\"./gd\": 10196,\n\t\"./gd.js\": 10196,\n\t\"./gl\": 9667,\n\t\"./gl.js\": 9667,\n\t\"./gom-deva\": 58901,\n\t\"./gom-deva.js\": 58901,\n\t\"./gom-latn\": 8001,\n\t\"./gom-latn.js\": 8001,\n\t\"./gu\": 9430,\n\t\"./gu.js\": 9430,\n\t\"./he\": 98008,\n\t\"./he.js\": 98008,\n\t\"./hi\": 13449,\n\t\"./hi.js\": 13449,\n\t\"./hr\": 69271,\n\t\"./hr.js\": 69271,\n\t\"./hu\": 61036,\n\t\"./hu.js\": 61036,\n\t\"./hy-am\": 83043,\n\t\"./hy-am.js\": 83043,\n\t\"./id\": 27102,\n\t\"./id.js\": 27102,\n\t\"./is\": 87297,\n\t\"./is.js\": 87297,\n\t\"./it\": 11248,\n\t\"./it-ch\": 3529,\n\t\"./it-ch.js\": 3529,\n\t\"./it.js\": 11248,\n\t\"./ja\": 70645,\n\t\"./ja.js\": 70645,\n\t\"./jv\": 74317,\n\t\"./jv.js\": 74317,\n\t\"./ka\": 35359,\n\t\"./ka.js\": 35359,\n\t\"./kk\": 9027,\n\t\"./kk.js\": 9027,\n\t\"./km\": 14941,\n\t\"./km.js\": 14941,\n\t\"./kn\": 77478,\n\t\"./kn.js\": 77478,\n\t\"./ko\": 74356,\n\t\"./ko.js\": 74356,\n\t\"./ku\": 91077,\n\t\"./ku.js\": 91077,\n\t\"./ky\": 80145,\n\t\"./ky.js\": 80145,\n\t\"./lb\": 12339,\n\t\"./lb.js\": 12339,\n\t\"./lo\": 53814,\n\t\"./lo.js\": 53814,\n\t\"./lt\": 20281,\n\t\"./lt.js\": 20281,\n\t\"./lv\": 90177,\n\t\"./lv.js\": 90177,\n\t\"./me\": 39609,\n\t\"./me.js\": 39609,\n\t\"./mi\": 58772,\n\t\"./mi.js\": 58772,\n\t\"./mk\": 16112,\n\t\"./mk.js\": 16112,\n\t\"./ml\": 42854,\n\t\"./ml.js\": 42854,\n\t\"./mn\": 50538,\n\t\"./mn.js\": 50538,\n\t\"./mr\": 30450,\n\t\"./mr.js\": 30450,\n\t\"./ms\": 11508,\n\t\"./ms-my\": 86169,\n\t\"./ms-my.js\": 86169,\n\t\"./ms.js\": 11508,\n\t\"./mt\": 47009,\n\t\"./mt.js\": 47009,\n\t\"./my\": 55350,\n\t\"./my.js\": 55350,\n\t\"./nb\": 15909,\n\t\"./nb.js\": 15909,\n\t\"./ne\": 87502,\n\t\"./ne.js\": 87502,\n\t\"./nl\": 65321,\n\t\"./nl-be\": 94405,\n\t\"./nl-be.js\": 94405,\n\t\"./nl.js\": 65321,\n\t\"./nn\": 45704,\n\t\"./nn.js\": 45704,\n\t\"./oc-lnc\": 83788,\n\t\"./oc-lnc.js\": 83788,\n\t\"./pa-in\": 96290,\n\t\"./pa-in.js\": 96290,\n\t\"./pl\": 98265,\n\t\"./pl.js\": 98265,\n\t\"./pt\": 58802,\n\t\"./pt-br\": 53430,\n\t\"./pt-br.js\": 53430,\n\t\"./pt.js\": 58802,\n\t\"./ro\": 17732,\n\t\"./ro.js\": 17732,\n\t\"./ru\": 14548,\n\t\"./ru.js\": 14548,\n\t\"./sd\": 43268,\n\t\"./sd.js\": 43268,\n\t\"./se\": 31832,\n\t\"./se.js\": 31832,\n\t\"./si\": 51601,\n\t\"./si.js\": 51601,\n\t\"./sk\": 96759,\n\t\"./sk.js\": 96759,\n\t\"./sl\": 81930,\n\t\"./sl.js\": 81930,\n\t\"./sq\": 84476,\n\t\"./sq.js\": 84476,\n\t\"./sr\": 63648,\n\t\"./sr-cyrl\": 1249,\n\t\"./sr-cyrl.js\": 1249,\n\t\"./sr.js\": 63648,\n\t\"./ss\": 39724,\n\t\"./ss.js\": 39724,\n\t\"./sv\": 12280,\n\t\"./sv.js\": 12280,\n\t\"./sw\": 87639,\n\t\"./sw.js\": 87639,\n\t\"./ta\": 45843,\n\t\"./ta.js\": 45843,\n\t\"./te\": 89211,\n\t\"./te.js\": 89211,\n\t\"./tet\": 35822,\n\t\"./tet.js\": 35822,\n\t\"./tg\": 69191,\n\t\"./tg.js\": 69191,\n\t\"./th\": 74716,\n\t\"./th.js\": 74716,\n\t\"./tk\": 59684,\n\t\"./tk.js\": 59684,\n\t\"./tl-ph\": 84428,\n\t\"./tl-ph.js\": 84428,\n\t\"./tlh\": 85189,\n\t\"./tlh.js\": 85189,\n\t\"./tr\": 83807,\n\t\"./tr.js\": 83807,\n\t\"./tzl\": 6539,\n\t\"./tzl.js\": 6539,\n\t\"./tzm\": 36714,\n\t\"./tzm-latn\": 98827,\n\t\"./tzm-latn.js\": 98827,\n\t\"./tzm.js\": 36714,\n\t\"./ug-cn\": 97366,\n\t\"./ug-cn.js\": 97366,\n\t\"./uk\": 92757,\n\t\"./uk.js\": 92757,\n\t\"./ur\": 57362,\n\t\"./ur.js\": 57362,\n\t\"./uz\": 5534,\n\t\"./uz-latn\": 50321,\n\t\"./uz-latn.js\": 50321,\n\t\"./uz.js\": 5534,\n\t\"./vi\": 24049,\n\t\"./vi.js\": 24049,\n\t\"./x-pseudo\": 43134,\n\t\"./x-pseudo.js\": 43134,\n\t\"./yo\": 2668,\n\t\"./yo.js\": 2668,\n\t\"./zh-cn\": 41282,\n\t\"./zh-cn.js\": 41282,\n\t\"./zh-hk\": 13423,\n\t\"./zh-hk.js\": 13423,\n\t\"./zh-mo\": 6739,\n\t\"./zh-mo.js\": 6739,\n\t\"./zh-tw\": 81037,\n\t\"./zh-tw.js\": 81037\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"],"names":["NgModule","PreloadAllModules","RouterModule","AuthGuard","AutoLoginGuard","AutoLogoutGuard","CanEditSurveyCustomerAddressGuard","GatewayConfigurationGuard","MenuDisabledPageGuard","MenuEnabledPageGuard","QuoteEmailAddRecFileModalDeactivateGuard","QuoteQuestionsDeactivateGuard","RecommendationAddGuard","RecommendationQuestionsDeactivateGuard","DashboardPageModule","QuoteEmailAddRecFileModalPageModule","QuoteEmailAddRecFileModalPage","QuoteQuestionsPageModule","QuoteQuestionsPage","RecommendationEditPageModule","RecommendationQuestionsPageModule","RecommendationQuestionsPage","SearchResultsPageModule","SearchPageModule","CustomerLocationFieldRequirementsResolver","LaborRateGroupResolver","PhoneNumberFormatResolver","PriceMatrixResolver","QuoteStatusResolver","RecommendationStatusResolver","RecommendationUserDefinedStatusResolver","RegionResolver","TaxScheduleResolver","TechnicianResolver","routes","path","redirectTo","pathMatch","canActivate","loadChildren","then","m","resolve","recommendationStatus","recommendationUserDefinedStatus","quoteStatus","LoginPageModule","GatewayPageModule","AccountPageModule","SurveyProspectCustomerAddPageModule","phoneNumberFormat","laborRateGroup","priceMatrix","taxSchedule","technician","customerLocationFieldRequirements","SurveyProspectCustomerEditPageModule","SurveyProspectCustomerViewPageModule","SurveyProspectCustomerAddressAddPageModule","SurveyProspectCustomerAddressDetailsPageModule","SurveyProspectCustomerAddressEditPageModule","children","SurveyProspectCustomerAddressViewPageModule","SurveyEquipmentListPageModule","SurveyEquipmentAddPageModule","SurveyEquipmentFileViewPageModule","SurveyEquipmentFileUploadPageModule","SurveyEquipmentFileImageUploadPageModule","SurveyEquipmentFileAudioUploadPageModule","SurveyEquipmentEditPageModule","CustomerAddPageModule","CustomerViewPageModule","CustomerEditPageModule","CustomerAddressAddPageModule","CustomerAddressViewPageModule","EquipmentListPageModule","EquipmentAddPageModule","EquipmentFileUploadPageModule","EquipmentFileAudioUploadPageModule","EquipmentFileImageUploadPageModule","EquipmentFileViewPageModule","EquipmentEditPageModule","QuoteListPageModule","RecommendationListPageModule","CustomerAddressEditPageModule","CustomerAddressDetailsPageModule","GenericAddStepOnePageModule","GenericAddStepTwoPageModule","RecommendationAddPageModule","regions","RecommendationCopyPageModule","RecommendationCopyItemReplaceListPageModule","RecommendationCopyItemUpdateListPageModule","RecommendationCopyReplaceItemPageModule","RecommendationEquipmentAddPageModule","RecommendationEquipmentEditPageModule","RecommendationEquipmentListPageModule","RecommendationEquipmentViewPageModule","RecommendationEquipmentReviewPageModule","RecommendationItemListPageModule","RecommendationItemAppTypeSelectPageModule","RecommendationItemAddPageModule","RecommendationItemQuestionsPageModule","RecommendationItemAddServiceLaborPageModule","RecommendationItemAddAssemblyPageModule","RecommendationItemAddAssemblyItemsPageModule","RecommendationItemEditPageModule","RecommendationItemQuestionsEditPageModule","canDeactivate","component","RecommendationFileImageUploadPageModule","RecommendationFileAudioUploadPageModule","RecommendationFileUploadPageModule","RecommendationFileViewPageModule","QuoteAddPageModule","QuoteEditPageModule","QuoteEditRecommendationPageModule","QuoteItemsListPageModule","QuoteItemAppTypeSelectPageModule","QuoteItemAddPageModule","QuoteItemQuestionsPageModule","QuoteItemAddServiceLaborPageModule","QuoteItemAddAssemblyPageModule","QuoteItemAddAssemblyItemsPageModule","QuoteItemEditPageModule","QuoteItemQuestionsEditPageModule","QuoteMarkupAdjustmentPageModule","QuoteEmailPreviewPageModule","QuoteCustomerApprovalPageModule","QuoteCustomerApprovalViewPageModule","QuoteServiceCallPageModule","ConfirmAddToExistingServiceCallViewPageModule","QuoteCopyPageModule","QuoteCopyItemReplaceListPageModule","QuoteCopyItemUpdateListPageModule","QuoteCopyReplaceItemPageModule","AppRoutingModule","imports","forRoot","preloadingStrategy","useHash","exports","providers","Component","HostListener","Router","MenuController","NavController","environment","EventsService","UserDataService","AppComponent","router","navController","menu","userData","eventsService","app_version","APP_VERSION","getLoginSubject","subscribe","showFooter","getLogoutSubject","hasLoggedIn","navigateRoot","toggle","removeLoginData","navigate","args","selector","template","BrowserModule","RouteReuseStrategy","IonicModule","IonicRouteStrategy","IonicStorageModule","HttpClientModule","httpInterceptorProviders","ReactiveFormsModule","FooterModule","FileOpener","AppModule","declarations","entryComponents","swipeBackEnabled","provide","useClass","bootstrap","AbstractAutocompleteDataLoader","dictionary","options","key","push","id","description","Input","Output","EventEmitter","NG_VALIDATORS","NG_VALUE_ACCESSOR","of","Subject","catchError","debounceTime","finalize","switchMap","repeat","ToastControllerWrapperService","AutocompleteComponent","toastWrapper","userDataService","option","DEFAULT_AUTOCOMPLETE_DEBOUNCE_TIME","cntxt","undefined","selection","skipSearch","selectionChange","emit","loader","instanceOfAutocompleteDataLoader","object","Error","results$","searchTerms","pipe","autocompleteDebounceTime","term","obs","load","searchTerm","loading","loadAll","allRequested","err","error","response","success","payload","control","fn","onValidationChange","obj","initialSearch","updateOption","onChange","onTouched","isDisabled","disabled","touched","getAutocompleteTime","formatValue","markAsTouched","next","closeOptionsList","multi","useExisting","AutocompleteComponent_1","CommonModule","FormsModule","AutocompleteModule","CardSkeletonComponent","CardSkeletonModule","CustomerAddressCardComponent","PipesModule","CustomerAddressCardModule","CustomerAndAddressCardComponent","CustomerAndAddressCardModule","moment","DatetimeModalComponent","DATE_OUTPUT_FORMAT","modalId","Math","random","toString","internalValue","dateObj","toDate","value","format","valueFormat","valueChange","parseFormat","displayFormat","DatetimeModalComponent_1","DatetimeModalModule","EquipmentCardComponent","_value","val","Object","assign","EquipmentCardModule","ActionSheetController","Platform","GenericAddStepOneModelEnum","PermissionCheckerService","FooterComponent","actionSheetCtrl","platform","permissionChecker","getActionSheetOptions","buttons","create","header","actionSheet","present","canCRUDCustomers","customerPermissions","canCRUDEquipments","equipmentPermissions","canCRUDRecommendations","recommendationsPermissions","canCRUDQuotes","quotesPermissions","canUseSurveyCustomer","isReadOnly","buttonsForSheet","text","icon","is","handler","__awaiter","dismiss","RECOMMENDATION","QUOTE","role","console","log","PendingListSkeletonComponent","n","i","slots","PendingListSkeletonModule","QuoteCardComponent","model","QUOTE_COPY","state","srcQuoteId","QuoteCardModule","RecommendationCardComponent","RECOMMENDATION_COPY","srcRecommendationId","RecommendationCardModule","Injectable","route","canAccessPage","isGatewayConfigured","isGatewayUrlConfigured","parseUrl","providedIn","hasUserLoggedIn","autoLogout","logoutOfGateway","publishLogout","canCRUDCustomerLocations","verifyGatewayUrlConfiguration","menuCtrl","enable","AlertController","alertCtrl","page","currentRoute","currentState","nextState","canLeavePage","filesSizeValid","subject","showConfirmationDialog","asObservable","message","confirmDialog","canLeave","form","dirty","combineLatest","from","concatMap","timeout","ErrorHandlingService","GatewayApiInterceptor","errorHandlingService","req","getUrl","getGatewayUrl","getApiKey","gatewayUrl","results","apiKey","finalUrl","isFullUrl","headers","get","url","authBasicValue","timeoutValue","DEFAULT_HTTP_REQUEST_TIMEOUT","timeoutValueNumeric","Number","getPlatform","authReq","clone","delete","set","handle","handleError","HTTP_INTERCEPTORS","NoopInterceptor","CustomerAddressTypeEnum","EquipmentTypeEnum","DashboardPage","DashboardPageRoutingModule","forChild","QuoteService","RecommendationService","UserAutocompleteDataLoaderService","UserService","SplashScreen","Title","titleService","userService","quoteService","recommendationService","userAutoCompDataLoader","getUser","user","u","setTitle","title","ready","hide","loadDashboardCounts","loadPendingQuotes","loadPendingRecommendations","getDashboardCounts","data","counts","postUserId","pendingQuotesUser","getPendingQuotes","pendingQuotes","quotes","pendingRecommendationsUser","getPendingRecommendations","pendingRecommendations","recommendations","index","item","recommendation","customerAddressExists","addressId","recommendationId","addressType","presentErrorToast","quote","quoteId","QuoteEmailAddRecFileModalPageRoutingModule","ActivatedRoute","navigationState","getCurrentNavigation","_a","extras","recommendationFiles","maximumEmailAttachmentSize","relativeTo","file","fileSizeKb","updateSelectedFilesSize","selectedFilesSize","selectedForEmailAttachment","QuoteQuestionsPageRoutingModule","TextMaskModule","FormBuilder","FormGroup","Validators","forkJoin","LoadingControllerWrapperService","FormatService","fb","loadingWrapper","formatService","validationMessages","name","maxLengths","Text","validators","maxLength","inputMode","Purchase_Order","pattern","NUMBER_REGEX","Email","EMAIL_ADDRESS_REGEX","Default","quoteQuestions","questions","length","disableSubmitButton","presentLoading","snapshot","getQuoteQuestions","dismissLoading","phonePlaceholder","createPhonePlaceHolder","phoneNumberMask","createPhoneNumberMask","buildForm","group","array","question","fieldConfiguration","getFieldConfigurationByQuestion","questionInitialValue","userDefinedField","CALLER_PHONE_NUMBER","applyPhoneNumberFormat","addQuestion","dfltConf","fieldsConfiguration","DFLT_FIELD_CONF_NAME","PURCHASE_ORDER_FIELD","dataType","getFieldConfigurationByQuestionIndex","formattedPhoneNumber","unformattedPhoneNumber","unapplyPhoneNumberFormat","reformattedPhoneNumber","post","questionsAnswers","addPhoneNumberMissingZeros","valid","dismissToast","PHONE_NBR_DATA_TYPE","UpdatePhoneNumber","updateQuoteQuestions","RecommendationEditPage","RecommendationEditPageRoutingModule","ViewChild","UserDefinedStatusesAutocompleteDataLoaderService","CustomerAddressService","EquipmentService","UtilityService","XoiService","AppLauncher","Browser","customerAddressService","equipmentService","utilitiesService","xoiService","userStatusesDataLoader","statusOfRecommendation","statusLevel","required","details","benefits","userDefinedStatus","regionId","isMobilePlatform","canUpdateCustomStatus","canCopyRecommendations","getHeaderDetails","getStatusOfRecommendation","getItemsCount","getAssociatedQuotes","getHistory","getFiles","list","canCrudRec","canCrudEquip","patchValue","userDefinedStatusId","readOnly","itemCount","count","associatedQuotes","history","files","hasEquipments","equipment","setValue","emitEvent","content","scrollToTop","update","markAllAsTouched","canEditEquipment","equipmentType","RECOMMENDATION_EQUIPMENT","UPDATE_EQUIPMENT","equipmentId","isGpEquipmentPendingChanges","isGpEquipmentPendingChange","notifyOffice","display","inputs","placeholder","email","sendEmailWithCustomerEmail","prompt","emailAddressFieldValidation","validateEmailAddressField","validEmailAddressField","errorMessage","notifyCustomerWithCustomerEmail","existingFileNames","map","f","uploadedFile","getFileActionSheetOptions","createdDate","allowFileDeletion","deleteFile","createXoiJobAndJobShare","xoiJobId","xoiJobInfo","JobId","xoiShareLink","ShareLink","xoiJobDetails","JobDetails","launchExternalApp","window","open","jsonObj","jsonObjStringified","JSON","stringify","jsonEncodedXoiJobString","encodeURI","uri","packageName","openUrl","catch","err2","event","target","RecommendationQuestionsPageRoutingModule","FormControl","getRecommendationQuestions","updateRecommendationQuestions","SearchResultsPage","SearchResultsPageRoutingModule","searchResults","customerAndAddressExist","customerAddressId","customerAddressType","SURVEY_PROSPECT_CUSTOMER_ADDRESS","parseInt","surveyCustomerAddressId","EXISTING_CUSTOMER_ADDRESS","customerNumber","addressCode","entitytype","address","SearchPage","SearchPageRoutingModule","Geolocation","BarcodeScanner","postSearch","recommendationStatuses","quoteStatuses","stopScanner","search","resultsFound","exisitingCustomerResults","existingEquipmentResults","prospectCustomerResults","quoteResults","recommendationEquipmentResults","recommendationResults","surveyCustomerResults","surveyEquipmentResults","getCurrentPosition","position","coordinates","longitude","coords","latitude","getFieldsFromGps","city","street","street_number","streetNumber","checkPermission","force","allowed","granted","scanActive","hideBackground","startScan","result","hasContent","serial_number","stopScan","reason","Pipe","CustomerFilterPipe","type","filter","v","sourceObject","JoinPipe","separator","filtered","join","KeyValueFilterPipe","keys","StringDateFormatterPipe","SlugifyPipe","str","toLowerCase","replace","inFormat","outFormat","CustomerService","customerService","getCustomerLocationFieldRequirements","requirements","addressName","responsePromise","Promise","reject","getLaborRateGroupOptions","defaultOption","getPhoneNumberFormat","validatePhoneNumberFormat","DEFAULT_PHONE_NUMBER_FORMAT","getPriceMatrixOptions","getStatus","statuses","getRecommendationUserDefinedStatusDescription","getRegions","lockRegion","getTaxSchedule","getTechnicians","postFilterFields","autocompleteUsers","fromDictionary","users","searchAll","autocompleteUserDefinedStatuses","HttpClient","HttpParams","http","add","addProspect","updateProspect","getGeneric","apis","params","getGenericAddresses","getAddresses","nameSearch","getLabourRateGroupOptions","autocompleteMasterLocationGroup","noResultLimit","addRecommendationEquipment","getEquipment","autocompleteEquipmentType","autocompleteManufacturer","autocompleteModelNumber","autocompleteInstallationBy","autocompleteExtendedWarrantyType","autocompleteServiceLevel","getStagingEquipmentFiles","getEquipmentFiles","uploadEquipmentFile","deleteEquipmentFile","clearStagingEquipmentFileTable","getFullImage","filterData","TimeoutError","alertController","status","statusText","apiResponse","Message","errorHeader","allowBackdropDismiss","backdropDismiss","msgDialog","loginSubject","logoutSubject","recommendationItemAdded","recommendationAssemblyAdded","quoteItemAdded","quoteAssemblyAdded","serviceCallCreated","toasterWrapper","indexOf","phoneNumber","nextCharContactNumber","nextCharOfPhoneNumberFormat","unformatedPhoneNumber","unformatterValue","notValid","LoadingController","loadingController","getUserPermissions","permissionString","permissionTypes","includes","hasPermission","utilityService","getRecommendationsForQuoteEdit","updateQuoteRecommendations","getItemsSummary","getCustomerApprovalInfo","getRecommendationIdsInQuote","sendEmail","requestInternalApproval","internallyApprove","approveQuote","getValuesForMarkups","calculateMarkupAndTotalForApplicationType","recalculateMarkupsAndTotalsForQuoteFromTotalMarkup","recalculateMarkupsAndTotalsForQuoteFromTotalBidPrice","updateMarkupAndBidPrices","declineQuote","calculateMarkupPageTotal","downloadCsv","validQuoteTemplate","validQuoteDocumentTemplate","getInfoForQuoteEmailPreview","getQuoteCopyHeader","copy","getQuoteCSV","previewQuoteDefaultPdf","previewQuotePdf","previewQuoteDefaultDocx","previewQuoteDocx","updateQuantities","getItemTotals","getItem","updateItem","deleteItem","addItem","createItemsWithAttributes","getAttributes","addAssemblyItems","getApplicationTypes","autocompleteSalesPersonId","getPayCodes","autocompleteJobTitle","autocompleteQuoteTemplate","autocompleteQuoteDocumentTemplate","autocompleteQuoteUserDefinedStatuses","itemSearch","calculateItemValues","getItemItemDetails","getCategoriesForApplicationType","getInventoryItemAttributes","getSubItemsForAssemblyOption","getItemDetailsInAssembly","updateAttributes","getServiceCallSetupValues","taskSearch","tasklistSearch","addServiceCall","addToExistingServiceCall","autocompleteTechnicianId","autocompleteServiceCall","autocompleteContractNumber","offerType","offerId","sendObject","payCodeId","jobTitleId","jobTitleDescription","labourRateGroup","editedQuoteDescription","quoteDescription","fileName","extension","responseType","userRequestId","quoteTemplateType","attachToServiceCall","quoteTemplate","quoteCopyStates","addExistingEquipment","getUnreadHistoryCount","notifyCustomer","getRecommendationCopyHeader","getNumberOfQuotesWithRecommendationItem","recommendationTemplateSearch","uploadFile","getFile","recommendationCopyStates","Storage","StorageService","storage","_storage","init","cache","remove","ToastController","toastController","toast","erro","side","duration","TOAST_DEFAULT_DURATION","color","TOAST_SUCCESS_DEFAULT_DURATION","TOAST_ERROR_DEFAULT_DURATION","storageService","getEntry","GATEWAY_URL","setEntry","removeEntry","API_KEY","api_key","USER_NAME","userName","USER_EMAIL","emailAddress","autocompleteTime","AUTOCOMPLETE_TIME","USER","USER_PERMISSIONS","permissions","platformType","login","dashboardCounts","postLogin","formData","HttpHeaders","Directory","Filesystem","EmailValidator","fileOpener","getEquipmentUserDefinedFieldLabels","blob","reader","FileReader","onerror","onload","readAsDataURL","emailAddressField","emailAddressFieldIsValid","emailAddressString","emailAddressList","split","e","trim","validate","mkdir","MOBILE_DOCUMENTS_FOLDER","recursive","directory","Documents","readdir","readDirResult","some","toLocaleLowerCase","assignedFileName","exists","copyNumber","doesFileExist","base64data","createDocumentsFolderIfNotExist","CheckDuplicatedName","writeFile","convertBlobToBase64","saveFile","fetch","r","base64Data","regexToUse","varToTestAgainst","test","parseFloat","removeDollarAmountCharacters","removePercentCharacters","fileMIMEType","saveBinaryDataAsFile","savedFile","a","document","createElement","body","appendChild","URL","createObjectURL","href","download","click","revokeObjectURL","controls","forEach","controlErrors","errors","keyError","production","COMPILE_DATE","GATEWAY_HANDSHAKE_TIMEOUT","DEFAULT_INPUT_DEBOUNCE_TIME","URL_REGEX","enableProdMode","platformBrowserDynamic","bootstrapModule"],"sourceRoot":"webpack:///"}