{"version":3,"file":"main.js","mappings":"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AAqB,EAAC,yCAAyC;QAC/D,qBAAqB,EAAC,8BAA8B;QACpD,sBAAsB,EAAC,8BAA8B;QACrD,sBAAsB,EAAC,wCAAwC;QAC/D,iBAAiB,EAAC,oCAAoC;KACvD;CACF,CAAC;;;;;;;;;;;;;;;;;AC9C6C;AAC4B;AAE9B;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,yFAAsB,EAAE,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnSA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/common-modules/common-components/breadcrumb/breadcrumb.component.ts","./src/app/common-modules/common-modules.module.ts","./src/app/core/auth.guard.ts","./src/app/core/enctypt-decrytp.pipe.ts","./src/app/core/error-handler.ts","./src/app/core/error.interceptor.ts","./src/app/core/footer/footer.component.ts","./src/app/core/http-request-interceptor.ts","./src/app/core/index.ts","./src/app/core/layout-top-nav/layout-top-nav.component.ts","./src/app/core/layout-top-nav/layout-top-nav.module.ts","./src/app/features/chatbot/chatbot.component.ts","./src/app/features/chatbot/recover-login-form/recover-login-form.component.ts","./src/app/features/chatbot/service-availability-form/service-availability-form.component.ts","./src/app/features/home/auto-promotion/auto-promotion.component.ts","./src/app/features/home/dashboard-widgets/contacts-widget/contacts-widget.component.ts","./src/app/features/home/dashboard-widgets/dashboard-widgets.component.ts","./src/app/features/home/dashboard-widgets/fee-payment-widget/fee-payment-widget.component.ts","./src/app/features/home/dashboard-widgets/graph-widget/graph-widget.component.ts","./src/app/features/home/dashboard-widgets/news-widget/news-widget.component.ts","./src/app/features/home/dashboard-widgets/profile-widget/profile-widget.component.ts","./src/app/features/home/dashboard-widgets/register-sibling-widget/register-sibling-widget.component.ts","./src/app/features/home/dashboard-widgets/transport-schedule-change-widget/transport-schedule-change-widget.component.ts","./src/app/features/home/home-routing.module.ts","./src/app/features/home/home.component.ts","./src/app/features/home/home.module.ts","./src/app/features/home/request-callback/request-callback.component.ts","./src/app/features/home/request-for-contact-change/request-for-contact-change.component.ts","./src/app/features/home/schedule-change/request-schedule-change/request-schedule-change.component.ts","./src/app/features/home/schedule-change/schedule-change.component.ts","./src/app/features/home/transport-information/payments/payments.component.ts","./src/app/features/home/transport-information/pdfpipe.pipe.ts","./src/app/features/home/transport-information/re-registration/re-register-terms-and-condition/re-register-terms-and-condition.component.ts","./src/app/features/home/transport-information/re-registration/re-registration.component.ts","./src/app/features/home/transport-information/transport-discontinuation/transport-discontinuation.component.ts","./src/app/features/home/transport-information/transport-information.component.ts","./src/app/features/login/forgot-password/forgot-password.component.ts","./src/app/features/menu/menu-routing.module.ts","./src/app/features/menu/menu.module.ts","./src/app/features/menu/request-area-change/request-area-change-info/request-area-change-info.component.ts","./src/app/features/menu/request-area-change/request-area-change.component.ts","./src/app/features/menu/settings/app-terms-and-conditions/app-terms-and-conditions.component.ts","./src/app/features/menu/settings/change-password/change-password.component.ts","./src/app/features/menu/settings/privacy-policy/privacy-policy.component.ts","./src/app/features/menu/settings/settings.component.ts","./src/app/features/menu/sts-group/sts-group.component.ts","./src/app/features/menu/sts-offers/sts-offers.component.ts","./src/app/features/menu/support/contact-sde/contact-sde.component.ts","./src/app/features/menu/support/faq/faq.component.ts","./src/app/features/menu/support/feedback/add-feedback/add-feedback.component.ts","./src/app/features/menu/support/feedback/feedback.component.ts","./src/app/features/menu/support/service-request/rfid/rfid.component.ts","./src/app/features/menu/support/service-request/service-request.component.ts","./src/app/features/menu/support/service-request/view-service-request/view-service-request.component.ts","./src/app/features/menu/support/support.component.ts","./src/app/features/menu/support/tcpipe.pipe.ts","./src/app/features/menu/support/terms-conditions/terms-conditions.component.ts","./src/app/features/myaccount/myaccount.component.ts","./src/app/features/notification/notification-alerts/notification-alerts.component.ts","./src/app/features/notification/notification-messages/notification-messages.component.ts","./src/app/features/notification/notification-routing.module.ts","./src/app/features/notification/notification-starred/notification-starred.component.ts","./src/app/features/notification/notification.component.ts","./src/app/features/notification/notification.module.ts","./src/app/features/page-not-found/page-not-found.component.ts","./src/app/features/payments/payment-detail/payment-detail.component.ts","./src/app/features/payments/payment-history/payment-history.component.ts","./src/app/features/payments/payments-routing.module.ts","./src/app/features/payments/payments.module.ts","./src/app/features/payments/receipts/receipts.component.ts","./src/app/features/payments/statement-of-accounts/payment-refund/payment-refund.component.ts","./src/app/features/payments/statement-of-accounts/soa-details/soa-details.component.ts","./src/app/features/payments/statement-of-accounts/soa-summary/soa-summary.component.ts","./src/app/features/payments/statement-of-accounts/statement-of-accounts.component.ts","./src/app/features/school-bus-registration/school-bus-registration-routing.module.ts","./src/app/features/school-bus-registration/school-bus-registration.module.ts","./src/app/features/school-bus-registration/schoolbus-registration/parent-information/parent-information.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/reactivate-student-information/reactivate-student-information.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/residential-information/residential-information.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/schoolbus-registration.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/student-information/student-information.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/terms-and-conditions/terms-and-conditions.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/terms-and-conditions/uaepass-callback/uaepass-callback.component.ts","./src/app/features/school-bus-registration/schoolbus-registration/terms-and-conditions/view-terms-and-conditions/view-terms-and-conditions.component.ts","./src/app/features/school-bus-registration/schools-list/schools-list.component.ts","./src/app/features/serviceinfo/serviceinfo.component.ts","./src/app/features/smartbus/smartbus.component.ts","./src/app/features/transportrequest/onlineregistration/onlineregistration.component.ts","./src/app/features/transportrequest/transportrequest.component.ts","./src/app/helper/url-redirect.ts","./src/app/landing-page/landing-page-routing.module.ts","./src/app/landing-page/landing-page.component.ts","./src/app/landing-page/landing-page.module.ts","./src/app/message/message.component.ts","./src/app/models/app-config.ts","./src/app/models/date-format.pipe.ts","./src/app/models/landing.model.ts","./src/app/models/prevent-arabic.directive.ts","./src/app/models/registration.model.ts","./src/app/models/rereg-prevent-arabic.directive.ts","./src/app/service/areaChange.service.ts","./src/app/service/authentication.service.ts","./src/app/service/chat.service.ts","./src/app/service/common.service.ts","./src/app/service/config.service.ts","./src/app/service/contactChange.service.ts","./src/app/service/dashboard.service.ts","./src/app/service/encryptionService.service.ts","./src/app/service/file.service.ts","./src/app/service/google-maps-autocomplete-service.service.ts","./src/app/service/home.service.ts","./src/app/service/index.ts","./src/app/service/logger.service.ts","./src/app/service/notification.service.ts","./src/app/service/payment.service.ts","./src/app/service/pdfservice.service.ts","./src/app/service/registration.service.ts","./src/app/service/reregistration.service.ts","./src/app/service/serviceinfo.service.ts","./src/app/service/sessionTimeout.service.ts","./src/app/service/support.service.ts","./src/app/service/token.service.ts","./src/app/service/uaepass.service.ts","./src/app/service/user.service.ts","./src/app/service/userprofileupdate.service.ts","./src/app/shared.module.ts","./src/app/shared/AutoPromoLayout/autoPromoLayout.component.ts","./src/app/shared/layout/layout.component.ts","./src/app/shared/prelogin-layout/prelogin-layout.component.ts","./src/app/transportservice.service.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\crypto-js|crypto","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|canvas","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|fs","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|http","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|https","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|url","ignored|C:\\AzureDevOps\\STS-Connect\\STS-Connect\\node_modules\\pdfjs-dist\\legacy\\build|zlib"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from './core';\r\nimport { PageNotFoundComponent } from './features/page-not-found/page-not-found.component';\r\nimport { ServiceinfoComponent } from './features/serviceinfo/serviceinfo.component';\r\n\r\nimport { LayoutComponent } from './shared/layout/layout.component';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { TransportrequestComponent } from './features/transportrequest/transportrequest.component';\r\nimport { OnlineregistrationComponent } from './features/transportrequest/onlineregistration/onlineregistration.component';\r\n// import { ChangePasswordComponent } from './features/account/change-password/change-password.component';\r\nimport { SibilinglinkingComponent } from './features/sibilinglinking/sibilinglinking.component';\r\nimport { LandingPageComponent } from './landing-page/landing-page.component';\r\nimport { ForgotPasswordComponent } from './features/login/forgot-password/forgot-password.component';\r\nimport { RequestScheduleChangeComponent } from './features/home/schedule-change/request-schedule-change/request-schedule-change.component';\r\nimport { TransportInformationComponent } from './features/home/transport-information/transport-information.component';\r\nimport { RequestCallbackComponent } from './features/home/request-callback/request-callback.component';\r\nimport { SchoolsListComponent } from './features/school-bus-registration/schools-list/schools-list.component';\r\nimport { PreloginLayoutComponent } from './shared/prelogin-layout/prelogin-layout.component';\r\nimport { MyaccountComponent } from './features/myaccount/myaccount.component';\r\nimport { SupportComponent } from './features/menu/support/support.component';\r\nimport { SettingsComponent } from './features/menu/settings/settings.component';\r\nimport { ChangePasswordComponent } from './features/menu/settings/change-password/change-password.component';\r\nimport { AppTermsAndConditionsComponent } from './features/menu/settings/app-terms-and-conditions/app-terms-and-conditions.component';\r\nimport { PrivacyPolicyComponent } from './features/menu/settings/privacy-policy/privacy-policy.component';\r\nimport { FaqComponent } from './features/menu/support/faq/faq.component';\r\nimport { ServiceRequestComponent } from './features/menu/support/service-request/service-request.component';\r\nimport { ContactSdeComponent } from './features/menu/support/contact-sde/contact-sde.component';\r\nimport { FeedbackComponent } from './features/menu/support/feedback/feedback.component';\r\nimport { TermsConditionsComponent } from './features/menu/support/terms-conditions/terms-conditions.component';\r\nimport { AddFeedbackComponent } from './features/menu/support/feedback/add-feedback/add-feedback.component';\r\nimport { TransportDiscontinuationComponent } from './features/home/transport-information/transport-discontinuation/transport-discontinuation.component';\r\nimport { ReRegistrationComponent } from './features/home/transport-information/re-registration/re-registration.component';\r\nimport { PaymentsComponent } from './features/home/transport-information/payments/payments.component';\r\nimport { ReRegisterTermsAndConditionComponent } from './features/home/transport-information/re-registration/re-register-terms-and-condition/re-register-terms-and-condition.component';\r\nimport { ScheduleChangeComponent } from './features/home/schedule-change/schedule-change.component';\r\nimport { NotificationComponent } from './features/notification/notification.component';\r\nimport { RequestForContactChangeComponent } from './features/home/request-for-contact-change/request-for-contact-change.component';\r\nimport { StsOffersComponent } from './features/menu/sts-offers/sts-offers.component';\r\nimport { StsGroupComponent } from './features/menu/sts-group/sts-group.component';\r\nimport { RequestAreaChangeComponent } from './features/menu/request-area-change/request-area-change.component';\r\nimport { SmartbusComponent } from './features/smartbus/smartbus.component';\r\nimport { RequestAreaChangeInfoComponent } from './features/menu/request-area-change/request-area-change-info/request-area-change-info.component';\r\nimport { RfidComponent } from './features/menu/support/service-request/rfid/rfid.component';\r\nimport { AutoPromotionComponent } from './features/home/auto-promotion/auto-promotion.component';\r\nimport { AutoPromoLayoutComponent } from './shared/AutoPromoLayout/autoPromoLayout.component';\r\nimport { ViewServiceRequestComponent } from './features/menu/support/service-request/view-service-request/view-service-request.component';\r\nconst routes: Routes = [\r\n {\r\n path: 'login',\r\n loadChildren: () =>\r\n import('./features/login/login.module').then((m) => m.LoginModule),\r\n },\r\n {\r\n path: 'index',\r\n loadChildren: () =>\r\n import('../app/landing-page/landing-page.module').then((m) => m.LandingModule),\r\n component: LandingPageComponent\r\n },\r\n {\r\n path: '',\r\n loadChildren: () =>\r\n import('../app/landing-page/landing-page.module').then((m) => m.LandingModule),\r\n component: LandingPageComponent\r\n },\r\n {\r\n path: 'forgot',\r\n component: ForgotPasswordComponent\r\n },\r\n // {\r\n // path: 'request-schedule-change',\r\n // component: RequestScheduleChangeComponent\r\n // },\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n children: [\r\n { path: 'request-schedule-change', component: RequestScheduleChangeComponent },\r\n { path: 'schedule-change', component: ScheduleChangeComponent }\r\n // Add other routes with the standard layout\r\n ]\r\n },\r\n // {\r\n // path: 'transport-information',\r\n // component: TransportInformationComponent\r\n // },\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n children: [\r\n { path: 'transport-information', component: TransportInformationComponent },\r\n { path: 'request-callback', component: RequestCallbackComponent },\r\n { path: 'schools-list', component: SchoolsListComponent },\r\n { path: 'my-account', component: MyaccountComponent },\r\n { path: 'support', component: SupportComponent },\r\n { path: 'settings', component: SettingsComponent },\r\n { path: 'change-password', component: ChangePasswordComponent },\r\n { path: 'app-terms-and-conditions', component: AppTermsAndConditionsComponent },\r\n { path: 'privacy-policy', component: PrivacyPolicyComponent },\r\n { path: 'faq', component: FaqComponent },\r\n { path: 'service-request', component: ServiceRequestComponent },\r\n { path: 'rfid', component: RfidComponent },\r\n { path: 'contact-sde', component: ContactSdeComponent },\r\n { path: 'feedback', component: FeedbackComponent },\r\n { path: 'add-new', component: AddFeedbackComponent },\r\n { path: 'terms-coniditions', component: TermsConditionsComponent },\r\n {path: 'transport-discontinuation',component: TransportDiscontinuationComponent},\r\n {path: 're-registration',component: ReRegistrationComponent},\r\n {path: 're-register-terms-and-conditions',component: ReRegisterTermsAndConditionComponent},\r\n {path: 'payments',component: PaymentsComponent},\r\n {path: 'notification',component: NotificationComponent},\r\n {path: 'request-for-contact-change',component: RequestForContactChangeComponent},\r\n {path: 'sts-offers',component: StsOffersComponent},\r\n {path: 'sts-group',component: StsGroupComponent},\r\n {path: 'request-area-change',component: RequestAreaChangeComponent},\r\n {path: 'request-area-change-info',component: RequestAreaChangeInfoComponent},\r\n {path: 'smartbus',component: SmartbusComponent},\r\n { path: 'view-service-request', component: ViewServiceRequestComponent }\r\n // Add other routes with the standard layout\r\n ]\r\n },\r\n\r\n\r\n {\r\n path: 'request-callback',\r\n component: RequestCallbackComponent\r\n },\r\n {\r\n path: 'logout',\r\n loadChildren: () =>\r\n import('./features/logout/logout.module').then((m) => m.LogoutModule),\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: '', redirectTo: 'home', pathMatch: 'full'\r\n },\r\n {\r\n path: 'home',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/home/home.module').then(\r\n (m) => m.HomeModule\r\n ),\r\n },\r\n ],\r\n },\r\n\r\n {\r\n path: 'makepayment',\r\n children: [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/payments/payments.module').then(\r\n (m) => m.PaymentsModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'paymenthistory', redirectTo: 'paymenthistory', pathMatch: 'full'\r\n },\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/payments/payments.module').then(\r\n (m) => m.PaymentsModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'outstandingfee', redirectTo: 'outstandingfees', pathMatch: 'full'\r\n },\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/payments/payments.module').then(\r\n (m) => m.PaymentsModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: '',\r\n children: [\r\n {\r\n path: 'statementofaccounts', redirectTo: 'statementofaccounts', pathMatch: 'full'\r\n },\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/payments/payments.module').then(\r\n (m) => m.PaymentsModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: 'bus',\r\n children: [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/bus-information/bus-information.module').then(\r\n (m) => m.BusInformationModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: 'statements',\r\n children: [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/statement-of-accounts-old/statement-of-accounts.module').then(\r\n (m) => m.StatementOfAccountsModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: 'SilibingLinking',\r\n children: [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/sibilinglinking/sibilinglinking.module').then(\r\n (m) => m.SibilinglinkingModule\r\n ),\r\n },\r\n ],\r\n },\r\n {\r\n path: 'serviceinfo',\r\n children: [\r\n {\r\n path: '',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: (): Promise =>\r\n import('./features/serviceinfo/serviceinfo.module').then(\r\n (m) => m.ServiceinfoModule\r\n ),\r\n },\r\n ],\r\n }, {\r\n path: 'changepassword',\r\n component: ChangePasswordComponent\r\n },\r\n // {\r\n // path: 'notifications',\r\n // component: NotificationsComponent\r\n // },\r\n // {\r\n // path: 'notifications',\r\n // children: [\r\n // {\r\n // path: '',\r\n // component: LayoutComponent,\r\n // canActivate: [AuthGuard],\r\n // loadChildren: (): Promise =>\r\n // import('./features/notifications-old/notifications.module').then(\r\n // (m) => m.NotificationsModule\r\n // ),\r\n // },\r\n // ],\r\n // },\r\n\r\n {\r\n path: 'pageNotFound',\r\n component: PageNotFoundComponent\r\n },\r\n {\r\n path: 'transportrequest',\r\n component: TransportrequestComponent\r\n },\r\n {\r\n path: 'onlineregistration',\r\n component: OnlineregistrationComponent\r\n },\r\n {\r\n path: 'account',\r\n component: LayoutComponent,\r\n canActivate: [AuthGuard],\r\n loadChildren: () =>\r\n import('./features/account/account.module').then((m) => m.AccountModule),\r\n },\r\n {\r\n path: 'request-schedule-change',\r\n component: RequestScheduleChangeComponent,\r\n loadChildren: () =>\r\n import('./features/home/home.module').then((m) => m.HomeModule),\r\n },\r\n // {\r\n // path: 'auto-promotion',\r\n // component: AutoPromotionComponent,\r\n // loadChildren: () =>\r\n // import('./features/home/home.module').then((m) => m.HomeModule),\r\n // },\r\n {\r\n path: '',\r\n component: AutoPromoLayoutComponent,\r\n children: [\r\n {path: 'auto-promotion', component: AutoPromotionComponent}\r\n // Add other routes with the standard layout\r\n ]\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'pageNotFound',\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes), MatTableModule],\r\n exports: [RouterModule, MatTableModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Directive, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { AuthenticationService } from './service';\r\nimport { BrowserModule, Title } from '@angular/platform-browser';\r\nimport { environment } from '../environments/environment';\r\nimport { sessionTimeoutService } from './service/sessionTimeout.service';\r\nimport { ConfigService } from './service/config.service';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\n@Directive({ selector: '[template]'})\r\nexport class AppComponent {\r\n\r\n\r\n @ViewChild('sayHelloTemplate', { static: false }) sayHelloTemplate: TemplateRef;\r\n\r\n\r\n\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n selected:boolean=true;\r\n digopen:any;\r\n constructor(private idle: Idle, public title:Title,private configService:ConfigService,\r\n private keepalive: Keepalive\r\n ,private router:Router\r\n ,private dialog: MatDialog\r\n , private viewContainer: ViewContainerRef\r\n ,private authenticationService: AuthenticationService,private sessionService:sessionTimeoutService) {\r\n \r\n this.configService.loadConfig().subscribe(res=>\r\n {\r\n this.sessionService.checkSessionTimeout();\r\n })\r\n // this.reset();\r\n }\r\n\r\n openDialog(template:TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '450px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n\r\n }\r\n\r\n extendsession()\r\n {\r\n this.dialog.closeAll();\r\n this.sessionService.reset();\r\n }\r\n logout()\r\n {\r\n this.dialog.closeAll();\r\n this.authenticationService.logout();\r\n this.idle.stop();\r\n }\r\n cloasedialog()\r\n {\r\n this.dialog.closeAll();\r\n this.authenticationService.logout();\r\n }ngOnInit() {\r\n this.title.setTitle(this.configService.portalTitle);\r\n this.sessionService.dataSubject.subscribe((data: boolean) => {\r\n if(data)\r\n this.openDialog(this.sayHelloTemplate);\r\n });\r\n }\r\n}\r\n","import { NgModule,APP_INITIALIZER } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { SharedModule } from './shared.module';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { HttpRequestInterceptor } from './core/http-request-interceptor';\r\nimport { ErrorInterceptor } from './core';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ServiceinfoComponent } from './features/serviceinfo/serviceinfo.component';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { LayoutTopNavModule } from './core/layout-top-nav/layout-top-nav.module';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { TransportrequestComponent } from './features/transportrequest/transportrequest.component';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { OnlineregistrationComponent } from './features/transportrequest/onlineregistration/onlineregistration.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { Ng2TelInputModule } from 'ng2-tel-input';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { LandingPageComponent } from './landing-page/landing-page.component';\r\nimport { ForgotPasswordComponent } from './features/login/forgot-password/forgot-password.component';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RequestScheduleChangeComponent } from './features/home/schedule-change/request-schedule-change/request-schedule-change.component';\r\nimport { TransportInformationComponent } from './features/home/transport-information/transport-information.component';\r\nimport { HomeModule } from './features/home/home.module';\r\nimport { LandingModule } from './landing-page/landing-page.module';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport { RequestCallbackComponent } from './features/home/request-callback/request-callback.component';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport { MessageComponent } from './message/message.component';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport {\r\n MomentDateAdapter,\r\n MAT_MOMENT_DATE_ADAPTER_OPTIONS,\r\n} from '@angular/material-moment-adapter';\r\nimport {\r\n DateAdapter,\r\n MAT_DATE_FORMATS,\r\n MAT_DATE_LOCALE,\r\n} from '@angular/material/core';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { NgxMatIntlTelInputModule } from 'ngx-mat-intl-tel-input';\r\nimport { MyaccountComponent } from './features/myaccount/myaccount.component';\r\nimport { SupportComponent } from './features/menu/support/support.component';\r\nimport { MenuModule } from './features/menu/menu.module';\r\nimport { MatTooltipModule} from '@angular/material/tooltip';\r\nimport { PaymentsModule } from './features/payments/payments.module';\r\nimport { NotificationModule } from './features/notification/notification.module';\r\nimport {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';\r\nimport { ConfigService } from './service/config.service';\r\n// import function to register Swiper custom elements\r\nimport { register } from 'swiper/element/bundle';\r\n// register Swiper custom elements\r\nimport { RECAPTCHA_SETTINGS, RecaptchaFormsModule, RecaptchaModule, RecaptchaSettings } from 'ng-recaptcha';\r\nimport { SmartbusComponent } from './features/smartbus/smartbus.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { LayoutComponent } from './shared/layout/layout.component';\r\nimport { AutoPromoLayoutComponent } from './shared/AutoPromoLayout/autoPromoLayout.component';\r\nimport { CommonModulesModule } from './common-modules/common-modules.module';\r\nimport { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';\r\nregister();\r\nexport function initializeApp(configService: ConfigService) {\r\n return () => configService.loadConfig();\r\n}\r\nexport const MY_FORMATS = {\r\n parse: {\r\n dateInput: 'LL',\r\n },\r\n display: {\r\n dateInput: 'DD MMM YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMM YYYY',\r\n },\r\n};\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LayoutComponent,\r\n ServiceinfoComponent,\r\n TransportrequestComponent,\r\n OnlineregistrationComponent,\r\n LandingPageComponent,\r\n ForgotPasswordComponent,\r\n RequestScheduleChangeComponent,\r\n TransportInformationComponent,\r\n RequestCallbackComponent,\r\n MessageComponent,\r\n MyaccountComponent,\r\n SupportComponent,\r\n SmartbusComponent,\r\n AutoPromoLayoutComponent\r\n\r\n\r\n\r\n ],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n SharedModule,\r\n CommonModule,\r\n AppRoutingModule,\r\n NgxSpinnerModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatInputModule,\r\n MatPaginatorModule,\r\n MatListModule,\r\n LayoutTopNavModule,\r\n MatButtonModule,\r\n HomeModule,\r\n PaymentsModule,\r\n LandingModule,\r\n NotificationModule,\r\n CarouselModule,\r\n MatTabsModule,\r\n MatDialogModule,\r\n MatMenuModule,\r\n MenuModule,\r\n MatTooltipModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (http: HttpClient) =>\r\n new TranslateHttpLoader(http, './assets/i18n/', '.json'),\r\n deps: [HttpClient]\r\n }\r\n })\r\n , NgIdleKeepaliveModule.forRoot(),\r\n MomentModule,\r\n MatIconModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n MatSnackBarModule,\r\n Ng2TelInputModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyA1iYoEmhopACwr8vAOLOO3KSOHvMERD-E',\r\n libraries: ['places']\r\n }),\r\n GoogleMapsModule,\r\n PdfViewerModule,\r\n NgxMatIntlTelInputModule,\r\n NgxMaterialTimepickerModule,\r\n RecaptchaModule,\r\n RecaptchaFormsModule,\r\n CommonModulesModule\r\n ],\r\n exports: [\r\n MatTableModule,\r\n CommonModule,\r\n MatMenuModule\r\n ],\r\n providers: [ConfigService,LocalizationService,\r\n { provide: L10N_PREFIX, useValue: 'kendo' },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: initializeApp,\r\n deps: [ConfigService],\r\n multi: true\r\n\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpRequestInterceptor,\r\n multi: true,\r\n\r\n }, {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ErrorInterceptor,\r\n multi: true\r\n },{\r\n provide: DateAdapter,\r\n useClass: MomentDateAdapter,\r\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\r\n },\r\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\r\n {\r\n provide: RECAPTCHA_SETTINGS,\r\n useValue: {\r\n // siteKey:environment.captchaAPIKey,\r\n } as RecaptchaSettings,\r\n },],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BreadcrumbComponent } from './common-components/breadcrumb/breadcrumb.component';\r\nimport { ChatModule } from '@progress/kendo-angular-conversational-ui';\r\nimport { ChatbotComponent } from '../features/chatbot/chatbot.component';\r\nimport { ServiceAvailabilityFormComponent } from '../features/chatbot/service-availability-form/service-availability-form.component';\r\nimport { RecoverLoginFormComponent } from '../features/chatbot/recover-login-form/recover-login-form.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgxMatIntlTelInputModule } from 'ngx-mat-intl-tel-input';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n BreadcrumbComponent,\r\n ChatbotComponent,\r\n ServiceAvailabilityFormComponent,\r\n RecoverLoginFormComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ChatModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n MatFormFieldModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatCheckboxModule,\r\n NgxMatIntlTelInputModule, \r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatDatepickerModule\r\n ],\r\n exports:[\r\n CommonModule,\r\n ChatbotComponent,\r\n ServiceAvailabilityFormComponent,\r\n RecoverLoginFormComponent\r\n ]\r\n})\r\nexport class CommonModulesModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Token } from '../models/token';\r\nimport { User } from '../models/User';\r\n\r\nimport { AuthenticationService } from '../service/authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private router: Router,\r\n private authenticationService: AuthenticationService\r\n ) { }\r\n\r\n private get token():Token {\r\n return this.authenticationService.currentToken;\r\n }\r\n\r\n private get user():User {\r\n return this.authenticationService.currentUser;\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.token && this.user) {\r\n return true;\r\n }\r\n\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nconst key = 'TUc0emRqRXpkdw==';\r\n\r\n@Pipe({ name: 'encrypted' })\r\nexport class EncryptPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value) {\r\n return CryptoJS.AES.encrypt(value, key).toString();\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'decrypted' })\r\nexport class DecryptPipe implements PipeTransform {\r\n transform(encrypted: string) {\r\n if (encrypted) {\r\n const decrypted = CryptoJS.AES.decrypt(encrypted, key);\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'safe' })\r\nexport class SafePipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer) {}\r\n transform(url) {\r\n url=url.replace(\"http://\",\"https://\");\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n} \r\n","import { HttpErrorResponse } from '@angular/common/http'\r\nimport {ErrorHandler, Injectable, NgZone } from '@angular/core'\r\n\r\nInjectable()\r\nexport class CustomErrorHandler implements ErrorHandler {\r\n constructor() {\r\n\r\n }\r\n\r\n handleError(error)\r\n {\r\n if(error instanceof HttpErrorResponse)\r\n {\r\n console.log(error);\r\n }\r\n else {\r\n try{\r\n const errorObj: any = error;\r\n console.log(errorObj);\r\n }\r\n catch(err) {\r\n console.log(error);\r\n }\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\n\r\nimport { AuthenticationService } from '../service/authentication.service';\r\nimport { LoggerService } from '../service';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private authenticationService: AuthenticationService, private logger:LoggerService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((err:HttpErrorResponse) => {\r\n \r\n this.logger.error(err)\r\n\r\n if (err.status === 401) {\r\n this.authenticationService.logout();\r\n location.reload();\r\n }\r\n \r\n else{\r\n console.log(err);\r\n const error = err.error.message || err.statusText;\r\n return throwError(error);\r\n }\r\n \r\n })\r\n )\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n public currentYear: any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.currentYear = new Date().getFullYear();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { AuthenticationService } from '../service/authentication.service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { catchError, finalize, map } from 'rxjs/operators';\r\nimport { ConfigService } from '../service/config.service';\r\n@Injectable()\r\nexport class HttpRequestInterceptor implements HttpInterceptor {\r\n\r\n constructor(private authenticationService: AuthenticationService, private spinner: NgxSpinnerService,\r\n private configService:ConfigService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const currentToken = this.authenticationService.currentToken;\r\n const isClientLoggedIn = currentToken && currentToken.access_token;\r\n const isApiUrl = request.url.startsWith(this.configService.baseUrl);\r\n const hideSpinner=request.headers.get('HideSpinner') =='true' ? true : false;\r\n if (isClientLoggedIn && isApiUrl) {\r\n if(!hideSpinner){\r\n this.spinner.show();\r\n }\r\n else{\r\n request = request.clone({\r\n headers: request.headers.delete(\"HideSpinner\")\r\n });\r\n }\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentToken.access_token}`\r\n }\r\n });\r\n }\r\n\r\n return next.handle(request)\r\n .pipe(\r\n finalize(() => this.spinner.hide()),\r\n catchError((err) => {\r\n this.spinner.hide();\r\n return err;\r\n }),\r\n\r\n )\r\n .pipe(map, any>((evt: HttpEvent) => {\r\n if (evt instanceof HttpResponse) {\r\n this.spinner.hide();\r\n }\r\n return evt;\r\n }));\r\n }\r\n}","export * from './auth.guard'; \r\nexport * from './error-handler'; \r\nexport * from './error.interceptor';\r\nexport * from './http-request-interceptor';","import { AfterViewInit, Component, DoCheck, ElementRef, EventEmitter, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\n\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, Observable, Subscription, fromEvent } from 'rxjs';\r\nimport { filter, map, tap } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { User } from 'src/app/models/User';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n AuthenticationService,\r\n CommonService,\r\n} from 'src/app/service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { NotificationService } from 'src/app/service/notification.service';\r\nimport { UserprofileupdateService } from 'src/app/service/userprofileupdate.service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { LocalizationService } from '@progress/kendo-angular-l10n';\r\n@Component({\r\n selector: 'layout-top-nav',\r\n templateUrl: './layout-top-nav.component.html',\r\n styleUrls: ['./layout-top-nav.component.scss'],\r\n})\r\nexport class LayoutTopNavComponent implements OnInit, AfterViewInit,DoCheck {\r\n selectedLanguage: string = 'EN';\r\n direction: string = 'ltr';\r\n digopen:any;\r\n contactDetails: any;\r\n token: any;\r\n logoimage: string = this.configService.logoimageUrl;\r\n private loggedInUserSubject = new BehaviorSubject(null);\r\n private selectedChildSubject = new BehaviorSubject(undefined);\r\n public notificationCount: number = 0;\r\n public menuItems$ = new Observable(null);\r\n public children$ = new Observable(null);\r\n public menuItems1$ = new Observable(null);\r\n public selectedstudent:any[];\r\n resultmenu: any = {};\r\n public notificationdetails: any = [];\r\n public oluName: string;\r\n public oluMenus: any[];\r\n public childerns:any[];\r\n public selectedstudentid:any;\r\n count: any=0;isLeasedSchool: any;\r\n private subscription: Subscription;\r\n private studentSubscription:Subscription;\r\n isHybridSchool: any;\r\n @ViewChild('modalTemp') modalTemp1!: TemplateRef;\r\n studentNames: string = '';\r\n multipleChild: boolean = false;\r\n\r\n constructor(\r\n private localizationService: LocalizationService,\r\n private configService:ConfigService,\r\n private auth: AuthenticationService,\r\n private router: Router, private route: ActivatedRoute,\r\n private commonService: CommonService,\r\n private userprofileimage:UserprofileupdateService,\r\n private dashboardService: DashboardService,\r\n public registerService: RegistrationService,\r\n private elem: ElementRef,private dialog: MatDialog, private notificationService:NotificationService) {\r\n this.oluName = this.auth.currentUser.userDisplayName;\r\n this.loggedInUserSubject.next(this.auth.currentUser);\r\n\r\n }\r\n ngOnDestroy() {\r\n // Unsubscribe to prevent memory leaks\r\n this.subscription.unsubscribe();\r\n if(this.studentSubscription){\r\n this.studentSubscription.unsubscribe();\r\n }\r\n }\r\n ngDoCheck(): void {\r\n let data:any = localStorage.getItem('leasemodelschool')\r\n this.isLeasedSchool = data;\r\n let isHybrid:any = localStorage.getItem('IsHybrid')\r\n this.isHybridSchool = isHybrid;\r\n //this.oluMenus=[];\r\n\r\n }\r\n\r\n public get loggedInUserName$(): Observable {\r\n return this.loggedInUserSubject.pipe(\r\n map((x) => x.userDisplayName)\r\n );\r\n }\r\n\r\n public get selectedChildName$(): Observable {\r\n return this.selectedChildSubject.pipe(\r\n filter((x) => !!x),\r\n map((x: any[]) => x[0]),\r\n map((x) => x.studentName)\r\n );\r\n }\r\n\r\n public get selectedChildPhoto$(): Observable {\r\n return this.selectedChildSubject.pipe(\r\n filter((x) => !!x),\r\n map((x: any[]) => x[0]),\r\n map((x) => x.photoPath)\r\n );\r\n }\r\n\r\n private menuItems = (nodes, parentId = '#') => {\r\n if (nodes) {\r\n return nodes.reduce((result, fromData) => {\r\n const obj = Object.assign({}, fromData);\r\n if (parentId === fromData.parentMenuCode) {\r\n const children = this.menuItems(nodes, fromData.menuCode);\r\n if (children.length) {\r\n obj.children = children;\r\n } else {\r\n obj.children = [];\r\n }\r\n result.push(obj);\r\n }\r\n return result;\r\n }, []);\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n setTimeout(() => {\r\n this.checkAutoPromotion();\r\n }, 500);\r\n this.studentSubscription=fromEvent(window, 'app-switch-student').subscribe((res) => {\r\n if(res.detail){\r\n\r\n localStorage.setItem(\"selectedstudentid\", res.detail.studentId);\r\n this.selectedstudentid=res.detail.studentId;\r\n\r\n localStorage.removeItem(\"selectedSiblings\");\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n if(res.detail.redirectUrl.includes('?')){\r\n this.router.navigateByUrl(res.detail.redirectUrl);\r\n }\r\n else{\r\n this.router.navigate([res.detail.redirectUrl]);\r\n }\r\n });\r\n this.selectedstudentid=localStorage.selectedstudentid;\r\n\r\n }\r\n });\r\n }\r\n\r\n getMenus()\r\n {\r\n\r\n this.oluMenus=[];\r\n this.commonService.reloadNotificationCount.subscribe(res=>{\r\n if(res)\r\n this.getNotificationDetails();\r\n })\r\n this.commonService.getChildrenByParentId().subscribe(child => {\r\n let alreadySelectedStudent:any\r\n child?.data.forEach((x) => {\r\n x.photoPath = x.photoPath === '' || x.photoPath==null ? \"assets/img/no-avatar.svg\" : x.photoPath;\r\n let selectedStudent = localStorage.getItem(\"selectedstudentid\")\r\n if(selectedStudent && (selectedStudent == x.studentId))\r\n alreadySelectedStudent=x;\r\n\r\n return x;\r\n })\r\n\r\n localStorage.setItem(\"allChildren\", JSON.stringify(child?.data));\r\n if(alreadySelectedStudent)\r\n localStorage.setItem(\"parentChildrens\", JSON.stringify([alreadySelectedStudent]));\r\n else localStorage.setItem(\"parentChildrens\", JSON.stringify([child?.data[0]]));\r\n\r\n this.childerns =child?.data;\r\n //alert(JSON.stringify(this.childerns));\r\n this.selectedChildSubject.next(child?.data.filter((x: { selected: boolean }) => x.selected));\r\n\r\n this.selectedstudent=child?.data;\r\n\r\n\r\n if(localStorage.selectedstudentid)\r\n {\r\n this.selectedstudentid=localStorage.selectedstudentid;\r\n\r\n }\r\n else\r\n {\r\n this.selectedstudentid=this.selectedstudent[0].studentId;\r\n localStorage.selectedstudentid=this.selectedstudentid;\r\n }\r\n\r\n this.selectedstudent=child?.data.filter(s=>s.studentId==this.selectedstudentid);\r\n this.userprofileimage.updateUserProfileImage(this.selectedstudent[0].photoPath);\r\n this.subscription = this.userprofileimage.getProfileImageUrl().subscribe(imageUrl => {\r\n //alert(imageUrl);\r\n this.selectedstudent[0].photoPath=imageUrl;\r\n //alert(this.selectedstudent);\r\n });\r\n\r\n });\r\n // setTimeout(() => { //<<<---using ()=> syntax\r\n // this.commonService.getMenusforParentPortal().subscribe(res=>\r\n // {\r\n // this.oluMenus=res.data;\r\n // //alert(JSON.stringify( this.oluMenus));\r\n // })\r\n // }, 3000);\r\n\r\n\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n this.commonService.getMenusforParentPortal().subscribe(res => {\r\n // this.oluMenus = res.data;\r\n\r\n let data: any = [];\r\n let menu: any = []\r\n data = res.data;\r\n data.forEach((ele, index) => {\r\n if (ele.parentMenuCode == '#') {\r\n menu.push(ele);\r\n }\r\n })\r\n menu.forEach(ele => {\r\n ele.submenu = []\r\n })\r\n\r\n menu.forEach((ele1: any, index) => {\r\n data.forEach(ele => {\r\n\r\n if (ele.parentMenuCode == ele1.menuCode) {\r\n\r\n menu[index].submenu.push(ele)\r\n }\r\n })\r\n });\r\n this.oluMenus = menu;\r\n // console.log(this.oluMenus);\r\n // alert(JSON.stringify( this.oluMenus) );\r\n\r\n\r\n // this.reloadPage();\r\n })\r\n }, 1000);\r\n\r\n this.notificationService.getCount().subscribe(\r\n (res:any)=>{\r\n this.count = res?.data?.count\r\n }\r\n );\r\n\r\n }\r\n ngAfterViewInit(): void {\r\n this.getMenus();\r\n let nodeList = this.elem.nativeElement.querySelectorAll('.main-nav');\r\n console.log(nodeList);\r\n if (nodeList.length > 0) {\r\n\r\n }\r\n this.getNotificationcount();\r\n this.getNotificationDetails();\r\n }\r\n Logout1() {\r\n this.auth.logout();\r\n localStorage.clear();\r\n // setTimeout(() => { //<<<---using ()=> syntax\r\n // this.router.navigate(['/login']);\r\n // }, 3000);\r\n this.auth.logout();\r\n localStorage.clear();\r\n this.router.navigate(['/']).then(() => {\r\n window.location.reload();\r\n });\r\n // setTimeout(() => { //<<<---using ()=> syntax\r\n // this.router.navigate(['/']);\r\n // }, 2000);\r\n // this.router.navigate(['/index'])\r\n // .then(() => {\r\n // window.location.reload();\r\n // });\r\n }\r\n public selectChild(event:any)\r\n {\r\n this.getSelectedStudent(event.studentId);\r\n //alert(event.studentId);\r\n this.reloadCurrentRoute();\r\n }\r\n public logOut($event): void {\r\n $event.stopPropagation();\r\n this.auth.logout();\r\n localStorage.clear();\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n this.router.navigate(['/login']);\r\n }, 1000);\r\n this.dialog.closeAll()\r\n // this.router.navigate(['/'])\r\n // .then(() => {\r\n // window.location.reload();\r\n // });\r\n }\r\n gotomakepayment() {\r\n this.router.navigate([\"/payments\"]);\r\n }\r\n goToMyaccount(){\r\n this.router.navigate([\"/my-account\"]);\r\n }\r\n GoToPage(path: string, e: Event) {\r\n\r\n if (path.indexOf(\"logout\") != -1) {\r\n this.logOut(e);\r\n }\r\n else\r\n if (path.indexOf(\"javascript\") == -1) {\r\n this.router.navigate([path]);\r\n }\r\n\r\n }\r\n Changepassword() {\r\n this.router.navigate([\"/changepassword\"]);\r\n }\r\n getSelectedStudent(stuid: string) {\r\n\r\n localStorage.setItem(\"selectedstudentid\", stuid);\r\n this.selectedstudentid=stuid;\r\n //alert(this.selectedstudentid);\r\n\r\n localStorage.removeItem(\"selectedSiblings\");\r\n\r\n this.reloadCurrentRoute();\r\n }\r\n getNotificationcount() {\r\n\r\n this.commonService.getNotificationCount().subscribe(res => {\r\n if (res.success == 'true') {\r\n this.notificationCount = res.data['count'];\r\n }\r\n });\r\n\r\n }\r\n getNotificationDetails() {\r\n\r\n this.commonService.getNotificationDetails().subscribe(res => {\r\n if (res.success == 'true') {\r\n this.notificationdetails = res.data;\r\n }\r\n })\r\n this.notificationService.getCount().subscribe(\r\n (res:any)=>{\r\n this.count = res?.data?.count\r\n }\r\n )\r\n }\r\n reloadComponent() {\r\n let currentUrl = this.router.url;\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n // this.router.onSameUrlNavigation = 'reload';\r\n this.router.navigate([currentUrl]);\r\n }\r\n reloadCurrentRoute() {\r\n let currentUrl = this.router.url;\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n });\r\n //localStorage.setItem(\"selectedstudentid\", stuid);\r\n this.selectedstudentid=localStorage.selectedstudentid;\r\n //alert(this.selectedstudentid);\r\n }\r\n\r\n public handleMissingImage(event: Event) {\r\n // (event.target as HTMLImageElement).style.display = 'none';\r\n (event.target as HTMLImageElement).src = '../../../assets/img/no-avatar.svg';\r\n }\r\n\r\n navigatetolink(lnk) {\r\n\r\n this.router.navigate([lnk]);\r\n this.dialog.closeAll()\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n onImageError(){\r\n return \"assets/images/social-icons/twitter.svg\"\r\n }\r\n goToHome(){\r\n this.router.navigate(['/home']);\r\n }\r\n registerNow() {\r\n this.token = JSON.parse(localStorage.getItem('currentToken'))\r\n this.dashboardService.getContactDetails('').subscribe((res: any) => {\r\n this.contactDetails = res?.data;\r\n this.registerService.getParentsList(this.contactDetails?.primaryContactNumber, this.token).subscribe(res => {\r\n let parentDetails = res?.data;\r\n localStorage.removeItem('photopath')\r\n localStorage.removeItem('studentDetails');\r\n localStorage.setItem('parentDetails', JSON.stringify(parentDetails));\r\n localStorage.setItem('studParentDetails', JSON.stringify(parentDetails));\r\n this.registerService.sendStudentDetails.next(parentDetails);\r\n localStorage.setItem(\"proceed\", \"false\");\r\n localStorage.setItem(\"showSchool\", \"true\")\r\n this.router.navigate(['/schoolbus-registration'], { queryParams: { isFromDashboard: true, tab: 1 } });\r\n })\r\n })\r\n }\r\n activeItem: string;\r\n\r\n setActiveItem(page: string) {\r\n this.activeItem = page;\r\n //console.log(this.activeItem);\r\n }\r\n moreMenuDialog(template: TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '500px',\r\n panelClass: 'mobile-menu-modalbox'\r\n });\r\n if (this.digopen['_overlayRef'].overlayElement) {\r\n this.digopen['_overlayRef'].overlayElement.parentElement.className += ' dialog-wrapper';\r\n }\r\n }\r\n close(){\r\n this.dialog.closeAll()\r\n }\r\n\r\n openPopup() {\r\n this.dialog.open(this.modalTemp1,{\r\n width: '500px',\r\n disableClose: true,\r\n });\r\n }\r\n checkAutoPromotion(){\r\n this.dashboardService.getAutoPromotionDetails().subscribe((res:any)=>{\r\n if(res?.data?.length > 0){\r\n let studentNameArr: any[] = [];\r\n\r\n let studentIds = res?.data?.map((y: any) => y.stU_NO);\r\n let autoPromotedChilds = this.childerns.filter((x:any) => studentIds.includes(x.studentId));\r\n autoPromotedChilds?.forEach((x:any) => {\r\n studentNameArr.push(x.studentName)\r\n });\r\n\r\n if(studentNameArr.length > 1){\r\n this.multipleChild = true;\r\n }\r\n\r\n this.studentNames = this.getStudentNames(studentNameArr);\r\n this.openPopup();\r\n }\r\n });\r\n }\r\n\r\n getStudentNames(students: string[]): string {\r\n const length = students.length;\r\n\r\n if (length === 0) return '';\r\n if (length === 1) return students[0];\r\n if (length === 2) return `${students[0]} and ${students[1]}`;\r\n\r\n const last = students.slice(0, -1).join(', ');\r\n const lastName = students[students.length - 1];\r\n return `${last}, and ${lastName}`;\r\n }\r\n\r\n navigatetoAutoPromotion(link) {\r\n this.dialog.closeAll();\r\n this.router.navigate([link]);\r\n }\r\n @Output() directionChange = new EventEmitter();\r\n toggleDirection(direction: string) {\r\n direction === 'ltr' ? 'rtl' : 'ltr';\r\n // document.body = this.direction as any;\r\n this.directionChange.emit(direction);\r\n }\r\n\r\n onLanguageChange(language: string){\r\n if (language === 'AR') {\r\n this.toggleDirection('rtl');\r\n } else {\r\n this.toggleDirection('ltr');\r\n }\r\n }\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LayoutTopNavComponent } from './layout-top-nav.component';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { FooterComponent } from '../footer/footer.component';\r\nimport {MatMenuModule} from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSelectModule } from '@angular/material/select';\r\n@NgModule({\r\n declarations: [LayoutTopNavComponent, FooterComponent],\r\n exports: [LayoutTopNavComponent, FooterComponent],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatSelectModule\r\n ]\r\n})\r\nexport class LayoutTopNavModule { }\r\n","import { Component, OnInit, EventEmitter, Output, SecurityContext, ChangeDetectorRef, NgZone, Input, OnDestroy, Renderer2, AfterViewInit } from '@angular/core';\r\nimport { Message, User, Action, SendMessageEvent } from '@progress/kendo-angular-conversational-ui';\r\nimport { ChatService } from '../../service/chat.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { UrlRedirect } from 'src/app/helper/url-redirect';\r\nimport { ChatMessage } from 'src/app/models/chatbot.model';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { Guid } from \"guid-typescript\";\r\nimport { DatePipe } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport {marked }from \"marked\";\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { CommonService } from 'src/app/service';\r\n@Component({\r\n selector: 'app-chatbot',\r\n templateUrl: './chatbot.component.html',\r\n styleUrls: ['./chatbot.component.scss']\r\n})\r\nexport class ChatbotComponent implements OnInit,OnDestroy, AfterViewInit {\r\n\r\n @Input() fromLocalStorage=true;\r\n @Input() greetings:any=null;\r\n @Input() userName:any=null;\r\n @Input() parentComponent:any=null;\r\n @Output() chatClosed = new EventEmitter();\r\n @Output() redirectEvent = new EventEmitter();\r\n sessionId:any;\r\n isMinimized = false;\r\n public readonly user: User = {\r\n id: 1\r\n };\r\n\r\n public readonly bot: User = {\r\n id: 0\r\n };\r\n public messages:ChatMessage[]=[];\r\n isNewMessage=false;\r\n newMessageCount=0;\r\n timeOutRef: any;\r\n baseUrl: any;\r\n showChatbot=false;\r\n requestInProgress: boolean=false;\r\n methods = {\r\n registerNow: () => this.registerNow()\r\n };\r\n student: any;\r\n constructor(private svc: ChatService,private _sanitizer:DomSanitizer, private configService:ConfigService,private dashboardService:DashboardService,private commonService:CommonService,\r\n private cdr: ChangeDetectorRef,private ngZone: NgZone,public registerService:RegistrationService,private router:Router,private config:ConfigService, private renderer: Renderer2) {\r\n this.getNewSession();\r\n this.baseUrl=this.config.baseUIUrl;\r\n }\r\n\r\n getNewSession(){\r\n let sessionId=localStorage.getItem(\"chatbotsessionid\");\r\n if(sessionId !=null && sessionId!=undefined){\r\n this.sessionId=sessionId;\r\n }\r\n else{\r\n this.sessionId= Guid.create();\r\n localStorage.setItem(\"chatbotsessionid\",this.sessionId);\r\n }\r\n }\r\n async ngOnInit() {\r\n let showGreeting=true;\r\n if(this.fromLocalStorage && localStorage.getItem('pre-login-chat-history') !=null){\r\n let chatMessages= JSON.parse(localStorage.getItem('pre-login-chat-history'));\r\n let chatDate=new Date(chatMessages[0]?.timestamp);\r\n let currentDate=new Date();\r\n if(chatDate.toDateString() === currentDate.toDateString()){\r\n chatMessages.forEach(element => {\r\n element.timestamp=new Date(element.timestamp);\r\n this.messages.push(element)\r\n });\r\n showGreeting=false;\r\n this.showChatbot=true;\r\n }\r\n }\r\n else if(this.userName!=null){\r\n let res =await this.svc.getChatHistory(this.userName).toPromise();\r\n if(res!=null && res.data !=null && res.data.length > 0){\r\n let chatHistory= res.data[0].scH_DATA;\r\n if(chatHistory!=null && chatHistory !=''){\r\n chatHistory=chatHistory.replaceAll('%28','(').replaceAll('%29',')');\r\n let parsedHistory:any=decodeURIComponent(JSON.parse(chatHistory));\r\n if(parsedHistory!=''){\r\n if(typeof parsedHistory =='string'){\r\n parsedHistory=JSON.parse(parsedHistory);\r\n }\r\n parsedHistory.forEach((element) => {\r\n element.timestamp=new Date(element.timestamp);\r\n let dateToCheck=new Date();\r\n dateToCheck.setDate(dateToCheck.getDate()-1);\r\n dateToCheck.setHours(0);\r\n dateToCheck.setMinutes(0);\r\n dateToCheck.setSeconds(0);\r\n dateToCheck.setMilliseconds(0);\r\n if(element.timestamp > dateToCheck){\r\n this.messages.push(element);\r\n }\r\n });\r\n }\r\n if(this.messages.length >0){ \r\n showGreeting=false;\r\n }\r\n this.showChatbot=true;\r\n }\r\n }\r\n }\r\n\r\n if(showGreeting)\r\n {\r\n if(this.greetings!=null){\r\n this.messages.push(this.greetings);\r\n }\r\n else{\r\n localStorage.removeItem('chatbotsessionid');\r\n localStorage.removeItem('pre-login-chat-history');\r\n this.getNewSession();\r\n let currentHour=new Date().getHours();\r\n let greet='';\r\n if(currentHour<12){\r\n greet='Good Morning!';\r\n }\r\n else if(currentHour<18){\r\n greet='Good Afternoon!';\r\n }\r\n else{\r\n greet='Good Evening!';\r\n }\r\n const greeting: ChatMessage = {\r\n author: this.bot,\r\n suggestedActions: preLoginActions,\r\n timestamp: new Date(),\r\n text: `Hi ${greet} I\\'m Super Driver, your virtual assistant, what would you like to know?`\r\n };\r\n this.messages.push(greeting);\r\n }\r\n this.showChatbot=true;\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n ngAfterViewInit(){\r\n\r\n }\r\n\r\n minimizeChat() {\r\n this.isMinimized = true;\r\n }\r\n\r\n maximizeChat(){\r\n this.isMinimized = false;\r\n this.isNewMessage=false;\r\n this.newMessageCount=0;\r\n }\r\n\r\n public sendMessage(e: SendMessageEvent): void {\r\n if(e?.message?.text !=null && e?.message?.text!=undefined && e?.message?.text?.trim()!=''){\r\n let message: ChatMessage={...e.message};\r\n this.setMessage(message);\r\n }\r\n }\r\n\r\n setMessage(e:ChatMessage){\r\n if(this.timeOutRef){\r\n clearTimeout(this.timeOutRef);\r\n }\r\n e.text = this.htmlProperty(e.text??\"\");\r\n\r\n this.messages = [...this.messages, e];\r\n this.enableOrDisableInput(true);\r\n var chat = this.initializeChatModel(e,this.sessionId);\r\n\r\n this.getAIResponse(chat);\r\n\r\n this.ngZone.run(() => {\r\n this.messages.forEach((x:any)=>{\r\n x.disableForm=true;\r\n });\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n private getAIResponse(chat: FormData) {\r\n var urlRedirect= new UrlRedirect();\r\n let isStart = true;\r\n let isEndofStream = false;\r\n this.svc.postChat(chat).subscribe(res => {\r\n this.svc.getServerSentEvent(res.session_id)\r\n .subscribe((event: any) => {\r\n let parsedJson = JSON.parse(event.data);\r\n isEndofStream = parsedJson?.end_stream ? true : false;\r\n let message = parsedJson.response;\r\n if(message!=null && message!=undefined){\r\n if (isStart) {\r\n this.messages.push({ author: this.bot, text: message, timestamp: new Date(), suggestedActions: []});\r\n }\r\n else if (!isEndofStream) {\r\n let textMessage = this.messages[this.messages.length - 1].text + message;\r\n this.messages[this.messages.length - 1].text = textMessage;\r\n }\r\n }\r\n\r\n if (parsedJson?.redirect_keyword != undefined && parsedJson?.redirect_keyword != null && parsedJson?.redirect_keyword != '') {\r\n\r\n if(parsedJson?.redirect_keyword =='RENDER_SERVICE_AVAILABILITY_PRELOGIN'){\r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length - 1].formName='serviceAvailability';\r\n });\r\n }\r\n else if(parsedJson?.redirect_keyword == 'RENDER_SERVICE_AVAILABILITY_POSTLOGIN'){\r\n let selectedChild=localStorage.getItem('selectedstudentid');\r\n let students=JSON.parse(localStorage.getItem('allChildren'))\r\n let studentDetail=students.find(x=>x.studentId ==selectedChild);\r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length -1].student={studentId:studentDetail.studentId,studentName:studentDetail.studentName, acdId:studentDetail.acdId,photoPath:studentDetail.photoPath, bsuId:studentDetail.bsuId};\r\n this.messages[this.messages.length - 1].formName='serviceAvailability';\r\n });\r\n }\r\n else if(parsedJson?.redirect_keyword =='SELECT_CHILD'){\r\n let actions:any=[];\r\n let students=JSON.parse(localStorage.getItem('allChildren'));\r\n students.forEach(stu => {\r\n actions.push({\r\n type: 'reply-studentName',\r\n value: {studentId:stu.studentId,studentName:stu.studentName, acdId:stu.acdId,photoPath:stu.photoPath, bsuId:stu.bsuId}\r\n })\r\n });\r\n this.ngZone.run(() => {\r\n if(actions.length >0){\r\n this.messages[this.messages.length - 1].suggestedActions=actions; \r\n }\r\n });\r\n }\r\n else if(parsedJson?.redirect_keyword =='RECOVER_DETAILS'){\r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length - 1].formName='recoverLogin';\r\n });\r\n }\r\n else if(parsedJson?.redirect_keyword =='ASK_RECOVER'){\r\n this.ngZone.run(() => {\r\n let actions=[\r\n {\r\n type: 'reply-type',\r\n value: 'Username'\r\n },\r\n {\r\n type: 'reply-type',\r\n value: 'Password'\r\n }\r\n ]\r\n this.messages[this.messages.length - 1].suggestedActions=actions;\r\n });\r\n }\r\n else if(parsedJson?.redirect_keyword=='REGISTRATION_TEMPLATE'){\r\n let htmlMessage=`Are you already registered? \\n Proceed to Login \\n \\nNot registered yet? \\n Proceed to Register`;\r\n\r\n this.messages.push({ author: this.bot, text: htmlMessage, timestamp: new Date(), suggestedActions: []});\r\n }\r\n else if(parsedJson?.redirect_keyword =='SHOW_MENU'){\r\n let actions=preLoginActions;\r\n if(this.greetings!=null){\r\n actions=this.greetings.suggestedActions;\r\n }\r\n if (isStart) {\r\n this.messages.push({ author: this.bot, text: '', timestamp: new Date(), suggestedActions: actions});\r\n }\r\n else if (!isEndofStream) {\r\n this.messages[this.messages.length - 1].suggestedActions = actions;\r\n }\r\n localStorage.removeItem('chatbotsessionid');\r\n this.getNewSession();\r\n }\r\n else if(parsedJson?.redirect_keyword =='SELECT_PAYMENT_TYPE'){\r\n this.ngZone.run(() => {\r\n let actions=[\r\n {\r\n type: 'reply-type',\r\n value: 'Payment History'\r\n },\r\n {\r\n type: 'reply-type',\r\n value: 'Last Payment'\r\n },\r\n {\r\n type: 'reply-type',\r\n value: 'Refund'\r\n }\r\n ]\r\n \r\n this.messages[this.messages.length - 1].suggestedActions=actions;\r\n });\r\n }\r\n else{\r\n this.ngZone.run(() => {\r\n let redirect_keyword =parsedJson.redirect_keyword;\r\n if(this.parentComponent!=null){\r\n redirect_keyword = redirect_keyword+'_'+this.parentComponent\r\n }\r\n let redirectData:any = urlRedirect.getRedirectUrl(redirect_keyword);\r\n if (redirectData != null && redirectData != undefined) {\r\n let redirect=this.messages[this.messages.length - 1].redirect;\r\n let studentId=null;\r\n if(this.student !=null){\r\n studentId=this.student.studentId;\r\n }\r\n else{ \r\n let students=JSON.parse(localStorage.getItem('allChildren'));\r\n if(students?.length==1){\r\n studentId=students[0]?.studentId;\r\n }\r\n }\r\n redirectData.redirectUrl = redirectData.redirectUrl.replace('',studentId);\r\n redirectData.studentId= studentId;\r\n if(redirect!=null && redirect.length > 0){\r\n redirect.push(redirectData);\r\n }\r\n else{\r\n redirect=[redirectData];\r\n }\r\n this.messages[this.messages.length - 1].redirect = redirect;\r\n }\r\n });\r\n }\r\n }\r\n if (isEndofStream) {\r\n let messagetext=this.messages[this.messages.length - 1].text;\r\n let renderedtext=this.renderMarkdown(messagetext);\r\n \r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length - 1].text =renderedtext;\r\n });\r\n let endOfConversation = parsedJson?.Convo_complete ? true : false;\r\n if (endOfConversation) {\r\n //Call after 60 secs\r\n this.timeOutRef=setTimeout(() => {\r\n this.getOtherDetailText();\r\n }, 60000);\r\n }\r\n this.postChatHistory();\r\n this.enableOrDisableInput(false);\r\n //scroll to last message\r\n let msgGroupElements=document.getElementsByClassName('k-message-group');\r\n if(msgGroupElements !=null && msgGroupElements?.length >0){\r\n msgGroupElements[msgGroupElements.length-1].scrollIntoView();\r\n }\r\n }\r\n this.ngZone.run(() => {\r\n this.messages = [...this.messages];\r\n this.cdr.detectChanges();\r\n if (isStart) {\r\n //scroll to last message\r\n let msgGroupElements=document.getElementsByClassName('chat-wrapper');\r\n if(msgGroupElements !=null && msgGroupElements?.length >0){\r\n msgGroupElements[msgGroupElements.length-1].scrollIntoView();\r\n }\r\n }\r\n isStart = false;\r\n });\r\n }, err => {\r\n this.handleError();\r\n });\r\n }, (error:HttpErrorResponse) => {\r\n if(error.status==401){\r\n this.svc.getToken().then((res)=>{\r\n if(res){\r\n this.getAIResponse(chat);\r\n }\r\n });\r\n }\r\n else{\r\n this.handleError();\r\n }\r\n });\r\n }\r\n\r\n getOtherDetailText(){\r\n let message={ text:'get_followup_question_using_history',timestamp:new Date(),suggestedActions:[],author:this.bot };\r\n\r\n this.enableOrDisableInput(true);\r\n var chat = this.initializeChatModel(message,this.sessionId);\r\n this.getAIResponse(chat);\r\n }\r\n\r\n public sendReply(action:Action){\r\n if(!this.requestInProgress){\r\n if(action.type=='reply'){\r\n this.setMessage({ text:action.value,timestamp:new Date(),suggestedActions:[],author:this.user});\r\n }\r\n else if(action.type=='reply-type'){\r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length-1].suggestedActions=[];\r\n this.messages = [...this.messages];\r\n this.cdr.detectChanges();\r\n });\r\n this.setMessage({ text:action.value,timestamp:new Date(),suggestedActions:[],author:this.user});\r\n }\r\n else if(action.type=='reply-studentName'){\r\n this.student=action.value;\r\n this.ngZone.run(() => {\r\n this.messages[this.messages.length-1].suggestedActions=[];\r\n this.messages = [...this.messages];\r\n this.cdr.detectChanges();\r\n });\r\n this.setMessage({ text:action.value.studentName,timestamp:new Date(),suggestedActions:[],author:this.user});\r\n }\r\n else{\r\n let message={ text:'',timestamp:new Date(),suggestedActions:moreOptions,author:this.bot};\r\n this.ngZone.run(() => {\r\n this.messages.push({ text:action.value,timestamp:new Date(),suggestedActions:[],author:this.user});\r\n this.messages.push(message);\r\n this.messages = [...this.messages];\r\n this.cdr.detectChanges();\r\n this.postChatHistory();\r\n });\r\n //scroll to last message\r\n let msgGroupElements=document.getElementsByClassName('k-message-group');\r\n if(msgGroupElements !=null && msgGroupElements?.length >0){\r\n msgGroupElements[msgGroupElements.length-1].scrollIntoView();\r\n }\r\n }\r\n }\r\n }\r\n\r\n handleError(){\r\n this.postChatHistory();\r\n this.enableOrDisableInput(false);\r\n }\r\n\r\n initializeChatModel(e:Message,sessionID:any){\r\n var chatFormData=new FormData();\r\n chatFormData.append(\"session_id\",sessionID);\r\n chatFormData.append(\"input_text\",e.text??\"\");\r\n chatFormData.append(\"input_type\",\"text\");\r\n chatFormData.append(\"persona\",\"Parent\");\r\n chatFormData.append(\"bot_personality\",\"Super Driver\");\r\n chatFormData.append(\"stream\",'true');\r\n chatFormData.append(\"env\",this.configService.chatbotSetting.environmentCode);\r\n chatFormData.append(\"channel\",this.configService.chatbotSetting.channel);\r\n if(this.userName!=null){\r\n chatFormData.append(\"user_id\",this.userName);\r\n if(localStorage.getItem('currentToken')){\r\n let token=JSON.parse(localStorage.getItem('currentToken'));\r\n chatFormData.append(\"access_token\",token?.access_token);\r\n }\r\n }\r\n return chatFormData;\r\n }\r\n\r\n htmlProperty(textString:string) : string {\r\n var string = this._sanitizer.sanitize(SecurityContext.HTML,textString);\r\n return this.escapeHtml(string??\"\");\r\n }\r\n\r\n escapeHtml(unsafe:string) {\r\n return unsafe.replace(/<[^>]*>/g, '').replace(/\\s\\s+/g, ' ');\r\n\r\n }\r\n\r\n enableOrDisableInput(isDisable:boolean){\r\n\r\n var controls=document.getElementsByClassName('k-message-box')[0].children;\r\n for(let i=0;i {\r\n this.messages.forEach((x:any)=>{\r\n x.disableForm=true;\r\n });\r\n this.cdr.detectChanges();\r\n });\r\n this.postChatHistory();\r\n this.chatClosed.emit();\r\n this.renderer.removeClass(document.body, 'bodyoverflow-hidden');\r\n }\r\n\r\n navigateTo(message:any){\r\n this.closeChat();\r\n if(message.redirectType=='redirect'){\r\n if(message.studentId !=null && message.studentId !=undefined){\r\n let currentStudent=localStorage.getItem('selectedstudentid');\r\n if(currentStudent !=message?.studentId){\r\n \r\n const modebusEvent = new CustomEvent('app-switch-student', { \r\n bubbles: true,\r\n detail: {\r\n eventType: 'student-switched',\r\n studentId: message?.studentId,\r\n redirectUrl:message.redirectUrl\r\n }\r\n });\r\n dispatchEvent(modebusEvent);\r\n }\r\n else{\r\n this.redirectPage(message)\r\n }\r\n }\r\n else{\r\n this.redirectPage(message);\r\n }\r\n }\r\n if(message.redirectType == 'method'){\r\n this[message.redirectUrl]();\r\n }\r\n else{\r\n this.redirectEvent.emit(message);\r\n }\r\n }\r\n\r\n redirectPage(message:any){\r\n if(message.redirectUrl.includes('?')){\r\n this.router.navigateByUrl(message.redirectUrl);\r\n }\r\n else{\r\n this.router.navigate([message.redirectUrl]);\r\n }\r\n }\r\n postChatHistory(){\r\n let messages:any=JSON.stringify(this.messages);\r\n if(this.fromLocalStorage){\r\n localStorage.setItem('pre-login-chat-history',messages);\r\n }\r\n else{\r\n messages= encodeURIComponent(messages);\r\n messages=messages.replaceAll('(','%28').replaceAll(')','%29');\r\n let data={\r\n SCH_USERNAME:this.userName,\r\n SCH_DATA:messages,\r\n SCH_SOURCE:\"WEB\"\r\n }\r\n this.svc.postChatHistory(data).subscribe();\r\n }\r\n }\r\n\r\n submitEvent(data:any){\r\n this.enableOrDisableInput(true);\r\n let message={ text:'what are the serverice available',timestamp:new Date(),suggestedActions:[],author:this.user}\r\n var chatFormData=this.initializeChatModel(message,this.sessionId);\r\n\r\n chatFormData.append(\"intent\",\"service_availability\");\r\n chatFormData.append(\"bsu_id \",data.SCHOOL);\r\n chatFormData.append(\"provider\",data.PROVIDER_ID);\r\n if((data?.PICKUPAREA !=null && data?.PICKUPAREA !='')){\r\n chatFormData.append(\"sbl_id\",data?.PICKUPAREA);\r\n }\r\n else{\r\n chatFormData.append(\"sbl_id\",'0');\r\n }\r\n if((data?.DROPOFFAREA !=null && data?.DROPOFFAREA !='')){\r\n chatFormData.append(\"dsblid\",data?.DROPOFFAREA);\r\n }\r\n else{\r\n chatFormData.append(\"dsblid\",'0');\r\n }\r\n \r\n chatFormData.append(\"triptype\",data.TPT_TYPE);\r\n chatFormData.append(\"acd_id\",data.ACD_ID);\r\n this.messages[this.messages.length-1].data=data;\r\n this.messages[this.messages.length-1].disableForm=true;\r\n this.postChatHistory();\r\n this.getAIResponse(chatFormData);\r\n }\r\n\r\n submitLoginForm(data:any){\r\n this.enableOrDisableInput(true);\r\n this.messages[this.messages.length-1].data=data;\r\n this.messages[this.messages.length-1].disableForm=true;\r\n this.postChatHistory();\r\n\r\n let message={ text:'what are the serverice available',timestamp:new Date(),suggestedActions:[],author:this.user}\r\n var chatFormData=this.initializeChatModel(message,this.sessionId);\r\n\r\n chatFormData.append(\"intent\",\"recover_username\");\r\n chatFormData.append(\"input_text\",\"recover username\");\r\n chatFormData.append(\"primary_contact_number \",data.primaryMobile);\r\n chatFormData.append(\"student_fname\",data.studentName);\r\n chatFormData.append(\"dob\",data.studentDob);\r\n this.getAIResponse(chatFormData);\r\n }\r\n ngOnDestroy(): void {\r\n if(this.timeOutRef){\r\n clearTimeout(this.timeOutRef);\r\n }\r\n }\r\n isFullScreenChat = false;\r\n fullscreenChat(){\r\n this.isFullScreenChat = true;\r\n\r\n if (this.isFullScreenChat == true) {\r\n // alert('opened')\r\n this.renderer.addClass(document.body, 'bodyoverflow-hidden');\r\n } else {\r\n this.renderer.removeClass(document.body, 'bodyoverflow-hidden');\r\n }\r\n }\r\n regularscreenChat(){\r\n this.isFullScreenChat = false;\r\n }\r\n public renderMarkdown(md: string): string {\r\n var mark = marked(md);\r\n return mark;\r\n }\r\n\r\n registerNow()\r\n {\r\n this.dashboardService.getContactDetails('').subscribe((res:any)=>{\r\n let contactDetails = res?.data;\r\n let token=JSON.parse(localStorage.getItem('currentToken'));\r\n this.registerService.getParentsList(contactDetails?.primaryContactNumber, token).subscribe(res=>{\r\n let parentDetails= res?.data;\r\n localStorage.removeItem('photopath')\r\n localStorage.removeItem('studentDetails');\r\n localStorage.setItem('parentDetails',JSON.stringify(parentDetails));\r\n localStorage.setItem('studParentDetails',JSON.stringify(parentDetails));\r\n this.registerService.sendStudentDetails.next(parentDetails);\r\n localStorage.setItem(\"proceed\",\"false\");\r\n localStorage.setItem(\"showSchool\",\"true\")\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{isFromDashboard:true,tab:1}});\r\n });\r\n })\r\n }\r\n}\r\n\r\nconst preLoginActions=[{\r\n type: 'reply',\r\n value: 'Registration'\r\n}, {\r\n type: 'reply',\r\n value: 'Request a callback'\r\n}, {\r\n type: 'reply',\r\n value: 'Recover Login Credentials'\r\n}, {\r\n type: 'reply',\r\n value: 'Offers'\r\n}, {\r\n type: 'reply',\r\n value: 'Service Availability and Fees'\r\n}];\r\n\r\nconst moreOptions= [\r\n {\r\n type: 'reply',\r\n value: 'Request Area Change'\r\n },\r\n {\r\n type: 'reply',\r\n value: 'Register Sibling'\r\n}, {\r\n type: 'reply',\r\n value: 'Single-Day Schedule Customisation Request'\r\n}, {\r\n type: 'reply',\r\n value: 'Contact SDE '\r\n}, {\r\n type: 'reply',\r\n value: 'Re-registration'\r\n}, {\r\n type: 'reply',\r\n value: 'Discontinue '\r\n}];","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport parsePhoneNumberFromString from 'libphonenumber-js';\r\nimport { FormControl, FormGroup } from 'ngx-typesafe-forms';\r\n\r\n@Component({\r\n selector: 'app-recover-login-form',\r\n templateUrl: './recover-login-form.component.html',\r\n styleUrls: ['./recover-login-form.component.scss']\r\n})\r\nexport class RecoverLoginFormComponent implements OnInit {\r\n @Input() data: any;\r\n @Input() disableForm = false;\r\n @Output() submitEvent: EventEmitter = new EventEmitter();\r\n \r\n selectedCountries: string; \r\n public countries=['ae', 'qa'];\r\n validPhoneNumber: boolean=false;\r\n \r\n maxDate = new Date(new Date().getFullYear()-1, null,null);\r\n public loginForm=new FormGroup({ \r\n primaryMobile: new FormControl('', [Validators.required]),\r\n studentName: new FormControl('', [Validators.required]),\r\n studentDob: new FormControl('', [Validators.required])\r\n });\r\n constructor(private datePipe: DatePipe) { }\r\n\r\n ngOnInit(): void {\r\n if (this.disableForm) { \r\n this.loginForm.disable();\r\n this.disableForm = true;\r\n }\r\n if(this.data){\r\n this.loginForm.patchValue({\r\n primaryMobile: this.data?.primaryMobile,\r\n studentName: this.data?.studentName,\r\n studentDob: this.data?.studentDob,\r\n });\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const disableForm = changes['disableForm'];\r\n if (disableForm.currentValue == true) {\r\n this.loginForm.disable();\r\n this.disableForm = true;\r\n }\r\n }\r\n formatPrimaryPhoneNumber($event, currentCtrl) {\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n let phone =phoneNumber.nationalNumber;\r\n this.validPhoneNumber=true;\r\n $event.srcElement.value = phone;\r\n }\r\n }\r\n changeDOB(event){\r\n let dob = event.value._d;\r\n this.loginForm.controls['studentDob'].setValue(this.datePipe.transform(dob, 'yyyy-MM-dd'))\r\n }\r\n\r\n clearForm(phoneCtrl:any){\r\n this.loginForm.reset();\r\n phoneCtrl.value='';\r\n phoneCtrl.phoneNumber='';\r\n phoneCtrl.selectedCountry={\"name\":\"United Arab Emirates \",\"iso2\":\"ae\",\"dialCode\":\"971\",\"priority\":0,\"flagClass\":\"AE\",\"placeHolder\":\"\"};\r\n this.validPhoneNumber=false;\r\n }\r\n submit(){\r\n this.disableForm=true;\r\n this.loginForm.disable();\r\n this.submitEvent.emit(this.loginForm.value);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { ServiceinfoService } from 'src/app/service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ChatService } from 'src/app/service/chat.service';\r\n\r\n@Component({\r\n selector: 'app-service-availability-form',\r\n templateUrl: './service-availability-form.component.html',\r\n styleUrls: ['./service-availability-form.component.scss']\r\n})\r\nexport class ServiceAvailabilityFormComponent implements OnInit {\r\n @Input() residentialData: any;\r\n @Input() serviceFormSubmitted = false;\r\n @Input() student:any;\r\n @Output() submitEvent: EventEmitter = new EventEmitter();\r\n pickupAreaList: any[] = [];\r\n dropOffAreaList: any[] = [];\r\n transportTypes: any[] = [];\r\n emirates: any[] = [];\r\n residentialsDetails: FormGroup= new FormGroup({\r\n SCHOOL: new FormControl('', Validators.required),\r\n ACD_ID: new FormControl(''),\r\n PROVIDER_ID: new FormControl(''),\r\n EMIRATE: new FormControl('', Validators.required),\r\n TPT_TYPE: new FormControl(null, Validators.required),\r\n PICKUPAREA: new FormControl(null),\r\n DROPOFFAREA: new FormControl(null)\r\n });\r\n isPickupOnly: boolean = false;\r\n isDropOnly: boolean = false;\r\n token: any;\r\n schools: any[] = [];\r\n tptType: any;\r\n tempDropOffAreaList: any;\r\n tempPickupAreaList: any;\r\n academicYearId: any;\r\n disableSubmit: boolean = false;\r\n selectedSchool:any;\r\n selectedEmirate:any;\r\n selectedTransportType:any;\r\n selectedPickupArea:any;\r\n selectedDropOffArea:any;\r\n tempSchools: any;\r\n tempTransportTypes: any;\r\n tempEmirates: any;\r\n showSchoolPopup: boolean=false;\r\n showTransportTypePopup: boolean=false;\r\n showEmiratePopup: boolean=false;\r\n showPickupPopup: boolean=false;\r\n showDropOffPopup: boolean=false;\r\n showSchool: boolean=true;\r\n\r\n constructor(private tokenService: TokenService, private serviceinfoService: ServiceinfoService,\r\n public registerService: RegistrationService, private datePipe: DatePipe,private chatService:ChatService) { }\r\n\r\n ngOnInit(): void {\r\n if (!this.serviceFormSubmitted) {\r\n this.getToken();\r\n }\r\n else {\r\n this.disableForms();\r\n }\r\n }\r\n\r\n disableForms() {\r\n if (this.residentialData?.TPT_TYPE == 0 || this.residentialData?.TPT_TYPE == 1) {\r\n this.isPickupOnly = true;\r\n }\r\n\r\n if (this.residentialData?.TPT_TYPE == 0 || this.residentialData?.TPT_TYPE == 2) {\r\n this.isDropOnly = true;\r\n }\r\n this.residentialsDetails.disable();\r\n this.disableSubmit = true;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const serviceFormSubmitted = changes['serviceFormSubmitted'];\r\n if (serviceFormSubmitted?.currentValue == true) {\r\n this.disableForms();\r\n }\r\n }\r\n\r\n getToken() {\r\n if(this.chatService.phoenixToken !='' && !this.chatService.phoenixTokenExpired){\r\n this.token=this.chatService.phoenixToken;\r\n if(!this.isPostLogin()){\r\n this.getSchoolList();\r\n }\r\n }\r\n else{\r\n this.chatService.phoenixToken='';\r\n this.tokenService.GetToken(null,true).subscribe(\r\n res => {\r\n this.token = res?.access_token;\r\n this.chatService.setPhoenixToken(res);\r\n if(!this.isPostLogin()){\r\n this.getSchoolList();\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n isPostLogin(){\r\n let postLogin=false;\r\n if(this.student !=null){\r\n this.selectedSchool=this.student?.bsuId;\r\n let schoolDetails=JSON.parse(localStorage.getItem('schoolList') ?? '');\r\n this.schools=schoolDetails;\r\n this.tempSchools=schoolDetails;\r\n let school=schoolDetails.find(x=>x.bsU_ID==this.selectedSchool)\r\n this.residentialsDetails.patchValue({\r\n SCHOOL:this.student?.bsuId,\r\n PROVIDER_ID:school?.provider,\r\n ACD_ID: this.student?.acdId\r\n });\r\n if(this.residentialData!=null){\r\n this.residentialData.schoolName=school?.schoolName;\r\n this.residentialData.emirateName=null;\r\n this.residentialData.transportType=null;\r\n this.residentialData.pickupAreaName=null;\r\n this.residentialData.dropOffAreaName=null;\r\n }\r\n else{\r\n this.residentialData={\r\n schoolName:school?.schoolName\r\n }\r\n }\r\n postLogin=true;\r\n this.academicYearId = this.student?.acdId;\r\n this.getMasters();\r\n }\r\n return postLogin;\r\n }\r\n getSchoolList() {\r\n this.registerService.getSchoolList(this.token).subscribe(res => {\r\n this.schools = res;\r\n this.tempSchools = res;\r\n });\r\n }\r\n\r\n onSchoolOpen() {\r\n if (!this.serviceFormSubmitted) {\r\n this.schools = this.tempSchools;\r\n this.showSchoolPopup=true;\r\n if (this.residentialsDetails.value.SCHOOL) {\r\n this.selectedSchool = this.residentialsDetails.value.SCHOOL;\r\n }\r\n else {\r\n this.selectedSchool = this.schools[0].bsU_ID;\r\n }\r\n }\r\n }\r\n\r\n onEmiratesOpen() {\r\n debugger;\r\n if (!this.serviceFormSubmitted) {\r\n this.emirates = this.tempEmirates;\r\n this.showEmiratePopup=true;\r\n if (this.residentialsDetails.value.EMIRATE) {\r\n this.selectedEmirate = this.residentialsDetails.value.EMIRATE;\r\n }\r\n else {\r\n this.selectedEmirate = this.emirates[0].id;\r\n }\r\n }\r\n }\r\n\r\n onTransportTypesOpen() {\r\n if (!this.serviceFormSubmitted) {\r\n this.transportTypes = this.tempTransportTypes;\r\n this.showTransportTypePopup=true;\r\n if (this.residentialsDetails.value.TPT_TYPE) {\r\n this.selectedTransportType = this.residentialsDetails.value.TPT_TYPE;\r\n }\r\n else {\r\n this.selectedTransportType = this.transportTypes[0].id;\r\n }\r\n }\r\n }\r\n\r\n onPickupAreaOpen() {\r\n debugger;\r\n if (!this.serviceFormSubmitted) {\r\n this.pickupAreaList = this.tempPickupAreaList;\r\n this.showPickupPopup=true;\r\n if (this.residentialsDetails.value.PICKUPAREA) {\r\n this.selectedPickupArea = this.residentialsDetails.value.PICKUPAREA;\r\n }\r\n else {\r\n this.selectedPickupArea = this.pickupAreaList[0].id;\r\n }\r\n }\r\n }\r\n\r\n onDropOffAreaOpen() {\r\n debugger;\r\n if (!this.serviceFormSubmitted) {\r\n this.dropOffAreaList = this.tempPickupAreaList;\r\n this.showDropOffPopup=true;\r\n if (this.residentialsDetails.value.DROPOFFAREA) {\r\n this.selectedDropOffArea = this.residentialsDetails.value.DROPOFFAREA;\r\n }\r\n else {\r\n this.selectedDropOffArea = this.dropOffAreaList[0].id;\r\n }\r\n }\r\n }\r\n\r\n onSchoolChange() {\r\n this.showSchoolPopup=false;\r\n this.residentialsDetails.patchValue({\r\n SCHOOL:this.selectedSchool\r\n });\r\n this.emirates = [];\r\n this.transportTypes = [];\r\n this.pickupAreaList = [];\r\n this.dropOffAreaList = [];\r\n this.isDropOnly = false;\r\n this.isPickupOnly = false;\r\n this.selectedEmirate=null;\r\n this.selectedTransportType=null;\r\n this.selectedPickupArea=null;\r\n this.selectedDropOffArea=null;\r\n let school = this.schools.find((x: any) => x.bsU_ID == this.residentialsDetails.value.SCHOOL);\r\n if(this.residentialData!=null){\r\n this.residentialData.schoolName=school?.schoolName;\r\n this.residentialData.emirateName=null;\r\n this.residentialData.transportType=null;\r\n this.residentialData.pickupAreaName=null;\r\n this.residentialData.dropOffAreaName=null;\r\n }\r\n else{\r\n this.residentialData={\r\n schoolName:school?.schoolName\r\n }\r\n }\r\n this.residentialsDetails.patchValue({\r\n ACD_ID: null,\r\n PROVIDER_ID: school?.provider,\r\n EMIRATE: null,\r\n TPT_TYPE: null,\r\n PICKUPAREA: null,\r\n DROPOFFAREA: null\r\n });\r\n this.academicYearId = 0;\r\n this.getMasters();\r\n this.getAcademicyear();\r\n }\r\n\r\n getAcademicyear() {\r\n let bsuId = this.residentialsDetails.value.SCHOOL;\r\n let serviceDate = this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.registerService.getAcademicYrs(this.token, serviceDate, bsuId,true).subscribe(res => {\r\n if (res?.data != null) {\r\n let academicYrId = res?.data;\r\n this.academicYearId = academicYrId[0]?.id;\r\n this.residentialsDetails.patchValue({\r\n ACD_ID: this.academicYearId\r\n });\r\n }\r\n });\r\n }\r\n\r\n getMasters() {\r\n let bsuId = this.residentialsDetails.value.SCHOOL;\r\n let obj1: any = {\r\n headers: {\r\n \"master\": \"TPT_TYPE\",\r\n \"bsuid\": bsuId.toString(),\r\n \"Authorization\": \"Bearer \" + this.token,\r\n \"HideSpinner\":\"true\"\r\n }\r\n }\r\n let obj2: any = {\r\n headers: {\r\n \"master\": \"TPT_CITY_M\",\r\n \"param1\": \"172\",\r\n \"bsuid\": bsuId,\r\n \"Authorization\": \"Bearer \" + this.token,\r\n \"HideSpinner\":\"true\"\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj1).subscribe(res => {\r\n this.transportTypes = res[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n this.tempTransportTypes = res[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n });\r\n this.serviceinfoService.getMaster(obj2).subscribe(res => {\r\n this.emirates = res[\"data\"];\r\n this.tempEmirates = res[\"data\"];\r\n });\r\n }\r\n checkTPTType() {\r\n this.showTransportTypePopup=false;\r\n let data: any[];\r\n data = this.transportTypes.filter(x => x.id == this.selectedTransportType);\r\n\r\n this.residentialsDetails.patchValue({\r\n TPT_TYPE:this.selectedTransportType\r\n });\r\n if(this.residentialData!=null){\r\n this.residentialData.transportType=data[0]?.descr;\r\n this.residentialData.pickupAreaName=null;\r\n this.residentialData.dropOffAreaName=null;\r\n }\r\n else{\r\n this.residentialData={\r\n transportType:data[0]?.descr\r\n }\r\n }\r\n this.tptType = data[0].id\r\n if (data[0].id == 0) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n }\r\n if (data[0].id == 1) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = false;\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].clearValidators();\r\n }\r\n if (data[0].id == 2) {\r\n this.isPickupOnly = false;\r\n this.isDropOnly = true;\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPAREA'].clearValidators();\r\n }\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsPristine();\r\n this.residentialsDetails.patchValue({\r\n PICKUPAREA: '',\r\n DROPOFFAREA: ''\r\n });\r\n this.selectedPickupArea=null;\r\n this.selectedDropOffArea=null;\r\n }\r\n onEmiratesChange() {\r\n this.showEmiratePopup=false;\r\n this.residentialsDetails.patchValue({\r\n EMIRATE:this.selectedEmirate\r\n });\r\n let emirate=this.emirates.find((x:any)=>x.id==this.selectedEmirate)\r\n if(this.residentialData!=null){\r\n this.residentialData.emirateName=emirate?.descr;\r\n this.residentialData.pickupAreaName=null;\r\n this.residentialData.dropOffAreaName=null;\r\n }\r\n else{\r\n this.residentialData={\r\n emirateName:emirate?.descr\r\n }\r\n }\r\n this.getAreaBasedOnCity();\r\n }\r\n getAreaBasedOnCity() {\r\n this.pickupAreaList = [];\r\n this.dropOffAreaList = [];\r\n this.selectedPickupArea=null;\r\n this.selectedDropOffArea=null;\r\n this.residentialsDetails.patchValue({\r\n PICKUPAREA: null,\r\n DROPOFFAREA: null\r\n });\r\n if (this.residentialsDetails.value.EMIRATE != \"\") {\r\n let bsuId = this.residentialsDetails.value.SCHOOL;\r\n let obj: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT_R\",\r\n \"param1\": this.residentialsDetails.value.EMIRATE,\r\n \"bsuid\": bsuId,\r\n \"acdid\": `${this.academicYearId}` ?? '0',\r\n \"Authorization\": \"Bearer \" + this.token,\r\n \"HideSpinner\":\"true\"\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj).subscribe(res => {\r\n if (res['data'] != null) {\r\n let areaList = res['data']?.filter((x: any) => x.id != -1);\r\n this.pickupAreaList = JSON.parse(JSON.stringify(areaList));\r\n this.dropOffAreaList = JSON.parse(JSON.stringify(areaList));\r\n this.tempPickupAreaList = JSON.parse(JSON.stringify(areaList));\r\n this.tempDropOffAreaList = JSON.parse(JSON.stringify(areaList));\r\n }\r\n });\r\n }\r\n }\r\n clearAreaSearch(type: any) {\r\n if (type == 'pickupArea') {\r\n this.pickupAreaList = this.tempPickupAreaList;\r\n } else if (type == 'dropoffArea') {\r\n this.dropOffAreaList = this.tempDropOffAreaList;\r\n }\r\n }\r\n clearSearchValue(event: any) {\r\n event.target.value = '';\r\n }\r\n\r\n searchSchool(value:any){\r\n let filter = value?.toLowerCase();\r\n if (filter != '') {\r\n this.schools = this.tempSchools.filter(option => option.schoolName.toLowerCase().includes(filter));\r\n } else {\r\n this.schools = this.tempSchools\r\n }\r\n }\r\n\r\n searchEmirates(value:any){\r\n let filter = value?.toLowerCase();\r\n if (filter != '') {\r\n this.emirates = this.tempEmirates.filter(option => option.descr.toLowerCase().includes(filter));\r\n } else {\r\n this.emirates = this.tempEmirates\r\n }\r\n }\r\n\r\n searchTransportTypes(value:any){\r\n let filter = value?.toLowerCase();\r\n if (filter != '') {\r\n this.transportTypes = this.tempTransportTypes.filter(option => option.descr.toLowerCase().includes(filter));\r\n } else {\r\n this.transportTypes = this.tempTransportTypes\r\n }\r\n }\r\n onKey(value) {\r\n this.pickupAreaList = this.search(value);\r\n }\r\n search(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.tempPickupAreaList.filter(option => option.descr.toLowerCase().includes(filter));\r\n } else {\r\n return this.pickupAreaList = this.tempPickupAreaList\r\n }\r\n }\r\n onKeyPoint(value) {\r\n this.dropOffAreaList = this.searchPoint(value);\r\n }\r\n searchPoint(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.tempDropOffAreaList.filter(option => option.descr.toLowerCase().includes(filter));\r\n } else {\r\n return this.dropOffAreaList = this.tempDropOffAreaList\r\n }\r\n }\r\n submit() {\r\n this.residentialsDetails.disable();\r\n this.disableSubmit = true;\r\n let residentialData = this.residentialsDetails.value;\r\n\r\n let school = this.schools.find((x: any) => x.bsU_ID == residentialData.SCHOOL);\r\n residentialData.schoolName = school?.schoolName ?? '';\r\n\r\n let transportType = this.transportTypes.find((x: any) => x.id == residentialData.TPT_TYPE);\r\n residentialData.transportType = transportType?.descr ?? '';\r\n\r\n let emirate = this.emirates.find((x: any) => x.id == residentialData.EMIRATE);\r\n residentialData.emirateName = emirate?.descr ?? '';\r\n\r\n if (residentialData.TPT_TYPE == 0 || residentialData.TPT_TYPE == 1) {\r\n let pickupArea = this.pickupAreaList.find((x: any) => x.id == residentialData.PICKUPAREA);\r\n residentialData.pickupAreaName = pickupArea?.descr ?? '';\r\n }\r\n\r\n if (residentialData.TPT_TYPE == 0 || residentialData.TPT_TYPE == 2) {\r\n let dropOffArea = this.dropOffAreaList.find((x: any) => x.id == residentialData.DROPOFFAREA);\r\n residentialData.dropOffAreaName = dropOffArea?.descr ?? '';\r\n }\r\n\r\n this.submitEvent.emit(residentialData);\r\n }\r\n\r\n onAreaChange(type:string){\r\n if(type=='pickup'){\r\n this.showPickupPopup=false;\r\n this.residentialsDetails.patchValue({\r\n PICKUPAREA:this.selectedPickupArea\r\n });\r\n let area=this.pickupAreaList.find((x:any)=>x.id==this.selectedPickupArea);\r\n if(this.residentialData!=null){\r\n this.residentialData.pickupAreaName=area?.descr;\r\n }\r\n else{\r\n this.residentialData={\r\n pickupAreaName:area?.descr\r\n }\r\n }\r\n }\r\n else{\r\n this.showDropOffPopup=false;\r\n this.residentialsDetails.patchValue({\r\n DROPOFFAREA:this.selectedDropOffArea\r\n });\r\n let area=this.dropOffAreaList.find((x:any)=>x.id==this.selectedDropOffArea);\r\n if(this.residentialData!=null){\r\n this.residentialData.dropOffAreaName=area?.descr;\r\n }\r\n else{\r\n this.residentialData={\r\n dropOffAreaName:area?.descr\r\n }\r\n }\r\n }\r\n }\r\n\r\n clearForm(){\r\n this.residentialData=null;\r\n this.residentialsDetails.reset();\r\n this.selectedSchool=null;\r\n this.selectedEmirate=null;\r\n this.selectedTransportType=null;\r\n this.selectedPickupArea=null;\r\n this.selectedDropOffArea=null;\r\n this.isDropOnly=false;\r\n this.isPickupOnly=false;\r\n }\r\n}\r\n","import { AfterContentInit, AfterViewInit, Component, DoCheck, ElementRef, Inject, OnInit, Renderer2, TemplateRef, ViewChild } from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\nimport htmlToPdfmake from 'html-to-pdfmake';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { ServiceinfoService } from 'src/app/service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\n@Component({\r\n selector: 'app-auto-promotion',\r\n templateUrl: './auto-promotion.component.html',\r\n styleUrls: ['./auto-promotion.component.scss']\r\n})\r\n\r\nexport class AutoPromotionComponent implements OnInit {\r\n constructor(private dialog: MatDialog, private router: Router, public reRegService: ReregistrationService, private configService: ConfigService,\r\n private sanitizer: DomSanitizer, private renderer: Renderer2, @Inject(DOCUMENT) private document: Document, private registrationService: RegistrationService, private transportInfoService: TransportserviceService, private serviceinfoService: ServiceinfoService, private dashboardService: DashboardService) { }\r\n\r\n defaultToken: any;\r\n pdfContent: any;\r\n pdfHtml: string;\r\n contentTitle: string;\r\n schoolDetails: any;\r\n city: any;\r\n disableSave: boolean = true;\r\n contentViewer: any;\r\n isTerms: boolean = false;\r\n isParentTaking: boolean = false;\r\n isBusBehavior: boolean = false;\r\n showParentUndertaking: boolean = false;\r\n isLeasedSchool: boolean = false;\r\n isHybridSchool: boolean = false;\r\n enableAgreeTemplate: boolean = false;\r\n\r\n textPdf: any = '';\r\n textPdf2: any = '';\r\n textPdf3: any = '';\r\n textPdf4: any = '';\r\n textPdf5: any = '';\r\n textPdf6: any = '';\r\n textPdf7: any = '';\r\n textPdf8: any = '';\r\n textPdf9: any = '';\r\n sign: any = '';\r\n sign2: any = '';\r\n sign3: any = '';\r\n sign4: any = '';\r\n sign5: any = '';\r\n checkbox1: boolean = false;\r\n checkbox2: boolean = false;\r\n\r\n @ViewChild('pdf') pdf: ElementRef;\r\n @ViewChild('header') header: ElementRef;\r\n @ViewChild('headerLogo') headerLogo: ElementRef;\r\n @ViewChild('signature') signature: ElementRef;\r\n pdfType: string = '';\r\n stuSchoolId: string = '';\r\n studentData: any;\r\n PaymentRefNo: any;\r\n PaymentRedirectURL: any;\r\n paymentTypeID: any;\r\n transportTypes: any[] = [];\r\n autoPromotionForm: any[] = [];\r\n checkedStudentNo: any;\r\n termsAndConditionArr: any[] = [];\r\n autoPromoDetails: any;\r\n dataPopulated: boolean = false;\r\n isGrade: boolean = false;\r\n\r\n ngOnInit(): void {\r\n this.defaultToken = localStorage.getItem('currentToken');\r\n\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n\r\n let bsuId = localStorage.getItem(\"bsU_ID\");\r\n let schoolList = JSON.parse(localStorage.getItem(\"schoolList\"))\r\n\r\n this.schoolDetails = schoolList.find(x => x.bsU_ID == bsuId);\r\n this.city = this.schoolDetails?.city;\r\n\r\n this.isLeasedSchool = this.schoolDetails?.isLeasedSchool;\r\n this.isHybridSchool = this.schoolDetails?.ishybrid;\r\n\r\n let selectedStudentId = localStorage.getItem('selectedstudentid');\r\n\r\n this.stuSchoolId = selectedStudentId;\r\n\r\n this.getSiblingDetails();\r\n\r\n }\r\n\r\n getSiblingDetails() {\r\n\r\n this.dashboardService.getAutoPromotionDetails().subscribe((autoRes: any) => {\r\n if (autoRes?.data?.length > 0) {\r\n this.autoPromoDetails = autoRes?.data;\r\n let studentIds = autoRes?.data?.map((y: any) => y.stU_NO);\r\n\r\n if (studentIds?.length > 0) {\r\n // let obj1: any = {\r\n // headers: {\r\n // \"master\": \"TPT_TYPE\",\r\n // \"bsuid\": localStorage.getItem(\"bsU_ID\"),\r\n // \"Authorization\": \"Bearer \" + this.defaultToken\r\n // }\r\n // }\r\n\r\n // this.serviceinfoService.getMaster(obj1).subscribe(ttRes => {\r\n\r\n // this.transportTypes = ttRes[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n // this.transportTypes.unshift({\r\n // descr: 'Select',\r\n // id: null\r\n // });\r\n // });\r\n\r\n this.transportInfoService.getTransportInfoOfChildren().subscribe((res: any) => {\r\n this.termsAndConditionArr = [];\r\n\r\n res.data = res.data.filter((x: any) => studentIds.includes(x.studentNo));\r\n\r\n this.studentData = res.data;\r\n res.data?.forEach((data: any) => {\r\n let pdfs = this.autoPromoDetails.filter((x:any) => x.stU_NO == data.studentNo);\r\n\r\n let isTerms = false, isTermsAgreed = false;\r\n let isBBC = false, isBBCAgreed = false;\r\n let isPUT = false, isPUTAgreed = false, bShowSiblingInput = false;\r\n\r\n let termsAgree = autoRes.data.filter((x: any) => x.stU_NO == data.studentNo && x.doctype == \"TNC\");\r\n\r\n if (termsAgree?.length > 0) {\r\n isTerms = true\r\n } else { isTerms = false; isTermsAgreed = true; }\r\n\r\n let bbcAgree = autoRes.data.filter((x: any) => x.stU_NO == data.studentNo && x.doctype == \"BBC\");\r\n\r\n if (bbcAgree?.length > 0) {\r\n isBBC = true\r\n } else { isBBC = false; isBBCAgreed = true; }\r\n\r\n let putAgree = autoRes.data.filter((x: any) => x.stU_NO == data.studentNo && x.doctype == \"PUT\");\r\n if (putAgree?.length > 0) {\r\n isPUT = true;\r\n bShowSiblingInput = putAgree[0]?.bShowSiblingInput == 1 ? true : false;\r\n } else {\r\n isPUT = false;\r\n isPUTAgreed = true;\r\n }\r\n\r\n if (this.autoPromotionForm.indexOf((x: any) => x.studentNo == data.studentNo) == -1) {\r\n this.autoPromotionForm.push({\r\n studentPhoto: data.photoPath,\r\n studentName: data.studentName,\r\n studentNo: data.studentNo,\r\n stuSchoolId: data.stU_SCHOOL_ID,\r\n schoolName: data.school,\r\n studentGrade: data.grade,\r\n nextYearAcdId: data.acdid,\r\n pickupArea: data.pickupLocation, // this.pickupdropdata(data.stU_PICKUP_DROPOFF_LOCATION, 'pickuparea'),\r\n pickupPoint: data.pickuppoint, // this.pickupdropdata(data.stU_PICKUP_DROPOFF_POINT, 'pickuppoint'),\r\n dropoffArea: data.dropOffLocation, // this.pickupdropdata(data.stU_PICKUP_DROPOFF_LOCATION, 'dropoffarea'),\r\n dropoffPoint: data.dropoffpoint, // this.pickupdropdata(data.stU_PICKUP_DROPOFF_POINT, 'dropoffpoint'),\r\n transportType: data.servicetype, // this.transportTypes.find(x => x.id == data.reT_ROUNDTRIP)?.descr,\r\n serviceStartDate: data.fromDate,\r\n isPUTAvailable: isPUT,\r\n isTermsAvailable: isTerms,\r\n isBBCAvailable: isBBC,\r\n isPUTAgreed: isPUTAgreed,\r\n isTermsAgreed: isTermsAgreed,\r\n isBBCAgreed: isBBCAgreed,\r\n pdfs: pdfs,\r\n bShowSiblingInput: bShowSiblingInput\r\n });\r\n }\r\n });\r\n this.dataPopulated = true;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n pickupdropdata(value, type) {\r\n value = value.split('/');\r\n if (type == 'pickuparea') {\r\n return value[0]\r\n }\r\n if (type == 'dropoffarea') {\r\n return value[1]\r\n }\r\n if (type == 'pickuppoint') {\r\n return value[0]\r\n }\r\n if (type == 'dropoffpoint') {\r\n return value[1]\r\n }\r\n }\r\n\r\n checked(isChecked: any, type: any, formData:any) {\r\n this.checkedStudentNo = formData?.studentNo;\r\n\r\n if(isChecked){\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n if (type == 'PUT') {\r\n formData.isPUTAgreed = isChecked;\r\n if (isChecked) {\r\n this.isGrade = formData?.bShowSiblingInput;\r\n\r\n let primaryContactName = localStorage.getItem('primaryContactName')\r\n let payload = {\r\n stuNo: formData?.studentNo,\r\n oluName: primaryContactName\r\n }\r\n\r\n this.registrationService.getParentUndertakingData(this.defaultToken, payload).subscribe((content: any) => {\r\n let data: any\r\n if (content.data?.ttcD_DATA) {\r\n data = JSON.parse(content.data?.ttcD_DATA);\r\n }\r\n\r\n this.textPdf = data?.input1 ? data?.input1 : primaryContactName;\r\n this.textPdf2 = data?.input2 ? data?.input2 : formData?.stU_NAME;\r\n this.textPdf3 = data?.input3 ? data?.input3 : formData?.studentNo;\r\n this.textPdf4 = data?.input4 ? data?.input4 : formData?.studentGrade;\r\n this.textPdf5 = data?.input5 ? data?.input5 : formData?.schoolName;\r\n this.textPdf6 = formData?.dropoffPoint ? formData?.dropoffPoint : '';\r\n this.textPdf7 = data?.input7 ? data?.input7 : '';\r\n this.textPdf8 = data?.input8 ? data?.input8 : '';\r\n this.textPdf9 = data?.input9 ? data?.input9 : '';\r\n this.sign = data?.sign1 ? data?.sign1 : '';\r\n this.sign2 = data?.sign2 ? data?.sign2 : '';\r\n this.sign3 = data?.sign3 ? data?.sign3 : '';\r\n this.sign4 = data?.sign4 ? data?.sign4 : '';\r\n this.sign5 = data?.sign5 ? data?.sign5 : '';\r\n this.checkbox1 = data?.checkbox1 ? data?.checkbox1 : false;\r\n this.checkbox2 = data?.checkbox2 ? data?.checkbox2 : false;\r\n\r\n let putObj = formData.pdfs.find((item:any) => item.doctype === \"PUT\");\r\n this.pdfHtml = putObj.pdF_HTML;\r\n this.contentTitle = putObj.urL_TEXT;\r\n this.pdfType = \"PUT\";\r\n this.enableAgreeTemplate = true;\r\n });\r\n }\r\n }\r\n else if (type == 'TERMS') {\r\n\r\n if(!isChecked){\r\n if(formData.isTermsAvailable){\r\n formData.isTermsAgreed = isChecked; \r\n }\r\n if(formData.isBBCAvailable){\r\n formData.isBBCAgreed = isChecked; \r\n }\r\n }\r\n\r\n if(isChecked){\r\n if(formData.isTermsAvailable){\r\n formData.isTermsAgreed = isChecked;\r\n \r\n let tncObj = formData.pdfs.find((item:any) => item.doctype === \"TNC\");\r\n this.pdfHtml = tncObj.pdF_HTML;\r\n this.contentTitle = tncObj.urL_TEXT;\r\n this.pdfType = \"TNC\";\r\n this.enableAgreeTemplate = true;\r\n }else if(formData.isBBCAvailable){\r\n formData.isBBCAgreed = isChecked;\r\n \r\n let bbcObj = formData.pdfs.find((item:any) => item.doctype === \"BBC\");\r\n this.pdfHtml = bbcObj.pdF_HTML;\r\n this.contentTitle = bbcObj.urL_TEXT;\r\n this.pdfType = \"BBC\";\r\n this.enableAgreeTemplate = true;\r\n }\r\n }\r\n }\r\n this.checkSubmitValidation();\r\n }\r\n\r\n get sanitizedPdfHtml(): SafeHtml {\r\n this.pdfContent = this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent\r\n }\r\n openContent(type: any, template: any, pdfs: any) {\r\n if (type == 't&c') {\r\n let tncObj = pdfs.find((item:any) => item.doctype === \"TNC\");\r\n this.pdfHtml = tncObj.pdF_HTML;\r\n this.contentTitle = tncObj.urL_TEXT;\r\n }\r\n else if (type == 'busbehaviour') {\r\n let bbcObj = pdfs.find((item:any) => item.doctype === \"BBC\");\r\n this.pdfHtml = bbcObj.pdF_HTML;\r\n this.contentTitle = bbcObj.urL_TEXT;\r\n }\r\n else if (type == 'parentUndertaking') {\r\n let putObj = pdfs.find((item:any) => item.doctype === \"PUT\");\r\n this.pdfHtml = putObj.pdF_HTML;\r\n this.contentTitle = putObj.urL_TEXT;\r\n }\r\n this.contentViewer = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '850px',\r\n height: '500px',\r\n panelClass: ['custom-modalbox', 'rm-padding']\r\n });\r\n }\r\n closeContent() {\r\n this.contentViewer?.close();\r\n }\r\n\r\n pdfDownload() {\r\n var domain = this.reRegService.appUrl;\r\n var pdfLogo = (this.city == \"Dubai\" || this.city == \"Qatar\") ? domain + \"/assets/images/sts-logo.png\" : domain + \"/assets/images/bbt-logo.png\";\r\n //this.convertToBase64(pdfLogo);\r\n var content: any;\r\n var headerOption = {\r\n tableAutoSize: true,\r\n imagesByReference: true\r\n }\r\n var pdftitle = (this.city == \"Dubai\" || this.city == \"Qatar\") ? \"School Transport Services LLC\" : \"Bright Bus Transport\"\r\n var headerContent = `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
${pdftitle}
${this.contentTitle}
`\r\n if (this.header && this.header.nativeElement && this.pdfType == 'PUT') {\r\n content = headerContent + this.removeMetadata(this.header.nativeElement.innerHTML) + this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n\r\n }\r\n else {\r\n content = headerContent + this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n }\r\n\r\n var html = htmlToPdfmake(content, headerOption);\r\n // else var html = htmlToPdfmake(this.pdf.nativeElement.innerHTML);\r\n const documentDefinition = { content: html.content, images: html.images };\r\n pdfMake.createPdf(documentDefinition).download(this.contentTitle);\r\n }\r\n\r\n removeMetadata(html: string): string {\r\n const metadataRegex = /<\\s*(meta|title|link|style|script)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n const nonContentRegex = /<\\s*(head|script|style)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n\r\n html = html.replace(metadataRegex, '');\r\n html = html.replace(nonContentRegex, '');\r\n return html;\r\n }\r\n\r\n agree() {\r\n if (this.autoPromotionForm?.length > 0) {\r\n let index = this.autoPromotionForm.findIndex((x: any) => x.studentNo == this.checkedStudentNo);\r\n if (index != -1) {\r\n if (this.pdfType == \"TNC\") {\r\n this.autoPromotionForm[index].isTermsAgreed = true;\r\n\r\n if (this.autoPromotionForm[index].isBBCAvailable) {\r\n this.autoPromotionForm[index].isBBCAgreed = true;\r\n\r\n let bbcObj = this.autoPromotionForm[index].pdfs.find((item:any) => item.doctype === \"BBC\");\r\n this.pdfHtml = bbcObj.pdF_HTML;\r\n this.contentTitle = bbcObj.urL_TEXT;\r\n this.pdfType = \"BBC\";\r\n\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n else {\r\n this.enableAgreeTemplate = false;\r\n }\r\n }\r\n else if (this.pdfType == \"BBC\") {\r\n this.autoPromotionForm[index].isBBCAgreed = true;\r\n this.enableAgreeTemplate = false;\r\n }\r\n else if (this.pdfType == \"PUT\") {\r\n let jsonstring = JSON.stringify({\r\n \"input1\": this.textPdf,\r\n \"input2\": this.textPdf2,\r\n \"input3\": this.textPdf3,\r\n \"input4\": this.textPdf4,\r\n \"input5\": this.textPdf5,\r\n \"input6\": this.textPdf6,\r\n \"input7\": this.textPdf7,\r\n \"input8\": this.textPdf8,\r\n \"input9\": this.textPdf9,\r\n \"sign1\": this.sign,\r\n \"sign2\": this.sign2,\r\n \"sign3\": this.sign3,\r\n \"sign4\": this.sign4,\r\n \"sign5\": this.sign5,\r\n \"checkbox1\": this.checkbox1,\r\n \"checkbox2\": this.checkbox2\r\n })\r\n let data = {\r\n \"TTCUL_ID\": 0,\r\n \"OLU_NAME\": localStorage.getItem('primaryContactName'),\r\n \"STU_NO\": this.autoPromotionForm[index].studentNo,\r\n \"TTCD_DATA\": jsonstring,\r\n \"TTCD_MOBILE\": localStorage.getItem(\"primaryMobileNo\"),\r\n \"TTCD_ACD_ID\": this.autoPromotionForm[index].nextYearAcdId,\r\n \"TTCD_SUBMIT_FROM\": \"ReRegistration\",\r\n \"TTCD_SOURCE\": \"STS_WEB\"\r\n }\r\n this.registrationService.saveParentUndertakingData(this.defaultToken, data).subscribe(res => {\r\n this.autoPromotionForm[index].isPUTAgreed = true;\r\n this.enableAgreeTemplate = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.checkSubmitValidation();\r\n }\r\n\r\n checkSubmitValidation() {\r\n this.disableSave = false;\r\n\r\n this.autoPromotionForm.forEach((x:any) => {\r\n if(!this.disableSave){\r\n if (!x.isPUTAgreed || !x.isTermsAgreed || !x.isBBCAgreed) {\r\n this.disableSave = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n navigateToHome() {\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n gotoAutoPromotion() {\r\n\r\n if(this.autoPromotionForm?.length > 0){\r\n let index = this.autoPromotionForm.findIndex((x:any) => x.studentNo == this.checkedStudentNo);\r\n\r\n if(index != -1){\r\n if (this.pdfType == \"TNC\" || this.pdfType == \"BBC\") {\r\n if(this.autoPromotionForm[index].isTermsAvailable){\r\n this.autoPromotionForm[index].isTermsAgreed = false;\r\n }\r\n if(this.autoPromotionForm[index].isBBCAvailable){\r\n this.autoPromotionForm[index].isBBCAgreed = false;\r\n }\r\n }\r\n if (this.pdfType == \"PUT\") {\r\n this.autoPromotionForm[index].isPUTAgreed = false;\r\n }\r\n }\r\n }\r\n \r\n this.checkSubmitValidation();\r\n this.enableAgreeTemplate = false;\r\n }\r\n\r\n agreeAutoPromotion() {\r\n let httpCalls=[];\r\n this.studentData.forEach((ele:any) => {\r\n let autoPromo = this.autoPromoDetails?.filter((x:any) => x.stU_NO == ele.studentNo);\r\n\r\n if(autoPromo != null){\r\n let applicableDocs = autoPromo.map((x:any) => x.doctype).join(',');\r\n let tncPath = autoPromo.find((m:any) => m.doctype === \"TNC\")?.urL_PATH;\r\n let bbcPath = autoPromo.find((m:any) => m.doctype === \"BBC\")?.urL_PATH;\r\n\r\n let bsuId = ele.studentNo.substring(0,6);\r\n let tncPayload: any;\r\n tncPayload = {\r\n \"STNC_BSU_ID\": bsuId,\r\n \"STNC_ACD_ID\": ele.acdid,\r\n \"STNC_SOURCE\": \"AUTOPROMOTION\",\r\n \"STNC_REF_ID\": autoPromo[0]?.ssV_ID,\r\n \"STNC_APPLICABLE_DOCS\": applicableDocs,\r\n \"STNC_TTC_ID\": autoPromo[0]?.ttC_ID ?? 0,\r\n \"STNC_STU_NO\": ele.studentNo,\r\n \"STNC_TNC_PATH\": tncPath != \"\" ? tncPath : \"\",\r\n \"STNC_BBC_PATH\": bbcPath != \"\" ? bbcPath : \"\",\r\n \"STNC_REQUEST_SOURCE\": \"STS_WEB\"\r\n };\r\n\r\n httpCalls.push(this.reRegService.agreeAutoPromotion(tncPayload));\r\n }\r\n\r\n });\r\n\r\n if (httpCalls.length > 0) {\r\n forkJoin(httpCalls).subscribe((res: any) => {\r\n let autoPromoSuccess = true;\r\n res.forEach(obj => {\r\n if (obj.success !== \"true\") {\r\n autoPromoSuccess = false;\r\n this.openMessageDialog(obj.message, true, '');\r\n }\r\n });\r\n\r\n if (autoPromoSuccess) {\r\n if (!this.isLeasedSchool && !this.isHybridSchool)\r\n this.goToPaymentPage();\r\n else\r\n this.navigateToHome();\r\n }\r\n });\r\n }\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n goToPaymentPage() {\r\n this.router.navigate(['/payment-detail']);\r\n }\r\n\r\n goToLanding() {\r\n this.router.navigate(['/']);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-contacts-widget',\r\n templateUrl: './contacts-widget.component.html',\r\n styleUrls: ['./contacts-widget.component.scss']\r\n})\r\nexport class ContactsWidgetComponent implements OnInit {\r\n contactDetails: any;\r\n primaryContact: string='';\r\n secondaryContact: string='';\r\n public addPaymentClass: boolean = false;\r\n fileErrClass: boolean = false;\r\n\r\n constructor(private dashboardService:DashboardService,private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.getPrimaryContact();\r\n this.dashboardService.isPaymentMessage.subscribe(res=>{\r\n this.addPaymentClass = res;\r\n this.dashboardService.fileErrMessage.subscribe(val=>{\r\n this.fileErrClass=val;\r\n })\r\n })\r\n }\r\n getPrimaryContact(){\r\n let name:any='';\r\n name = JSON.parse(localStorage.getItem('currentUser'));\r\n console.log(name);\r\n\r\n this.dashboardService.getContactDetails(name?.userDisplayName).subscribe((res:any)=>{\r\n localStorage.setItem('primaryMobileNo', res?.data?.primaryContactNumber);\r\n res.data.primaryContactNumber=res?.data.primaryContactNumber.replace('+','')\r\n res.data.secondaryContactNumber=res?.data.secondaryContactNumber.replace('+','')\r\n this.contactDetails = res?.data;\r\n let phone =''\r\n // if(this.selectedCountries == 'ae'){\r\n if((this.contactDetails.primaryContactNumber.length >= 12 && (this.contactDetails.primaryContactNumber.slice(0, 3) == \"971\")) || (this.contactDetails.primaryContactNumber.length >= 11 && (this.contactDetails.primaryContactNumber.slice(0, 3) == \"974\")))\r\n {\r\n this.primaryContact = \"+\"+[this.contactDetails.primaryContactNumber.slice(0, 3)+\" \"+this.contactDetails.primaryContactNumber.slice(3,5) +\" \"+this.contactDetails.primaryContactNumber.slice(5,8)+\" \"+this.contactDetails.primaryContactNumber.slice(8)].join('');\r\n }\r\n else{\r\n this.primaryContact = this.contactDetails.primaryContactNumber\r\n }\r\n\r\n\r\n if((this.contactDetails.secondaryContactNumber.length >= 12 && (this.contactDetails?.secondaryContactNumber.slice(0, 3) == \"971\")) || (this.contactDetails.secondaryContactNumber.length >= 11 && (this.contactDetails?.secondaryContactNumber.slice(0, 3) == \"974\")))\r\n {\r\n this.secondaryContact =\"+\"+[this.contactDetails?.secondaryContactNumber.slice(0, 3)+\" \"+this.contactDetails?.secondaryContactNumber.slice(3,5) +\" \"+this.contactDetails.secondaryContactNumber.slice(5,8)+\" \"+this.contactDetails.secondaryContactNumber.slice(8)].join('');\r\n }\r\n else{\r\n this.secondaryContact = this.contactDetails?.secondaryContactNumber\r\n }\r\n console.log(phone);\r\n\r\n // }else{\r\n // phone = phoneNumber.nationalNumber\r\n //}\r\n localStorage.setItem('primaryContactName', res?.data?.primaryContactName)\r\n localStorage.setItem('primaryEmail', res?.data?.primaryContactEmailAddress)\r\n })\r\n }\r\n navigatetolink(lnk) {\r\n this.dashboardService.contactDetails.next(this.contactDetails)\r\n this.router.navigate([lnk]);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dashboard-widgets',\r\n templateUrl: './dashboard-widgets.component.html',\r\n styleUrls: ['./dashboard-widgets.component.scss']\r\n})\r\nexport class DashboardWidgetsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n localStorage.removeItem('parentDetails');\r\n localStorage.removeItem('bsU_ID');\r\n localStorage.removeItem('studParentDetails');\r\n localStorage.removeItem('studentDetails');\r\n localStorage.removeItem('disableIds');\r\n localStorage.removeItem('termsConditions');\r\n }\r\n\r\n}\r\n","import { Component, DoCheck, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-fee-payment-widget',\r\n templateUrl: './fee-payment-widget.component.html',\r\n styleUrls: ['./fee-payment-widget.component.scss']\r\n})\r\nexport class FeePaymentWidgetComponent implements OnInit,DoCheck {\r\n paymentDetails: any;\r\n isLeasedSchool: any;\r\n IsHybrid:any;\r\n today = new Date();\r\nday:number;\r\ncount=0;\r\n // Extract day, month, and year components\r\n isDayGreaterThan10:boolean=false;\r\n currency: string;\r\n constructor(private dashboardService: DashboardService,public router:Router) { }\r\n ngDoCheck(): void {\r\n \r\n let data:any = localStorage.getItem('leasemodelschool')\r\n this.currency= localStorage.getItem('bsu_currency')\r\n this.isLeasedSchool = data\r\n if(this.isLeasedSchool == 0 && this.count==0){\r\n this.getPaymentStatusDetails();\r\n this.count++;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.day = this.today.getDate();\r\n this.IsHybrid=localStorage.getItem('IsHybrid');\r\n if(this.day>10){\r\n this.isDayGreaterThan10=true;\r\n }\r\n else\r\n {\r\n this.isDayGreaterThan10=false;\r\n }\r\n \r\n }\r\n\r\n gotoFee()\r\n {\r\n this.router.navigate(['/payment-detail'])\r\n }\r\n getPaymentStatusDetails() {\r\n \r\n let data: any = {};\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n \r\n let studentDetails = JSON.parse(localStorage.getItem('parentChildrens'))\r\n data = {\r\n StudentNo: studentDetails[0]?.studentId,\r\n SchoolId: studentDetails[0]?.bsuId,\r\n }\r\n\r\n this.dashboardService.getPaymentStatusDetails(data).subscribe((res: any) => {\r\n this.paymentDetails = res?.data;\r\n let content= this.paymentDetails.length == 0 ? false :true;\r\n this.dashboardService.isPaymentContent.next(content)\r\n })\r\n }, 1000);\r\n \r\n }\r\n\r\n \r\n}\r\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-graph-widget',\r\n templateUrl: './graph-widget.component.html',\r\n styleUrls: ['./graph-widget.component.scss']\r\n})\r\nexport class GraphWidgetComponent implements OnInit,AfterViewInit {\r\nemission:any;\r\n isLeasedSchool: any;\r\n ispaymentcontent: boolean =false;\r\n constructor(public dashboardService:DashboardService) { }\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.dashboardService.getCO2Emission().subscribe((res:any)=>{\r\n let data:any = localStorage.getItem('leasemodelschool')\r\n this.isLeasedSchool = data\r\n let treesLength =res.data[0]?.trees?.toString().length;\r\n if(res.data[0].trees)\r\n {\r\n let leastNumber = Math.pow(10,treesLength-1)\r\n let dividedTrees = res.data[0]?.trees;\r\n // res.data[0].trees= treesLength == 6 ? dividedTrees+\" Lakhs\" : treesLength == 7 ? dividedTrees+\" Million\":treesLength == 8 ? dividedTrees+\" Billion\": treesLength == 9 ? dividedTrees+\" Trillion\":dividedTrees+\" Thousand\"\r\n res.data[0].trees= dividedTrees;\r\n if(treesLength >=5)\r\n {\r\n // let leastNumber = Math.pow(10,treesLength-1)\r\n // let dividedTrees = res.data[0]?.trees / leastNumber;\r\n // if (dividedTrees % 1 !== 0) {\r\n // dividedTrees = parseFloat(dividedTrees.toFixed(1));\r\n // }\r\n \r\n }else {\r\n \r\n }\r\n }else{\r\n res.data[0].trees=0;\r\n }\r\n let co2Length =res.data[0]?.co2?.toString().length;\r\n if(res.data[0].co2 && res.data[0].co2 != \"0\")\r\n {\r\n if(co2Length >=4)\r\n {\r\n let dividedCo2 = res.data[0]?.co2;\r\n if (dividedCo2 % 1 !== 0) {\r\n dividedCo2 = parseFloat(dividedCo2.toFixed(1));\r\n }\r\n res.data[0].co2= dividedCo2;\r\n }\r\n }else res.data[0].co2=0;\r\n this.emission = res?.data[0]\r\n }) \r\n }, 1000);\r\n }\r\n\r\n ngOnInit(): void {\r\n // this.dashboardService.isPaymentContent.subscribe(res=>{\r\n // this.ispaymentcontent=res;\r\n // })\r\n }\r\n \r\n}\r\n","import { AfterViewInit, Component, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { HomeService } from 'src/app/service/home.service';\r\nimport { CarouselComponent, OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { TokenService } from 'src/app/service/token.service';\r\n\r\n@Component({\r\n selector: 'app-news-widget',\r\n templateUrl: './news-widget.component.html',\r\n styleUrls: ['./news-widget.component.scss']\r\n})\r\nexport class NewsWidgetComponent implements OnInit, AfterViewInit {\r\n @ViewChild('owlElement') owlElement:any;\r\n carouselVisible: boolean = true;\r\n latestNews: any[] = [];\r\n defaultToken: any;\r\n constructor(public service:HomeService,public tokenService:TokenService) { }\r\n\r\n ngOnInit(): void {\r\n this.getToken();\r\n }\r\n carouselOptions: OwlOptions = {\r\n loop: false,\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n dots: true,\r\n margin: 20,\r\n navSpeed: 700,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 400: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 740: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 940: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n }\r\n },\r\n nav: false\r\n };\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.updateCarousel();\r\n }, 1000);\r\n }\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event: Event): void{\r\n this.updateCarousel();\r\n }\r\n updateCarousel() {\r\n if (this.owlElement) {\r\n this.carouselVisible = false;\r\n setTimeout(() => {\r\n this.carouselVisible = true;\r\n }, 0)\r\n }\r\n }\r\n\r\n// -------------------------------------------------------------------------------\r\n\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getLatestNews();\r\n })\r\n }\r\n getLatestNews() {\r\n this.service.getNews(this.defaultToken).subscribe(\r\n res => {\r\n if(res.length <=3)\r\n this.latestNews = res\r\n else this.latestNews =res.slice(0,3)\r\n })\r\n }\r\n\r\n // carouselOffersOptions: OwlOptions = {\r\n // stagePadding: 170,\r\n // loop:false,\r\n // margin:15,\r\n // nav:false,\r\n // dots: true,\r\n // items:2,\r\n // responsive: {\r\n // 0: {\r\n // items: 1\r\n // },\r\n // 768: {\r\n // items: 2,\r\n // stagePadding: 0,\r\n // loop: false\r\n // },\r\n // 992: {\r\n // items: 2,\r\n // stagePadding: 0,\r\n // loop: false\r\n // },\r\n // 1024: {\r\n // items: 2,\r\n // stagePadding: 0,\r\n // loop: false\r\n // },\r\n // 1300: {\r\n // items: 2,\r\n // stagePadding: 170,\r\n // loop: false\r\n // },\r\n // }\r\n // };\r\n\r\n // customOptions: OwlOptions = {\r\n // loop: false,\r\n // mouseDrag: true,\r\n // touchDrag: true,\r\n // pullDrag: true,\r\n // dots: true,\r\n // margin: 20,\r\n // navSpeed: 700,\r\n // responsive: {\r\n // 0: {\r\n // items: 1,\r\n // mouseDrag: true,\r\n // touchDrag: true,\r\n // pullDrag: true,\r\n // },\r\n // 400: {\r\n // items: 2,\r\n // mouseDrag: true,\r\n // touchDrag: true,\r\n // pullDrag: true,\r\n // },\r\n // 740: {\r\n // items: 2,\r\n // mouseDrag: true,\r\n // touchDrag: true,\r\n // pullDrag: true,\r\n // },\r\n // 940: {\r\n // items: 2,\r\n // mouseDrag: true,\r\n // touchDrag: true,\r\n // pullDrag: true,\r\n // }\r\n // },\r\n // nav: false\r\n // }\r\n\r\n redirectUrl(url:any)\r\n {\r\n if(url)\r\n window.open(url, '_blank')\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { FileService } from 'src/app/service/file.service';\r\nimport { SupportService } from 'src/app/service/support.service';\r\nimport { UserprofileupdateService } from 'src/app/service/userprofileupdate.service';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\n\r\n@Component({\r\n selector: 'app-profile-widget',\r\n templateUrl: './profile-widget.component.html',\r\n styleUrls: ['./profile-widget.component.scss']\r\n})\r\nexport class ProfileWidgetComponent implements OnInit {\r\n showOverdue: boolean=false;\r\n todayDate: number;\r\n showWarning: boolean=false;\r\n currentMonth: string;\r\n currentYear: number;\r\n lastDate: number;\r\n file: any;\r\n fileType: any;\r\n fileFormatErr: boolean;\r\n selectedFile: any;\r\n imageUrl: any;\r\n oldImage: any;\r\n paymentDueDetails: any;\r\n paymentDueDate: any;\r\n isLeasedSchool: any;\r\n IsHybrid:any;\r\n isdata:boolean =false\r\n contactBusDetails: any;\r\n busContact: string;\r\n constructor(private transportService:TransportserviceService, private userprofileimageservice: UserprofileupdateService, private commonService: CommonService,private dashboardservice : DashboardService, private fileService:FileService, private dialog:MatDialog,\r\n private supportService:SupportService) { }\r\n studentProfile:any;\r\n\r\n ngOnInit(): void {\r\n this.checkDate()\r\n this.transportService.getTransportInfoOfChildren().subscribe(res=>{\r\n localStorage.setItem('leasemodelschool',res?.data[0].leasemodelschool)\r\n localStorage.setItem('IsHybrid',res?.data[0]?.ishybrid)\r\n localStorage.setItem('transportChildInfo',JSON.stringify(res?.data))\r\n\r\n let selectedStudentId = localStorage.getItem('selectedstudentid');\r\n let selectedStudentData = res?.data.filter((x:any) => x.studentNo == selectedStudentId);\r\n localStorage.setItem('isReRegister',selectedStudentData[0]?.reregistered);\r\n\r\n let selectedStudent=JSON.parse( localStorage.parentChildrens)[0];\r\n this.isLeasedSchool = res?.data[0]?.leasemodelschool;\r\n this.IsHybrid= res?.data[0]?.ishybrid;\r\n let index = res?.data.findIndex((x:any)=>x.studentNo == selectedStudent.studentId)\r\n if(index != -1)\r\n {\r\n res.data[index].grade = res?.data[index]?.grade.replace(\"/\",\"-\");\r\n //For Pascal Case\r\n let splits = res?.data[index]?.school?.split(\" \");\r\n let school:any='';\r\n splits?.forEach((word) => {\r\n word = word.toLowerCase();\r\n let tempWord=word;\r\n let firstLetter = tempWord.charAt(0).toUpperCase();\r\n word=word.slice(1);\r\n word=firstLetter+word;\r\n school=school+word+\" \";\r\n });\r\n\r\n res.data[index].school= school;\r\n res.data[index].pickuptime=res?.data[index]?.pickuptime?.replace('AM',' AM')\r\n res.data[index].dropofftime=res?.data[index]?.dropofftime?.replace('PM',' PM')\r\n this.studentProfile={...res?.data[index]}\r\n console.log(this.studentProfile);\r\n\r\n this.oldImage=this.studentProfile?.photoPath;\r\n this.paymentDue()\r\n this.getBusdetails();\r\n }\r\n\r\n // this.studentProfile={...res?.data.filter(s=>s.studentNo==localStorage.selectedstudentid) [0]};\r\n\r\n })\r\n // }\r\n }\r\n getBusdetails()\r\n {\r\n this.supportService.getBusContact().subscribe((resp:any)=>{\r\n this.contactBusDetails = resp?.data[0];\r\n if((this.contactBusDetails.diverMobile.length == 12 && (this.contactBusDetails.diverMobile.slice(0, 3) == \"971\")) || (this.contactBusDetails.diverMobile.length == 11 && (this.contactBusDetails.diverMobile.slice(0, 3) == \"974\")))\r\n {\r\n this.busContact = \"+\"+[this.contactBusDetails.diverMobile.slice(0, 3)+\" \"+this.contactBusDetails.diverMobile.slice(3,5) +\" \"+this.contactBusDetails.diverMobile.slice(5,8)+\" \"+this.contactBusDetails.diverMobile.slice(8,12)].join('');\r\n }\r\n else{\r\n this.busContact = this.contactBusDetails.diverMobile\r\n }\r\n })\r\n }\r\n checkDate(){\r\n let monthList = ['Jan', 'Feb' ,'Mar','Apr','May','June','July', 'Aug' ,'Sept','Oct','Nov','Dec']\r\n let today = new Date();\r\n let month :any=today.getMonth();\r\n this.currentMonth = monthList[month];\r\n this.currentYear = today.getFullYear();\r\n\r\n if(today.getMonth() <= 11){\r\n month = today.getMonth() + 1;\r\n }\r\n var lastDay = new Date(today.getFullYear(), today.getMonth() + 1, 0);\r\n this.lastDate = lastDay.getDate()\r\n console.log(today.getDate(),lastDay.getDate() );\r\n\r\n if(today.getDate() > 10){\r\n if(today.getDate() > (lastDay.getDate() -7) ){\r\n this.showOverdue = true;\r\n this.showWarning = false;\r\n console.log('date is in lastweek')\r\n\r\n\r\n }else{\r\n this.showOverdue = false;\r\n this.showWarning = true;\r\n console.log('date is not in lastweek')\r\n\r\n }\r\n\r\n\r\n }else{\r\n this.showOverdue = false;\r\n this.showWarning = false;\r\n\r\n console.log('not overdue');\r\n\r\n\r\n }\r\nlet isPaymentMessage = (this.showOverdue && this.showWarning) == false ? false : true;\r\nthis.dashboardservice.isPaymentMessage.next(isPaymentMessage);\r\n\r\n }\r\npaymentDue(){\r\n this.transportService.getStsPaymentDue().subscribe(\r\n res=>{\r\n this.paymentDueDetails = res?.data;\r\n this.isdata=true\r\n let date = res?.data?.paymentDueDate?.split(' ');\r\n if (date != null && date != undefined) {\r\n console.log(date);\r\n\r\n this.paymentDueDate = `${date[1] + ' ' + date[0] + ' ' + date[2]}`\r\n }\r\n }\r\n )\r\n}\r\n updatePhoto(){\r\n let data:any;\r\n let selectedStudent=JSON.parse( localStorage.parentChildrens)[0];\r\n data={\r\n StudentId:selectedStudent.stuId.toString(),\r\n BsuId:JSON.parse(localStorage.getItem('currentUser')).schooId\r\n }\r\n this.dashboardservice.updateProfile(data).subscribe(\r\n(res:any)=>{\r\n if(res?.success == 'false'){\r\n this.openMessageDialog(res?.message,true,'');\r\n this.studentProfile.photoPath= this.oldImage\r\n }else{\r\n this.openMessageDialog(\"Profile updated successfully.\",false,'');\r\n this.studentProfile.photoPath= this.imageUrl;\r\n this.userprofileimageservice.updateUserProfileImage(this.imageUrl);\r\n // this.dashboardservice.changeMemberPhoto(this.imageUrl);\r\n\r\n\r\n }\r\n}\r\n )\r\n }\r\n selectedImgFile(event:any)\r\n {\r\n this.file= event.target.files[0];\r\n\r\n // localStorage.setItem('sprofileimg', JSON.stringify(this.file));\r\n\r\n if (this.file) {\r\n let splits=this.file.name.split(\".\");\r\n this.fileType=splits[1];\r\n if( this.fileType == \"png\" || this.fileType==\"jpeg\" || this.fileType==\"jpg\")\r\n {\r\n this.fileFormatErr=false;\r\n this.selectedFile = this.file;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.file);\r\n this.fileService.setFile(this.file);\r\n reader.onload = (e: any) => {\r\n\r\n\r\n this.imageUrl = e.target.result;\r\n\r\n this.updatePhoto();\r\n };\r\n }\r\n else {this.fileFormatErr=true;\r\n this.imageUrl =\"\"}\r\n this.dashboardservice.fileErrMessage.next(this.fileFormatErr)\r\n }\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\n\r\n@Component({\r\n selector: 'app-register-sibling-widget',\r\n templateUrl: './register-sibling-widget.component.html',\r\n styleUrls: ['./register-sibling-widget.component.scss']\r\n})\r\nexport class RegisterSiblingWidgetComponent implements OnInit {\r\n schoolList: any[]=[];\r\n contactDetails: any;\r\n public addPaymentClass: boolean = false;\r\n public fileErrClass: boolean = false;\r\n token: any;\r\n regClosedMessage: any;\r\n\r\n constructor(public router:Router,public registerService:RegistrationService,public dashboardService:DashboardService, private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.token = JSON.parse(localStorage.getItem('currentToken'))\r\n\r\n this.regClosedMessage = localStorage.getItem('regClosedMessage');\r\n this.dashboardService.isPaymentMessage.subscribe(res=>{\r\n this.addPaymentClass = res;\r\n this.dashboardService.fileErrMessage.subscribe(val=>{\r\n this.fileErrClass=val;\r\n \r\n });\r\n });\r\n\r\n if (localStorage.getItem('schoolList') === null) {\r\n this.registerService.getSchoolList(this.token?.access_token).subscribe(res => {\r\n this.schoolList = res;\r\n localStorage.setItem('schoolList', JSON.stringify(this.schoolList));\r\n // should have the selected student details.\r\n let currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n let school = this.schoolList.find(x => x.bsU_ID == currentUser?.schooId)\r\n \r\n //localStorage.setItem('bsU_ID', school?.bsU_ID);\r\n localStorage.setItem('bsU_ID', currentUser?.schooId);\r\n // localStorage.setItem(\"schoolName\", school?.schoolName)\r\n localStorage.setItem(\"schoolName\", currentUser?.schoolName)\r\n\r\n localStorage.bsu_currency = school?.bsu_currency && school?.bsu_currency != null && school?.bsu_currency != undefined ? school?.bsu_currency : \"AED\"\r\n let schoolDetails = {\r\n city: school?.city,\r\n bsu_city: school?.citycode,\r\n provider: school?.provider,\r\n country: school?.country,\r\n currency: school?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n });\r\n }\r\n }\r\n\r\nregisterNow()\r\n{\r\n if(!(this.regClosedMessage != null && this.regClosedMessage != undefined && this.regClosedMessage != \"\")){\r\n this.dashboardService.getContactDetails('').subscribe((res:any)=>{\r\n this.contactDetails = res?.data;\r\n this.registerService.getParentsList(this.contactDetails?.primaryContactNumber, this.token).subscribe(res=>{\r\n let parentDetails= res?.data;\r\n localStorage.removeItem('photopath')\r\n localStorage.removeItem('studentDetails');\r\n localStorage.setItem('parentDetails',JSON.stringify(parentDetails));\r\n localStorage.setItem('studParentDetails',JSON.stringify(parentDetails));\r\n this.registerService.sendStudentDetails.next(parentDetails);\r\n localStorage.setItem(\"proceed\",\"false\");\r\n localStorage.setItem(\"showSchool\",\"true\")\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{isFromDashboard:true,tab:1}});\r\n })\r\n }) \r\n }else{\r\n this.openMessageDialog(this.regClosedMessage,true,'');\r\n }\r\n}\r\n\r\nopenMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n}\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-transport-schedule-change-widget',\r\n templateUrl: './transport-schedule-change-widget.component.html',\r\n styleUrls: ['./transport-schedule-change-widget.component.scss']\r\n})\r\nexport class TransportScheduleChangeWidgetComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home.component';\r\nimport { RequestForContactChangeComponent } from './request-for-contact-change/request-for-contact-change.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: HomeComponent\r\n },\r\n {\r\n path: 'request-for-contact-change',\r\n component: RequestForContactChangeComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HomeRoutingModule { }\r\n","import { AfterContentInit, AfterViewInit, Component,DoCheck,Inject, OnInit, Renderer2, TemplateRef, ViewChild} from '@angular/core';\r\n\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CommonService } from 'src/app/service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { LocalizationService, RTL } from '@progress/kendo-angular-l10n';\r\n\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit,DoCheck, AfterViewInit {\r\n\r\n isLeasedSchool: any;\r\n IsHybrid:any;\r\n ispaymentcontent: boolean=true;\r\n showdashboard:boolean=false;\r\n // @ViewChild('modalTemp') modalTemp1!: TemplateRef;\r\n\r\n constructor( private localizationService: LocalizationService,\r\n private dialog: MatDialog,\r\n private common: CommonService,\r\n private route: ActivatedRoute,\r\n private router: Router,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,public dashboardService:DashboardService, ) {\r\n if (localStorage.getItem('currentToken')) {\r\n this.router.navigate(['/home']);\r\n }\r\n }\r\n ngDoCheck(): void {\r\n let data:any = localStorage.getItem('leasemodelschool');\r\n this.isLeasedSchool = data\r\n this.IsHybrid=localStorage.getItem('IsHybrid');\r\n }\r\n\r\n ngOnInit(): void {\r\n // document.body.classList.remove('body-height-100vh');\r\n setTimeout(() => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }, 1000);\r\n\r\n this.renderer.removeClass(document.querySelector('body'), 'body-height-100vh');\r\n this.dashboardService.isPaymentContent.subscribe(res=>{\r\n this.ispaymentcontent=res;\r\n });\r\n\r\n\r\n\r\n let redirectMode = localStorage.getItem(\"redirectMode\");\r\n\r\n if (redirectMode) {\r\n\r\n setTimeout(() => {\r\n if(redirectMode==\"TPT\")\r\n {\r\n localStorage.removeItem(\"redirectMode\");\r\n this.router.navigate(['/transport-information']);\r\n }\r\n else if(redirectMode==\"TPTPAY\")\r\n {\r\n localStorage.removeItem(\"redirectMode\");\r\n this.router.navigate(['/payment-detail']);\r\n }\r\n }, 3000);\r\n }\r\n else\r\n {\r\n this.showdashboard=true;\r\n }\r\n\r\n // setTimeout(() => {\r\n // this.checkAutoPromotion();\r\n // }, 500);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n // openPopup(template: TemplateRef, value: any) {\r\n // this.dialog.open(template, {\r\n // disableClose: true,\r\n // width: '500px',\r\n // panelClass: ['custom-modalbox', 'mapPopup']\r\n // });\r\n // }\r\n\r\n // openPopup() {\r\n // this.dialog.open(this.modalTemp1,{\r\n // width: '500px',\r\n // disableClose: true,\r\n // });\r\n // }\r\n\r\n // checkAutoPromotion(){\r\n // this.dashboardService.getAutoPromotionDetails().subscribe((res:any)=>{\r\n // if(res?.data?.length > 0){\r\n // this.openPopup();\r\n // }\r\n // });\r\n // }\r\n\r\n navigatetolink(link) {\r\n this.dialog.closeAll();\r\n this.router.navigate([link]);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { HomeComponent } from '../home/home.component';\r\nimport { HomeRoutingModule } from './home-routing.module';\r\nimport { DashboardWidgetsComponent } from './dashboard-widgets/dashboard-widgets.component';\r\nimport { FeePaymentWidgetComponent } from './dashboard-widgets/fee-payment-widget/fee-payment-widget.component';\r\nimport { TransportScheduleChangeWidgetComponent } from './dashboard-widgets/transport-schedule-change-widget/transport-schedule-change-widget.component';\r\nimport { NewsWidgetComponent } from './dashboard-widgets/news-widget/news-widget.component';\r\nimport { ProfileWidgetComponent } from './dashboard-widgets/profile-widget/profile-widget.component';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport { TextFieldModule} from '@angular/cdk/text-field';\r\nimport { ContactsWidgetComponent } from './dashboard-widgets/contacts-widget/contacts-widget.component';\r\n//import { TransportInformationComponent } from './transport-information/transport-information.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { RegisterSiblingWidgetComponent } from './dashboard-widgets/register-sibling-widget/register-sibling-widget.component';\r\nimport { GraphWidgetComponent } from './dashboard-widgets/graph-widget/graph-widget.component';\r\nimport { TransportDiscontinuationComponent } from './transport-information/transport-discontinuation/transport-discontinuation.component';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\n\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport { ReRegistrationComponent } from './transport-information/re-registration/re-registration.component';\r\nimport { PaymentsComponent } from './transport-information/payments/payments.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { ReRegisterTermsAndConditionComponent } from './transport-information/re-registration/re-register-terms-and-condition/re-register-terms-and-condition.component';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SafePipe } from 'src/app/core/enctypt-decrytp.pipe';\r\nimport { PDFpipe } from './transport-information/pdfpipe.pipe';\r\nimport { MatTooltipModule} from '@angular/material/tooltip';\r\nimport { ScheduleChangeComponent } from './schedule-change/schedule-change.component';\r\nimport { RequestForContactChangeComponent } from './request-for-contact-change/request-for-contact-change.component';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { NgxMatIntlTelInputModule } from 'ngx-mat-intl-tel-input';\r\nimport { AutoPromotionComponent } from './auto-promotion/auto-promotion.component';\r\nimport { LocalizationService, RTL } from '@progress/kendo-angular-l10n';\r\nimport { ReRegPreventArabicDirective } from 'src/app/models/rereg-prevent-arabic.directive';\r\n@NgModule({\r\n declarations: [HomeComponent, DashboardWidgetsComponent,\r\n FeePaymentWidgetComponent,\r\n TransportScheduleChangeWidgetComponent,\r\n NewsWidgetComponent,\r\n ProfileWidgetComponent,\r\n ContactsWidgetComponent,\r\n RegisterSiblingWidgetComponent,\r\n GraphWidgetComponent,\r\n TransportDiscontinuationComponent,\r\n ReRegistrationComponent,\r\n PaymentsComponent,\r\n ReRegisterTermsAndConditionComponent,\r\n PDFpipe,\r\n ScheduleChangeComponent,\r\n RequestForContactChangeComponent,\r\n AutoPromotionComponent,\r\n ReRegPreventArabicDirective\r\n // TransportInformationComponent\r\n ],\r\n\r\n exports: [HomeRoutingModule],\r\n imports: [\r\n CommonModule,\r\n HomeRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatCardModule,\r\n MatDatepickerModule,\r\n TextFieldModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatDialogModule,\r\n MatSlideToggleModule,\r\n MatCheckboxModule,\r\n MatTableModule,\r\n CarouselModule,\r\n MatTooltipModule,\r\n GoogleMapsModule,\r\n NgxMaterialTimepickerModule,\r\n NgxMatIntlTelInputModule\r\n ],\r\n providers:[DatePipe,ConfigService,LocalizationService]\r\n})\r\nexport class HomeModule { }\r\n","import { Component,Inject, OnInit, Renderer2, TemplateRef} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { FormGroup } from 'ngx-typesafe-forms';\r\nimport { requestCallback } from 'src/app/models/requestCallback.model';\r\nimport { HomeService } from 'src/app/service/home.service';\r\n\r\n@Component({\r\n selector: 'app-request-callback',\r\n templateUrl: './request-callback.component.html',\r\n styleUrls: ['./request-callback.component.scss']\r\n})\r\nexport class RequestCallbackComponent implements OnInit {\r\n\r\n callBackForm = new FormGroup({\r\n name : new FormControl('',[Validators.required]),\r\n city:new FormControl('',[Validators.required]),\r\n description:new FormControl('',[Validators.required]),\r\n phone:new FormControl('',[Validators.required,Validators.pattern(/^\\d{1,10}$/)]),\r\n captcha:new FormControl('',[Validators.required])\r\n })\r\n count:number=0;\r\n city:any[]=[];\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'start';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n digopen:any;\r\n msg:string=\"\";\r\n isError:boolean=false;\r\n constructor(public homeService:HomeService,private _snackBar: MatSnackBar,private dialog: MatDialog,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,) { }\r\n\r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n\r\n this.getCity();\r\n }\r\n\r\n getCity()\r\n {\r\n this.homeService.getCity('postLogin').subscribe(\r\n res => {\r\n this.city = res?.data;\r\n })\r\n }\r\n\r\n checkName()\r\n {\r\n if(this.callBackForm.controls.name?.value?.trim() ==\"\")\r\n {\r\n this.callBackForm.patchValue({ name: ''})\r\n }\r\n }\r\n onDescChange()\r\n {\r\n if(this.callBackForm.controls.description.value && this.callBackForm.controls.description.value.trim() != \"\")\r\n {\r\n this.count=this.callBackForm.controls.description.value.length;\r\n }\r\n else{\r\n this.count=0\r\n this.callBackForm.patchValue({description :this.callBackForm.controls.description.value.trim() == \"\" ? \"\" : this.callBackForm.controls.description.value})\r\n }\r\n }\r\n\r\n cancel()\r\n {\r\n this.callBackForm.reset();\r\n this.count=0;\r\n }\r\n successMsgPopup(template: TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n onSubmit(template:any)\r\n {\r\n this.callBackForm.markAllAsTouched();\r\n if(this.callBackForm.valid)\r\n {\r\n let formData={\r\n name:this.callBackForm.controls.name.value,\r\n city:this.callBackForm.controls.city.value,\r\n description:this.callBackForm.controls.description.value,\r\n phone:this.callBackForm.controls.phone.value\r\n }\r\n this.homeService.postCallback(formData,'postLogin').subscribe(res=>{\r\n console.log(res)\r\n if(res.Success==\"true\")\r\n {\r\n // this._snackBar.open('Request send successfully.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.cancel();\r\n this.isError=false;\r\n this.msg=\"Request submitted successfully.\";\r\n this.successMsgPopup(template)\r\n\r\n }\r\n else{\r\n this.cancel();\r\n this.isError=true;\r\n this.msg=\"Something went wrong\";\r\n this.successMsgPopup(template)\r\n // this._snackBar.open('Something went wrong.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport parsePhoneNumberFromString from 'libphonenumber-js';\r\nimport { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { contactChangeService } from 'src/app/service/contactChange.service';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { CountryCode } from 'ngx-mat-intl-tel-input/lib/data/country-code';\r\n\r\n@Component({\r\n selector: 'app-request-for-contact-change',\r\n templateUrl: './request-for-contact-change.component.html',\r\n styleUrls: ['./request-for-contact-change.component.scss']\r\n})\r\nexport class RequestForContactChangeComponent implements OnInit {\r\n panelOpenState = false;\r\n digopen: any;\r\n contactDetails:any;\r\n secondaryToggle:boolean=false;\r\n otherToggle:boolean=false;\r\n public countries=['ae', 'qa'];\r\n public relation=[{value:\"Father\" , id:1},{value:\"Mother\",id:2},{value:\"Guardian\",id:3}]\r\n isUAENoValidPrimary: boolean=false;\r\n isUAENoValidOther: boolean=false;\r\n isUAENoValidSecondary: boolean=false;\r\n selectedCountries:any;\r\n @ViewChild('primaryMobile') primaryMobile: NgxMatIntlTelInputComponent;\r\n @ViewChild('secondaryMobile') secondaryMobile: NgxMatIntlTelInputComponent;\r\n @ViewChild('otherMobile') otherMobile: NgxMatIntlTelInputComponent;\r\n primaryForm = new FormGroup({\r\n primaryFname: new FormControl('', Validators.required),\r\n primaryMname: new FormControl(''),\r\n primaryLname: new FormControl('', Validators.required),\r\n primaryMobile: new FormControl('', [Validators.required]),\r\n primaryEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n primaryReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')])\r\n });\r\n\r\n secondaryForm = new FormGroup({\r\n secondaryFname: new FormControl('', Validators.required),\r\n secondaryMname: new FormControl(''),\r\n secondaryLname: new FormControl('', Validators.required),\r\n secondaryMobile: new FormControl('', [Validators.required]),\r\n secondaryEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n secondaryReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')])\r\n });\r\n\r\n otherForm = new FormGroup({\r\n otherRelation: new FormControl('', Validators.required),\r\n otherFullname: new FormControl('', Validators.required),\r\n otherMobile: new FormControl('', [Validators.required]),\r\n otherEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n otherReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')])\r\n });\r\n nationalnumber: any;\r\n IsPrimaryEmailMatch: boolean=false;\r\n IsSecondaryEmailMatch: boolean=false;\r\n IsOtherEmailMatch: boolean=false;\r\n otpValue1: any='';\r\n otpValue2: any='';\r\n otpValue3: any='';\r\n otpValue4: any='';\r\n otpValue5: any='';\r\n otpValue6: any='';\r\n @ViewChild(\"otp1\") otp1: ElementRef;\r\n @ViewChild(\"otp2\") otp2: ElementRef;\r\n @ViewChild(\"otp3\") otp3: ElementRef;\r\n @ViewChild(\"otp4\") otp4: ElementRef;\r\n @ViewChild(\"otp5\") otp5: ElementRef;\r\n @ViewChild(\"otp6\") otp6: ElementRef;\r\n enableOTP: boolean = false;\r\n IsMobileVerified:boolean=false;\r\n isVerifyOTP: boolean=false;\r\n isResendOtp: boolean = false;\r\n token: any;\r\n resendcount: any=0;\r\n isOtpEntered: boolean = false;\r\n interval: any;\r\n countdown: number = 0;\r\n count:any=0\r\n encOTP: any;\r\n enteredOTP: any = '';\r\n isInvalidOTP: boolean = false;\r\n showEmail:boolean=false;\r\n isSendOtp:boolean=false;\r\n primaryPhnNumber: string;\r\n secondaryPhnNumber: string;\r\n otherPhnNumber: string;\r\n dubaiCountryId = '172';\r\n qatarCountryId = '97';\r\n\r\n constructor(private dialog: MatDialog,public dashboardService:DashboardService,private router:Router,public registrationService:RegistrationService, public contactService:contactChangeService) { \r\n this.getContactDetails();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.token=JSON.parse(localStorage.getItem('currentToken'))?.access_token\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n \r\n if (schooldata?.country != null && schooldata?.country != undefined && schooldata?.country != \"\") {\r\n if (schooldata.country == \"UAE\")\r\n this.selectedCountries = this.countries[0]\r\n else\r\n this.selectedCountries = this.countries[1]\r\n } else {\r\n let childInfo = JSON.parse(localStorage.getItem('parentChildrens'));\r\n let schoolCountryId = childInfo[0]?.schoolCountryId?.trim();\r\n\r\n if (schoolCountryId == this.dubaiCountryId) {\r\n this.selectedCountries = this.countries[0]\r\n } else {\r\n this.selectedCountries = this.countries[1]\r\n }\r\n }\r\n //this.getContactDetails();\r\n }\r\n\r\n getContactDetails()\r\n {\r\n this.dashboardService.contactDetails.subscribe(res=>{\r\n this.contactDetails=res\r\n if(this.contactDetails){\r\n if(this.selectedCountries==\"qa\" && this.contactDetails.primaryContactNumber)\r\n {\r\n if(this.contactDetails.primaryContactNumber.length == 8)\r\n this.contactDetails.primaryContactNumber = \"+974\"+this.contactDetails.primaryContactNumber;\r\n else{\r\n this.contactDetails.primaryContactNumber= this.contactDetails.primaryContactNumber.substr(-8)\r\n this.contactDetails.primaryContactNumber = \"+974\"+this.contactDetails.primaryContactNumber;\r\n }\r\n } \r\n else if(this.selectedCountries==\"ae\"&& this.contactDetails.primaryContactNumber)\r\n {\r\n this.contactDetails.primaryContactNumber = this.contactDetails.primaryContactNumber.includes(\"+971\")?this.contactDetails.primaryContactNumber.replace(\"+971\",''): this.contactDetails.primaryContactNumber;\r\n if(this.contactDetails.primaryContactNumber.length == 9)\r\n this.contactDetails.primaryContactNumber = \"+971\"+this.contactDetails.primaryContactNumber;\r\n\r\n else if(this.contactDetails.primaryContactNumber.length == 8){\r\n this.contactDetails.primaryContactNumber= this.contactDetails.primaryContactNumber.substr(-8)\r\n this.contactDetails.primaryContactNumber = \"+971\"+this.contactDetails.primaryContactNumber;\r\n }\r\n else{\r\n this.contactDetails.primaryContactNumber= this.contactDetails.primaryContactNumber.substr(-9)\r\n this.contactDetails.primaryContactNumber = \"+971\"+this.contactDetails.primaryContactNumber;\r\n }\r\n }\r\n\r\n if(this.selectedCountries==\"qa\" && this.contactDetails.secondaryContactNumber)\r\n {\r\n if(this.contactDetails.secondaryContactNumber.length == 8)\r\n this.contactDetails.secondaryContactNumber = \"+974\"+this.contactDetails.secondaryContactNumber;\r\n else{\r\n this.contactDetails.secondaryContactNumber= this.contactDetails.secondaryContactNumber.substr(-8)\r\n this.contactDetails.secondaryContactNumber = \"+974\"+this.contactDetails.secondaryContactNumber;\r\n }\r\n } \r\n else if(this.selectedCountries==\"ae\"&& this.contactDetails.secondaryContactNumber)\r\n {\r\n this.contactDetails.secondaryContactNumber = this.contactDetails.secondaryContactNumber.includes(\"+971\")?this.contactDetails.secondaryContactNumber.replace(\"+971\",''): this.contactDetails.secondaryContactNumber;\r\n if(this.contactDetails.secondaryContactNumber.length == 9)\r\n this.contactDetails.secondaryContactNumber = \"+971\"+this.contactDetails.secondaryContactNumber;\r\n\r\n else if(this.contactDetails.secondaryContactNumber.length == 8){\r\n this.contactDetails.secondaryContactNumber= this.contactDetails.secondaryContactNumber.substr(-8)\r\n this.contactDetails.secondaryContactNumber = \"+971\"+this.contactDetails.secondaryContactNumber;\r\n }\r\n else{\r\n this.contactDetails.secondaryContactNumber= this.contactDetails.secondaryContactNumber.substr(-9)\r\n this.contactDetails.secondaryContactNumber = \"+971\"+this.contactDetails.secondaryContactNumber;\r\n }\r\n }\r\n\r\n if(this.selectedCountries==\"qa\" && this.contactDetails.guardianContactNumber)\r\n {\r\n if(this.contactDetails.guardianContactNumber.length == 8)\r\n this.contactDetails.guardianContactNumber = \"+974\"+this.contactDetails.guardianContactNumber;\r\n else{\r\n this.contactDetails.guardianContactNumber= this.contactDetails.guardianContactNumber.substr(-8)\r\n this.contactDetails.guardianContactNumber = \"+974\"+this.contactDetails.guardianContactNumber;\r\n }\r\n } \r\n else if(this.selectedCountries==\"ae\"&& this.contactDetails.guardianContactNumber)\r\n {\r\n this.contactDetails.guardianContactNumber = this.contactDetails.guardianContactNumber.includes(\"+971\")?this.contactDetails.guardianContactNumber.replace(\"+971\",''): this.contactDetails.guardianContactNumber;\r\n if(this.contactDetails.guardianContactNumber.length == 9)\r\n this.contactDetails.guardianContactNumber = \"+971\"+this.contactDetails.guardianContactNumber;\r\n \r\n else if(this.contactDetails.guardianContactNumber.length == 8){\r\n this.contactDetails.guardianContactNumber= this.contactDetails.guardianContactNumber.substr(-8)\r\n this.contactDetails.guardianContactNumber = \"+971\"+this.contactDetails.guardianContactNumber;\r\n }\r\n\r\n else{\r\n this.contactDetails.guardianContactNumber= this.contactDetails.guardianContactNumber.substr(-9)\r\n this.contactDetails.guardianContactNumber = \"+971\"+this.contactDetails.guardianContactNumber;\r\n }\r\n }\r\n let guardian=this.contactDetails?.guardianName.split(' ')\r\n this.primaryForm.patchValue({\r\n primaryMobile:this.contactDetails?.primaryContactNumber,\r\n primaryFname:this.contactDetails?.primaryContactRelation == \"Father\" ? this.contactDetails?.stS_FFIRSTNAME : this.contactDetails?.primaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MFIRSTNAME : guardian[0],\r\n primaryMname:this.contactDetails?.primaryContactRelation == \"Father\" ? this.contactDetails?.stS_FMIDNAME : this.contactDetails?.primaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MMIDNAME : guardian.length > 2 ? guardian[1]:'',\r\n primaryLname:this.contactDetails?.primaryContactRelation == \"Father\" ? this.contactDetails?.stS_FLASTNAME : this.contactDetails?.primaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MLASTNAME : guardian.length == 2 ? guardian[1]:guardian.length > 2 ? guardian[2]:'',\r\n primaryEmail:this.contactDetails?.primaryContactEmailAddress,\r\n primaryReEmail: this.contactDetails?.primaryContactEmailAddress\r\n })\r\n\r\n this.secondaryForm.patchValue({\r\n secondaryMobile:this.contactDetails?.secondaryContactNumber,\r\n secondaryFname:this.contactDetails?.secondaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MFIRSTNAME : this.contactDetails?.secondaryContactRelation == \"Father\" ? this.contactDetails?.stS_FFIRSTNAME: guardian[0],\r\n secondaryMname:this.contactDetails?.secondaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MMIDNAME : this.contactDetails?.secondaryContactRelation == \"Father\" ? this.contactDetails?.stS_FMIDNAME: guardian.length > 2 ? guardian[1]:'',\r\n secondaryLname:this.contactDetails?.secondaryContactRelation == \"Mother\" ? this.contactDetails?.stS_MLASTNAME :this.contactDetails?.secondaryContactRelation == \"Father\" ? this.contactDetails?.stS_FLASTNAME: guardian.length == 2 ? guardian[1]:guardian.length > 2 ? guardian[2]:'',\r\n secondaryEmail:this.contactDetails?.secondaryContactEmailAddress,\r\n secondaryReEmail: this.contactDetails?.secondaryContactEmailAddress\r\n })\r\n\r\n if((this.contactDetails?.secondaryContactRelation == \"Mother\" && this.contactDetails?.primaryContactRelation == \"Father\") || ((this.contactDetails?.secondaryContactRelation == \"Father\" && this.contactDetails?.primaryContactRelation == \"Mother\")))\r\n {\r\n this.otherForm.patchValue({\r\n otherMobile:this.contactDetails?.guardianContactNumber,\r\n otherRelation:this.contactDetails?.guardianRelation,\r\n otherFullname:this.contactDetails?.guardianName,\r\n otherEmail:this.contactDetails?.guardianEmailAddress,\r\n otherReEmail:this.contactDetails?.guardianEmailAddress,\r\n })\r\n }else if((this.contactDetails?.secondaryContactRelation == \"Guardian\" && this.contactDetails?.primaryContactRelation == \"Father\") || (this.contactDetails?.secondaryContactRelation == \"Father\" && this.contactDetails?.primaryContactRelation == \"Guardian\"))\r\n {\r\n this.otherForm.patchValue({\r\n otherMobile:this.contactDetails?.stS_MMOBILE,\r\n otherRelation:\"Mother\",\r\n otherFullname:this.contactDetails?.stS_MFIRSTNAME+' '+this.contactDetails?.stS_MMIDNAME+' '+this.contactDetails?.stS_MLASTNAME,\r\n otherEmail:this.contactDetails?.stS_MEMAIL,\r\n otherReEmail:this.contactDetails?.stS_MEMAIL,\r\n })\r\n }else if((this.contactDetails?.secondaryContactRelation == \"Guardian\" && this.contactDetails?.primaryContactRelation == \"Mother\") || (this.contactDetails?.secondaryContactRelation == \"Mother\" && this.contactDetails?.primaryContactRelation == \"Guardian\"))\r\n {\r\n this.otherForm.patchValue({\r\n otherMobile:this.contactDetails?.stS_FMOBILE,\r\n otherRelation:\"Father\",\r\n otherFullname:this.contactDetails?.stS_FFIRSTNAME+' '+this.contactDetails?.stS_FMIDNAME+' '+this.contactDetails?.stS_FLASTNAME,\r\n otherEmail:this.contactDetails?.stS_FEMAIL,\r\n otherReEmail:this.contactDetails?.stS_FEMAIL,\r\n })\r\n }\r\n \r\n setTimeout(() => {\r\n if(this.selectedCountries =='ae')\r\n {\r\n this.formatPrimaryNumber();\r\n this.formatSecondaryNumber();\r\n this.formatOtherNumber();\r\n }\r\n }, 200);\r\n \r\n }\r\n })\r\n }\r\n\r\n sendotp() {\r\n this.isSendOtp=false;\r\n if(!this.secondaryToggle && !this.otherToggle)\r\n {\r\n if (this.primaryForm.get('primaryMobile').valid && !this.isUAENoValidPrimary) {\r\n\r\n this.verifyMobile(this.primaryPhnNumber, this.token);\r\n }\r\n } else if(this.secondaryToggle && !this.otherToggle)\r\n {\r\n if (this.secondaryForm.get('secondaryMobile').valid && !this.isUAENoValidSecondary) {\r\n\r\n this.verifyMobile(this.secondaryPhnNumber, this.token);\r\n }\r\n } else if(!this.secondaryToggle && this.otherToggle)\r\n {\r\n if (this.otherForm.get('otherMobile').valid && !this.isUAENoValidOther) {\r\n\r\n this.verifyMobile(this.otherPhnNumber, this.token);\r\n }\r\n }\r\n }\r\n\r\n\r\n reSend(event) {\r\n this.resendcount++;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n\r\n }\r\n let mobNo =this.secondaryToggle ? this.secondaryPhnNumber : this.otherToggle ? this.otherPhnNumber:this.primaryPhnNumber\r\n this.verifyMobile(mobNo, this.token);\r\n this.isInvalidOTP = false;\r\n this.countdown = 0;\r\n clearInterval(this.interval);\r\n this.countdown = 60;\r\n this.startCountdown(event);\r\n this.otpValue1 = this.otp1.nativeElement.value=\"\";\r\n this.otpValue2 = this.otp2.nativeElement.value=\"\";\r\n this.otpValue3 = this.otp3.nativeElement.value=\"\";\r\n this.otpValue4 = this.otp4.nativeElement.value=\"\";\r\n this.otpValue5 = this.otp5.nativeElement.value=\"\";\r\n this.otpValue6 = this.otp6.nativeElement.value=\"\";\r\n\r\n this.count = 0;\r\n this.isVerifyOTP = false;\r\n\r\n }\r\n\r\n\r\n startCountdown(event: any) {\r\n\r\n this.isResendOtp = false;\r\n this.countdown = 60; \r\n this.interval = setInterval(() => {\r\n if (this.countdown === 0) {\r\n clearInterval(this.interval);\r\n this.isResendOtp = true;\r\n this.isVerifyOTP = true;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n \r\n }\r\n } else {\r\n this.countdown -= 1;\r\n this.isResendOtp = false;\r\n if(this.count > 2){\r\n this.isVerifyOTP = true;\r\n clearInterval(this.interval);\r\n this.countdown = 0;\r\n this.isResendOtp = true;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n \r\n }\r\n }else{\r\n this.isVerifyOTP = false;\r\n\r\n }\r\n }\r\n }, 1000); \r\n }\r\n\r\n getEnteredOTP() {\r\n\r\n if (this.otpValue1 != '' && this.otpValue2 != '' && this.otpValue3 != '' && this.otpValue4 != '' && this.otpValue5 != '' && this.otpValue6 != '') {\r\n this.enteredOTP = this.otpValue1 + this.otpValue2 + this.otpValue3 + this.otpValue4 + this.otpValue5 + this.otpValue6;\r\n this.isOtpEntered = false;\r\n this.isInvalidOTP = false;\r\n } else {\r\n this.isOtpEntered = true;\r\n this.isInvalidOTP = false;\r\n\r\n }\r\n }\r\n\r\n verifyMobile(data: any, token: any) {\r\n this.registrationService.getOTPfromMobile(data,\"CONTACTCHANGE\", token).subscribe(\r\n res => {\r\n if (res?.success == 'true') {\r\n\r\n this.enableOTP = true;\r\n clearInterval(this.interval);\r\n this.isResendOtp = false;\r\n this.countdown = 60;\r\n this.startCountdown(data);\r\n this.encOTP = res?.data[0].otp\r\n } else {\r\n this.IsMobileVerified = false;\r\n this.enableOTP = false;\r\n }\r\n }\r\n )\r\n }\r\n\r\n keytab(event: any, value: any) {\r\n this.otpValue1 = this.otp1.nativeElement.value;\r\n this.otpValue2 = this.otp2.nativeElement.value;\r\n this.otpValue3 = this.otp3.nativeElement.value;\r\n this.otpValue4 = this.otp4.nativeElement.value;\r\n this.otpValue5 = this.otp5.nativeElement.value;\r\n this.otpValue6 = this.otp6.nativeElement.value;\r\n\r\n if (event.code == 'Backspace' || event.code == undefined || event.code == 'Delete') {\r\n if (event.srcElement.name == 'otpValue1') {\r\n this.otp1.nativeElement.focus();\r\n if (event.code == undefined && this.otpValue1 == \"\")\r\n this.otpValue1 = '';\r\n }\r\n if (event.srcElement.name == 'otpValue2') {\r\n this.otp2.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue3') {\r\n this.otp3.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue4') {\r\n this.otp4.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue5') {\r\n this.otp5.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue6') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n else {\r\n if (value == 1) {\r\n if (this.otpValue1 != '') {\r\n this.otp2.nativeElement.focus();\r\n }\r\n\r\n }\r\n\r\n if (value == 2) {\r\n if (this.otpValue2 != '') {\r\n this.otp3.nativeElement.focus();\r\n }\r\n }\r\n\r\n if (value == 3) {\r\n if (this.otpValue3 != '') {\r\n this.otp4.nativeElement.focus();\r\n }\r\n }\r\n if (value == 4) {\r\n if (this.otpValue4 != '') {\r\n this.otp5.nativeElement.focus();\r\n }\r\n }\r\n if (value == 5) {\r\n if (this.otpValue5 != '') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n if (value == 6) {\r\n if (this.otpValue6 != '') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n numberOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n sha512Enc(val: string) {\r\n const hash = CryptoJS.SHA512(val);\r\n return hash.toString(CryptoJS.enc.Hex);\r\n }\r\n\r\n verifyOTP() {\r\n let otp: any = '';\r\n this.getEnteredOTP();\r\n this.showEmail=true;\r\n otp = this.sha512Enc(this.enteredOTP);\r\n if (this.encOTP == otp) {\r\n this.isInvalidOTP = false;\r\n let mobNo =this.secondaryToggle ? this.secondaryPhnNumber : this.otherToggle ? this.otherPhnNumber:this.primaryPhnNumber\r\n localStorage.setItem('primaryMobileNo', mobNo)\r\n this.getParentDetails();\r\n } else {\r\n this.isInvalidOTP = true;\r\n this.count++;\r\n if(this.count > 2){\r\n this.isVerifyOTP = true\r\n }else{\r\n this.isVerifyOTP = false\r\n }\r\n }\r\n }\r\n\r\n getParentDetails()\r\n {\r\n let mobNo =this.secondaryToggle ? this.secondaryPhnNumber : this.otherToggle ? this.otherPhnNumber:this.primaryPhnNumber\r\n this.registrationService.getParentsList(mobNo, this.token).subscribe(\r\n res => {\r\n if (res?.success == 'true') {\r\n this.IsMobileVerified = true;\r\n this.enableOTP = false;\r\n this.openMessageDialog(\"Mobile number successfully verified.\", false, \"\",'mobile');\r\n }else{\r\n this.IsMobileVerified = false;\r\n }\r\n })\r\n }\r\n\r\n formatPrimaryPhoneNumber($event, currentCtrl) {\r\n this.isSendOtp=true;\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n console.log(phoneNumber);\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n \r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidPrimary=phone.startsWith('5')? false:true;\r\n\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidPrimary= false;\r\n }\r\n this.nationalnumber = phoneNumber.number\r\n $event.srcElement.value = phone \r\n this.primaryPhnNumber = this.primaryForm.controls.primaryMobile.value;\r\n }\r\n }\r\n formatSecondaryPhoneNumber($event, currentCtrl) {\r\n this.isSendOtp=this.secondaryToggle?true:false;\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidSecondary=phone.startsWith('5')? false:true;\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidSecondary=false\r\n }\r\n\r\n this.nationalnumber = phoneNumber.number\r\n\r\n $event.srcElement.value = phone\r\n this.secondaryPhnNumber = this.secondaryForm.controls.secondaryMobile.value;\r\n }\r\n }\r\n formatOtherPhoneNumber($event, currentCtrl) {\r\n this.isSendOtp=this.otherToggle?true:false;\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidOther=phone.startsWith('5')? false:true;\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidOther=false;\r\n }\r\n\r\n this.nationalnumber = phoneNumber.number\r\n\r\n $event.srcElement.value = phone\r\n this.otherPhnNumber = this.otherForm.controls.otherMobile.value;\r\n }\r\n }\r\n formatPrimaryNumber() {\r\n if(this.primaryMobile.phoneNumber)\r\n {\r\n let countryCode = this.primaryMobile?.phoneNumber.slice(0, 3);\r\n this.primaryMobile.phoneNumber = countryCode==\"971\" ? this.primaryMobile?.phoneNumber.slice(3,12): this.primaryMobile?.phoneNumber;\r\n this.primaryMobile.phoneNumber= [this.primaryMobile?.phoneNumber.slice(0, 2)+\"-\"+this.primaryMobile?.phoneNumber.slice(2,9)].join('');\r\n this.primaryForm.patchValue({primaryMobile:this.primaryMobile.phoneNumber})\r\n this.primaryForm.controls.primaryMobile.setErrors(null)\r\n let number= this.primaryMobile.phoneNumber.replace('-','')\r\n this.primaryPhnNumber = \"+971\"+number;\r\n }\r\n }\r\n formatSecondaryNumber() {\r\n if(this.secondaryMobile.phoneNumber)\r\n {\r\n let countryCode = this.secondaryMobile?.phoneNumber.slice(0, 3);\r\n this.secondaryMobile.phoneNumber = countryCode==\"971\" ? this.secondaryMobile?.phoneNumber.slice(3,12): this.secondaryMobile?.phoneNumber;\r\n this.secondaryMobile.phoneNumber= [this.secondaryMobile?.phoneNumber.slice(0, 2)+\"-\"+this.secondaryMobile?.phoneNumber.slice(2,9)].join('');\r\n this.secondaryForm.patchValue({secondaryMobile:this.secondaryMobile.phoneNumber})\r\n this.secondaryForm.controls.secondaryMobile.setErrors(null)\r\n let number= this.secondaryMobile.phoneNumber.replace('-','')\r\n this.secondaryPhnNumber = \"+971\"+number;\r\n }\r\n }\r\n\r\n formatOtherNumber() {\r\n if(this.otherMobile.phoneNumber)\r\n {\r\n let countryCode = this.otherMobile?.phoneNumber.slice(0, 3);\r\n this.otherMobile.phoneNumber = countryCode==\"971\" ? this.otherMobile?.phoneNumber.slice(3,12): this.otherMobile?.phoneNumber;\r\n this.otherMobile.phoneNumber= [this.otherMobile?.phoneNumber.slice(0, 2)+\"-\"+this.otherMobile?.phoneNumber.slice(2,9)].join('');\r\n this.otherForm.patchValue({otherMobile:this.otherMobile.phoneNumber})\r\n this.otherForm.controls.otherMobile.setErrors(null)\r\n let number= this.otherMobile.phoneNumber.replace('-','')\r\n this.otherPhnNumber = \"+971\"+number;\r\n }\r\n }\r\n\r\n onToggle(event:any,type:any)\r\n {\r\n if(type == \"other\")\r\n {\r\n this.otherToggle = event.checked;\r\n this.secondaryToggle=!this.otherToggle \r\n Object.keys(this.otherForm.controls).forEach(ctrl => {\r\n const control = this.otherForm.get(ctrl);\r\n control.markAsUntouched()\r\n });\r\n }\r\n else {\r\n this.secondaryToggle=event.checked;\r\n this.otherToggle=!this.secondaryToggle \r\n // Object.keys(this.secondaryForm.controls).forEach(ctrl => {\r\n // const control = this.secondaryForm.get(ctrl);\r\n // control.markAsUntouched()\r\n // });\r\n}\r\n this.otpValue1 = this.otp1=null;\r\n this.otpValue2 = this.otp2=null;\r\n this.otpValue3 = this.otp3=null;\r\n this.otpValue4 = this.otp4=null;\r\n this.otpValue5 = this.otp5=null;\r\n this.otpValue6 = this.otp6=null;\r\n this.enableOTP = false;\r\n this.IsMobileVerified=false;\r\n this.isVerifyOTP=false;\r\n this.isResendOtp = false\r\n this.resendcount=0;\r\n this.isOtpEntered = false;\r\n // this.interval=0;\r\n this.countdown = 0;\r\n this.count=0\r\n this.encOTP='';\r\n this.enteredOTP = '';\r\n this.isInvalidOTP= false;\r\n this.showEmail=false;\r\n this.isSendOtp=true\r\n }\r\n cancel()\r\n {\r\n this.router.navigate([\"/home\"]);\r\n }\r\n\r\n checkPrimaryEmail(value: any, type: any) {\r\n this.IsPrimaryEmailMatch = false;\r\n if (type == 1 && this.primaryForm.get('primaryReEmail').value != '') {\r\n if (value.toLowerCase() == this.primaryForm.get('primaryReEmail').value.toLowerCase()) {\r\n this.IsPrimaryEmailMatch = false;\r\n }\r\n else {\r\n this.IsPrimaryEmailMatch = true;\r\n }\r\n } else {\r\n if (this.primaryForm.get('primaryEmail').value.toLowerCase() == value.toLowerCase()) {\r\n this.IsPrimaryEmailMatch = false;\r\n }\r\n else {\r\n this.IsPrimaryEmailMatch = true;\r\n }\r\n }\r\n}\r\n\r\ncheckSecondaryEmail(value: any, type: any) {\r\n this.IsSecondaryEmailMatch = false;\r\n if (type == 1 && this.secondaryForm.get('secondaryReEmail').value != '') {\r\n if (value.toLowerCase() == this.secondaryForm.get('secondaryReEmail').value.toLowerCase()) {\r\n this.IsSecondaryEmailMatch = false;\r\n }\r\n else {\r\n this.IsSecondaryEmailMatch = true;\r\n }\r\n } else {\r\n if (this.secondaryForm.get('secondaryEmail').value.toLowerCase() == value.toLowerCase()) {\r\n this.IsSecondaryEmailMatch = false;\r\n }\r\n else {\r\n this.IsSecondaryEmailMatch = true;\r\n }\r\n }\r\n}\r\n\r\ncheckOtherEmail(value: any, type: any) {\r\n this.IsOtherEmailMatch = false;\r\n if (type == 1 && this.otherForm.get('otherReEmail').value != '') {\r\n if (value.toLowerCase() == this.otherForm.get('otherReEmail').value.toLowerCase()) {\r\n this.IsOtherEmailMatch = false;\r\n }\r\n else {\r\n this.IsOtherEmailMatch = true;\r\n }\r\n } else {\r\n if (this.otherForm.get('otherEmail').value.toLowerCase() == value.toLowerCase()) {\r\n this.IsOtherEmailMatch = false;\r\n }\r\n else {\r\n this.IsOtherEmailMatch = true;\r\n }\r\n }\r\n}\r\n\r\nhandlePanelClick(event: Event) {\r\n event.stopPropagation();\r\n}\r\n\r\npostContactChange(template:any)\r\n{\r\n let primaryContact=this.secondaryToggle ? this.contactDetails?.secondaryContactRelation : this.otherToggle ? this.otherForm?.controls.otherRelation.value:this.contactDetails?.primaryContactRelation\r\n let secondaryContact=this.secondaryToggle ? this.contactDetails?.primaryContactRelation : this.otherToggle ? this.contactDetails?. primaryContactRelation:this.contactDetails?.secondaryContactRelation\r\n let primaryEmail=this.secondaryToggle ? this.secondaryForm.get('secondaryEmail').value : this.otherToggle ? this.otherForm.get('otherEmail').value:this.primaryForm.get('primaryEmail').value\r\n let guardian=this.otherForm.get('otherFullname').value.split(' ')\r\n let body={\r\n \"StuId\":localStorage.getItem(\"selectedstudentid\"),\r\n \"PrimaryContact\":primaryContact == \"Father\" ? \"F\" : primaryContact == \"Mother\" ? \"M\" : \"G\",\r\n \"PrimaryContactEmail\":primaryEmail,\r\n \"SecondaryContact\":secondaryContact == \"Father\" ? \"F\" : secondaryContact == \"Mother\" ? \"M\" : \"G\",\r\n \"FatherFirstName\":this.contactDetails?.primaryContactRelation == \"Father\"? this.primaryForm.get('primaryFname').value : this.contactDetails?.secondaryContactRelation == \"Father\"? this.secondaryForm.get('secondaryFname').value : guardian[0] ,\r\n \"FatherLastName\":this.contactDetails?.primaryContactRelation == \"Father\"? this.primaryForm.get('primaryLname').value : this.contactDetails?.secondaryContactRelation == \"Father\"? this.secondaryForm.get('secondaryLname').value : guardian.length == 2 ? guardian[1]:guardian.length > 2 ? guardian[2]:guardian[0] ,\r\n \"FatherMiddleName\":this.contactDetails?.primaryContactRelation == \"Father\"? this.primaryForm.get('primaryMname').value : this.contactDetails?.secondaryContactRelation == \"Father\"? this.secondaryForm.get('secondaryMname').value : guardian.length > 2 ? guardian[1]:'' ,\r\n \"MotherFirstName\":this.contactDetails?.primaryContactRelation == \"Mother\"? this.primaryForm.get('primaryFname').value : this.contactDetails?.secondaryContactRelation == \"Mother\"? this.secondaryForm.get('secondaryFname').value : guardian[0],\r\n \"MotherLastName\":this.contactDetails?.primaryContactRelation == \"Mother\"? this.primaryForm.get('primaryLname').value : this.contactDetails?.secondaryContactRelation == \"Mother\"? this.secondaryForm.get('secondaryLname').value : guardian.length == 2 ? guardian[1]:guardian.length > 2 ? guardian[2]:guardian[0],\r\n \"MotherMiddleName\":this.contactDetails?.primaryContactRelation == \"Mother\"? this.primaryForm.get('primaryMname').value : this.contactDetails?.secondaryContactRelation == \"Mother\"? this.secondaryForm.get('secondaryMname').value : guardian.length > 2 ? guardian[1]:'',\r\n \"GardenName\":this.contactDetails?.primaryContactRelation == \"Guardian\"? this.primaryForm.get('primaryFname').value+' '+this.primaryForm.get('primaryMname').value+' '+this.primaryForm.get('primaryLname').value : this.contactDetails?.secondaryContactRelation == \"Guardian\"? this.secondaryForm.get('secondaryFname').value+' '+this.secondaryForm.get('secondaryMname').value+' '+this.secondaryForm.get('secondaryLname').value : this.otherForm.get('otherFullname').value,\r\n \"Fmobile\":this.contactDetails?.primaryContactRelation == \"Father\"? (this.primaryPhnNumber ? this.primaryPhnNumber:\"\") : this.contactDetails?.secondaryContactRelation == \"Father\"? (this.secondaryPhnNumber?this.secondaryPhnNumber : '') : (this.otherPhnNumber ? this.otherPhnNumber :''),\r\n \"Mmobile\":this.contactDetails?.primaryContactRelation == \"Mother\"? (this.primaryPhnNumber ? this.primaryPhnNumber:\"\") : this.contactDetails?.secondaryContactRelation == \"Mother\"? (this.secondaryPhnNumber?this.secondaryPhnNumber : '') : (this.otherPhnNumber ? this.otherPhnNumber :''),\r\n \"Gmobile\":this.contactDetails?.primaryContactRelation == \"Guardian\"? (this.primaryPhnNumber ? this.primaryPhnNumber:\"\") : this.contactDetails?.secondaryContactRelation == \"Guardian\"? (this.secondaryPhnNumber?this.secondaryPhnNumber : '') :(this.otherPhnNumber ? this.otherPhnNumber :''),\r\n \"Source\":\"web\"\r\n }\r\n this.contactService.postContactChange(body,this.token).subscribe((res:any)=>{\r\n if(res.success=\"true\")\r\n this.successDialog(template);\r\n })\r\n}\r\n\r\nopenMessageDialog(msg: string, iseror: boolean, errormessage: string, value?:any): void {\r\n let btnname:any;\r\n if(value == 'mobile'){\r\n btnname='Proceed'\r\n }\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n buttonName:btnname\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n });\r\n}\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n}\r\n","import { Component,Inject, OnInit, Renderer2} from '@angular/core';\r\nimport { DOCUMENT, formatDate } from '@angular/common';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\nimport { FormGroup, FormsModule,FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport * as _moment from 'moment';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nconst moment = _moment;\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-request-schedule-change',\r\n templateUrl: './request-schedule-change.component.html',\r\n styleUrls: ['./request-schedule-change.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class RequestScheduleChangeComponent implements OnInit {\r\n studentId: any;\r\n schoolId: any;\r\n grade: any;\r\n minDate: Date;\r\n maxDate: Date;\r\n tominDate: Date;\r\n enableTodate:boolean=true;\r\n editData: any;\r\n section: any;\r\n constructor(public transportService:TransportserviceService,private _snackBar: MatSnackBar,private fb: FormBuilder,private datePipe: DatePipe, private dialog: MatDialog,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,public router:Router,\r\n public activatedRoute:ActivatedRoute) { }\r\n\r\n form: FormGroup;\r\n fromDt:Date=new Date();\r\n toDt:Date=new Date();\r\n fromdate=new FormControl(moment());\r\n todate=new FormControl(moment());\r\n remarks:string;\r\n count=0;\r\n pickUpOption:string;\r\n options:any[];\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'center';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n sname:string;\r\n school:string;\r\n imagePath:string;\r\n isEdit:boolean=false;\r\n isInvalidToTime: boolean = false;\r\n oneWayUser: boolean = true;\r\n // sname:string=JSON.parse(localStorage.parentChildrens)[0].studentName;\r\n // school:string=JSON.parse(localStorage.currentUser)[0].schoolName;\r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n\r\n setTimeout(() => {\r\n this.minDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate());\r\n console.log(this.minDate);\r\n\r\n this.fromDt = new Date('');\r\n this.sname = JSON.parse(localStorage.parentChildrens)[0].studentName;\r\n this.school = JSON.parse(localStorage.parentChildrens)[0].school;\r\n this.imagePath = JSON.parse(localStorage.parentChildrens)[0].photoPath;\r\n this.studentId = JSON.parse(localStorage.parentChildrens)[0].studentId;\r\n\r\n let studentTransportInfo = JSON.parse(localStorage.getItem('transportChildInfo'));\r\n let selectedStudentId = localStorage.getItem('selectedstudentid');\r\n let selectedStudentData = studentTransportInfo?.filter((x: any) => x.studentNo == selectedStudentId);\r\n\r\n this.schoolId = selectedStudentData[0]?.stU_SCHOOL_ID;\r\n this.grade = JSON.parse(localStorage.parentChildrens)[0].grade;\r\n this.section = JSON.parse(localStorage.parentChildrens)[0].section;\r\n\r\n if (selectedStudentData[0]?.roundTrip?.toLowerCase() == 'roundtrip' || selectedStudentData[0]?.roundTrip?.toLowerCase() == 'two-way') {\r\n this.oneWayUser = false;\r\n }\r\n \r\n //alert(this.imagePath);\r\n this.form = this.fb.group({\r\n fromDt: [this.fromDt, Validators.required],\r\n remarks: [''],\r\n pickUpOption: [this.pickUpOption, Validators.required]\r\n });\r\n this.getPickupDropOff();\r\n }, 500);\r\n }\r\n getPickupDropOff() {\r\n this.transportService.getTransportTypes().subscribe(res => {\r\n this.options = res[\"data\"];\r\n\r\n if (this.oneWayUser) {\r\n this.options = this.options.filter((x: any) => x.id == 3);\r\n }\r\n\r\n this.transportService.editSchedule.subscribe(res => {\r\n if (res) {\r\n this.isEdit = true;\r\n this.editData = res;\r\n let area = this.options.find(x => x.id == this.editData?.rpdJourney)\r\n this.form.patchValue({\r\n fromDt: new Date(this.editData?.rpdFromDate),\r\n remarks: this.editData?.rpdRemarks,\r\n pickUpOption: area ? area.id : null\r\n })\r\n } else {\r\n this.isEdit = false;\r\n this.editData = null;\r\n }\r\n })\r\n });\r\n }\r\n\r\n submitRequestScheduleChange() {\r\n this.form.markAllAsTouched();\r\n if (this.form.valid) {\r\n let formattedTime = \"T00:00:00\";\r\n let fromDate = this.datePipe.transform(this.fromDt, 'yyyy-MM-dd');\r\n \r\n let formData = {\r\n rpdID: this.isEdit ? this.editData?.rpdID : 0,\r\n rpdStuID: JSON.parse(localStorage.parentChildrens)[0].studentId,\r\n rpdFromDate: `${fromDate}${formattedTime}`,\r\n rpdToDate: `${fromDate}${formattedTime}`,\r\n rpdRemarks: this.remarks,\r\n editable: this.isEdit ? \"Yes\" : \"No\",\r\n delete: \"No\",\r\n rpdJourney: this.pickUpOption\r\n }\r\n\r\n this.transportService.RequestSchedulechange(formData).subscribe(res => {\r\n let res1 = res.data;\r\n if (res.Success == \"true\") {\r\n // this._snackBar.open(res.Message, 'Ok', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 5000\r\n // });\r\n\r\n if (!this.isEdit)\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n else this.openMessageDialog(\"Request updated successfully.\", false, \"\");\r\n }\r\n else {\r\n this.openMessageDialog(res?.Message, true, \"\");\r\n }\r\n }\r\n\r\n )\r\n\r\n }\r\n }\r\n\r\n cancel() {\r\n this.form.reset();\r\n this.fromDt = new Date('');\r\n this.remarks = '',\r\n this.pickUpOption = '';\r\n this.count = 0;\r\n this.minDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 1);\r\n this.enableTodate = true;\r\n this.fromdate = new FormControl(moment());\r\n this.router.navigateByUrl('/schedule-change')\r\n }\r\n\r\n onDescChange() {\r\n if (this.form.controls.remarks.value && this.form.controls.remarks.value.trim() != \"\") {\r\n this.count = this.form.controls.remarks.value.length;\r\n }\r\n else {\r\n this.count = 0\r\n this.form.patchValue({ remarks: this.form.controls.remarks.value.trim() == \"\" ? \"\" : this.form.controls.remarks.value })\r\n }\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n panelClass: 'custom-modalbox',\r\n width: '500px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n this.cancel();\r\n });\r\n }\r\n\r\n onDateInputed(event, type) {\r\n if (type == 1) {\r\n\r\n this.tominDate = event.value._d;\r\n this.fromDt = event.value._d;\r\n console.log(this.tominDate);\r\n this.enableTodate = false;\r\n console.log(this.fromDt, this.toDt)\r\n\r\n } else {\r\n this.toDt = event.value._d;\r\n }\r\n\r\n this.onChangeToTime();\r\n\r\n console.log(this.fromDt, this.toDt)\r\n }\r\n\r\n onOptionChange(){\r\n\r\n }\r\n \r\n onChangeToTime() {\r\n this.isInvalidToTime = false;\r\n //fromTime\r\n if (this.form.controls.fromTime.value && this.form.controls.toTime.value) {\r\n let splitTime = this.form.controls.fromTime.value.split(' ');\r\n let time = splitTime[0].split(':');\r\n let hours = parseInt(time[0]);\r\n let minutes = parseInt(time[1]);\r\n if (splitTime[1].toUpperCase() == 'PM') {\r\n hours = (hours == 12) ? 12 : hours + 12;\r\n } else if (splitTime[1].toUpperCase() == 'AM' && hours == 12) {\r\n hours = 0;\r\n }\r\n let formattedTime = `T${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:00`;\r\n let fromDate = this.datePipe.transform(this.fromDt, 'yyyy-MM-dd');\r\n\r\n //ToTime\r\n let splitToTime = this.form.controls.toTime.value.split(' ');\r\n let Totime = splitToTime[0].split(':');\r\n let Tohours = parseInt(Totime[0]);\r\n let Tominutes = parseInt(Totime[1]);\r\n if (splitToTime[1].toUpperCase() == 'PM') {\r\n Tohours = (Tohours == 12) ? 12 : Tohours + 12;\r\n } else if (splitToTime[1].toUpperCase() == 'AM' && Tohours == 12) {\r\n Tohours = 0;\r\n }\r\n let formattedToTime = `T${Tohours.toString().padStart(2, '0')}:${Tominutes.toString().padStart(2, '0')}:00`;\r\n let ToDate = this.datePipe.transform(this.toDt, 'yyyy-MM-dd');\r\n\r\n let formattedStartTime = new Date(`${fromDate}${formattedTime}`);\r\n let formattedEndTime = new Date(`${ToDate}${formattedToTime}`);\r\n if (formattedEndTime <= formattedStartTime) {\r\n this.isInvalidToTime = true;\r\n }\r\n }\r\n }\r\n\r\n weekendFilter = (d: Date | null): boolean => {\r\n if(d != undefined)\r\n {\r\n // alert(new Date(d).getDate());\r\n const day = new Date(d).getDay();\r\n return day !== 0 && day !== 6;\r\n }\r\n }\r\n}\r\n","import { Component,Inject, OnInit, Renderer2, TemplateRef} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { MatSnackBar, MatSnackBarHorizontalPosition, MatSnackBarVerticalPosition } from '@angular/material/snack-bar';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\nimport { FormGroup, FormsModule,FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { DatePipe } from '@angular/common';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport * as _moment from 'moment';\r\nimport { Router } from '@angular/router';\r\nconst moment = _moment;\r\n\r\n\r\n@Component({\r\n selector: 'app-schedule-change',\r\n templateUrl: './schedule-change.component.html',\r\n styleUrls: ['./schedule-change.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class ScheduleChangeComponent implements OnInit {\r\n \r\n studentId: any;\r\n schoolId: any;\r\n grade: any;\r\n digopen: any;\r\n deletedData: any;\r\n editData: any;\r\n options: any[]=[];\r\n section: any;\r\n constructor(public transportService:TransportserviceService,private _snackBar: MatSnackBar,private fb: FormBuilder,private datePipe: DatePipe, private dialog: MatDialog,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document, private router: Router) { }\r\n sname:string;\r\n school:string;\r\n imagePath:string;\r\n scheduleList:any[]=[];\r\n \r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n this.getScheduleList();\r\n }\r\n getScheduleList()\r\n {\r\n let token=JSON.parse(localStorage.getItem('currentToken'));\r\n this.transportService.getTransportTypes().subscribe(res => {\r\n this.options = res[\"data\"];\r\n this.transportService.GetScheduleList(token?.access_token).subscribe((res:any)=>{\r\n\r\n this.sname=JSON.parse(localStorage.parentChildrens)[0].studentName;\r\n this.school=JSON.parse(localStorage.parentChildrens)[0].school;\r\n this.imagePath=JSON.parse(localStorage.parentChildrens)[0].photoPath;\r\n this.studentId=JSON.parse(localStorage.parentChildrens)[0].studentId;\r\n this.grade=JSON.parse(localStorage.parentChildrens)[0].grade;\r\n this.section=JSON.parse(localStorage.parentChildrens)[0].section;\r\n\r\n let studentTransportInfo = JSON.parse(localStorage.getItem('transportChildInfo'));\r\n let selectedStudentId = localStorage.getItem('selectedstudentid');\r\n let selectedStudentData = studentTransportInfo?.filter((x: any) => x.studentNo == selectedStudentId);\r\n\r\n this.schoolId = selectedStudentData[0]?.stU_SCHOOL_ID;\r\n\r\n this.scheduleList=[];\r\n res?.data.forEach(x=>{\r\n //FromTime\r\n const parsedFromTime = new Date(x.rpdFromDate);\r\n const formattedDate = this.datePipe.transform(parsedFromTime, 'dd MMM yyyy')\r\n const fromHour = parsedFromTime.getHours();\r\n const fromMinute = parsedFromTime.getMinutes();\r\n const fromAmPm = fromHour >= 12 ? 'PM' : 'AM';\r\n const fromFormattedHour = fromHour % 12 || 12; \r\n x.rpdFormattedFromDate = `${formattedDate}`;\r\n x.formattedFromTime=`${fromFormattedHour}:${fromMinute < 10 ? '0' + fromMinute : fromMinute} ${fromAmPm}`\r\n \r\n //ToTime\r\n const parsedToTime = new Date(x.rpdToDate);\r\n const formattedToDate = this.datePipe.transform(parsedToTime, 'dd MMM yyyy')\r\n const toHour = parsedToTime.getHours();\r\n const toMinute = parsedToTime.getMinutes();\r\n const toAmPm = toHour >= 12 ? 'PM' : 'AM';\r\n const toFormattedHour = toHour % 12 || 12; \r\n x.rpdFormattedToDate = `${formattedToDate} ${toFormattedHour}:${toMinute < 10 ? '0' + toMinute : toMinute} ${toAmPm}`;\r\n x.formattedToTime = `${toFormattedHour}:${toMinute < 10 ? '0' + toMinute : toMinute} ${toAmPm}`\r\n\r\n x.pickup=this.options.find(y=>y.id == x?.rpdJourney)?.descr;\r\n this.scheduleList=res?.data;\r\n })\r\n })\r\n })\r\n }\r\n navigatetolink(lnk,editData:any=null) {\r\n this.transportService.editSchedule.next(editData)\r\n this.router.navigate([lnk]);\r\n this.dialog.closeAll()\r\n }\r\n\r\n confirmDelete()\r\n {\r\n this.digopen.close();\r\n this.deletedData.editable =\"No\"\r\n this.deletedData.delete=\"Yes\"\r\n let studId= localStorage.getItem(\"selectedstudentid\")\r\n this.deletedData.rpdStuID=studId;\r\n this.transportService.RequestSchedulechange(this.deletedData).subscribe(res=>{\r\n if(res.Success==\"true\")\r\n {\r\n this.openMessageDialog(\"Request deleted successfully.\",false,\"\");\r\n }\r\n else{\r\n this.openMessageDialog(res?.Message,false,\"\");\r\n }\r\n })\r\n }\r\n\r\n openMessageDialog(msg:string,iseror:boolean,errormessage:string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n data: {\r\n msg: msg,\r\n isError:iseror,\r\n errmessage: errormessage,\r\n },\r\n panelClass: 'custom-modalbox',\r\n width: '500px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getScheduleList();\r\n });\r\n }\r\n\r\n cancelDelete()\r\n {\r\n this.digopen.close();\r\n }\r\n\r\n openDialog(template: TemplateRef, deleteData:any) {\r\n this.deletedData=deleteData;\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '500px',\r\n panelClass: ['custom-modalbox']\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n@Component({\r\n selector: 'app-payments',\r\n templateUrl: './payments.component.html',\r\n styleUrls: ['./payments.component.scss']\r\n})\r\nexport class PaymentsComponent implements OnInit {\r\n showTerms = false;\r\n data = [\r\n {id: 1, name: 'Rajesh', email: 'rajesh@gmail.com'},\r\n {id:2, name: 'Paresh', email: 'paresh@gmail.com'},\r\n {id:3, name: 'Naresh', email: 'naresh@gmail.com'},\r\n {id:4, name: 'Suresh', email: 'suresh@gmail.com'},\r\n {id:5, name: 'Karan', email: 'karan@gmail.com'},\r\n ];\r\n displayedColumns = ['id', 'name', 'email'];\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n viewTerms(){\r\n this.showTerms = !this.showTerms;\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nconst key = 'TUc0emRqRXpkdw==';\r\n\r\n@Pipe({ name: 'encrypted' })\r\nexport class EncryptPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value) {\r\n return CryptoJS.AES.encrypt(value, key).toString();\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'decrypted' })\r\nexport class DecryptPipe implements PipeTransform {\r\n transform(encrypted: string) {\r\n if (encrypted) {\r\n const decrypted = CryptoJS.AES.decrypt(encrypted, key);\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'PDFpipe' })\r\nexport class PDFpipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer) {}\r\n transform(url) {\r\n url=url.replace(\"http://\",\"https://\");\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n} \r\n","import { Component, ElementRef, EventEmitter, OnInit, Output, TemplateRef, ViewChild,Inject,Renderer2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport html2canvas from 'html2canvas';\r\nimport * as html2pdf from 'html2pdf.js';\r\nimport jsPDF from 'jspdf';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\nimport { PdfserviceService } from 'src/app/service/pdfservice.service';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport htmlToPdfmake from 'html-to-pdfmake';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n@Component({\r\n selector: 'app-re-register-terms-and-condition',\r\n templateUrl: './re-register-terms-and-condition.component.html',\r\n styleUrls: ['./re-register-terms-and-condition.component.scss'],\r\n // providers:[SafePipe]\r\n})\r\nexport class ReRegisterTermsAndConditionComponent implements OnInit {\r\n\r\n pdfName: string=\"Terms and Conditions.pdf\";\r\n defaultToken: any;\r\n index: number;\r\n pdfHtml: any;\r\n pdfContent: any;\r\n @ViewChild('pdf') pdf: ElementRef;\r\n city: any;\r\n studentDetails: any;\r\n isGrade: any;\r\n textPdf: any='';\r\n textPdf2: any='';\r\n textPdf3: any='';\r\n textPdf4: any='';\r\n textPdf5: any='';\r\n textPdf6: any='';\r\n textPdf7:any='';\r\n textPdf8:any='';\r\n textPdf9: any='';\r\n checkbox1:boolean=false;\r\n checkbox2:boolean=false;\r\n agreeDisable: boolean=true;\r\n primaryContactName: string;\r\n @ViewChild('header') header: ElementRef;\r\n @ViewChild('signature') signature: ElementRef;\r\n pdfType: string;\r\n constructor(private reregistrationService:ReregistrationService,private dialog: MatDialog,\r\n private router: Router,private renderer: Renderer2, private sanitizer: DomSanitizer,\r\n @Inject(DOCUMENT) private document: Document,private http: HttpClient,\r\n private pdfservice:PdfserviceService,public regservice:RegistrationService,public activatedRoute:ActivatedRoute\r\n ) { }\r\n pdfs:any[]=[];\r\n @ViewChild('downloadContent') downloadContent: ElementRef;\r\n pdfSrc=\"\";\r\n pdfSrc_s=\"\";\r\n paramType:any\r\n gradeId=\"\";\r\n checkedStudentId=\"\";\r\n isSibling:boolean = false;\r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n this.paramType=params?.type;\r\n this.gradeId = params?.gradeId;\r\n this.checkedStudentId = params?.studentId;\r\n\r\n if(params?.isSibling){\r\n this.isSibling = params?.isSibling == 'false' ? false : true;\r\n }\r\n })\r\n this.city = JSON.parse(localStorage.getItem(\"schoolDetails\"))?.city;\r\n let data= JSON.parse(localStorage.getItem(\"parentChildrens\"))[0];\r\n let transportData=JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n\r\n if(this.checkedStudentId != null && this.checkedStudentId != undefined && this.checkedStudentId != ''){\r\n this.studentDetails= transportData.find(x=>x.studentNo == this.checkedStudentId);\r\n }else{\r\n this.studentDetails= transportData.find(x=>x.stU_ID == data.stuId);\r\n }\r\n \r\n this.primaryContactName=localStorage.getItem('primaryContactName');\r\n //this.isGrade= (this.studentDetails?.grade.includes('1') && !this.studentDetails?.grade.includes('10') && !this.studentDetails?.grade.includes('11') && !this.studentDetails?.grade.includes('12') ) || (this.studentDetails?.grade.includes('2') && !this.studentDetails?.grade.includes('12')) || this.studentDetails?.grade.includes('3') || this.studentDetails?.grade.includes('KG')? true : false\r\n \r\n if(this.paramType == \"All\"){\r\n this.getTermsConditions();\r\n }else{\r\n this.getParentUndertakingByGrade();\r\n }\r\n \r\n }\r\n \r\n getTermsConditions()\r\n {\r\n this.reregistrationService.getTermsAndConditions().subscribe((res:any)=>{\r\n let pdfData = [];\r\n let parentPdfCount= res?.data.filter(y=>y.ttcuL_DOC_TYPE == 'PUT')?.length;\r\n res?.data.forEach(x=>{\r\n if(this.paramType == \"PUT\")\r\n {\r\n this.isGrade=x.ttcuL_bShowSiblingInput;\r\n if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount > 1)\r\n {\r\n let gradeCheck= (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG') ? true : false;\r\n if((gradeCheck && this.isGrade) || (!gradeCheck && !this.isGrade)) \r\n pdfData.push(x)\r\n }else if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount == 1) pdfData.push(x)\r\n } else{\r\n if(x.ttcuL_DOC_TYPE != 'PUT')\r\n pdfData.push(x)\r\n }\r\n })\r\n this.pdfs = pdfData\r\n this.pdfs.forEach(x=>x.isAgree=false);\r\n let payload={\r\n stuNo:this.studentDetails?.studentNo,\r\n oluName:this.primaryContactName\r\n }\r\n this.regservice.getParentUndertakingData(this.defaultToken,payload).subscribe((content:any)=>{\r\n let data:any\r\n if(content.data?.ttcD_DATA)\r\n {\r\n data = JSON.parse(content.data?.ttcD_DATA);\r\n }\r\n this.textPdf= data?.input1 ? data?.input1:this.primaryContactName;\r\n this.textPdf2 = data?.input2 ? data?.input2:this.studentDetails?.studentName;\r\n this.textPdf3 = data?.input3 ? data?.input3:this.studentDetails?.studentNo;\r\n this.textPdf4 = data?.input4 ? data?.input4:this.studentDetails?.grade;\r\n this.textPdf5 = data?.input5 ? data?.input5:this.studentDetails?.school;\r\n let selecteddropoffarea=localStorage.getItem(\"selecteddropoffarea\");\r\n if(selecteddropoffarea)\r\n {\r\n this.textPdf6=selecteddropoffarea;\r\n }\r\n else{\r\n this.textPdf6 = data?.input6 ? data?.input6:this.studentDetails?.dropoffpoint;\r\n }\r\n \r\n this.textPdf7 = data?.input7 ? data?.input7:'';\r\n this.textPdf8 = data?.input8 ? data?.input8:'';\r\n this.textPdf9 = data?.input9 ? data?.input9:'';\r\n this.checkbox1=data?.checkbox1 ? data?.checkbox1:false;\r\n this.checkbox2=data?.checkbox2 ? data?.checkbox2:false;\r\n this.pdftext();\r\n this.loadPdf(0);\r\n })\r\n })\r\n }\r\n loadPdf(index:number)\r\n {\r\n this.pdfSrc=this.pdfs[index].ttcul_Url_Path\r\n this.pdfSrc_s=this.pdfSrc.replace(\"http://\",\"https://\");\r\n this.pdfName=this.pdfs[index].ttcul_Url_Text\r\n this.pdfHtml=this.pdfs[index].ttcuL_PDF_HTML;\r\n this.pdfType=this.pdfs[index].ttcuL_DOC_TYPE;\r\n this.index=index;\r\n }\r\n get sanitizedPdfHtml(): SafeHtml { \r\n this.pdfContent=this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent }\r\n agree()\r\n {\r\n this.pdfs[this.index].isAgree =true;\r\n this.index++;\r\n if(this.index <= (this.pdfs.length - 1))\r\n {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth' \r\n });\r\n this.loadPdf(this.index)\r\n }\r\n else{\r\n if(this.paramType == \"PUT\")\r\n {\r\n let jsonstring=JSON.stringify({\r\n \"input1\":this.textPdf,\r\n \"input2\":this.textPdf2,\r\n \"input3\":this.textPdf3,\r\n \"input4\":this.textPdf4,\r\n \"input5\":this.textPdf5,\r\n \"input6\":this.textPdf6,\r\n \"input7\":this.textPdf7,\r\n \"input8\":this.textPdf8,\r\n \"input9\":this.textPdf9,\r\n \"checkbox1\":this.checkbox1,\r\n \"checkbox2\":this.checkbox2\r\n })\r\n let data={\r\n \"TTCUL_ID\":0,\r\n \"OLU_NAME\":this.primaryContactName,\r\n \"STU_NO\":this.studentDetails.studentNo.toString(),\r\n \"TTCD_DATA\":jsonstring,\r\n \"TTCD_MOBILE\": localStorage.getItem('primaryMobileNo'),\r\n \"TTCD_ACD_ID\": localStorage.getItem(\"nextAcademicYearId\"),\r\n \"TTCD_SUBMIT_FROM\": \"ReRegistration\",\r\n \"TTCD_SOURCE\": \"STS_WEB\"\r\n }\r\n this.regservice.saveParentUndertakingData(this.defaultToken,data).subscribe(res=>{ \r\n // let falseIndex = this.pdfs.findIndex(x=>x.isAgree == false)\r\n // if(falseIndex == -1)\r\n // this.router.navigate(['/re-registration'],{queryParams:{isAgreed:true}});\r\n // else \r\n if (this.isSibling) {\r\n localStorage.setItem('siblingPUTAgreed', 'true');\r\n }else{\r\n localStorage.setItem('PUTAgreed', 'true');\r\n }\r\n this.router.navigate(['/re-registration'], { queryParams: { isAgreed: false, parentUndertaking: true,checkTerms:true } });\r\n })\r\n }else{\r\n let falseIndex = this.pdfs.findIndex(x=>x.isAgree == false)\r\n if (falseIndex == -1) {\r\n localStorage.setItem('termsAgreed', 'true');\r\n this.router.navigate(['/re-registration'], { queryParams: { isAgreed: true,checkTerms:true } });\r\n }\r\n else this.router.navigate(['/re-registration'],{queryParams:{isAgreed:false,checkTerms:true}});\r\n }\r\n }\r\n }\r\n pdftext()\r\n {\r\n if((this.city == 'Dubai' && !this.isGrade) || (this.city == 'Qatar' && !this.isGrade) || (this.city == 'Sharjah' && !this.isGrade))\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6)\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }\r\n else if((this.city == 'Sharjah' && this.isGrade) || (this.city == 'Dubai' && this.isGrade))\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6 || !this.textPdf7 || !this.textPdf8 )\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }\r\n else if(this.city == 'Qatar' && this.isGrade)\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6 || (!this.textPdf7 && this.checkbox1) || (!this.textPdf8 && this.checkbox1) || (!this.textPdf9 && this.checkbox2))\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }else this.agreeDisable=false;\r\n }\r\n \r\n goToPage()\r\n { \r\n if(this.paramType != \"PUT\")\r\n this.router.navigate(['/re-registration'],{queryParams:{isAgreed:false,checkTerms:true}})\r\n else\r\n this.router.navigate(['/re-registration'],{queryParams:{isAgreed:false,parentUndertaking:false,checkTerms:true}})\r\n }\r\n downloadPdf()\r\n {\r\n this.pdfservice.downloadPdf(this.defaultToken,this.pdfSrc,this.pdfName);\r\n // //this.http.get(this.pdfSrc, { responseType: 'blob' }).subscribe((blob: Blob) => {\r\n // const blob = new Blob([this.pdfSrc], { type: 'application/pdf' });\r\n // const link = document.createElement('a');\r\n // link.href = window.URL.createObjectURL(blob);\r\n // link.download = this.pdfName;\r\n // link.click();\r\n // // });\r\n\r\n }\r\n pdfDownload()\r\n {\r\n var domain=this.regservice.appUrl\r\n var pdfLogo = (this.city == \"Dubai\" || this.city == \"Qatar\")? domain+\"/assets/images/sts-logo.png\": domain+\"/assets/images/bbt-logo.png\";\r\n var content:any;\r\n var headerOption= {\r\n tableAutoSize:true,\r\n imagesByReference:true\r\n }\r\n var pdftitle = (this.city == \"Dubai\" || this.city == \"Qatar\") ? \"School Transport Services LLC\":\"Bright Bus Transport\"\r\n var headerContent= `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
${pdftitle}
${this.pdfName}
`\r\n if(this.header && this.header.nativeElement && this.pdfType=='PUT')\r\n {\r\n content =headerContent+this.removeMetadata(this.header.nativeElement.innerHTML)+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n \r\n }\r\n else\r\n {\r\n content =headerContent+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n }\r\n \r\n var html = htmlToPdfmake(content,headerOption); \r\n // else var html = htmlToPdfmake(this.pdf.nativeElement.innerHTML); \r\n const documentDefinition = { content:html.content,images:html.images };\r\n pdfMake.createPdf(documentDefinition).download(this.pdfName);\r\n }\r\n removeMetadata(html: string): string {\r\n const metadataRegex = /<\\s*(meta|title|link|style|script)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n const nonContentRegex = /<\\s*(head|script|style)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n\r\n html = html.replace(metadataRegex, '');\r\n html = html.replace(nonContentRegex, '');\r\n return html;\r\n }\r\n\r\n getParentUndertakingByGrade()\r\n {\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n this.reregistrationService.getTermsAndConditionsByGrade(this.gradeId, bsuId).subscribe((res:any)=>{\r\n let pdfData = [];\r\n let parentPdfCount= res?.data.filter(y=>y.ttcuL_DOC_TYPE == 'PUT')?.length;\r\n res?.data.forEach(x=>{\r\n if(this.paramType == \"PUT\")\r\n {\r\n this.isGrade=x.ttcuL_bShowSiblingInput;\r\n if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount > 1)\r\n {\r\n let gradeCheck= (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG') ? true : false;\r\n if((gradeCheck && this.isGrade) || (!gradeCheck && !this.isGrade)) \r\n pdfData.push(x)\r\n }else if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount == 1) pdfData.push(x)\r\n } else{\r\n if(x.ttcuL_DOC_TYPE != 'PUT')\r\n pdfData.push(x)\r\n }\r\n })\r\n this.pdfs = pdfData\r\n this.pdfs.forEach(x=>x.isAgree=false);\r\n let payload={\r\n stuNo:this.studentDetails?.studentNo,\r\n oluName:this.primaryContactName\r\n }\r\n this.regservice.getParentUndertakingData(this.defaultToken,payload).subscribe((content:any)=>{\r\n let data:any\r\n if(content.data?.ttcD_DATA)\r\n {\r\n data = JSON.parse(content.data?.ttcD_DATA);\r\n }\r\n this.textPdf= data?.input1 ? data?.input1:this.primaryContactName;\r\n this.textPdf2 = data?.input2 ? data?.input2:this.studentDetails?.studentName;\r\n this.textPdf3 = data?.input3 ? data?.input3:this.studentDetails?.studentNo;\r\n this.textPdf4 = data?.input4 ? data?.input4:this.studentDetails?.grade;\r\n this.textPdf5 = data?.input5 ? data?.input5:this.studentDetails?.school;\r\n let selecteddropoffarea=localStorage.getItem(\"selecteddropoffarea\");\r\n if(selecteddropoffarea)\r\n {\r\n this.textPdf6=selecteddropoffarea;\r\n }\r\n else{\r\n this.textPdf6 = data?.input6 ? data?.input6:this.studentDetails?.dropoffpoint;\r\n }\r\n \r\n this.textPdf7 = data?.input7 ? data?.input7:'';\r\n this.textPdf8 = data?.input8 ? data?.input8:'';\r\n this.textPdf9 = data?.input9 ? data?.input9:'';\r\n this.checkbox1=data?.checkbox1 ? data?.checkbox1:false;\r\n this.checkbox2=data?.checkbox2 ? data?.checkbox2:false;\r\n this.pdftext();\r\n this.loadPdf(0);\r\n })\r\n })\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, TemplateRef, ElementRef, EventEmitter, NgZone, ViewChild, Output } from '@angular/core';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { CommonService, ServiceinfoService } from 'src/app/service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { MapsAPILoader } from '@agm/core'\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { FormControl } from 'ngx-typesafe-forms';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { PdfserviceService } from 'src/app/service/pdfservice.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { GoogleMapsAutocompleteService } from 'src/app/service/google-maps-autocomplete-service.service';\r\nimport htmlToPdfmake from 'html-to-pdfmake';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { termsAgreed } from 'src/app/models/registration.model';\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n@Component({\r\n selector: 'app-re-registration',\r\n templateUrl: './re-registration.component.html',\r\n styleUrls: ['./re-registration.component.scss']\r\n})\r\nexport class ReRegistrationComponent implements OnInit {\r\n\r\n digopen: any;\r\n digopenParent: any;\r\n currentUser: any;\r\n date: Date = new Date();\r\n addressValue: any = 1;\r\n bsuId: any\r\n aceId: any;\r\n siblingsList: any[] = [];\r\n public siblingList = []\r\n isAgree: boolean = false;\r\n currentUserAmount: any = 0;\r\n addressvalue2: boolean = false;\r\n addressvalue1: boolean = true;\r\n pdfs: any[];\r\n tandcfilteredDatapdf: any;\r\n BusBehaviourCodedatapdf: any;\r\n parentUndertakingPdf: any;\r\n totalSiblingsValue: any=0;\r\n siblingPDF: any;\r\n siblingPDF_s:any;\r\n pdfName: string=\"Parent Undertaking\";\r\n parentUndertakingFile: any;\r\n dialogOpen: MatDialogRef;\r\n isConfirmProceed: boolean=false;\r\n PaymentRefNo: any;\r\n PaymentRedirectURL: any;\r\n feedetailsData: any;\r\n isparentUndertakingChecked: boolean=false;isPaymentEnable: any;\r\n paymentTypeID: any;\r\n reT_BLOCKSSDATE:any;\r\n selectedpickuppoint: any;\r\n selecteddropoffpoint: any;\r\n ConfirmStudentlist: any[];\r\n ErrordialogOpen: MatDialogRef;\r\n showError: boolean;\r\n errorMessage: string;\r\n geoCoder: google.maps.Geocoder;\r\n pickuplocation: any='';\r\n dropofflocation: any='';\r\n markers1: any;\r\n searchInput: string = ''; predictions: google.maps.places.AutocompletePrediction[] = [];\r\n pdfContent: any;\r\n pdfHtml: string;\r\n contentTitle: string;\r\n contentViewer: MatDialogRef;\r\n isTerms:boolean=false;\r\n isParentTaking:boolean=false;\r\n isBusBehavior:boolean=false;\r\n studentDetails: any;\r\n isGrade: boolean;\r\n isParentUdertakingBox: boolean=false;\r\n isHybrid: any;\r\n disableSave: boolean=true;\r\n city: any;\r\n currency: string;\r\n referenceNo: void;\r\n showParentUndertaking: boolean=false;\r\n transportData: any[]=[];\r\n isReregisterEnable: boolean=false;\r\n dropoffAreaErrMsg: boolean=false;\r\n medicalConditionForm: { [key: string]: FormGroup } = {};\r\n medicalConditionDetails: any[] = [];\r\n medicalFormInValid: boolean = false;\r\n termsAgreedDetails: termsAgreed = new termsAgreed();\r\n constructor(private dialog: MatDialog, private router: Router, private datePipe: DatePipe, private tokenService: TokenService, private serviceinfoService: ServiceinfoService,\r\n private registrationService: RegistrationService, private reregistrationService: ReregistrationService, \r\n private activatedRoute: ActivatedRoute, private common:CommonService, private sanitizer: DomSanitizer,\r\n private pdfservice:PdfserviceService, private configService:ConfigService,private autocompleteService:GoogleMapsAutocompleteService, private formBuilder: FormBuilder) { }\r\n\r\n\r\n\r\n\r\n radioChange(event: any) {\r\n this.addressValue = event.source.value;\r\n if (this.addressValue == 1) {\r\n this.addressvalue1 = true;\r\n this.addressvalue2 = false;\r\n\r\n } else {\r\n this.addressvalue2 = true;\r\n this.addressvalue1 = false;\r\n this.isPickupOnly = false;\r\n this.isDropOnly=false;\r\n\r\n }\r\n this.residentialsDetails.reset()\r\n }\r\n minDate: Date;\r\n maxDate: Date;\r\n pickuppoints: any[] = [];\r\n pickupareapoints: any[] = [];\r\n dropoffareapints: any[] = [];\r\n selectedpickuparea1: any = '';\r\n selecteddropofarea2: any = '';\r\n tptFee: any[] = [];\r\n selectedpickuparea: string = \"\";\r\n selecteddropoffarea: string = \"\";\r\n transportTypes: any[] = [];\r\n emirates: any[] = [];\r\n isPickupOnly: boolean = false;\r\n isDropOnly: boolean = false;\r\n @ViewChild(MapInfoWindow, { static: false }) infoWindow: MapInfoWindow;\r\n\r\n mapZoom = 12;\r\n mapCenter: google.maps.LatLng;\r\n mapOptions: google.maps.MapOptions = {\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n zoomControl: true,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n maxZoom: 20,\r\n minZoom: 4,\r\n };\r\n\r\n markerInfoContent = '';\r\n markerOptions: google.maps.MarkerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n residentialsDetails!: FormGroup;\r\n registerationdetails: any = {};\r\n token: any = '';\r\n @Output() onTabChange: EventEmitter = new EventEmitter();\r\n mapOpenedFrom: string = '';\r\n tptType: any;\r\n IsCloseFee: boolean = false;\r\n pickupAreaList: any[] = [];\r\n pickupPointList: any[] = [];\r\n dropoffpoints: any[] = [];\r\n dropoffareapoints: any[] = [];\r\n fromDt: any\r\n fromDtadd: any;\r\n termsForm: FormGroup\r\n dropoffPointData: any[] = [];\r\n siblingParentUndertakings: any[] = [];\r\n putAgreed: boolean = false;\r\n medicalConditionExists: boolean = false;\r\n ngOnInit(): void {\r\n localStorage.removeItem(\"selecteddropoffarea\");\r\n let leasemodelschool = JSON.parse(localStorage.getItem('transportChildInfo'))[0].leasemodelschool;\r\n this.city = JSON.parse(localStorage.getItem(\"schoolDetails\"))?.city;\r\n this.currency= localStorage.getItem('bsu_currency')\r\n this.transportData=JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let childData= JSON.parse(localStorage.getItem(\"parentChildrens\"))[0];\r\n this.studentDetails= this.transportData.find(x=>x.stU_ID == childData.stuId);\r\n // this.isGrade = (this.studentDetails?.grade.includes('01') ) || (this.studentDetails?.grade.includes('02') ) || this.studentDetails?.grade.includes('03') || this.studentDetails?.grade.includes('KG') ? true : false\r\n // this.showParentUndertaking=(this.studentDetails?.grade.includes('1') && !this.studentDetails?.grade.includes('10') && !this.studentDetails?.grade.includes('11') && !this.studentDetails?.grade.includes('12') ) || (this.studentDetails?.grade.includes('2') && !this.studentDetails?.grade.includes('12')) || this.studentDetails?.grade.includes('3') || this.studentDetails?.grade.includes('4')|| this.studentDetails?.grade.includes('5')||this.studentDetails?.grade.includes('6')|| this.studentDetails?.grade.includes('Year 7')|| this.studentDetails?.grade.includes('KG')? true : false\r\n console.log(leasemodelschool);\r\n this.isPaymentEnable = leasemodelschool;\r\n this.isHybrid=JSON.parse(localStorage.getItem('transportChildInfo'))[0].ishybrid\r\n let bsuId=localStorage.getItem('bsU_ID');\r\n let schoolList = JSON.parse(localStorage.getItem('schoolList'));\r\n this.isReregisterEnable=schoolList.find(x=>x.bsU_ID == bsuId)?.isReregisterEnable;\r\n\r\n this.minDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 1);\r\n console.log(this.minDate);\r\n\r\n this.maxDate = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 90);\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('residentialInfo'));\r\n if(data != null){\r\n this.registerationdetails = data;\r\n\r\n if(this.registerationdetails?.EMIRATE != ''){\r\n this.addressValue =2;\r\n this.addressvalue2 = true;\r\n this.addressvalue1 = false;\r\n\r\n }else{\r\n this.addressValue =1;\r\n this.addressvalue1 = true;\r\n this.addressvalue2 = false\r\n\r\n }\r\n }else{\r\n this.addressValue =1;\r\n this.addressvalue1 = true;\r\n }\r\n\r\n \r\n let busid: any;\r\n busid = JSON.parse(localStorage.getItem('parentChildrens'));\r\n this.bsuId = busid[0].bsuId;\r\n this.aceId = busid[0].acdId\r\n this.residentialsDetails = new FormGroup({\r\n EMIRATE: new FormControl('', Validators.required),\r\n HOUSE_NO: new FormControl('', Validators.required),\r\n ADDRESS: new FormControl('', Validators.required),\r\n TPT_TYPE: new FormControl(null, Validators.required),\r\n PICKUPAREA: new FormControl(null),\r\n DROPOFFAREA: new FormControl(null),\r\n PICKUPPOINT: new FormControl(null),\r\n DROPOFFPOINT: new FormControl(null),\r\n PICKUPLOCATION: new FormControl(''),\r\n DROPOFFLOCATION: new FormControl(''),\r\n PICKUPPOINTLANDMARK: new FormControl(''),\r\n DROPOFFPOINTLANDMARK: new FormControl(''),\r\n SERVICEDATE:new FormControl('', Validators.required),\r\n });\r\n this.termsForm = new FormGroup({\r\n checkedOne: new FormControl('', Validators.required),\r\n checkedTwo: new FormControl('', Validators.required),\r\n checkedThree: new FormControl('', Validators.required)\r\n })\r\n this.getMasers();\r\n this.getSiblingDetails();\r\n this.getSchoolsList();\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n if (params?.isAgreed) {\r\n this.isAgree = params.isAgreed == \"false\" ? false : true;\r\n this.termsAgreedDetails.checkboxOne = this.isAgree;\r\n this.termsForm.patchValue({\r\n checkedOne: this.isAgree\r\n });\r\n }\r\n if (params?.checkTerms) {\r\n if(params?.checkTerms == \"true\"){\r\n let termsAgreed: any;\r\n termsAgreed = JSON.parse(localStorage.getItem('termsAgreed'));\r\n this.isAgree = termsAgreed;\r\n\r\n let termsAgreedData: any;\r\n termsAgreedData = JSON.parse(localStorage.getItem('termsForm'));\r\n if (termsAgreedData != null) {\r\n this.termsForm.patchValue({\r\n checkedOne: this.isAgree,\r\n checkedTwo: termsAgreedData?.checkboxTwo,\r\n checkedThree: termsAgreedData?.checkboxThree\r\n });\r\n this.termsAgreedDetails.checkboxTwo = termsAgreedData?.checkboxTwo;\r\n this.termsAgreedDetails.checkboxThree = termsAgreedData?.checkboxThree;\r\n }\r\n\r\n let undertakingData: any;\r\n undertakingData = JSON.parse(localStorage.getItem('PUTAgreed'));\r\n this.putAgreed = undertakingData;\r\n }\r\n }\r\n if (params?.parentUndertaking) {\r\n this.putAgreed = params?.parentUndertaking == \"false\" ? false : true;\r\n this.currentUser.parentUndertaking = params?.parentUndertaking == \"false\" ? false : true;\r\n }\r\n })\r\n this.geoCoder = new google.maps.Geocoder;\r\n\r\n }\r\n getPickupPoints() {\r\n\r\n if(this.selectedpickuparea1 != null && this.selectedpickuparea1 != undefined && this.selectedpickuparea1 != ''){\r\n let obj3: any = {\r\n headers: {\r\n \"master\": \"PICKUP_TPT_RR\",\r\n \"bsuid\": this.bsuId,\r\n \"param1\": \"172\",\r\n \"param2\": this.selectedpickuparea1.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj3).subscribe(res => {\r\n this.pickupareapoints = res[\"data\"];\r\n this.dropoffareapoints = res[\"data\"];\r\n this.pickupAreaList = res[\"data\"];\r\n //alert(this.pickupareapoints);\r\n })\r\n }\r\n }\r\n getDropOffPoints() {\r\n\r\n if (this.selecteddropofarea2 != null && this.selecteddropofarea2 != undefined && this.selecteddropofarea2 != '') {\r\n let obj3: any = {\r\n headers: {\r\n \"master\": \"DROP_TPT_RR\",\r\n \"bsuid\": this.bsuId,\r\n \"param1\": \"172\",\r\n \"param2\": this.selecteddropofarea2.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj3).subscribe(res => {\r\n this.dropoffareapints = res[\"data\"];\r\n this.dropoffPointData = res[\"data\"];\r\n //alert(this.pickupareapoints);\r\n })\r\n }\r\n }\r\n\r\n getMasers() {\r\n let tkn = \"\";\r\n this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n this.token = tknresult.access_token;\r\n tkn = tknresult.access_token;\r\n if (this.registerationdetails?.EMIRATE != '') {\r\n\r\n this.selecteddropofarea2=this.registerationdetails?.DROPOFFAREA\r\n this.selectedpickuparea1=this.registerationdetails?.PICKUPAREA\r\n }\r\n \r\n let obj1: any = {\r\n headers: {\r\n \"master\": \"TPT_TYPE\",\r\n \"bsuid\": this.bsuId,\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let obj2: any = {\r\n headers: {\r\n \"master\": \"TPT_CITY_M\",\r\n \"param1\": \"172\",\r\n \"bsuid\": this.bsuId,\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n this.serviceinfoService.getMaster(obj1).subscribe(res => {\r\n\r\n this.transportTypes = res[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n this.transportTypes.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n\r\n\r\n this.serviceinfoService.getMaster(obj2).subscribe(res => {\r\n\r\n this.emirates = res[\"data\"];\r\n this.emirates.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n \r\n if (this.registerationdetails?.EMIRATE != '') {\r\n\r\n this.getAreaBasedOnCity(this.registerationdetails?.EMIRATE);\r\n\r\n this.residentialsDetails.patchValue({\r\n EMIRATE: this.registerationdetails?.EMIRATE,\r\n HOUSE_NO: this.registerationdetails?.HOUSE_NO,\r\n ADDRESS: this.registerationdetails?.ADDRESS,\r\n TPT_TYPE: this.registerationdetails?.TPT_TYPE ,\r\n PICKUPAREA: this.registerationdetails?.PICKUPAREA == \"0\"? 0:this.registerationdetails?.PICKUPAREA,\r\n DROPOFFAREA: this.registerationdetails?.DROPOFFAREA== \"0\"? 0:this.registerationdetails?.DROPOFFAREA,\r\n PICKUPPOINT: this.registerationdetails?.PICKUPPOINT,\r\n DROPOFFPOINT: this.registerationdetails?.DROPOFFPOINT,\r\n PICKUPLOCATION: this.registerationdetails?.PICKUPLOCATION,\r\n DROPOFFLOCATION: this.registerationdetails?.DROPOFFLOCATION,\r\n PICKUPPOINTLANDMARK: this.registerationdetails?.PICKUPPOINTLANDMARK,\r\n DROPOFFPOINTLANDMARK: this.registerationdetails?.DROPOFFPOINTLANDMARK,\r\n SERVICEDATE:this.registerationdetails?.SERVICEDATE\r\n });\r\n\r\n this.latitude=this.registerationdetails?.picklat\r\n this.longitude=this.registerationdetails?.picklog\r\n this.latitudeDrop=this.registerationdetails?.droplat\r\n this.longitudeDrop=this.registerationdetails?.droplog\r\n\r\n this.selectedpickuppoint=this.registerationdetails?.PICKUPPOINT;\r\n this.selecteddropoffpoint=this.registerationdetails?.DROPOFFPOINT;\r\n\r\n this.pickuplocation=this.registerationdetails?.pickuplocation;\r\n this.dropofflocation=this.registerationdetails?.dropofflocation;\r\n\r\n let tptdata =[];\r\n tptdata = this.transportTypes.filter(x=>x.id == this.registerationdetails?.TPT_TYPE);\r\n\r\n if(this.registerationdetails?.TPT_TYPE == '0'){\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n }\r\n if(this.registerationdetails?.TPT_TYPE == '1'){\r\n this.isPickupOnly = true;\r\n this.isDropOnly = false;\r\n }\r\n if(this.registerationdetails?.TPT_TYPE == '2'){\r\n this.isPickupOnly = false;\r\n this.isDropOnly = true;\r\n }\r\n\r\n //this.getOthersDetails();\r\n if(this.selectedpickuparea1!=null ||this.selectedpickuparea1!=''){\r\n this.getPickupPoints();\r\n }\r\n if(this.selecteddropofarea2!=null ||this.selecteddropofarea2!=''){\r\n this.getDropOffPoints();\r\n }\r\n } else {\r\n this.residentialsDetails = new FormGroup({\r\n EMIRATE: new FormControl('', Validators.required),\r\n HOUSE_NO: new FormControl('', Validators.required),\r\n ADDRESS: new FormControl('', Validators.required),\r\n TPT_TYPE: new FormControl(null, Validators.required),\r\n PICKUPAREA: new FormControl(null),\r\n DROPOFFAREA: new FormControl(null),\r\n PICKUPPOINT: new FormControl(null),\r\n DROPOFFPOINT: new FormControl(null),\r\n PICKUPLOCATION: new FormControl(''),\r\n DROPOFFLOCATION: new FormControl(''),\r\n PICKUPPOINTLANDMARK: new FormControl(''),\r\n DROPOFFPOINTLANDMARK: new FormControl(''),\r\n SERVICEDATE:new FormControl('', Validators.required),\r\n\r\n });\r\n }\r\n\r\n let medData: any;\r\n medData = JSON.parse(localStorage.getItem('medicalInfo'));\r\n if (medData != null) {\r\n this.medicalConditionDetails = medData;\r\n let medicalData = this.medicalConditionDetails?.find((x: any) => x.STU_ID == this.currentUser.stU_NO);\r\n if (medicalData?.medicalRadiobtn == '1') {\r\n this.medicalConditionExists = true;\r\n this.medicalConditionForm[this.currentUser.stU_NO] = this.createMedicalFormGroup();\r\n this.medicalConditionForm[this.currentUser.stU_NO].patchValue({\r\n medicalRadiobtn: medicalData.medicalRadiobtn,\r\n medicalDesc: medicalData.medicalDesc,\r\n count: medicalData.medicalDesc.length,\r\n medicalRadiobtn2: medicalData.medicalRadiobtn2,\r\n medicalDesc2: medicalData.medicalDesc2,\r\n count2: medicalData.medicalDesc2.length,\r\n promptEnable: medicalData.medicalDesc2.length >= 15\r\n });\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n checkTPTType(value) {\r\n if (value == \"1\") {\r\n this.isParentTaking = false;\r\n }\r\n else {\r\n this.isParentTaking = true;\r\n }\r\n\r\n let data: any[];\r\n data = this.transportTypes.filter(x => x.id == value);\r\n this.tptType = data[0].id\r\n if (data[0].id == 0 ) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n this.selectedpickuppoint='';\r\n this.selecteddropoffpoint=''\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n\r\n }\r\n if (data[0].id == 1) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = false;\r\n this.selectedpickuppoint=''\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].clearValidators();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].clearValidators();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].clearValidators();\r\n }\r\n if (data[0].id == 2) {\r\n this.isPickupOnly = false;\r\n this.isDropOnly = true;\r\n this.selecteddropoffpoint =''\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPAREA'].clearValidators();\r\n this.residentialsDetails.controls['PICKUPPOINT'].clearValidators();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].clearValidators();\r\n }\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsPristine();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].markAsPristine();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPPOINT'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPPOINT'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].markAsPristine();\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINT: '',\r\n PICKUPAREA: '',\r\n PICKUPPOINTLANDMARK: '',\r\n DROPOFFAREA: '',\r\n DROPOFFPOINTLANDMARK: '',\r\n DROPOFFPOINT: ''\r\n })\r\n this.selectedpickuparea1 = ''\r\n this.selecteddropofarea2 = ''\r\n this.getOthersDetails()\r\n\r\n }\r\n openInfoWindow(marker: MapMarker) {\r\n // this is called when the marker is clicked.\r\n this.infoWindow.open(marker);\r\n }\r\n\r\n getCurrentLocation(value) {\r\n navigator.geolocation.getCurrentPosition(\r\n (position: GeolocationPosition) => {\r\n console.log(position);\r\n \r\n\r\n const point: google.maps.LatLngLiteral = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n };\r\n if(value == 'pick'){\r\n this.center1 = point;\r\n // this.dropofflocation= data[0].descr\r\n this.markers = []; \r\n // Add a marker for the selected location \r\n this.markers.push({position: this.center1,label: '',title: '',options: { animation: google.maps.Animation.DROP \r\n } \r\n });\r\n this.latitude = position.coords.latitude;\r\n this.longitude = position.coords.longitude;\r\n this.PickupgetAddress(position.coords.latitude,position.coords.longitude)\r\n }else{\r\n this.center2 = point;\r\n // this.dropofflocation= data[0].descr\r\n this.markers1 = []; \r\n // Add a marker for the selected location \r\n this.markers1.push({position: this.center2,label: '',title: '',options: { animation: google.maps.Animation.DROP \r\n } \r\n });\r\n this.latitudeDrop = position.coords.latitude;\r\n this.longitudeDrop = position.coords.longitude;\r\n this.DropoffgetAddress(position.coords.latitude,position.coords.longitude)\r\n }\r\n console.log(point);\r\n \r\n this.mapCenter = new google.maps.LatLng(point);\r\n this.map.panTo(point);\r\n\r\n this.markerInfoContent = \"I'm here!\";\r\n\r\n this.markerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n },\r\n (error) => {\r\n\r\n\r\n if (error.PERMISSION_DENIED) {\r\n // alert(\"Couldn't get your location Permission denied\");\r\n } else if (error.POSITION_UNAVAILABLE) {\r\n // alert(\r\n // \"Couldn't get your location Position unavailable\"\r\n // );\r\n } else if (error.TIMEOUT) {\r\n // alert(\"Couldn't get your location 'Timed out'\");\r\n } else {\r\n // alert(error.message);\r\n }\r\n },\r\n { enableHighAccuracy: true }\r\n );\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n });\r\n }\r\n previous() {\r\n this.onTabChange.emit(1);\r\n }\r\n\r\n eventHandler(event: any, name: string) {\r\n\r\n // Add marker on double click event\r\n if (name === 'mapDblclick' || name === 'mapClick') {\r\n this.dropMarker(event)\r\n }\r\n }\r\n @ViewChild('myGoogleMap', { static: false })\r\n map!: GoogleMap;\r\n @ViewChild(MapInfoWindow, { static: false })\r\n info!: MapInfoWindow;\r\n zoom = 20;\r\n maxZoom = 20;\r\n minZoom = 3;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n latitudeDrop: number = 0;\r\n longitudeDrop: number = 0;\r\n center!: google.maps.LatLngLiteral;\r\n center1!: google.maps.LatLngLiteral;\r\n center2!: google.maps.LatLngLiteral;\r\n options: google.maps.MapOptions = {\r\n zoomControl: false,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n mapTypeId: 'hybrid',\r\n maxZoom: this.maxZoom,\r\n minZoom: this.minZoom,\r\n }\r\n markers = [] as any;\r\n infoContent = ''\r\n dropMarker(event: any) {\r\n if(this.mapOpenedFrom == 'pick'){\r\n\r\n this.latitude = event.latLng.lat();\r\n this.longitude = event.latLng.lng();\r\n this.PickupgetAddress(this.latitude,this.longitude)\r\n if(this.tptType ==0){\r\n this.latitudeDrop = this.latitude;\r\n this.longitudeDrop = this.longitude;\r\n \r\n }\r\n this.markers = [];\r\n this.markers.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (this.markers.length + 1),\r\n },\r\n title: 'Marker title ' + (this.markers.length + 1),\r\n info: 'Marker info ' + (this.markers.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n }else{\r\n this.latitudeDrop = event.latLng.lat();\r\n this.longitudeDrop = event.latLng.lng();\r\n this.markers1 = [];\r\n this.markers1.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (this.markers1.length + 1),\r\n },\r\n title: 'Marker title ' + (this.markers1.length + 1),\r\n info: 'Marker info ' + (this.markers1.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.DropoffgetAddress(this.latitudeDrop,this.longitudeDrop)\r\n }\r\n\r\n \r\n \r\n \r\n }\r\n openInfo(marker: MapMarker, content: string) {\r\n this.infoContent = content;\r\n this.info.open(marker)\r\n }\r\n zoomIn() {\r\n if (this.zoom < this.maxZoom) this.zoom++;\r\n }\r\n\r\n zoomOut() {\r\n if (this.zoom > this.minZoom) this.zoom--;\r\n }\r\n\r\n getGeoLocation(value, name, event) {\r\n console.log(value, event);\r\n let data: any = [];\r\n data.push({\r\n SBLID: this.residentialsDetails.value.PICKUPAREA,\r\n });\r\n\r\n // if(this.tptType == \"Round Trip\"){\r\n\r\n // this.residentialsDetails.patchValue({\r\n // 'DROPOFFAREA':this.residentialsDetails.controls['PICKUPAREA'].value\r\n // })\r\n // }\r\n\r\n // else{\r\n // this.residentialsDetails.patchValue({\r\n // 'DROPOFFAREA':''\r\n // })\r\n // }\r\n this.currentUser.feedetails=[];\r\n this.currentUser.currentfeedetails=0;\r\n this.totalSiblingsValue=0;\r\n \r\n \r\n if (name == 'parea') {\r\n \r\n this.selectedpickuparea = \"Pickup Area: \" + event.source.triggerValue;\r\n this.selectedpickuparea1 = value;\r\n let data :any[]=[];\r\n data = this.pickuppoints.filter(x=>x.id == value);\r\n console.log(data);\r\n if ((data[0].lat == 0 && data[0].long == 0) || (data[0].lat == null && data[0].long == null)) {\r\n this.getCurrentLocation('pick');\r\n } else {\r\n this.latitude = Number(data[0].lat);\r\n this.longitude = Number(data[0].long);\r\n this.center1 = { lat: Number(data[0].lat), lng: Number(data[0].long) };\r\n\r\n this.pickuplocation = data[0].descr\r\n this.markers = [];\r\n // Add a marker for the selected location \r\n this.markers.push({\r\n position: this.center1, label: '', title: data[0].descr, options: {\r\n animation: google.maps.Animation.DROP\r\n }\r\n });\r\n }\r\n this.getOthersDetails()\r\n this.getPickupPoints();\r\n }\r\n if (name == 'darea') {\r\n if(this.tptType == 0)\r\n {\r\n if(this.residentialsDetails.controls['PICKUPAREA'].value == this.residentialsDetails.controls['DROPOFFAREA'].value)\r\n this.dropoffAreaErrMsg=false\r\n else this.dropoffAreaErrMsg=true\r\n }\r\n this.selecteddropoffarea = \"Drop off Area: \" + event.source.triggerValue;\r\n\r\n this.selecteddropofarea2 = value;\r\n let data :any[]=[];\r\n data = this.pickuppoints.filter(x=>x.id == value);\r\n console.log(data);\r\n if(data[0].lat == 0 && data[0].long == 0){\r\n this.getCurrentLocation('drop');\r\n }else{\r\n this.latitudeDrop = Number(data[0].lat);\r\n this.longitudeDrop = Number(data[0].long);\r\n this.center2 = { lat: Number(data[0].lat), lng: Number(data[0].long) };\r\n this.dropofflocation= data[0].descr\r\n this.markers1 = []; \r\n // Add a marker for the selected location \r\n this.markers1.push({position: this.center2,label: '',title: data[0].descr,options: { animation: google.maps.Animation.DROP \r\n } \r\n });\r\n }\r\n \r\n this.getOthersDetails()\r\n this.getDropOffPoints();\r\n }\r\n if (value != null && value != -1)\r\n this.registrationService.getGeoLocation(this.token, data).subscribe(res => {\r\n if (name == 'parea') {\r\n\r\n this.residentialsDetails.controls['PICKUPLOCATION'].setValue(`${res?.data?.sbL_LAT} , ${res?.data?.sbL_LONG}`)\r\n }\r\n else {\r\n this.selecteddropofarea2 = value;\r\n this.residentialsDetails.controls['DROPOFFLOCATION'].setValue(`${res?.data?.sbL_LAT} , ${res?.data?.sbL_LONG}`)\r\n\r\n }\r\n })\r\n }\r\n getFeeStructure() {\r\n\r\n let data: any = [];\r\n data.push({\r\n stU_CURR_ACD_ID: this.currentUser.stU_NEXT_ACD_ID ?? 0,\r\n stU_BSU_ID: this.currentUser.stU_BSU_ID ?? 0,\r\n TRIPTYPE: this.residentialsDetails.value.TPT_TYPE ?? 0,\r\n SBLID: Number(this.residentialsDetails.value.PICKUPAREA ?? 0),\r\n DSBLID: Number(this.residentialsDetails.value.DROPOFFAREA ?? 0),\r\n STU_ID:this.currentUser.stU_NO,\r\n PROVIDER_BSU_ID:this.currentUser.provideR_BSU_ID,\r\n TRM_STARTDT:this.currentUser.reT_TERM_START_DATE,\r\n SSV_STARTDT:this.currentUser.reT_SSDATE\r\n })\r\n this.getFeeDetailsCurrentUser(data, '')\r\n }\r\n getFeeDetailsSiblings(data, value?: any) {\r\n \r\n this.reregistrationService.getFeeAmount(data).subscribe(res => {\r\n if (res.data > 0) {\r\n this.IsCloseFee = true\r\n } else {\r\n this.IsCloseFee = false\r\n\r\n }\r\n \r\n \r\n value.feedetails = res.data;\r\n console.log(value.currentfeedetails\r\n );\r\n value.feedetails?.forEach(ele=>{\r\n value.currentfeedetails= value.currentfeedetails +\r\n ele.amount\r\n })\r\n console.log(this.siblingList);\r\n this.totalSiblingsValue = 0;\r\n \r\n this.siblingsList = this.siblingsList.filter(x => x.checked == true);\r\n console.log(this.siblingsList);\r\n console.log(this.currentUser);\r\n \r\n this.siblingsList.forEach(ele=>{\r\n \r\n this.totalSiblingsValue = this.totalSiblingsValue + ele.currentfeedetails\r\n })\r\n \r\n\r\n\r\n\r\n })\r\n }\r\n getFeeDetailsCurrentUser(data, value?: any) {\r\n if(this.isPaymentEnable != 1 && this.isHybrid != 1){\r\n this.reregistrationService.getFeeAmount(data).subscribe(res => {\r\n if (res.data > 0) {\r\n this.IsCloseFee = true\r\n } else {\r\n this.IsCloseFee = false\r\n \r\n }\r\n \r\n \r\n this.tptFee = res.data;\r\n let splitFee=this.tptFee;\r\n let mergeFee=[];\r\n let acdYr=JSON.parse(localStorage.getItem(\"transportChildInfo\"))[0]?.currentAcademicYear?.split(\" \");\r\n let feeTptDesc=\"Transport Fee (Bus fees for the academic year \"+this.currentUser.newterM_DESCR +\")\"\r\n let feeOutDesc=\"Fee outstanding for previous term\"\r\n let amt:any=0\r\n let outstandingAmt:any=0;\r\n let outCount=0;\r\n let tptcount=0;\r\n splitFee.forEach(x=>{\r\n mergeFee.push({ amount: x.amount, feE_DESCR: x.feE_DESCR })\r\n })\r\n this.currentUser.feedetails= mergeFee;\r\n this.tptFee.forEach(ele=>{\r\n this.currentUser.currentfeedetails= this.currentUser.currentfeedetails +\r\n ele.amount\r\n })\r\n \r\n })\r\n }\r\n \r\n }\r\n openMap(template: TemplateRef, value: any) {\r\n this.mapOpenedFrom = value;\r\n\r\n this.dialog.open(template, {\r\n disableClose: true,\r\n width: '1040px',\r\n panelClass: ['custom-modalbox', 'mapPopup']\r\n });\r\n }\r\n\r\n close() {\r\n this.dialog.closeAll();\r\n this.searchInput = '',\r\n this.predictions=[];\r\n }\r\n checkPickupArea(name,event)\r\n {\r\n if (this.tptType == 0) {\r\n if(this.residentialsDetails.controls['PICKUPAREA'].value !=''){\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFAREA': this.residentialsDetails.controls['PICKUPAREA'].value\r\n })\r\n this.getGeoLocation(this.residentialsDetails.controls['PICKUPAREA'].value,name,event);\r\n }\r\n else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFAREA': ''\r\n })\r\n }\r\n }\r\n }\r\n checkPickupPoint() {\r\n if (this.tptType == 0) {\r\n if(this.residentialsDetails.controls['DROPOFFAREA'].value !=''){\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': this.residentialsDetails.controls['PICKUPPOINT'].value\r\n })\r\n this.isDropOnly=true;\r\n this.selecteddropoffpoint= this.residentialsDetails.controls['PICKUPPOINT'].value\r\n }\r\n \r\n } else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': ''\r\n })\r\n this.residentialsDetails.controls['SERVICEDATE'].setValue(this.datePipe.transform(this.currentUser.reT_SSDATE, 'yyyy-MM-dd'))\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsDirty();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsTouched();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsPristine();\r\n }\r\n console.log(this.residentialsDetails.value);\r\n }\r\n closeFee() {\r\n this.IsCloseFee = false\r\n }\r\n\r\n clearAreaSearch(type: any){\r\n if(type == 'pickupArea'){\r\n this.pickuppoints = this.pickupPointList;\r\n }else if(type == 'dropoffArea'){\r\n this.dropoffpoints = this.pickupPointList;\r\n }\r\n }\r\n\r\n clearPointSearch(type:any){\r\n if (type == 'pickupPoint') {\r\n this.pickupareapoints = this.pickupAreaList;\r\n } else if (type == 'dropoffPoint') {\r\n this.dropoffareapints = this.dropoffPointData;\r\n }\r\n }\r\n\r\n clearSearchValue(event:any){\r\n event.target.value = '';\r\n }\r\n\r\n onKey(value) {\r\n this.pickuppoints = this.search(value);\r\n }\r\n search(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.pickuppoints = this.pickupPointList\r\n }\r\n\r\n\r\n }\r\n onKeyPoint(value) {\r\n this.dropoffpoints = this.searchPoint(value);\r\n }\r\n searchPoint(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffpoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffpoints = this.pickupPointList\r\n }\r\n\r\n\r\n }\r\n onkeypickarea(value) {\r\n this.pickupareapoints = this.searchpickarea(value);\r\n }\r\n searchpickarea(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.pickupareapoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.pickupareapoints = this.pickupAreaList\r\n }\r\n\r\n\r\n }\r\n onKeyArea(value) {\r\n this.dropoffpoints = this.searchArea(value);\r\n }\r\n searchArea(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffpoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffpoints = this.pickupAreaList\r\n }\r\n\r\n\r\n }\r\n\r\n onkeyDropOffPoint(value) {\r\n this.dropoffareapints = this.searchDropOffPoints(value);\r\n }\r\n searchDropOffPoints(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffareapints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffareapints = this.pickupAreaList\r\n }\r\n }\r\n\r\n getOthersDetails() {\r\n if (this.selectedpickuppoint == -1) {\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n // this.latitude = 0;\r\n // this.longitude = 0;\r\n \r\n } else {\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].clearValidators();\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINTLANDMARK: ''\r\n })\r\n this.latitude = 0;\r\n this.longitude = 0;\r\n \r\n }\r\n\r\n if (this.selecteddropoffpoint == -1) {\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n // this.latitudeDrop = 0;\r\n // this.longitudeDrop = 0;\r\n \r\n } else {\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].clearValidators();\r\n this.residentialsDetails.patchValue({\r\n DROPOFFPOINTLANDMARK: ''\r\n })\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n \r\n }\r\n }\r\n\r\n getSiblings(event, data, prepoulate: boolean) {\r\n \r\n let checked = event?.checked;\r\n if(prepoulate){\r\n checked = true;\r\n\r\n if(data.stS_MED){\r\n this.medicalConditionExists = true;\r\n }\r\n }\r\n data.checked = checked;\r\n this.siblingsList = this.siblingsList.filter(x => x.checked == true);\r\n\r\n if(checked == false){\r\n data.feedetails=[];\r\n data.currentfeedetails =0;\r\n this.totalSiblingsValue = 0;\r\n \r\n console.log(this.siblingsList);\r\n console.log(this.currentUser);\r\n \r\n this.siblingsList.forEach(ele=>{\r\n \r\n this.totalSiblingsValue = this.totalSiblingsValue + ele.currentfeedetails\r\n })\r\n }else{\r\n let feedata: any[] = [];\r\n feedata.push({\r\n stU_CURR_ACD_ID: data.stU_NEXT_ACD_ID ?? 0,\r\n stU_BSU_ID: data.stU_BSU_ID ?? 0,\r\n TRIPTYPE: data.reT_ROUNDTRIP ?? 0,\r\n SBLID: data.pickuP_SBL_ID ?? 0,\r\n DSBLID: data.dropofF_SBL_ID ?? 0,\r\n STU_ID:data.stU_NO,\r\n PROVIDER_BSU_ID:data.provideR_BSU_ID,\r\n TRM_STARTDT:data.reT_TERM_START_DATE,\r\n SSV_STARTDT:data.reT_SSDATE\r\n })\r\n this.getFeeDetailsSiblings(feedata, data)\r\n\r\n this.medicalConditionForm[data.stU_NO]=this.createMedicalFormGroup();\r\n if(data.stS_MED){\r\n this.medicalConditionExists = true;\r\n }\r\n this.medicalConditionForm[data.stU_NO].patchValue({\r\n medicalRadiobtn: data.stS_MED ? '1' : '2',\r\n medicalDesc:data.stS_MEDICAL_CONDITION,\r\n count: data.stS_MEDICAL_CONDITION?.length ?? 0,\r\n medicalRadiobtn2: data.stS_MED_STAFF_REQUIRED ? '1' : '2',\r\n medicalDesc2: data.stS_MED_STAFF_REQUIRED_DESC,\r\n count2: data.stS_MED_STAFF_REQUIRED_DESC?.length ?? 0,\r\n promptEnable: data.stS_MED_STAFF_REQUIRED_DESC?.length >= 15\r\n });\r\n \r\n let medData: any;\r\n medData = JSON.parse(localStorage.getItem('medicalInfo'));\r\n let formIndex = medData?.findIndex((x: any) => x.STU_ID == data.stU_NO);\r\n\r\n if (formIndex != null && formIndex != undefined && formIndex != -1) {\r\n medData.forEach((x: any) => {\r\n if (x.STU_ID == data.stU_NO) {\r\n this.medicalConditionExists = x.medicalRadiobtn =='1' ? true : false;\r\n this.medicalConditionForm[data.stU_NO].patchValue({\r\n medicalRadiobtn: x.medicalRadiobtn,\r\n medicalDesc:x.medicalDesc,\r\n count: x.medicalDesc?.length ?? 0,\r\n medicalRadiobtn2: x.medicalRadiobtn2,\r\n medicalDesc2: x.medicalDesc2,\r\n count2: x.medicalDesc2?.length ?? 0,\r\n promptEnable: x.medicalDesc2?.length >= 15\r\n });\r\n }\r\n });\r\n } else {\r\n this.medicalConditionDetails.push({\r\n medicalRadiobtn: data.stS_MED ? '1' : '2',\r\n medicalDesc: data.stS_MEDICAL_CONDITION,\r\n medicalRadiobtn2: data.stS_MED_STAFF_REQUIRED ? '1' : '2',\r\n medicalDesc2: data.stS_MED_STAFF_REQUIRED_DESC,\r\n STU_ID: data.stU_NO\r\n });\r\n }\r\n\r\n\r\n this.reregistrationService.getTermsAndConditionsByGrade(data.stU_NEXT_GRADE, data.stU_BSU_ID).subscribe((res: any) => {\r\n\r\n let putPdfs = res?.data;\r\n this.siblingParentUndertakings = putPdfs;\r\n var parentUndertaking = putPdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\");\r\n if (parentUndertaking.length > 0) {\r\n data.isParentTaking = true;\r\n // let grd = data.stU_NEXT_GRADE;\r\n // const bArray: string[] = parentUndertaking[0].ttcuL_GRD_IDS.split(\",\");\r\n // const containsA: boolean = bArray.includes(grd);\r\n // this.isGrade = containsA;\r\n // data.showParentUndertaking = containsA;\r\n data.showParentUndertaking = true;\r\n }\r\n else {\r\n data.isParentTaking = false;\r\n data.showParentUndertaking = false;\r\n }\r\n\r\n let putAgreed = JSON.parse(localStorage.getItem('siblingPUTAgreed'));\r\n if (putAgreed) {\r\n let siblingIds = JSON.parse(localStorage.getItem('selectedSiblings'));\r\n siblingIds?.forEach((y: any) => {\r\n if (data.stU_NO == y) {\r\n data.parentUndertaking = true;\r\n }\r\n });\r\n }\r\n });\r\n \r\n this.siblingsList.push(data);\r\n\r\n\r\n if(!prepoulate){\r\n let selectedSiblings = this.siblingsList.map((x:any) => x.stU_NO);\r\n \r\n localStorage.setItem('selectedSiblings', JSON.stringify(selectedSiblings));\r\n }\r\n }\r\n console.log(this.siblingsList);\r\n \r\n \r\n console.log(this.totalSiblingsValue);\r\n \r\n }\r\n onDateInputed(event, type) {\r\n console.log(event, type)\r\n }\r\n addSiblingDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n // this.siblingList =\r\n }\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n // this.save(templateRef)\r\n }\r\n parentUndertakingDialog(templateRef: TemplateRef, data) {\r\n\r\n this.siblingPDF = data.termS_UNDERTAKING_URL;\r\n this.siblingPDF_s=this.siblingPDF.replace(\"http://\",\"https://\");\r\n // data.parentUndertaking\r\n if(data.parentUndertaking == true){\r\n this.digopenParent = this.dialog.open(templateRef, {\r\n width: '1400px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n this.checkvalidation()\r\n }\r\n navigatetolink(lnk) {\r\n if (this.isAgree != true)\r\n this.router.navigate([lnk]);\r\n }\r\n getSiblingDetails() {\r\n this.reregistrationService.getSiblingDetails().subscribe(\r\n res => {\r\n let data = [];\r\n res?.data.forEach(x=>{\r\n x.busNo = \"Pick-up: \"+ (x.onwardbus ?? \"NA\")+\" / \"+\"Drop-off: \"+ (x.returnbus ?? \"NA\")\r\n })\r\n\r\n let studentId = localStorage.getItem('selectedstudentid');\r\n\r\n this.currentUser =res?.data.find((x:any) => x.stU_NO == studentId);\r\n\r\n localStorage.setItem('nextAcademicYearId', this.currentUser.stU_NEXT_ACD_ID);\r\n\r\n this.parentUndertakingFile = this.currentUser?.termS_UNDERTAKING_URL\r\n \r\n \r\n if(this.currentUser.reT_BLOCKSSDATE ==1){\r\n let date :any;\r\n date = new Date(this.currentUser.reT_TERM_START_DATE)\r\n this.minDate = new Date(date.getFullYear(), new Date(date).getMonth(), new Date(date).getDate());\r\n console.log(this.minDate);\r\n this.maxDate = new Date(date.getFullYear(), new Date(date).getMonth(), new Date(date).getDate() + 90);\r\n console.log(this.minDate);\r\n\r\n }\r\n res.data.forEach(x=>{\r\n let value = this.transportData.find(y=>x.stU_NO == y.studentNo)?.reregistered;\r\n if(value)\r\n {\r\n x.childDisable = value == 0 ? false : true\r\n }\r\n })\r\n this.siblingList = res?.data;\r\n let status :any;\r\n status = this.siblingList.filter(x=>x.reT_STATUS_CLOSED_MESSAGE != \"\")\r\n if(this.siblingList.length == 1 && status.length == 1 ){\r\n this.isConfirmProceed = true;\r\n }else{\r\n this.isConfirmProceed =false;\r\n\r\n }\r\n if(this.siblingList.length > 1 ){\r\n this.isConfirmProceed =false;\r\n }\r\n this.currentUser.pickuparea = this.pickupdropdata(this.currentUser.stU_PICKUP_DROPOFF_LOCATION, 'pickuparea')\r\n this.currentUser.dropoffarea = this.pickupdropdata(this.currentUser.stU_PICKUP_DROPOFF_LOCATION, 'dropoffarea')\r\n this.currentUser.pickuppoint = this.pickupdropdata(this.currentUser.stU_PICKUP_DROPOFF_POINT, 'pickuppoint')\r\n this.currentUser.dropoffpoint = this.pickupdropdata(this.currentUser.stU_PICKUP_DROPOFF_POINT, 'dropoffpoint'),\r\n localStorage.setItem(\"selecteddropoffarea\",this.currentUser.dropoffpoint );\r\n this.currentUser.triptype = this.currentUser.reT_ROUNDTRIP == 0 ? this.transportTypes.find(x=>x.id == 0)?.descr : this.currentUser.reT_ROUNDTRIP == 1 ? this.transportTypes.find(x=>x.id == 1)?.descr : this.transportTypes.find(x=>x.id == 2)?.descr,\r\n this.currentUser.feedetails = [];\r\n this.currentUser.currentfeedetails = 0;\r\n this.currentUser.parentUndertaking = false;\r\n\r\n if (this.currentUser.reT_ROUNDTRIP == \"1\") {\r\n this.isParentTaking = false;\r\n }\r\n else {\r\n this.isParentTaking = true;\r\n }\r\n\r\n let feedata: any[] = [];\r\n feedata.push({\r\n stU_CURR_ACD_ID: this.currentUser.stU_NEXT_ACD_ID ?? 0,\r\n stU_BSU_ID: this.currentUser.stU_BSU_ID ?? 0,\r\n TRIPTYPE: this.currentUser.reT_ROUNDTRIP ?? 0,\r\n SBLID: this.currentUser.pickuP_SBL_ID ?? 0,\r\n DSBLID: this.currentUser.dropofF_SBL_ID ?? 0,\r\n STU_ID:this.currentUser.stU_NO ?? 0,\r\n PROVIDER_BSU_ID:this.currentUser.provideR_BSU_ID?? 0,\r\n TRM_STARTDT:this.currentUser.reT_TERM_START_DATE?? '',\r\n SSV_STARTDT:this.currentUser.reT_SSDATE?? ''\r\n })\r\n console.log(this.siblingList);\r\n \r\n this.siblingList.forEach(ele => { \r\n\r\n ele.checked = false;\r\n ele.pickuparea = this.pickupdropdata(ele.stU_PICKUP_DROPOFF_LOCATION, 'pickuparea')\r\n ele.dropoffarea = this.pickupdropdata(ele.stU_PICKUP_DROPOFF_LOCATION, 'dropoffarea')\r\n ele.pickuppoint = this.pickupdropdata(ele.stU_PICKUP_DROPOFF_POINT, 'pickuppoint')\r\n ele.dropoffpoint = this.pickupdropdata(ele.stU_PICKUP_DROPOFF_POINT, 'dropoffpoint'),\r\n ele.triptype = ele.reT_ROUNDTRIP == 0 ? 'Two-way' : ele.reT_ROUNDTRIP == 1 ? 'One-way, Home to School' : 'One-way, School to Home',\r\n ele.feedetails = [],\r\n ele.currentfeedetails = 0,\r\n ele.parentUndertaking = false\r\n })\r\n \r\n this.siblingList.forEach((x:any) => {\r\n if(x.stU_NO == studentId){\r\n x.checked = true;\r\n }\r\n });\r\n \r\n // let users:any;\r\n // users = JSON.parse(localStorage.getItem('reregisterUsers'));\r\n // if(users!=null){\r\n // this.currentUser.parentUndertaking = users[0].parentUndertaking;\r\n // let siblinglist=[];\r\n\r\n // siblinglist = users?.shift();\r\n // if(siblinglist.length > 0){\r\n // this.siblingList.forEach(ele=>{\r\n\r\n // siblinglist.forEach(ele1=>{\r\n // if(ele.stU_NO == ele1.stU_NO){\r\n // ele.parentUndertaking = ele1.parentUndertaking;\r\n // }\r\n // })\r\n // })\r\n // }\r\n // }\r\n \r\n if(this.putAgreed){\r\n this.currentUser.parentUndertaking = this.putAgreed;\r\n }\r\n \r\n this.getFeeDetailsCurrentUser(feedata, '');\r\n console.log(this.siblingList);\r\n this.reT_BLOCKSSDATE =this.datePipe.transform(this.currentUser.reT_SSDATE, 'yyyy-MM-dd');\r\n this.residentialsDetails.controls['SERVICEDATE'].setValue(this.datePipe.transform(this.currentUser.reT_SSDATE, 'yyyy-MM-dd'))\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsDirty();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsTouched();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsPristine();\r\n console.log(this.residentialsDetails.value);\r\n\r\n this.medicalConditionForm[this.currentUser.stU_NO]=this.createMedicalFormGroup();\r\n \r\n if(this.currentUser.stS_MED){\r\n this.medicalConditionExists = true;\r\n }\r\n\r\n this.medicalConditionForm[this.currentUser.stU_NO].patchValue({\r\n medicalRadiobtn: this.currentUser.stS_MED ? '1' : '2',\r\n medicalDesc:this.currentUser.stS_MEDICAL_CONDITION,\r\n count: this.currentUser.stS_MEDICAL_CONDITION?.length ?? 0,\r\n medicalRadiobtn2: this.currentUser.stS_MED_STAFF_REQUIRED ? '1' : '2',\r\n medicalDesc2: this.currentUser.stS_MED_STAFF_REQUIRED_DESC,\r\n count2: this.currentUser.stS_MED_STAFF_REQUIRED_DESC?.length ?? 0,\r\n promptEnable: this.currentUser.stS_MED_STAFF_REQUIRED_DESC?.length >= 15\r\n });\r\n\r\n let formIndex = this.medicalConditionDetails.findIndex((x: any) => x.STU_ID == this.currentUser.stU_NO);\r\n\r\n if (formIndex != -1) {\r\n this.medicalConditionDetails.forEach((x: any) => {\r\n if (x.STU_ID == this.currentUser.stU_NO) {\r\n x.medicalRadiobtn = this.currentUser.stS_MED ? '1' : '2',\r\n x.medicalDesc = this.currentUser.stS_MEDICAL_CONDITION,\r\n x.medicalRadiobtn2 = this.currentUser.stS_MED_STAFF_REQUIRED ? '1' : '2',\r\n x.medicalDesc2 = this.currentUser.stS_MED_STAFF_REQUIRED_DESC\r\n }\r\n });\r\n } else {\r\n this.medicalConditionDetails.push({\r\n medicalRadiobtn: this.currentUser.stS_MED ? '1' : '2',\r\n medicalDesc: this.currentUser.stS_MEDICAL_CONDITION,\r\n medicalRadiobtn2: this.currentUser.stS_MED_STAFF_REQUIRED ? '1' : '2',\r\n medicalDesc2: this.currentUser.stS_MED_STAFF_REQUIRED_DESC,\r\n STU_ID: this.currentUser.stU_NO\r\n });\r\n }\r\n\r\n\r\n this.getTermsConditions(this.currentUser.stU_NEXT_GRADE, this.currentUser.stU_BSU_ID);\r\n\r\n let preselectedSibling = JSON.parse(localStorage.getItem('selectedSiblings'));\r\n\r\n if(preselectedSibling?.length > 0){\r\n preselectedSibling.forEach((x:any) => {\r\n this.getSiblings(null, res?.data.find((y:any) => y.stU_NO == x), true);\r\n });\r\n }\r\n this.checkvalidation();\r\n }\r\n )\r\n }\r\n\r\n createMedicalFormGroup(): FormGroup {\r\n return this.formBuilder.group({\r\n medicalRadiobtn: new FormControl(''),\r\n medicalDesc: new FormControl(''),\r\n medicalRadiobtn2: new FormControl(''),\r\n medicalDesc2: new FormControl(''),\r\n count: new FormControl(0),\r\n count2: new FormControl(0),\r\n minDescErr: new FormControl(false),\r\n minDescErr2: new FormControl(false),\r\n promptEnable: new FormControl(false)\r\n })\r\n }\r\n\r\n getTermsConditions(nextGradeId: any, stuBsuId: any) {\r\n\r\n this.reregistrationService.getTermsAndConditionsByGrade(nextGradeId, stuBsuId).subscribe((res: any) => {\r\n\r\n this.pdfs = res?.data\r\n this.pdfs.forEach(x => x.isAgree = false);\r\n // Specify the value to filter by\r\n\r\n\r\n // Filter the array based on the specified property and value\r\n var vtermsac = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"TNC\");\r\n if(vtermsac.length > 0)\r\n { \r\n this.tandcfilteredDatapdf = vtermsac.map(item => item.ttcul_Url_Path);\r\n this.isTerms=true;\r\n }else this.isTerms=false;\r\n\r\n var vbusb = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"BBC\");\r\n if(vbusb.length > 0)\r\n { \r\n this.BusBehaviourCodedatapdf = vbusb.map(item => item.ttcul_Url_Path);\r\n this.isBusBehavior=true;\r\n }else this.isBusBehavior=false;\r\n\r\n var parentUndertaking = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\");\r\n if(parentUndertaking.length>0)\r\n {\r\n this.parentUndertakingPdf = parentUndertaking?.map(item => item?.ttcul_Url_Path);\r\n this.isParentTaking=true;\r\n // let grd = this.siblingList.find(a => a.stU_NO == localStorage.selectedstudentid).stU_NEXT_GRADE;\r\n // const bArray: string[] = parentUndertaking[0].ttcuL_GRD_IDS.split(\",\");\r\n // const containsA: boolean = bArray.includes(grd);\r\n // this.isGrade = containsA;\r\n // this.showParentUndertaking = containsA;\r\n this.showParentUndertaking = true;\r\n }else {\r\n this.isParentTaking=false;\r\n this.showParentUndertaking = false;\r\n }\r\n\r\n })\r\n }\r\n\r\n agree()\r\n {\r\n this.digopenParent.close();\r\n }\r\n\r\n get sanitizedPdfHtml(): SafeHtml {\r\n this.pdfContent=this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent }\r\n openContent(type:any,template:any)\r\n {\r\n let data:any;\r\n data = {\r\n EMIRATE: this.residentialsDetails.value?.EMIRATE,\r\n HOUSE_NO: this.residentialsDetails.value?.HOUSE_NO,\r\n ADDRESS: this.residentialsDetails.value?.ADDRESS,\r\n TPT_TYPE: this.residentialsDetails.value?.TPT_TYPE ,\r\n PICKUPAREA: this.residentialsDetails.value?.PICKUPAREA == \"0\"? 0:this.residentialsDetails.value?.PICKUPAREA,\r\n DROPOFFAREA: this.residentialsDetails.value?.DROPOFFAREA== \"0\"? 0:this.residentialsDetails.value?.DROPOFFAREA,\r\n PICKUPPOINT: this.residentialsDetails.value?.PICKUPPOINT,\r\n DROPOFFPOINT: this.residentialsDetails.value?.DROPOFFPOINT,\r\n PICKUPLOCATION: this.residentialsDetails.value?.PICKUPLOCATION,\r\n DROPOFFLOCATION: this.residentialsDetails.value?.DROPOFFLOCATION,\r\n PICKUPPOINTLANDMARK: this.residentialsDetails.value?.PICKUPPOINTLANDMARK,\r\n DROPOFFPOINTLANDMARK: this.residentialsDetails.value?.DROPOFFPOINTLANDMARK,\r\n SERVICEDATE:this.residentialsDetails.value?.SERVICEDATE,\r\n picklat:this.latitude,\r\n picklog:this.longitude,\r\n droplat:this.latitudeDrop,\r\n droplog:this.longitudeDrop,\r\n pickuplocation:this.pickuplocation,\r\n dropofflocation:this.dropofflocation\r\n }\r\n localStorage.setItem('residentialInfo', JSON.stringify(data));\r\n localStorage.setItem('medicalInfo', JSON.stringify(this.medicalConditionDetails));\r\n localStorage.setItem('termsForm', JSON.stringify(this.termsAgreedDetails));\r\n\r\n if(type == 't&c')\r\n {\r\n this.pdfHtml=this.pdfs.find(item => item.ttcuL_DOC_TYPE === \"TNC\").ttcuL_PDF_HTML;\r\n this.contentTitle= \"Terms and Conditions\"\r\n }\r\n else if(type == 'busbehaviour')\r\n {\r\n this.pdfHtml=this.pdfs.find(item => item.ttcuL_DOC_TYPE === \"BBC\").ttcuL_PDF_HTML;\r\n this.contentTitle= \"Bus Behavior Code\"\r\n }\r\n else if(type == 'parentUndertaking')\r\n {\r\n let parentUndertaking = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\")\r\n let parentpdf:any\r\n if(parentUndertaking.length>1)\r\n {\r\n if(this.isGrade)\r\n {\r\n parentpdf=parentUndertaking?.find(x=> { return (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG')})\r\n }\r\n else{\r\n parentpdf=parentUndertaking.find(x=> { return !((x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG'))})\r\n }\r\n }else parentpdf=parentUndertaking[0];\r\n //this.pdfHtml=this.pdfs.find(item => item.ttcul_Url_Text === \"Parent Undertaking\").ttcuL_PDF_HTML;\r\n this.pdfHtml = parentpdf?.ttcuL_PDF_HTML;\r\n this.contentTitle= \"Parent Undertaking\"\r\n }\r\n this.contentViewer = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '850px',\r\n panelClass: ['custom-modalbox', 'rm-padding']\r\n });\r\n }\r\n closeContent()\r\n {\r\n this.contentViewer?.close();\r\n }\r\n\r\n checkTerms(value) {\r\n\r\n if(value =='1'){\r\n if (this.termsForm.value.checkedOne == false) {\r\n this.termsForm.controls['checkedOne'].setValue('');\r\n this.isAgree=false;\r\n localStorage.removeItem('termsAgreed');\r\n }\r\n if(this.termsForm.value.checkedOne == true ){\r\n this.isParentUdertakingBox=false;\r\n this.gotoTC(null, false)\r\n }\r\n }\r\n else{\r\n if (this.termsForm.value.checkedTwo == false) {\r\n this.termsForm.controls['checkedTwo'].setValue('')\r\n }\r\n if (this.termsForm.value.checkedThree == false) {\r\n this.termsForm.controls['checkedThree'].setValue('')\r\n }\r\n this.termsAgreedDetails.checkboxTwo = this.termsForm.value?.checkedTwo;\r\n this.termsAgreedDetails.checkboxThree = this.termsForm.value?.checkedThree;\r\n }\r\n\r\n\r\n this.checkvalidation()\r\n }\r\n\r\n pickupdropdata(value, type) {\r\n value = value.split('/');\r\n if (type == 'pickuparea') {\r\n return value[0]\r\n }\r\n if (type == 'dropoffarea') {\r\n return value[1]\r\n }\r\n if (type == 'pickuppoint') {\r\n return value[0]\r\n }\r\n if (type == 'dropoffpoint') {\r\n return value[1]\r\n }\r\n }\r\n ok()\r\n {\r\n this.digopen.close();\r\n this.router.navigate(['/transport-information']);\r\n }\r\n save(template){\r\n let data =[]\r\n let data1:any[]=[];\r\n data1 = [...this.siblingsList, this.currentUser];\r\n if(this.addressValue == 2){\r\n \r\n data1.forEach(ele=>{\r\n data.push(\r\n {\r\n \"RET_PROVIDER_BSU_ID\":ele.provideR_BSU_ID,\r\n \"RET_STU_BSU_ID\":ele.stU_BSU_ID,\r\n \"RET_STU_ID\":ele.stU_NO,\r\n \"RET_ACD_ID\":ele.stU_NEXT_ACD_ID,\r\n \"RET_IS_REENROLL\":true,\r\n \"RET_STATUS\":ele.reT_STATUS,\r\n \"RET_NARRATION\":\"\",\r\n \"RET_SOURCE\":\"WEB\",\r\n \"RET_OUTSTANDING_AMT\":\"0\",\r\n \"RET_REENROLL_AMT\":ele.currentfeedetails,\r\n \"RET_CHANGE_PA_ID\":this.residentialsDetails.value.PICKUPAREA,\r\n \"RET_CHANGE_PA_PNT_ID\":this.residentialsDetails.value.PICKUPPOINT,\r\n \"RET_CHANGE_DA_ID\":this.residentialsDetails.value.DROPOFFAREA,\r\n \"RET_CHANGE_DA_PNT_ID\":this.residentialsDetails.value.DROPOFFPOINT,\r\n \"RET_CHANGE_TPT_TYPE_ID\":this.residentialsDetails.value.TPT_TYPE,\r\n \"RET_CHANGE_LAT\":this.latitude +','+this.latitudeDrop,\r\n \"RET_CHANGE_LONG\":this.longitude +','+this.longitudeDrop,\r\n \"RET_ADD_INFO\":this.residentialsDetails.value.HOUSE_NO+', '+this.residentialsDetails.value.ADDRESS,\r\n \"RET_MAKANI\":\"\",\r\n \"RET_REASON_REMARKS\":\"\",\r\n \"RET_SERVICE_DATE\":this.residentialsDetails.value.SERVICEDATE,\r\n \"RFT_MED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn?.value == '1',\r\n \"RFT_MEDICAL_CONDITION\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc?.value,\r\n \"RFT_MED_STAFF_REQUIRED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn2?.value == '1',\r\n \"RFT_MED_STAFF_REQUIRED_DESC\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc2?.value,\r\n \"RFT_DA_LANDMARK\": this.residentialsDetails.value.DROPOFFPOINTLANDMARK,\r\n \"RFT_PA_LANDMARK\": this.residentialsDetails.value.PICKUPPOINTLANDMARK\r\n }\r\n )\r\n\r\n })\r\n }else{\r\n data1.forEach(ele=>{\r\n data.push(\r\n {\r\n \"RET_PROVIDER_BSU_ID\":ele.provideR_BSU_ID,\r\n \"RET_STU_BSU_ID\":ele.stU_BSU_ID,\r\n \"RET_STU_ID\":ele.stU_NO,\r\n \"RET_ACD_ID\":ele.stU_NEXT_ACD_ID,\r\n \"RET_IS_REENROLL\":true,\r\n \"RET_STATUS\":ele.reT_STATUS,\r\n \"RET_NARRATION\":\"\",\r\n \"RET_SOURCE\":\"WEB\",\r\n \"RET_OUTSTANDING_AMT\":\"0\",\r\n \"RET_REENROLL_AMT\":ele.currentfeedetails,\r\n \"RET_CHANGE_PA_ID\":ele.reT_CHANGE_PA_ID,\r\n \"RET_CHANGE_PA_PNT_ID\":0,\r\n \"RET_CHANGE_DA_ID\":ele.reT_CHANGE_DA_ID,\r\n \"RET_CHANGE_DA_PNT_ID\":0,\r\n \"RET_CHANGE_TPT_TYPE_ID\":ele.reT_ROUNDTRIP,\r\n \"RET_CHANGE_LAT\":ele.reT_LAT,\r\n \"RET_CHANGE_LONG\":ele.reT_LONG,\r\n \"RET_ADD_INFO\":\"\",\r\n \"RET_MAKANI\":\"\",\r\n \"RET_REASON_REMARKS\":\"\",\r\n \"RET_SERVICE_DATE\":this.reT_BLOCKSSDATE,\r\n \"RFT_MED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn?.value == '1',\r\n \"RFT_MEDICAL_CONDITION\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc?.value,\r\n \"RFT_MED_STAFF_REQUIRED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn2?.value == '1',\r\n \"RFT_MED_STAFF_REQUIRED_DESC\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc2?.value\r\n }\r\n )\r\n })\r\n }\r\n this.reregistrationService.saveReregistration(data).subscribe(\r\n (res:any)=>{\r\n if(res?.success == \"true\")\r\n {\r\n this.referenceNo=res?.message\r\n this.successDialog(template)\r\n let payload={\r\n RET_PARENT_ID:res?.message,\r\n RET_STATUS:'SUCCESS',\r\n SOURCE: this.addressValue == 2 ? 'DIFFAREA_WEB' : 'WEB',\r\n RET_PAYMENT_REF:this.PaymentRefNo ? this.PaymentRefNo : ''\r\n }\r\n this.reregistrationService.updateStatus(payload).subscribe(res=>{\r\n })\r\n }else{\r\n this.openMessageDialog(res?.message,true,'');\r\n this.router.navigate(['/transport-information']);\r\n }\r\n }\r\n\r\n )\r\n }\r\n\r\n // checkpostdetails(data,template:TemplateRef,template1:TemplateRef, template2:TemplateRef){\r\n // if(this.currentUser.enableprocesszero == 0 && this.currentUser.currentfeedetails <= 0){\r\n // //this.showError = true;\r\n // this.openErrorConfirm(template2)\r\n // this.errorMessage='Please Contact the service provider for the Registration.'\r\n // }else{\r\n // this.showError = false\r\n // this.openConfirm(template, template1)\r\n // }\r\n // }\r\n \r\n openConfirm(template:TemplateRef,template1:TemplateRef){\r\n // this.dialogOpen = this.dialog.open(template, {\r\n // width: '600px',\r\n // panelClass: 'custom-modalbox'\r\n // });\r\n //this.save()\r\n\r\n this.PostFeeDetails(template1)\r\n\r\n\r\n }\r\n // openErrorConfirm(template:TemplateRef,){\r\n // this.ErrordialogOpen = this.dialog.open(template, {\r\n // width: '600px',\r\n // panelClass: 'custom-modalbox'\r\n // });\r\n // //this.save()\r\n // }\r\n changeServiceDate(event){\r\n let serviceDate = event.value._d;\r\n this.residentialsDetails.controls['SERVICEDATE'].setValue(this.datePipe.transform(serviceDate, 'yyyy-MM-dd'));\r\n }\r\n checkParentUndertaking(templateRef: TemplateRef, event,value, isSibling){\r\n\r\n value.parentUndertaking = event.checked;\r\n this.parentUndertakingFile = value.termS_UNDERTAKING_URL\r\n \r\n if(event.checked == false){\r\n if(isSibling){\r\n localStorage.removeItem('siblingPUTAgreed');\r\n }else{\r\n localStorage.removeItem('PUTAgreed');\r\n }\r\n }\r\n\r\n if(event.checked == true){\r\n // this.parentUndertakingDialog(templateRef, value)\r\n this.isParentUdertakingBox=true;\r\n this.gotoTC(value, isSibling);\r\n }else{\r\n this.checkvalidation()\r\n }\r\n let data :any=[];\r\n data = [this.currentUser,...this.siblingsList ];\r\n localStorage.setItem('reregisterUsers', JSON.stringify(data))\r\n\r\n }\r\n downloadPdf()\r\n {\r\n //this.registrationService.DownloadPDF(this.token,this.siblingPDF)\r\n this.pdfservice.downloadPdf(this.token,this.siblingPDF,this.pdfName);\r\n //this.http.get(this.pdfSrc, { responseType: 'blob' }).subscribe((blob: Blob) => {\r\n // const blob = new Blob([this.siblingPDF], { type: 'application/pdf' });\r\n // const link = document.createElement('a');\r\n // link.href = window.URL.createObjectURL(blob);\r\n // link.download = this.pdfName;\r\n // link.click();\r\n // });\r\n\r\n }\r\n\r\n// pdfDownload()\r\n// {\r\n// var html = htmlToPdfmake(this.pdf.nativeElement.innerHTML); \r\n// const documentDefinition = { content: html };\r\n// pdfMake.createPdf(documentDefinition).download(this.pdfName); \r\n// }\r\n\r\n gotoTC(studentData: any, isSibling: any){\r\n if(this.addressValue == 2){\r\n let data:any;\r\n data = {\r\n EMIRATE: this.residentialsDetails.value?.EMIRATE,\r\n HOUSE_NO: this.residentialsDetails.value?.HOUSE_NO,\r\n ADDRESS: this.residentialsDetails.value?.ADDRESS,\r\n TPT_TYPE: this.residentialsDetails.value?.TPT_TYPE ,\r\n PICKUPAREA: this.residentialsDetails.value?.PICKUPAREA == \"0\"? 0:this.residentialsDetails.value?.PICKUPAREA,\r\n DROPOFFAREA: this.residentialsDetails.value?.DROPOFFAREA== \"0\"? 0:this.residentialsDetails.value?.DROPOFFAREA,\r\n PICKUPPOINT: this.residentialsDetails.value?.PICKUPPOINT,\r\n DROPOFFPOINT: this.residentialsDetails.value?.DROPOFFPOINT,\r\n PICKUPLOCATION: this.residentialsDetails.value?.PICKUPLOCATION,\r\n DROPOFFLOCATION: this.residentialsDetails.value?.DROPOFFLOCATION,\r\n PICKUPPOINTLANDMARK: this.residentialsDetails.value?.PICKUPPOINTLANDMARK,\r\n DROPOFFPOINTLANDMARK: this.residentialsDetails.value?.DROPOFFPOINTLANDMARK,\r\n SERVICEDATE:this.residentialsDetails.value?.SERVICEDATE,\r\n picklat:this.latitude,\r\n picklog:this.longitude,\r\n droplat:this.latitudeDrop,\r\n droplog:this.longitudeDrop,\r\n pickuplocation:this.pickuplocation,\r\n dropofflocation:this.dropofflocation\r\n }\r\n localStorage.setItem('residentialInfo', JSON.stringify(data));\r\n }\r\n localStorage.setItem('medicalInfo', JSON.stringify(this.medicalConditionDetails));\r\n localStorage.setItem('termsForm', JSON.stringify(this.termsAgreedDetails));\r\n if(!this.isParentUdertakingBox)\r\n this.router.navigate(['/re-register-terms-and-conditions'],{queryParams:{type:\"All\"}})\r\n else{\r\n this.router.navigate(['/re-register-terms-and-conditions'],{queryParams:{type:\"PUT\", gradeId:studentData?.stU_NEXT_GRADE, studentId: studentData?.stU_NO, isSibling: isSibling}})\r\n } \r\n }\r\n getSchoolsList(){\r\n this.reregistrationService.getSchoolList().subscribe(\r\n res=>{\r\n\r\n let schooldetails:any;\r\n let currentUser:any;\r\n currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n\r\nschooldetails= res?.filter(x=>x.bsU_ID == currentUser.schooId)\r\nthis.common.getIPAddress().subscribe(\r\n (res: any) => {localStorage.setItem('IPAddress', res?.ip)\r\n\r\n}\r\n)\r\n localStorage.setItem('schoolList',JSON.stringify(schooldetails));\r\n\r\n }\r\n )\r\n }\r\n\r\n PostFeeDetails(template:TemplateRef){\r\n let data :any[]=[];\r\n this.ConfirmStudentlist=[]\r\n this.ConfirmStudentlist = [this.currentUser,...this.siblingsList, ]\r\n this.reregistrationService.getFeeDetails(this.currentUser.stU_NO).subscribe(\r\n res=>{\r\n this.feedetailsData = res?.data[0];\r\n let obj = {\r\n headers: {\r\n \"STUID\": this.currentUser.stU_NO,\r\n \"SOURCE\": this.configService.source,\r\n \"paymentOrigin\": this.configService.paymentreenrollOrigin\r\n\r\n }\r\n }\r\n this.reregistrationService.getPaymentType(obj).subscribe((res:any)=>{\r\n this.paymentTypeID = res?.data?.filter(x=>x.providerTypeID == '2')[0].paymentTypeID;\r\n let data1:any[]=[];\r\n data1 = [...this.siblingsList, this.currentUser];\r\n data1.forEach(ele=>{\r\n let feedetail:any[]=[];\r\n this.feedetailsData.feeDetail.forEach(ele1 => {\r\n feedetail.push({ \"blockPayNow\": ele1.blockPayNow, \"advancePaymentAvailable\": ele1.advancePaymentAvailable, \"advanceDetails\": ele1.advanceDetails, \"discAmount\": 0, \"dueAmount\": ele.currentfeedetails, \"payAmount\": ele.currentfeedetails, \"originalAmount\": ele.currentfeedetails, \"feeDescription\": ele1.feeDescription, \"feeID\": ele1.feeID, \"activityRefID\": ele1.activityRefID, \"activityFeeCollType\": ele1.activityFeeCollType })\r\n })\r\n data.push({\"stU_NO\":ele.stU_NO,\"onlinePaymentAllowed\":this.feedetailsData.onlinePaymentAllowed,\"userMessageforOnlinePaymentBlock\":this.feedetailsData.userMessageforOnlinePaymentBlock,\"ipAddress\":localStorage.getItem('IPAddress'),\"paymentTypeID\":this.paymentTypeID,\"paymentProcessingCharge\":this.feedetailsData.paymentProcessingCharge,\"payingAmount\":ele.currentfeedetails,\"payMode\":\"\",\"feeDetail\":feedetail,\"discountDetails\":[]})\r\n })\r\n\r\n\r\n\r\n this.reregistrationService.postFeeDetails(data).subscribe(\r\n (res: any) => {\r\n if (res.Response.Success == \"true\") {\r\n this.PaymentRefNo = res?.PaymentRefNo;\r\n localStorage.setItem(\"postPaymentRefNo\", res.PaymentRefNo);\r\n\r\n\r\n\r\n this.PaymentRedirectURL = res.PaymentRedirectURL;\r\n\r\n this.gotoPayment(template);\r\n } else {\r\n this.openMessageDialog(res.Response.Message, true, '');\r\n }\r\n\r\n }\r\n )\r\n })\r\n\r\n }\r\n )\r\n\r\n }\r\n\r\n gotoPayment(template:TemplateRef){\r\n\r\n if(this.PaymentRefNo == 0 || this.addressValue == 2){\r\n this.save(template)\r\n }else{\r\n this.saveMulti(template);\r\n setTimeout(() => { \r\n window.open(this.PaymentRedirectURL, '_self')\r\n }, 1000);\r\n }\r\n \r\n }\r\n saveMulti(template){\r\n let data =[]\r\n let data1:any[]=[];\r\n data1 = [...this.siblingsList, this.currentUser];\r\n if(this.addressValue == 2){\r\n \r\n data1.forEach(ele=>{\r\n data.push(\r\n {\r\n \"RET_PROVIDER_BSU_ID\":ele.provideR_BSU_ID,\r\n \"RET_STU_BSU_ID\":ele.stU_BSU_ID,\r\n \"RET_STU_ID\":ele.stU_NO,\r\n \"RET_ACD_ID\":ele.stU_NEXT_ACD_ID,\r\n \"RET_IS_REENROLL\":true,\r\n \"RET_STATUS\":ele.reT_STATUS,\r\n \"RET_NARRATION\":\"\",\r\n \"RET_SOURCE\":\"WEB\",\r\n \"RET_OUTSTANDING_AMT\":\"0\",\r\n \"RET_REENROLL_AMT\":ele.currentfeedetails,\r\n \"RET_CHANGE_PA_ID\":this.residentialsDetails.value.PICKUPAREA,\r\n \"RET_CHANGE_PA_PNT_ID\":this.residentialsDetails.value.PICKUPPOINT,\r\n \"RET_CHANGE_DA_ID\":this.residentialsDetails.value.DROPOFFAREA,\r\n \"RET_CHANGE_DA_PNT_ID\":this.residentialsDetails.value.DROPOFFPOINT,\r\n \"RET_CHANGE_TPT_TYPE_ID\":this.residentialsDetails.value.TPT_TYPE,\r\n \"RET_CHANGE_LAT\":this.latitude +','+this.latitudeDrop,\r\n \"RET_CHANGE_LONG\":this.longitude +','+this.longitudeDrop,\r\n \"RET_ADD_INFO\":this.residentialsDetails.value.HOUSE_NO+', '+this.residentialsDetails.value.ADDRESS,\r\n \"RET_MAKANI\":\"\",\r\n \"RET_REASON_REMARKS\":\"\",\r\n \"RET_SERVICE_DATE\":this.residentialsDetails.value.SERVICEDATE,\r\n \"RFT_MED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn?.value == '1',\r\n \"RFT_MEDICAL_CONDITION\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc?.value,\r\n \"RFT_MED_STAFF_REQUIRED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn2?.value == '1',\r\n \"RFT_MED_STAFF_REQUIRED_DESC\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc2?.value,\r\n \"RFT_DA_LANDMARK\": this.residentialsDetails.value.DROPOFFPOINTLANDMARK,\r\n \"RFT_PA_LANDMARK\": this.residentialsDetails.value.PICKUPPOINTLANDMARK\r\n\r\n }\r\n )\r\n\r\n })\r\n }else{\r\n data1.forEach(ele=>{\r\n data.push(\r\n {\r\n \"RET_PROVIDER_BSU_ID\":ele.provideR_BSU_ID,\r\n \"RET_STU_BSU_ID\":ele.stU_BSU_ID,\r\n \"RET_STU_ID\":ele.stU_NO,\r\n \"RET_ACD_ID\":ele.stU_NEXT_ACD_ID,\r\n \"RET_IS_REENROLL\":true,\r\n \"RET_STATUS\":ele.reT_STATUS,\r\n \"RET_NARRATION\":\"\",\r\n \"RET_SOURCE\":\"WEB\",\r\n \"RET_OUTSTANDING_AMT\":\"0\",\r\n \"RET_REENROLL_AMT\":ele.currentfeedetails,\r\n \"RET_CHANGE_PA_ID\":ele.reT_CHANGE_PA_ID,\r\n \"RET_CHANGE_PA_PNT_ID\":0,\r\n \"RET_CHANGE_DA_ID\":ele.reT_CHANGE_DA_ID,\r\n \"RET_CHANGE_DA_PNT_ID\":0,\r\n \"RET_CHANGE_TPT_TYPE_ID\":ele.reT_ROUNDTRIP,\r\n \"RET_CHANGE_LAT\":ele.reT_LAT,\r\n \"RET_CHANGE_LONG\":ele.reT_LONG,\r\n \"RET_ADD_INFO\":\"\",\r\n \"RET_MAKANI\":\"\",\r\n \"RET_REASON_REMARKS\":\"\",\r\n \"RET_SERVICE_DATE\":this.reT_BLOCKSSDATE,\r\n \"RFT_MED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn?.value == '1',\r\n \"RFT_MEDICAL_CONDITION\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc?.value,\r\n \"RFT_MED_STAFF_REQUIRED\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalRadiobtn2?.value == '1',\r\n \"RFT_MED_STAFF_REQUIRED_DESC\": this.medicalConditionForm[ele.stU_NO]?.controls?.medicalDesc2?.value\r\n\r\n }\r\n )\r\n })\r\n }\r\n this.reregistrationService.saveReregistration(data).subscribe(\r\n (res:any)=>{\r\n if(res?.success == \"true\")\r\n {\r\n this.referenceNo=res?.message\r\n \r\n let payload={\r\n RET_PARENT_ID:res?.message,\r\n RET_STATUS:'SUCCESS',\r\n SOURCE: this.addressValue == 2 ? 'DIFFAREA_WEB' : 'WEB',\r\n RET_PAYMENT_REF:this.PaymentRefNo ? this.PaymentRefNo : ''\r\n }\r\n // this.reregistrationService.updateStatus(payload).subscribe(res=>{\r\n // })\r\n }else{\r\n this.openMessageDialog(res?.message,true,'');\r\n this.router.navigate(['/transport-information']);\r\n }\r\n }\r\n\r\n )\r\n }\r\n checkvalidation() {\r\n let data = [];\r\n data = [this.currentUser, ...this.siblingsList];\r\n let isparentundertaking: any = [];\r\n isparentundertaking = data.filter(x => x.parentUndertaking == false);\r\n if (isparentundertaking.length > 0) {\r\n this.isparentUndertakingChecked = true\r\n } else {\r\n this.isparentUndertakingChecked = false\r\n }\r\n\r\n if ((this.termsForm.value.checkedOne && this.termsForm.value.checkedTwo && this.termsForm.value.checkedThree) || (!this.termsForm.value.checkedOne && !this.isTerms && !this.isBusBehavior && this.termsForm.value.checkedTwo && this.termsForm.value.checkedThree)) {\r\n if (this.isparentUndertakingChecked && this.city == 'Abu Dhabi' && this.isParentTaking && this.showParentUndertaking)\r\n this.disableSave = true;\r\n else this.disableSave = false;\r\n }\r\n else this.disableSave = true;\r\n }\r\ncheckSelectedPoint(value,event: MatSelectChange){\r\n if(this.addressValue==2)\r\n {\r\n localStorage.setItem(\"selecteddropoffarea\",event.source.triggerValue);\r\n }\r\n if(value == 'pickuppoint'){\r\n this.selectedpickuppoint = this.residentialsDetails.value.PICKUPPOINT\r\n }else{\r\n this.selecteddropoffpoint = this.residentialsDetails.value.DROPOFFPOINT\r\n\r\n }\r\n console.log(this.selectedpickuppoint,this.selecteddropoffpoint);\r\n this.residentialsDetails.controls['SERVICEDATE'].setValue(this.datePipe.transform(this.currentUser.reT_SSDATE, 'yyyy-MM-dd'))\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsDirty();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsTouched();\r\n this.residentialsDetails.controls['SERVICEDATE'].markAsPristine();\r\n this.getOthersDetails()\r\n}\r\nPickupgetAddress(latitude, longitude) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n \r\n this.pickuplocation = results[0].formatted_address\r\n \r\n // window.alert(results[0].formatted_address);\r\n } else {\r\n // window.alert('No results found');\r\n }\r\n } else {\r\n // window.alert('Geocoder failed due to: ' + status);\r\n }\r\n \r\n });\r\n\r\n}\r\nDropoffgetAddress(latitude, longitude) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n \r\n this.dropofflocation = results[0].formatted_address\r\n \r\n // window.alert(results[0].formatted_address);\r\n } else {\r\n //window.alert('No results found');\r\n }\r\n } else {\r\n //window.alert('Geocoder failed due to: ' + status);\r\n }\r\n \r\n });\r\n\r\n}\r\nonInputChange() { \r\n if (this.searchInput.length >= 3) { \r\n this.autocompleteService.getPlacePredictions(this.searchInput).subscribe(predictions => {\r\n this.predictions = predictions;\r\n }); \r\n } else {\r\n this.predictions = [];\r\n } \r\n}\r\nonPredictionClick(prediction: google.maps.places.AutocompletePrediction) {\r\n const geocoder = new google.maps.Geocoder(); \r\n if(this.mapOpenedFrom=='pick'){\r\n this.pickuplocation = prediction.description\r\n } else{\r\n this.dropofflocation = prediction.description\r\n }\r\n geocoder.geocode({ placeId: prediction.place_id }, (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) { \r\n // Update the map center and clear existing markers\r\n if(this.mapOpenedFrom == 'pick'){\r\n this.center1 = { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() };\r\n this.markers = []; \r\n // Add a marker for the selected location \r\n this.markers.push({position: this.center1,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP \r\n } \r\n });\r\n \r\n this.predictions=[];\r\n } else{\r\n this.center2 = { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() };\r\n this.markers1 = []; \r\n // Add a marker for the selected location \r\n this.markers1.push({position: this.center2,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP \r\n } \r\n });\r\n this.predictions=[];\r\n\r\n }\r\n \r\n } \r\n }); \r\n }\r\n\r\n onEmiratesChange() {\r\n let cityId = this.residentialsDetails.value.EMIRATE;\r\n\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n this.residentialsDetails.patchValue({\r\n PICKUPAREA: '',\r\n DROPOFFAREA: '',\r\n PICKUPPOINT: '',\r\n DROPOFFPOINT: '',\r\n PICKUPLOCATION: '',\r\n DROPOFFLOCATION: '',\r\n PICKUPPOINTLANDMARK: '',\r\n DROPOFFPOINTLANDMARK: ''\r\n });\r\n this.selectedpickuparea1 = null;\r\n this.selecteddropofarea2 = null;\r\n this.latitude = 0;\r\n this.longitude = 0;\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n this.getAreaBasedOnCity(cityId);\r\n }\r\n\r\n getAreaBasedOnCity(cityId:any) {\r\n if(cityId != null && cityId != undefined && cityId != ''){\r\n let obj: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT_RR\",\r\n \"param1\": cityId.toString(),\r\n \"bsuid\": this.bsuId,\r\n \"acdid\": this.aceId.toString() ?? '0',\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n \r\n this.serviceinfoService.getMaster(obj).subscribe(res => {\r\n \r\n this.pickuppoints = res[\"data\"];\r\n this.dropoffpoints = res[\"data\"];\r\n this.pickupPointList = res[\"data\"];\r\n this.pickuppoints?.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n });\r\n } \r\n }\r\n\r\n onChangeRadio(formId: any)\r\n {\r\n this.medicalConditionExists = false;\r\n this.medicalConditionForm[formId].patchValue({\r\n medicalDesc:\"\",\r\n minDescErr: false,\r\n medicalRadiobtn2: '2',\r\n medicalDesc2: \"\",\r\n minDescErr2: false,\r\n promptEnable: false\r\n });\r\n\r\n if (this.medicalConditionForm[formId].controls.medicalRadiobtn.value == '1') {\r\n this.medicalConditionExists = true;\r\n this.medicalConditionForm[formId].controls.medicalDesc.clearValidators();\r\n this.medicalConditionForm[formId].controls.medicalDesc.setValidators([Validators.required]);\r\n this.medicalConditionForm[formId].controls.medicalDesc.markAsUntouched();\r\n this.medicalConditionForm[formId].controls.medicalDesc.updateValueAndValidity();\r\n this.setMedicalForm(formId);\r\n } else {\r\n this.medicalConditionForm[formId].controls.medicalDesc.clearValidators();\r\n let Index = this.medicalConditionDetails.findIndex(x => x.STU_ID == formId);\r\n this.medicalConditionDetails.splice(Index, 1);\r\n }\r\n this.ismedicalFormInValid(formId);\r\n }\r\n\r\n onChangeRadio2(formId: any)\r\n {\r\n this.medicalConditionForm[formId].patchValue({\r\n medicalDesc2: \"\",\r\n minDescErr2: false,\r\n promptEnable: false\r\n });\r\n\r\n if (this.medicalConditionForm[formId].controls.medicalRadiobtn2.value == '1') {\r\n this.medicalConditionForm[formId].controls.medicalDesc2.clearValidators();\r\n this.medicalConditionForm[formId].controls.medicalDesc2.setValidators([Validators.required]);\r\n this.medicalConditionForm[formId].controls.medicalDesc2.markAsUntouched();\r\n this.medicalConditionForm[formId].controls.medicalDesc2.updateValueAndValidity();\r\n } else {\r\n this.medicalConditionForm[formId].controls.medicalDesc2.clearValidators();\r\n }\r\n this.ismedicalFormInValid(formId);\r\n }\r\n\r\n onDescChange(formId: any) {\r\n if (this.medicalConditionForm[formId].controls.medicalDesc.value && this.medicalConditionForm[formId].controls.medicalDesc.value.trim() != \"\") {\r\n this.medicalConditionForm[formId].patchValue({\r\n count: this.medicalConditionForm[formId].controls.medicalDesc.value.length\r\n });\r\n\r\n if (this.medicalConditionForm[formId].controls.count.value <= 14) {\r\n this.medicalConditionForm[formId].patchValue({\r\n minDescErr: true\r\n });\r\n } else {\r\n this.medicalConditionForm[formId].patchValue({\r\n minDescErr: false\r\n });\r\n\r\n this.setMedicalForm(formId);\r\n }\r\n }\r\n else {\r\n this.medicalConditionForm[formId].patchValue({\r\n count: 0,\r\n minDescErr: false,\r\n medicalDesc: this.medicalConditionForm[formId].controls.medicalDesc.value?.trim() == \"\" ? \"\" : this.medicalConditionForm[formId].controls.medicalDesc.value\r\n });\r\n }\r\n this.ismedicalFormInValid(formId);\r\n }\r\n\r\n onDescChange2(formId: any) {\r\n if (this.medicalConditionForm[formId].controls.medicalDesc2.value && this.medicalConditionForm[formId].controls.medicalDesc2.value.trim() != \"\") {\r\n this.medicalConditionForm[formId].patchValue({\r\n count2: this.medicalConditionForm[formId].controls.medicalDesc2.value.length\r\n });\r\n\r\n if (this.medicalConditionForm[formId].controls.count2.value <= 14) {\r\n this.medicalConditionForm[formId].patchValue({\r\n minDescErr2: true,\r\n promptEnable: false\r\n });\r\n } else {\r\n this.medicalConditionForm[formId].patchValue({\r\n minDescErr2: false,\r\n promptEnable: true\r\n });\r\n\r\n this.setMedicalForm(formId);\r\n }\r\n }\r\n else {\r\n this.medicalConditionForm[formId].patchValue({\r\n count2: 0,\r\n minDescErr2: false,\r\n promptEnable: false,\r\n medicalDesc2: this.medicalConditionForm[formId].controls.medicalDesc2.value?.trim() == \"\" ? \"\" : this.medicalConditionForm[formId].controls.medicalDesc2.value\r\n });\r\n }\r\n this.ismedicalFormInValid(formId);\r\n }\r\n\r\n setMedicalForm(formId: any) {\r\n let Index = this.medicalConditionDetails.findIndex(x => x.STU_ID == formId)\r\n if (Index != -1) {\r\n this.medicalConditionDetails.forEach((x: any) => {\r\n if (x.STU_ID == formId) {\r\n x.medicalRadiobtn = this.medicalConditionForm[formId].controls.medicalRadiobtn.value,\r\n x.medicalDesc = this.medicalConditionForm[formId].controls.medicalDesc.value,\r\n x.medicalRadiobtn2 = this.medicalConditionForm[formId].controls.medicalRadiobtn2.value,\r\n x.medicalDesc2 = this.medicalConditionForm[formId].controls.medicalDesc2.value\r\n }\r\n });\r\n } else {\r\n this.medicalConditionDetails.push({\r\n medicalRadiobtn: this.medicalConditionForm[formId].controls.medicalRadiobtn.value,\r\n medicalDesc: this.medicalConditionForm[formId].controls.medicalDesc.value,\r\n medicalRadiobtn2: this.medicalConditionForm[formId].controls.medicalRadiobtn2.value,\r\n medicalDesc2: this.medicalConditionForm[formId].controls.medicalDesc2.value,\r\n STU_ID: formId\r\n });\r\n }\r\n }\r\n\r\n ismedicalFormInValid(formId:any) {\r\n if((this.medicalConditionForm[formId].controls.medicalRadiobtn.value == '1' && this.medicalConditionForm[formId].controls.medicalDesc.value.length < 15) \r\n || (this.medicalConditionForm[formId].controls.medicalRadiobtn2.value == '1' && this.medicalConditionForm[formId].controls.medicalDesc2.value.length < 15)){\r\n this.medicalFormInValid = true;\r\n }else{\r\n this.medicalFormInValid = false; \r\n }\r\n }\r\n\r\n openSiblingContent(type:any,template:any)\r\n {\r\n let parentUndertaking = this.siblingParentUndertakings.filter(item => item.ttcuL_DOC_TYPE === \"PUT\")\r\n let parentpdf: any\r\n if (parentUndertaking.length > 1) {\r\n if (this.isGrade) {\r\n parentpdf = parentUndertaking?.find(x => { return (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG') })\r\n }\r\n else {\r\n parentpdf = parentUndertaking.find(x => { return !((x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG')) })\r\n }\r\n } else parentpdf = parentUndertaking[0];\r\n this.pdfHtml = parentpdf?.ttcuL_PDF_HTML;\r\n this.contentTitle= \"Parent Undertaking\"\r\n\r\n this.contentViewer = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '850px',\r\n panelClass: ['custom-modalbox', 'rm-padding']\r\n });\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, NumberValueAccessor, Validators } from '@angular/forms';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\n\r\n@Component({\r\n selector: 'app-transport-discontinuation',\r\n templateUrl: './transport-discontinuation.component.html',\r\n styleUrls: ['./transport-discontinuation.component.scss']\r\n})\r\nexport class TransportDiscontinuationComponent implements OnInit {\r\n digopen: any;\r\n allTransportDetails: any[] = [];\r\n transportDetails: any;\r\n radiobtn: any;\r\n DiscontinuationMaxDate: any;\r\n form = new FormGroup({\r\n school: new FormControl(''),\r\n name: new FormControl(''),\r\n studentId: new FormControl(''),\r\n grade: new FormControl(''),\r\n section: new FormControl(''),\r\n busNo: new FormControl(''),\r\n address: new FormControl(''),\r\n reason: new FormControl('', [Validators.required]),\r\n otherDesc: new FormControl(''),\r\n requestedDate: new FormControl('', [Validators.required]),\r\n // serviceNo:new FormControl('',[Validators.required]),\r\n description: new FormControl('')\r\n })\r\n isOtherTextbox: boolean = false;\r\n otherCount: number = 0;\r\n minOtherDescErr: boolean = false;\r\n Count: number = 0;\r\n minDescErr: boolean = false;\r\n resonForDiscontinuation: any[] = [];\r\n referenceNumber: any;\r\n \r\n minDate: Date = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() + 1);\r\n postSuccess: boolean = false\r\n errmsg: any = '';\r\n isDisableDate: boolean = false;\r\n discontinuationDates: any[] = [];\r\n\r\n constructor(private dialog: MatDialog, public transportService: TransportserviceService, private datePipe: DatePipe,\r\n public router: Router) { }\r\n\r\n ngOnInit(): void {\r\n this.getTransportDetails();\r\n this.getReasonForDiscontinuation();\r\n this.getDiscontinuationDateRange();\r\n }\r\n\r\n getReasonForDiscontinuation() {\r\n this.transportService.getReasonForDiscontinuation().subscribe(res => {\r\n this.resonForDiscontinuation = [...res?.data];\r\n })\r\n }\r\n\r\n getDiscontinuationDateRange(){\r\n this.transportService.getDiscontinuationDateRange().subscribe((res:any) => {\r\n if(res.data != null){\r\n if(res.data.length > 0){\r\n this.discontinuationDates = res.data;\r\n }\r\n // this.minDate = new Date(res.data.diS_FROMDATE);\r\n // this.DiscontinuationMaxDate = new Date(res.data.diS_TODATE);\r\n\r\n // this.isDisableDate =(!(new Date(res.data.diS_TODATE) >= new Date()));\r\n }\r\n })\r\n }\r\n\r\n getTransportDetails() {\r\n this.transportService.getTransportInfoOfChildren().subscribe(res => {\r\n this.allTransportDetails = [...res?.data];\r\n let student = JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n let transDetails = this.allTransportDetails.find(x => x.stU_ID == student[0].stuId);\r\n this.transportDetails = transDetails;\r\n this.bindingDetails();\r\n });\r\n }\r\n\r\n onChangeRadio() {\r\n this.form.controls.description.markAsUntouched();\r\n this.form.patchValue({ description: '' })\r\n if (this.radiobtn == '2') {\r\n // setTimeout(()=>{\r\n // this.form.controls.description.setValidators([Validators.required]);\r\n // },100)\r\n this.minDescErr = true;\r\n } else this.minDescErr = false;\r\n }\r\n\r\n onDescChange() {\r\n if (this.form.value.description && this.form.value.description.trim() != \"\") {\r\n this.Count = this.form.value.description.length;\r\n if (this.Count <= 9)\r\n this.minDescErr = true;\r\n else this.minDescErr = false;\r\n }\r\n else {\r\n this.Count = 0;\r\n // this.minDescErr=false;\r\n this.form.value.description = this.form.value.description?.trim() == \"\" ? \"\" : this.form.value.description\r\n }\r\n }\r\n\r\n\r\n onOtherDescChange() {\r\n if (this.form.value.otherDesc && this.form.value.otherDesc.trim() != \"\") {\r\n this.otherCount = this.form.value.otherDesc.length;\r\n if (this.otherCount <= 9)\r\n this.minOtherDescErr = true;\r\n else this.minOtherDescErr = false;\r\n }\r\n else {\r\n this.otherCount = 0;\r\n this.minOtherDescErr = false;\r\n this.form.value.otherDesc = this.form.value.otherDesc?.trim() == \"\" ? \"\" : this.form.value.otherDesc\r\n }\r\n }\r\n\r\n\r\n bindingDetails() {\r\n if (this.transportDetails) {\r\n let grade = this.transportDetails?.grade.split('/');\r\n this.transportDetails.grade = grade[0];\r\n\r\n this.form.patchValue({\r\n school: this.transportDetails?.school,\r\n name: this.transportDetails?.studentName,\r\n studentId: this.transportDetails?.stU_SCHOOL_ID,\r\n grade: this.transportDetails?.grade,\r\n section: this.transportDetails?.section,\r\n busNo: this.transportDetails?.pickupBusNo,\r\n address: this.transportDetails?.pickuppoint + ' / ' + this.transportDetails?.dropoffpoint,\r\n })\r\n this.radiobtn = \"1\";\r\n }\r\n }\r\n\r\n ChangeReason() {\r\n this.form.patchValue({ otherDesc: '' })\r\n let value = this.resonForDiscontinuation.find(x => x.id == this.form.value.reason)\r\n if (value) {\r\n if (value?.description == \"Others\") {\r\n this.isOtherTextbox = true;\r\n this.form.controls.otherDesc.setValidators([Validators.required]);\r\n }\r\n else {\r\n this.isOtherTextbox = false;\r\n this.form.controls.otherDesc.setErrors(null);\r\n }\r\n // if(value?.description == \"TC/SO/Changing School\")\r\n // {\r\n // this.minDate=new Date();\r\n // }else this.minDate= new Date(new Date().getFullYear(), new Date().getMonth() + 1, 1);\r\n }\r\n }\r\n saveDiscontinuation(template: any) {\r\n if (!this.form.invalid && !this.minDescErr && !this.minOtherDescErr) {\r\n let formattedDate: any\r\n if (this.form.value.requestedDate != null) {\r\n const stringDate = new Date(this.form.value.requestedDate);\r\n formattedDate = this.datePipe.transform(stringDate, 'yyyy-MM-dd')\r\n }\r\n let body = {\r\n StuId: this.transportDetails?.studentNo,\r\n DiscontinuationTypeId: \"P\",\r\n DiscontinuationReasonId: this.form.value.reason,\r\n DiscontinuationReasonRemarks: this.form.value.otherDesc,\r\n FromDate: formattedDate + \"T00:00:00\",\r\n Comments: this.form.value.description,\r\n }\r\n this.transportService.postDiscontinuation(body).subscribe(res => {\r\n if (res?.success == \"true\") {\r\n this.postSuccess = true;\r\n this.referenceNumber = res?.data\r\n this.successDialog(template);\r\n } else {\r\n this.postSuccess = false;\r\n this.errmsg = res?.data;\r\n this.successDialog(template);\r\n }\r\n })\r\n }\r\n }\r\n ok() {\r\n this.digopen.close();\r\n if (this.postSuccess)\r\n this.router.navigate(['/transport-information']);\r\n }\r\n cancel() {\r\n this.router.navigate(['/transport-information']);\r\n }\r\n // addSiblingDialog(templateRef: TemplateRef) {\r\n // this.digopen = this.dialog.open(templateRef, {\r\n // width: '500px',\r\n // panelClass: 'custom-modalbox'\r\n // });\r\n // }\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component,Inject, OnInit, Renderer2, TemplateRef, ViewChild} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {\r\n MatDialog\r\n} from '@angular/material/dialog';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-transport-information',\r\n templateUrl: './transport-information.component.html',\r\n styleUrls: ['./transport-information.component.scss']\r\n})\r\nexport class TransportInformationComponent implements OnInit {\r\n @ViewChild('reregisterTemplate') reregisterTemplate:any;\r\n @ViewChild('registrationClosedTemplate') registrationClosedTemplate:any;\r\n digopen: any;\r\n radiobtn:any=\"1\";\r\n noForm = new FormGroup({\r\n reason : new FormControl('',[Validators.required]),\r\n remarks:new FormControl('')\r\n })\r\n count: number=0;\r\n reason:any[]=[];\r\n currentUser: any;\r\n selectedStudent: any;\r\n isOthers: boolean=false;\r\n isReregisterEnable:boolean=false;\r\n contactDetails: any;\r\n token: any;\r\n regClosedMessage: string = '';\r\n\r\n constructor(private transportService:TransportserviceService,public date:DatePipe,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,private router: Router,private dialog: MatDialog\r\n ,private reregistrationService: ReregistrationService,public registerService:RegistrationService,public dashboardService:DashboardService,private route :ActivatedRoute) { }\r\n public responseData:any[]=[];\r\n ngOnInit(): void {\r\n\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n let bsuId=localStorage.getItem('bsU_ID');\r\n this.token = JSON.parse(localStorage.getItem('currentToken'))\r\n let schoolList = JSON.parse(localStorage.getItem('schoolList'));\r\n this.isReregisterEnable=schoolList.find(x=>x.bsU_ID == bsuId)?.isReregisterEnable;\r\n localStorage.removeItem('reregisterUsers')\r\n localStorage.removeItem('residentialInfo')\r\n localStorage.removeItem('medicalInfo');\r\n localStorage.removeItem('selectedSiblings');\r\n localStorage.removeItem('siblingPUTAgreed');\r\n localStorage.removeItem('termsForm');\r\n localStorage.removeItem('PUTAgreed');\r\n localStorage.removeItem('termsAgreed');\r\n\r\n this.transportService.getTransportInfoOfChildren().subscribe(res=>{\r\n res?.data.forEach(element => {\r\n element.studentNo = (element.studentNo == ''|| element.studentNo == null) ? \"NA\" : element.studentNo\r\n element.servicetype = (element.servicetype == ''|| element.servicetype == null) ? \"NA\" : element.servicetype\r\n element.serviceyear = (element.serviceyear == ''|| element.serviceyear == null) ? \"NA\" : element.serviceyear\r\n element.serviceReferenceNo = (element.serviceReferenceNo == ''|| element.serviceReferenceNo == null) ? \"NA\" : element.serviceReferenceNo\r\n element.dropOffLocation = (element.dropOffLocation == ''|| element.dropOffLocation == null) ? \"NA\" : element.dropOffLocation\r\n element.dropoffpoint = (element.dropoffpoint == ''|| element.dropoffpoint == null) ? \"NA\" : element.dropoffpoint\r\n element.dropofftime = (element.dropofftime == ''|| element.dropofftime == null) ? \"NA\" : element.dropofftime\r\n element.dropOffBusNo = (element.dropOffBusNo == ''|| element.dropOffBusNo == null) ? \"NA\" : element.dropOffBusNo\r\n element.pickupLocation = (element.pickupLocation == ''|| element.pickupLocation == null) ? \"NA\" : element.pickupLocation\r\n element.pickuppoint = (element.pickuppoint == ''|| element.pickuppoint == null) ? \"NA\" : element.pickuppoint\r\n element.pickuptime = (element.pickuptime == ''|| element.pickuptime == null) ? \"NA\" : element.pickuptime\r\n element.pickupBusNo = (element.pickupBusNo == ''|| element.pickupBusNo == null) ? \"NA\" : element.pickupBusNo\r\n element.toDate = (element.toDate == ''|| element.toDate == null) ? \"NA\" : element.toDate?.replaceAll('/',\" \")\r\n element.fromDate = (element.fromDate == ''|| element.fromDate == null) ? \"NA\" : element.fromDate?.replaceAll('/',\" \")\r\n element.serviceStatus = (element.serviceStatus == ''|| element.serviceStatus == null) ? \"NA\" : element.serviceStatus\r\n element.grade = (element.grade == ''|| element.grade == null) ? \"NA\" : element.grade\r\n element.section = (element.section == ''|| element.section == null) ? \"NA\" : element.section\r\n element.currentAcademicYear = (element.currentAcademicYear == ''|| element.currentAcademicYear == null) ? \"NA\" : element.currentAcademicYear.split(\" \")[0]\r\n element.school = (element.school == ''|| element.school == null) ? \"NA\" : element.school\r\n let grade = element.grade.split('/');\r\n element.grade = grade[0]\r\n });\r\n this.selectedStudent=JSON.parse( localStorage.parentChildrens)[0];\r\n let index = res?.data.findIndex((x:any)=>x.studentNo == this.selectedStudent.studentId)\r\n if(index != -1)\r\n {\r\n this.responseData=[res?.data[index]];\r\n this.currentUser =res?.data[index];\r\n localStorage.setItem('transportChildInfo',JSON.stringify(res?.data))\r\n }\r\n })\r\n }\r\n ngAfterViewInit(){\r\n this.route.queryParams.subscribe(params=>{\r\n if(params['showReRegister']){\r\n this.openDialog(this.reregisterTemplate);\r\n }\r\n });\r\n }\r\n ChangeReason()\r\n {\r\n if(this.noForm.controls.reason.value =='Others')\r\n this.isOthers=true;\r\n else this.isOthers=false\r\n }\r\n onDescChange()\r\n {\r\n if(this.noForm.controls.remarks.value && this.noForm.controls.remarks.value.trim() != \"\")\r\n {\r\n this.count=this.noForm.controls.remarks.value.length;\r\n }\r\n else{\r\n this.count=0\r\n this.noForm.patchValue({description :this.noForm.controls.remarks.value.trim() == \"\" ? \"\" : this.noForm.controls.remarks.value})\r\n }\r\n }\r\n\r\n proceedOrSubmit(type:any,template:any)\r\n {\r\n console.log(this.noForm)\r\n this.cancel();\r\n if(type =='proceed')\r\n this.navigatetolink('/re-registration')\r\n else \r\n {\r\n let seriveDate = this.date.transform(this.currentUser?.fromDate , 'yyyy-MM-dd')\r\n let data =[{\r\n \"RET_PROVIDER_BSU_ID\":\"\",\r\n \"RET_STU_BSU_ID\":this.selectedStudent?.bsuId,\r\n \"RET_STU_ID\":this.selectedStudent?.studentId,\r\n \"RET_ACD_ID\":this.selectedStudent?.acdId,\r\n \"RET_IS_REENROLL\":false,\r\n \"RET_STATUS\":\"\",\r\n \"RET_NARRATION\":\"\",\r\n \"RET_SOURCE\":\"WEB\",\r\n \"RET_OUTSTANDING_AMT\":\"\",\r\n \"RET_REENROLL_AMT\":\"\",\r\n \"RET_CHANGE_PA_ID\":0,\r\n \"RET_CHANGE_PA_PNT_ID\":0,\r\n \"RET_CHANGE_DA_ID\":0,\r\n \"RET_CHANGE_DA_PNT_ID\":0,\r\n \"RET_CHANGE_TPT_TYPE_ID\":0,\r\n \"RET_CHANGE_LAT\":\"\",\r\n \"RET_CHANGE_LONG\":\"\",\r\n \"RET_ADD_INFO\":\"\",\r\n \"RET_MAKANI\":\"\",\r\n \"RET_REASON_REMARKS\":this.noForm.controls.reason.value =='Others'? this.noForm.controls.remarks.value : this.noForm.controls.reason.value,\r\n \"RET_SERVICE_DATE\":seriveDate\r\n\r\n }]\r\n this.reregistrationService.saveReregistration(data).subscribe(\r\n (res:any)=>{\r\n this.successDialog(template);\r\n let payload={\r\n RET_PARENT_ID:res?.message,\r\n RET_STATUS:'Not Registered',\r\n SOURCE:'WEB',\r\n RET_PAYMENT_REF:''\r\n }\r\n this.reregistrationService.updateStatus(payload).subscribe(res=>{\r\n })\r\n }\r\n\r\n )\r\n }\r\n }\r\n\r\n goToRegistration()\r\n {\r\n this.dashboardService.getContactDetails('').subscribe((res:any)=>{\r\n this.contactDetails = res?.data;\r\n this.registerService.getParentsList(this.contactDetails?.primaryContactNumber, this.token?.access_token).subscribe(res=>{\r\n let parentDetails= res?.data;\r\n \r\n let studentDetails = parentDetails.find(x=> x.stU_ID == this.selectedStudent.stuId)\r\n localStorage.setItem('photopath',studentDetails.stU_PHOTOPATH)\r\n localStorage.setItem('studentDetails',JSON.stringify(studentDetails));\r\n localStorage.setItem('parentDetails',JSON.stringify([studentDetails]));\r\n localStorage.setItem('studParentDetails',JSON.stringify([studentDetails]));\r\n this.registerService.sendStudentDetails.next(parentDetails);\r\n localStorage.setItem(\"proceed\",\"false\");\r\n localStorage.setItem(\"showSchool\",\"true\")\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{isFromDashboard:true,tab:1,isReactivate:true}});\r\n })\r\n })\r\n }\r\n\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n // this.save(templateRef)\r\n }\r\n cancel()\r\n {\r\n //console.log(this.noForm)\r\n this.isOthers=false;\r\n this.digopen.close();\r\n }\r\n openDialog(template: TemplateRef) {\r\n if(!(this.currentUser?.rE_REG_MSG != null && this.currentUser?.rE_REG_MSG != \"\")){\r\n this.radiobtn='1'\r\n this.noForm.reset();\r\n this.transportService.getReason().subscribe((res:any)=>{\r\n let index = res?.data.findIndex(x=>x.id==1)\r\n res?.data.splice(index,1)\r\n this.reason=res?.data;\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: ['custom-modalbox']\r\n });\r\n })\r\n }else{\r\n\r\n \r\n this.regClosedMessage = this.currentUser?.rE_REG_MSG;\r\n this.digopen = this.dialog.open(this.registrationClosedTemplate, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: ['custom-modalbox']\r\n });\r\n }\r\n \r\n }\r\n\r\n navigatetolink(lnk) {\r\n this.router.navigate([lnk]);\r\n }\r\n registerPopup(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChild, Inject, Renderer2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { CommonService } from 'src/app/service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { environment } from 'src/environments/environment';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss'],\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n public otpValue1: any = '';\r\n public otpValue2: any = '';\r\n public otpValue3: any = '';\r\n public otpValue4: any = '';\r\n public otpValue5: any = '';\r\n public otpValue6: any = '';\r\n public searchValue: any = '';\r\n public searchtext: any;\r\n\r\n @ViewChild(\"otp1\") otp1!: ElementRef;\r\n @ViewChild(\"otp2\") otp2!: ElementRef;\r\n @ViewChild(\"otp3\") otp3!: ElementRef;\r\n @ViewChild(\"otp4\") otp4!: ElementRef;\r\n @ViewChild(\"otp5\") otp5!: ElementRef;\r\n @ViewChild(\"otp6\") otp6!: ElementRef;\r\n isSpaceEntered: boolean = false;\r\n isInvalidUser: boolean = false;\r\n userdetails: any;\r\n isEnableOTP: boolean = false;\r\n @ViewChild(\"passwordInput\") passwordInput!: MatInput;\r\n @ViewChild(\"passwordInput1\") passwordInput1!: MatInput;\r\n isSpaceEntered2: boolean = false;\r\n isPasswordVisible: boolean = false;\r\n password: string = '';\r\n isPasswordLength: boolean = false;\r\n reenterPassword: string = '';\r\n newPassword: string = '';\r\n ispasswordConfirmed: boolean = false;\r\n isSpaceEntered3: boolean = false;\r\n isPasswordVisible1: boolean = false;\r\n isConfirmPasswordRequired: boolean = true;\r\n isAlphabets: boolean = false;\r\n isNumbers: boolean = false;\r\n isResendOtp: boolean = false;\r\n countdown: number = 0;\r\n interval: any;\r\n isUsernameEnable: boolean = true;\r\n isOTPEnable: boolean = false;\r\n isNewPasswordEnable: boolean = false;\r\n selectedElement: any;\r\n defaultToken: any;\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'start';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n emailID: any = '';\r\n mobileNumber: any = '';\r\n otp: any = '';\r\n isOtpEntered: boolean = false;\r\n isInvalidOTP: boolean = false;\r\n isPasswordRequired: boolean;\r\n encOtp: any = '';\r\n showresend: boolean = false;\r\n resendcount: number=0;\r\n isSubmitted: boolean = false;\r\n isEmptyUser: boolean = true;\r\n constructor(private commonService: CommonService, private tokenService: TokenService, private _snackBar: MatSnackBar, private router: Router,\r\n private dialog: MatDialog, private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,\r\n private configService:ConfigService) { }\r\n\r\n ngOnInit(): void {\r\n this.getToken();\r\n this.renderer.addClass(this.document.body, 'body-height-100');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'body-height-100');\r\n }\r\n reSend(event) {\r\n this.resendcount++;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n\r\n }\r\n this.getOTP(event);\r\n this.isInvalidOTP = false;\r\n this.countdown = 0;\r\n clearInterval(this.interval);\r\n this.countdown = this.configService.forgotPasswordOTPExpiry;\r\n this.startCountdown(event);\r\n this.otpValue1 = \"\";\r\n this.otpValue2 = \"\"\r\n this.otpValue3 = \"\";\r\n this.otpValue4 = \"\";\r\n this.otpValue5 = \"\";\r\n this.otpValue6 = \"\"\r\n }\r\n getOTP(event) {\r\n\r\n this.isSubmitted = true;\r\n this.searchtext = this.searchValue;\r\n if(this.searchValue!=''){\r\n this.getSearchValue(event, this.searchValue)\r\n\r\n }\r\n setTimeout(() => {\r\n \r\n \r\n if (this.userdetails?.isValidUser== true) {\r\n this.commonService.sendOTPToUser(this.searchtext, this.defaultToken).subscribe(\r\n (res: any) => {\r\n\r\n if (res?.success == \"true\") {\r\n\r\n this.isUsernameEnable = false;\r\n this.isOTPEnable = true;\r\n this.isSubmitted = false;\r\n this.isNewPasswordEnable = false;\r\n this.emailID = this.replaceMaskingEmail(res.data[0].contactValue);\r\n this.mobileNumber = this.replaceMasking(res.data[0].contactValue);\r\n event.preventDefault();\r\n this.countdown = 0;\r\n clearInterval(this.interval);\r\n\r\n this.startCountdown(event);\r\n\r\n\r\n this.encOtp = res.data[0].otp;\r\n // let otp:any =this.sha512Enc(res.data[0].otp);\r\n // alert(otp);\r\n } else {\r\n this.isUsernameEnable = true;\r\n this.isOTPEnable = false;\r\n this.isNewPasswordEnable = false;\r\n this.isSubmitted = false;\r\n this.openMessageDialog(res?.Message, false, \"\");\r\n }\r\n\r\n }\r\n )\r\n }\r\n }, 3000);\r\n }\r\n sha512Enc(val: string) {\r\n const hash = CryptoJS.SHA512(val);\r\n return hash.toString(CryptoJS.enc.Hex);\r\n }\r\n replaceMasking(value) {\r\n let firstSubStr = '';\r\n let lastSubStr = '';\r\n firstSubStr = value.slice(0, 3)\r\n lastSubStr = value.slice(value.length - 3, value.length);\r\n return firstSubStr + ' ' + '*'.repeat(value.length - 6) + lastSubStr\r\n }\r\n replaceMaskingEmail(value) {\r\n return value;\r\n // let firstSubStr = '';\r\n // let lastSubStr = '';\r\n // let midSubStr = '';\r\n // firstSubStr = value.slice(0, 3);\r\n // lastSubStr = value.split('@')[1];\r\n // midSubStr = value.split('@')[0];\r\n // midSubStr = midSubStr.slice(midSubStr.length - 2, midSubStr.length);\r\n // return firstSubStr + ' ' + 'x'.repeat(value.length - (lastSubStr.length + firstSubStr.length) - 1) + midSubStr + '@' + lastSubStr\r\n }\r\n\r\n validateOTP() {\r\n\r\n if(this.countdown!=0 && !this.isInvalidOTP){\r\n let data: any = {};\r\n this.getEnteredOTP();\r\n if (!this.isOtpEntered) {\r\n data = {\r\n username: this.searchValue,\r\n otp: this.otp,\r\n source: this.configService.source,\r\n deviceid: this.configService.deviceId,\r\n }\r\n\r\n\r\n let testval = this.sha512Enc(this.otp);\r\n if (this.encOtp == testval) {\r\n this.commonService.validateOTP(data, this.defaultToken).subscribe(\r\n (res: any) => {\r\n\r\n if (res?.isValidUser == true) {\r\n this.isInvalidOTP = false;\r\n\r\n this.isUsernameEnable = false;\r\n this.isOTPEnable = false;\r\n this.isNewPasswordEnable = true;\r\n this.isAlphabets = false;\r\n this.isNumbers = false;\r\n this.isPasswordLength = false;\r\n if(this.isNewPasswordEnable === true){\r\n\r\n }\r\n } else {\r\n this.isInvalidOTP = true;\r\n // setTimeout(() => {\r\n // this.isInvalidOTP = false;\r\n // }, 3000);\r\n // this.otpValue1 = '';\r\n // this.otpValue2 = '';\r\n // this.otpValue3 = '';\r\n // this.otpValue4 = '';\r\n // this.otpValue5 = '';\r\n // this.otpValue6 = '';\r\n\r\n }\r\n\r\n }, (error) => {\r\n this.isInvalidOTP = true;\r\n // setTimeout(() => {\r\n // this.isInvalidOTP = false;\r\n // }, 3000);\r\n // this.otpValue1 = '';\r\n // this.otpValue2 = '';\r\n // this.otpValue3 = '';\r\n // this.otpValue4 = '';\r\n // this.otpValue5 = '';\r\n // this.otpValue6 = '';\r\n\r\n }\r\n )\r\n }\r\n else {\r\n // this.openErrorMessageDialog(\"Invalid OTP\",true,\"Please enter valid OTP.\")\r\n this.isInvalidOTP = true;\r\n // setTimeout(() => {\r\n // this.isInvalidOTP = false;\r\n // }, 3000);\r\n // this.otpValue1 = '';\r\n // this.otpValue2 = '';\r\n // this.otpValue3 = '';\r\n // this.otpValue4 = '';\r\n // this.otpValue5 = '';\r\n // this.otpValue6 = '';\r\n }\r\n }\r\n\r\n }\r\n }\r\n getEnteredOTP() {\r\n\r\n if (this.otpValue1 != '' && this.otpValue2 != '' && this.otpValue3 != '' && this.otpValue4 != '' && this.otpValue5 != '' && this.otpValue6 != '') {\r\n this.otp = this.otpValue1 + this.otpValue2 + this.otpValue3 + this.otpValue4 + this.otpValue5 + this.otpValue6;\r\n this.isOtpEntered = false;\r\n this.isInvalidOTP = false;\r\n } else {\r\n this.isOtpEntered = true;\r\n this.isInvalidOTP = false;\r\n\r\n }\r\n }\r\n numberOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n keytab(event: any, value: any) {\r\n //this.isInvalidOTP=false;\r\n if (event.code == 'Backspace' || event.code == undefined || event.code == 'Delete') {\r\n if (event.srcElement.name == 'otpValue1') {\r\n this.otp1.nativeElement.focus();\r\n // if(this.otpValue1 == \"_\")\r\n // this.otpValue1=\"\";\r\n if (event.code == undefined && this.otpValue1 == \"\")\r\n this.otpValue1 = '';\r\n }\r\n if (event.srcElement.name == 'otpValue2') {\r\n this.otp2.nativeElement.focus();\r\n // if(this.otpValue2 == \"_\")\r\n // this.otpValue2=\"\";\r\n }\r\n if (event.srcElement.name == 'otpValue3') {\r\n this.otp3.nativeElement.focus();\r\n // if(this.otpValue3 == \"_\")\r\n // this.otpValue3=\"\";\r\n }\r\n if (event.srcElement.name == 'otpValue4') {\r\n this.otp4.nativeElement.focus();\r\n // if(this.otpValue4 == \"_\")\r\n // this.otpValue4=\"\";\r\n }\r\n if (event.srcElement.name == 'otpValue5') {\r\n this.otp5.nativeElement.focus();\r\n // if(this.otpValue5 == \"_\")\r\n // this.otpValue5=\"\";\r\n }\r\n if (event.srcElement.name == 'otpValue6') {\r\n this.otp6.nativeElement.focus();\r\n // if(this.otpValue6 == \"_\")\r\n // this.otpValue6=\"\";\r\n }\r\n }\r\n else {\r\n if (value == 1) {\r\n if (this.otpValue1 != '') {\r\n this.otp2.nativeElement.focus();\r\n // if(this.otpValue2 == \"_\")\r\n // this.otpValue2=\"\";\r\n }\r\n\r\n }\r\n\r\n if (value == 2) {\r\n if (this.otpValue2 != '') {\r\n this.otp3.nativeElement.focus();\r\n // if(this.otpValue3 == \"_\")\r\n // this.otpValue3=\"\";\r\n }\r\n }\r\n\r\n if (value == 3) {\r\n if (this.otpValue3 != '') {\r\n this.otp4.nativeElement.focus();\r\n // if(this.otpValue4 == \"_\")\r\n // this.otpValue4=\"\";\r\n }\r\n }\r\n if (value == 4) {\r\n if (this.otpValue4 != '') {\r\n this.otp5.nativeElement.focus();\r\n // if(this.otpValue5 == \"_\")\r\n // this.otpValue5=\"\";\r\n }\r\n }\r\n if (value == 5) {\r\n if (this.otpValue5 != '') {\r\n this.otp6.nativeElement.focus();\r\n // if(this.otpValue6 == \"_\")\r\n // this.otpValue6=\"\";\r\n }\r\n }\r\n if (value == 6) {\r\n if (this.otpValue6 != '') {\r\n this.otp6.nativeElement.focus();\r\n // if(this.otpValue6 == \"_\")\r\n // this.otpValue6=\"\";\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n checkValidatedTab(event: any) {\r\n\r\n let nextInput = event.srcElement.nextElementSibling; // get the sibling element\r\n\r\n var target = event.target || event.srcElement;\r\n var id = target.id\r\n\r\n if (nextInput == null) // check the maxLength from here\r\n return;\r\n else\r\n nextInput.focus();\r\n // focus if not null\r\n }\r\n hasWhiteSpace(s: any) {\r\n return (/\\s/).test(s);\r\n }\r\n getSearchValue(value: any, search: any) {\r\n\r\n if (this.hasWhiteSpace(search)) {\r\n this.isSpaceEntered = true\r\n } else {\r\n this.isSpaceEntered = false;\r\n }\r\n if (!this.hasWhiteSpace(search)) {\r\n this.commonService.validateUserName(this.searchValue, this.defaultToken).subscribe(\r\n res => {\r\n this.isSubmitted = false;\r\n this.userdetails = res;\r\n if (res?.isValidUser==true) {\r\n this.isInvalidUser = false;\r\n\r\n this.isEnableOTP = false;\r\n } else {\r\n this.userdetails={}\r\n this.isInvalidUser = true;\r\n this.isEnableOTP = true;\r\n }\r\n\r\n },\r\n (error) => {\r\n this.isSubmitted = false;\r\n this.isInvalidUser = true;\r\n this.isEnableOTP = true;\r\n }\r\n )\r\n }\r\n\r\n\r\n }\r\n\r\n public changeNewPassword(value: any) {\r\n if (this.hasWhiteSpace(value)) {\r\n this.isSpaceEntered2 = true\r\n } else {\r\n this.isSpaceEntered2 = false;\r\n }\r\n if (!this.isSpaceEntered2) {\r\n if (this.isPasswordVisible == false) {\r\n this.hidePassword();\r\n }\r\n\r\n this.password = value;\r\n if (value.length < 8 || value.length > 16) {\r\n this.isPasswordLength = true\r\n } else {\r\n this.isPasswordLength = false\r\n }\r\n if (this.reenterPassword != '') {\r\n if (this.newPassword == this.reenterPassword) {\r\n this.ispasswordConfirmed = false;\r\n } else {\r\n this.ispasswordConfirmed = true;\r\n }\r\n } else this.ispasswordConfirmed = false;\r\n if (this.checkAlphabets(value)) {\r\n this.isAlphabets = false;\r\n }\r\n else {\r\n this.isAlphabets = true;\r\n }\r\n if ((this.checkNumerics(value)) && (this.hasSpecialChars(value))) {\r\n this.isNumbers = false;\r\n }\r\n else {\r\n this.isNumbers = true;\r\n }\r\n\r\n if (value.length > 0) {\r\n this.renderer.addClass(this.document.body, 'rm-height');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.addClass(root, 'rm-height');\r\n this.renderer.removeClass(this.document.body, 'body-height-100');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.removeClass(root, 'body-height-100');\r\n this.renderer.removeClass(this.document.body, 'body-height-100vh');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.removeClass(root, 'body-height-100vh');\r\n }\r\n if (value.length == 0) {\r\n this.renderer.removeClass(this.document.body, 'rm-height');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.removeClass(root, 'rm-height');\r\n this.renderer.addClass(this.document.body, 'body-height-100');\r\n var root = document.getElementsByTagName('html')[0];\r\n this.renderer.addClass(root, 'body-height-100');\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n public checkAlphabets(text: any) {\r\n return text.match(/(?=.*[a-z])(?=.*[A-Z])/) ? true : false;\r\n\r\n }\r\n public checkNumerics(text: any) {\r\n return text.match(/(?=.*[0-9])/) ? true : false;\r\n\r\n }\r\n public hasSpecialChars(str: any) {\r\n var format = /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n if (format.test(str)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n public checkconfirmpassword(value: any) {\r\n\r\n if (this.hasWhiteSpace(value)) {\r\n this.isSpaceEntered3 = true\r\n } else {\r\n this.isSpaceEntered3 = false;\r\n }\r\n if (!this.isSpaceEntered3) {\r\n if (this.isPasswordVisible1 == false) {\r\n this.hidePassword1()\r\n }\r\n if (value == '') {\r\n this.isConfirmPasswordRequired = true\r\n } else {\r\n this.isConfirmPasswordRequired = false\r\n }\r\n if (value == this.newPassword) {\r\n this.ispasswordConfirmed = false;\r\n } else {\r\n this.ispasswordConfirmed = true;\r\n\r\n }\r\n }\r\n }\r\n public hidePassword() {\r\n if (this.passwordInput) {\r\n this.passwordInput.type = \"password\";\r\n this.isPasswordVisible = false\r\n\r\n }\r\n\r\n }\r\n public showPassword() {\r\n\r\n if (this.passwordInput) {\r\n this.passwordInput.type = \"text\";\r\n this.isPasswordVisible = true;\r\n }\r\n\r\n }\r\n\r\n public hidePassword1() {\r\n\r\n if (this.passwordInput1) {\r\n this.passwordInput1.type = \"password\";\r\n this.isPasswordVisible1 = false;\r\n }\r\n\r\n }\r\n public showPassword1() {\r\n\r\n if (this.passwordInput1) {\r\n this.passwordInput1.type = \"text\";\r\n this.isPasswordVisible1 = true;\r\n }\r\n }\r\n changePassword() {\r\n if (this.newPassword == '' || this.newPassword.length == 0 || this.newPassword == null) {\r\n this.isPasswordRequired = true;\r\n } else {\r\n this.isPasswordRequired = false;\r\n }\r\n if (this.reenterPassword == '') {\r\n this.isConfirmPasswordRequired = true\r\n } else {\r\n this.isConfirmPasswordRequired = false\r\n\r\n }\r\n let data: any = {};\r\n if (this.ispasswordConfirmed == false && this.isPasswordLength != true && !this.isAlphabets && !this.isNumbers && this.isPasswordRequired == false && this.reenterPassword != '') {\r\n\r\n\r\n data = {\r\n username: this.searchValue,\r\n source: this.configService.source,\r\n deviceid: this.configService.deviceId,\r\n OldPassword: this.newPassword,\r\n NewPassword: this.reenterPassword\r\n }\r\n this.commonService.resetPassword(data, this.defaultToken).subscribe(\r\n (res: any) => {\r\n // this._snackBar.open(res?.Message, '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n if (res.Success)\r\n this.openMessageDialog(res?.Message, false, \"\");\r\n else this.openMessageDialog(res?.Message, false, \"\");\r\n //this.router.navigate(['/login']);\r\n // setTimeout(() => {\r\n // window.open(window.location.origin,'_self')\r\n // }, 2000);\r\n }, (error) => {\r\n\r\n }\r\n )\r\n }\r\n }\r\n private startCountdown(event: any) {\r\n\r\n this.isResendOtp = true;\r\n this.countdown = this.configService.forgotPasswordOTPExpiry; // 60 seconds\r\n this.interval = setInterval(() => {\r\n if (this.countdown === 0) {\r\n clearInterval(this.interval);\r\n\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n \r\n }\r\n\r\n } else {\r\n this.countdown -= 1;\r\n \r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n \r\n }\r\n event.preventDefault();\r\n }\r\n }, 1000); // Update every second\r\n }\r\n\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token\r\n }\r\n )\r\n }\r\n cancel() {\r\n this.goToLogin();\r\n }\r\n goToLogin() {\r\n this.router.navigate(['/login']);\r\n }\r\n openErrorMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.goToLogin()\r\n });\r\n }\r\n goToLanding() {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n onUserNameChange() {\r\n if(this.searchValue != null && this.searchValue.length > 0){\r\n this.isInvalidUser = false;\r\n this.isEmptyUser = false;\r\n }else{\r\n this.isEmptyUser = true;\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class MenuRoutingModule { }\r\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MenuRoutingModule } from './menu-routing.module';\r\nimport { SettingsComponent } from './settings/settings.component';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport { AppTermsAndConditionsComponent } from './settings/app-terms-and-conditions/app-terms-and-conditions.component';\r\nimport { PrivacyPolicyComponent } from './settings/privacy-policy/privacy-policy.component';\r\nimport { ChangePasswordComponent } from './settings/change-password/change-password.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { TermsConditionsComponent } from './support/terms-conditions/terms-conditions.component';\r\nimport { FeedbackComponent } from './support/feedback/feedback.component';\r\nimport { FaqComponent } from './support/faq/faq.component';\r\nimport { ServiceRequestComponent } from './support/service-request/service-request.component';\r\nimport { ContactSdeComponent } from './support/contact-sde/contact-sde.component';\r\nimport { AddFeedbackComponent } from './support/feedback/add-feedback/add-feedback.component';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { TCPipe } from './support/tcpipe.pipe';\r\nimport { StsGroupComponent } from './sts-group/sts-group.component';\r\nimport { RequestAreaChangeComponent } from './request-area-change/request-area-change.component';\r\nimport { StsOffersComponent } from './sts-offers/sts-offers.component';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\n// import function to register Swiper custom elements\r\nimport { register } from 'swiper/element/bundle';\r\nimport { RequestAreaChangeInfoComponent } from './request-area-change/request-area-change-info/request-area-change-info.component';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport { RfidComponent } from './support/service-request/rfid/rfid.component';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { ViewServiceRequestComponent } from './support/service-request/view-service-request/view-service-request.component';\r\n// register Swiper custom elements\r\nregister();\r\n@NgModule({\r\n declarations: [\r\n SettingsComponent,\r\n AppTermsAndConditionsComponent,\r\n PrivacyPolicyComponent,\r\n ChangePasswordComponent,\r\n TermsConditionsComponent,\r\n FeedbackComponent,\r\n FaqComponent,\r\n ServiceRequestComponent,\r\n ContactSdeComponent,\r\n AddFeedbackComponent,\r\n TCPipe,\r\n StsGroupComponent,\r\n RequestAreaChangeComponent,\r\n StsOffersComponent,\r\n RequestAreaChangeInfoComponent,\r\n RfidComponent,\r\n ViewServiceRequestComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n MenuRoutingModule,\r\n MatSlideToggleModule,\r\n MatButtonModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatSelectModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n PdfViewerModule,\r\n CarouselModule,\r\n MatTabsModule,\r\n MatDatepickerModule,\r\n GoogleMapsModule,\r\n MatIconModule,\r\n MatCheckboxModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyA1iYoEmhopACwr8vAOLOO3KSOHvMERD-E',\r\n libraries: ['places']\r\n }),\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class MenuModule { }\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { ServiceinfoService } from 'src/app/service';\r\nimport { areaChangeService } from 'src/app/service/areaChange.service';\r\nimport { GoogleMapsAutocompleteService } from 'src/app/service/google-maps-autocomplete-service.service';\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\n\r\n@Component({\r\n selector: 'app-request-area-change-info',\r\n templateUrl: './request-area-change-info.component.html',\r\n styleUrls: ['./request-area-change-info.component.scss']\r\n})\r\nexport class RequestAreaChangeInfoComponent implements OnInit {\r\n digopen: any;\r\n changeResidentialForm: { [key: string]: FormGroup } = {};\r\n // currentResidentialForm=new FormGroup({\r\n // studentName:new FormControl('',[Validators.required]),\r\n // currentBus:new FormControl('',[Validators.required]),\r\n // currentPickup:new FormControl('',[Validators.required]),\r\n // currentDropoff:new FormControl('',[Validators.required]),\r\n // })\r\n studentDetails: any;\r\n dropoffPoint: any[]=[];\r\n pickupPoint: any[]=[];\r\n dropoffPointTemp: any[]=[];\r\n pickupPointTemp: any[]=[];\r\n transportTypes: any[]=[];\r\n city: any[]=[];\r\n dropoffArea: any[]=[];\r\n pickupArea: any[]=[];\r\n dropoffAreaTemp: any[]=[];\r\n pickupAreaTemp: any[]=[];\r\n token: any;\r\n //isPickup: boolean=false;\r\n //isDropoff: boolean=false;\r\n minDate:Date=new Date(new Date().setDate(new Date().getDate() + 1));\r\n siblingList: any[]=[];\r\n selectedChild: any;\r\n //isPickupOther: boolean =false;\r\n //isDropoffOther: boolean=false;\r\n @ViewChild(MapInfoWindow, { static: false }) infoWindow: MapInfoWindow;\r\n mapZoom = 12;\r\n mapCenter: google.maps.LatLng;\r\n mapOptions: google.maps.MapOptions = {\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n zoomControl: true,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n maxZoom: 20,\r\n minZoom: 4,\r\n };\r\n markerInfoContent = '';\r\n markerOptions: google.maps.MarkerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n @ViewChild('myGoogleMap', { static: false })\r\n map!: GoogleMap;\r\n @ViewChild(MapInfoWindow, { static: false })\r\n info!: MapInfoWindow;\r\n zoom = 20;\r\n maxZoom = 20;\r\n minZoom = 3;\r\n // latitudePickup: number = 0;\r\n // longitudePickup: number = 0;\r\n // latitudeDropoff: number = 0;\r\n // longitudeDropoff: number = 0;\r\n pickCenter!: google.maps.LatLngLiteral;\r\n dropCenter!: google.maps.LatLngLiteral;\r\n options: google.maps.MapOptions = {\r\n zoomControl: false,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n mapTypeId: 'hybrid',\r\n maxZoom: this.maxZoom,\r\n minZoom: this.minZoom,\r\n }\r\n // pickupMarker:any[] = [];\r\n // dropoffMarker:any[] = [];\r\n infoContent = ''\r\n mapSearch: any;\r\n predictions: any[]=[];\r\n //mapOpenedFrom: string;\r\n //pickupLocation: string ='';\r\n //dropoffLocation: string='';\r\n geoCoder: google.maps.Geocoder;\r\n referenceNo: any;\r\n formIndex=0\r\n residentialForms:any[]=[];\r\n MapFormIndex: any;\r\n selectedStudent: any;\r\n isFormValid:boolean =false\r\n existingMapInfo: any;\r\n ishybrid: any;\r\n isLeased: any;\r\n tptFee: any[] = [];\r\n selectedpickuparea: string = \"\";\r\n selecteddropoffarea: string = \"\";\r\n selectedpickuparea1: any = '';\r\n selecteddropofarea2: any = '';\r\n IsCloseFee: boolean = false;\r\n bsuCurrency: string = \"\";\r\n\r\n constructor(private dialog: MatDialog, public serviceInfo:ServiceinfoService, public reregistrationService:ReregistrationService,\r\n private autocompleteService:GoogleMapsAutocompleteService,private router : Router, public areaChangeService:areaChangeService,\r\n public datePipe : DatePipe,private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n let data:any = localStorage.getItem('leasemodelschool')\r\n this.isLeased = data;\r\n let isHybrid:any = localStorage.getItem('IsHybrid')\r\n this.ishybrid = isHybrid;\r\n this.bsuCurrency = localStorage.getItem('bsu_currency');\r\n\r\n let schoolDetails = JSON.parse(localStorage.getItem('schoolDetails'));\r\n let transportInfo =JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n this.selectedChild =JSON.parse(localStorage.getItem(\"parentChildrens\"))[0];\r\n this.selectedStudent =Number(localStorage.getItem(\"selectedstudentid\"));\r\n this.geoCoder = new google.maps.Geocoder;\r\n this.studentDetails = transportInfo.find(x=>x.studentNo == this.selectedStudent);\r\n this.formIndex=this.selectedStudent\r\n this.changeResidentialForm[this.formIndex]=this.createFormGroup();\r\n this.changeResidentialForm[this.formIndex].patchValue({\r\n studentName:this.studentDetails?.studentName,\r\n currentBus:this.studentDetails?.pickupBusNo,\r\n currentPickup:this.studentDetails?.pickupLocation+' '+this.studentDetails?.pickuppoint,\r\n currentDropoff:this.studentDetails?.dropOffLocation+' '+this.studentDetails?.dropoffpoint,\r\n photopath:this.studentDetails?.photoPath\r\n })\r\n this.setResidentialForms(this.formIndex,true)\r\n this.getMasterDetails();\r\n this.getSiblings();\r\n\r\n let currentDate = new Date();\r\n currentDate.setDate(currentDate.getDate() + 14);\r\n let schoolStartDate = new Date(\"2024-08-26\");\r\n\r\n if (schoolDetails?.bsu_city?.toLowerCase() == \"wkr\") {\r\n schoolStartDate = new Date(\"2024-09-01\");\r\n }\r\n\r\n if (currentDate < schoolStartDate) {\r\n this.minDate = schoolStartDate;\r\n }else{\r\n this.minDate = currentDate;\r\n }\r\n }\r\n\r\n createFormGroup():FormGroup\r\n {\r\n return this.formBuilder.group({\r\n studentName:new FormControl('',[Validators.required]),\r\n currentBus:new FormControl('',[Validators.required]),\r\n currentPickup:new FormControl('',[Validators.required]),\r\n currentDropoff:new FormControl('',[Validators.required]),\r\n photopath:new FormControl('',[Validators.required]),\r\n city:new FormControl('',[Validators.required]),\r\n house:new FormControl('',[Validators.required]),\r\n street:new FormControl('',[Validators.required]),\r\n tptType:new FormControl('',[Validators.required]),\r\n pickupArea:new FormControl(''),\r\n dropoffArea:new FormControl(''),\r\n pickupPoint:new FormControl(''),\r\n dropoffPoint:new FormControl(''),\r\n pickupLocation:new FormControl(''),\r\n dropoffLocation:new FormControl(''),\r\n pickupLandmark:new FormControl(''),\r\n dropoffLandmark:new FormControl(''),\r\n changeLocDate:new FormControl('',[Validators.required]),\r\n latitudePickup: new FormControl(0),\r\n longitudePickup: new FormControl(0),\r\n latitudeDropoff: new FormControl(0),\r\n longitudeDropoff: new FormControl(0),\r\n isPickup: new FormControl(false),\r\n isDropoff: new FormControl(false),\r\n isPickupOther: new FormControl(false),\r\n isDropoffOther: new FormControl(false),\r\n pickupMarker:new FormControl([]),\r\n dropoffMarker:new FormControl([]),\r\n pickupCenter:new FormControl(this.pickCenter),\r\n dropoffCenter:new FormControl(this.dropCenter),\r\n mapOpenedFrom:new FormControl(''),\r\n pickupAreaMaster:new FormControl(''),\r\n dropOffAreaMaster:new FormControl(''),\r\n pickupPointMaster:new FormControl(''),\r\n dropoffPointMaster:new FormControl(''),\r\n pickupAreaMasterTemp:new FormControl(''),\r\n dropOffAreaMasterTemp:new FormControl(''),\r\n pickupPointMasterTemp:new FormControl(''),\r\n dropoffPointMasterTemp:new FormControl(''),\r\n pickupConfirmed: new FormControl(false),\r\n dropoffConfirmed: new FormControl(false)\r\n })\r\n }\r\n\r\n setFormValues(formId:any,sibling:any)\r\n {\r\n let index=this.selectedStudent\r\n let children = JSON.parse(localStorage.getItem(\"transportChildInfo\"))\r\n let child =children.find(x=>x.studentNo == sibling.stU_NO) \r\n this.changeResidentialForm[formId].patchValue({\r\n studentName:child?.studentName,\r\n currentBus:child?.pickupBusNo,\r\n currentPickup:child?.pickupLocation+' '+child?.pickuppoint,\r\n currentDropoff:child?.dropOffLocation+' '+child?.dropoffpoint,\r\n photopath:child?.photoPath,\r\n city:this.changeResidentialForm[index].controls.city.value,\r\n house:this.changeResidentialForm[index].controls.house.value,\r\n street:this.changeResidentialForm[index].controls.street.value,\r\n tptType:this.changeResidentialForm[index].controls.tptType.value,\r\n pickupArea:this.changeResidentialForm[index].controls.pickupArea.value,\r\n dropoffArea:this.changeResidentialForm[index].controls.dropoffArea.value,\r\n pickupPoint:this.changeResidentialForm[index].controls.pickupPoint.value,\r\n dropoffPoint:this.changeResidentialForm[index].controls.dropoffPoint.value,\r\n pickupLocation:this.changeResidentialForm[index].controls.pickupLocation.value,\r\n dropoffLocation:this.changeResidentialForm[index].controls.dropoffLocation.value,\r\n pickupLandmark:this.changeResidentialForm[index].controls.pickupLandmark.value,\r\n dropoffLandmark:this.changeResidentialForm[index].controls.dropoffLandmark.value,\r\n changeLocDate:this.changeResidentialForm[index].controls.changeLocDate.value,\r\n latitudePickup: this.changeResidentialForm[index].controls.latitudePickup.value,\r\n longitudePickup: this.changeResidentialForm[index].controls.longitudePickup.value,\r\n latitudeDropoff: this.changeResidentialForm[index].controls.latitudeDropoff.value,\r\n longitudeDropoff: this.changeResidentialForm[index].controls.longitudeDropoff.value,\r\n isPickup:this.changeResidentialForm[index].controls.isPickup.value,\r\n isDropoff:this.changeResidentialForm[index].controls.isDropoff.value,\r\n isPickupOther: this.changeResidentialForm[index].controls.isPickupOther.value,\r\n isDropoffOther: this.changeResidentialForm[index].controls.isDropoffOther.value,\r\n pickupMarker:this.changeResidentialForm[index].controls.pickupMarker.value,\r\n dropoffMarker:this.changeResidentialForm[index].controls.dropoffMarker.value,\r\n pickupCenter:this.changeResidentialForm[index].controls.pickupCenter.value,\r\n dropoffCenter:this.changeResidentialForm[index].controls.dropoffCenter.value,\r\n mapOpenedFrom:this.changeResidentialForm[index].controls.mapOpenedFrom.value,\r\n pickupAreaMaster: this.changeResidentialForm[index].controls.pickupAreaMaster.value,\r\n dropOffAreaMaster: this.changeResidentialForm[index].controls.dropOffAreaMaster.value,\r\n pickupPointMaster: this.changeResidentialForm[index].controls.pickupPointMaster.value,\r\n dropoffPointMaster: this.changeResidentialForm[index].controls.dropoffPointMaster.value,\r\n pickupAreaMasterTemp: this.changeResidentialForm[index].controls.pickupAreaMasterTemp.value,\r\n dropOffAreaMasterTemp: this.changeResidentialForm[index].controls.dropOffAreaMasterTemp.value,\r\n pickupPointMasterTemp: this.changeResidentialForm[index].controls.pickupPointMasterTemp.value,\r\n dropoffPointMasterTemp: this.changeResidentialForm[index].controls.dropoffPointMasterTemp.value,\r\n })\r\n }\r\n\r\n getMasterDetails()\r\n {\r\n this.token = JSON.parse(localStorage.getItem('currentToken'))?.access_token\r\n\r\n let TptTypeHeader: any = {\r\n headers: {\r\n \"master\": \"TPT_TYPE\",\r\n \"bsuid\": localStorage.getItem('bsU_ID').toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n let cityHeader: any = {\r\n headers: {\r\n \"master\": \"TPT_CITY_M\",\r\n \"param1\": \"172\",\r\n \"Authorization\": \"Bearer \" + this.token,\r\n \"bsuid\": localStorage.getItem('bsU_ID').toString(),\r\n }\r\n }\r\n\r\n this.serviceInfo.getMaster(TptTypeHeader).subscribe(res => {\r\n\r\n this.transportTypes = res[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n this.transportTypes.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n\r\n this.serviceInfo.getMaster(cityHeader).subscribe(res => {\r\n this.city = res[\"data\"];\r\n this.city.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n })\r\n });\r\n }\r\n\r\n getSiblings()\r\n {\r\n this.reregistrationService.getSiblingDetails().subscribe(res=>{\r\n res.data.forEach(x=>{\r\n if(x.stU_NO == this.selectedStudent)\r\n x.checked=true;\r\n else x.checked =false;\r\n })\r\n this.siblingList =res?.data\r\n })\r\n }\r\n\r\n getAreaBasedOnCity(cityId: any, formId:any) {\r\n if (cityId != null && cityId != undefined && cityId != '') {\r\n let pickupAreaHeader: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT_RR\",\r\n \"param1\": cityId.toString(),\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"acdid\": this.selectedChild?.acdId.toString() ?? '0',\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n\r\n this.serviceInfo.getMaster(pickupAreaHeader).subscribe(res => {\r\n\r\n this.pickupArea = res[\"data\"];\r\n this.dropoffArea = res[\"data\"];\r\n this.pickupPoint?.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n this.pickupAreaTemp = [...this.pickupArea];\r\n this.dropoffAreaTemp = [...this.dropoffArea];\r\n\r\n this.changeResidentialForm[formId].patchValue({\r\n pickupAreaMaster: res[\"data\"],\r\n dropOffAreaMaster: res[\"data\"],\r\n pickupAreaMasterTemp: res[\"data\"],\r\n dropOffAreaMasterTemp: res[\"data\"],\r\n pickupPointMaster: this.pickupPoint,\r\n dropoffPointMaster: this.pickupPoint,\r\n pickupPointMasterTemp: this.pickupPoint,\r\n dropoffPointMasterTemp: this.pickupPoint\r\n });\r\n });\r\n }\r\n }\r\n\r\n getPickupPoints(pickupId:any, formId:any) {\r\n\r\n let pickupPointHeader: any = {\r\n headers: {\r\n \"master\": \"PICKUP_TPT_RR\",\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"param1\": \"172\",\r\n \"param2\": pickupId.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceInfo.getMaster(pickupPointHeader).subscribe(res => {\r\n this.pickupPoint = res[\"data\"];\r\n this.pickupPointTemp=[...this.pickupPoint]\r\n\r\n this.changeResidentialForm[formId].patchValue({\r\n pickupPointMaster: res[\"data\"],\r\n pickupPointMasterTemp: res[\"data\"]\r\n });\r\n })\r\n }\r\n getDropOffPoints(dropoffId:any, formId:any) {\r\n\r\n let dropoffPointHeader: any = {\r\n headers: {\r\n \"master\": \"DROP_TPT_RR\",\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"param1\": \"172\",\r\n \"param2\": dropoffId.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceInfo.getMaster(dropoffPointHeader).subscribe(res => {\r\n this.dropoffPoint = res[\"data\"];\r\n this.dropoffPointTemp=[...this.dropoffPoint]\r\n\r\n this.changeResidentialForm[formId].patchValue({\r\n dropoffPointMaster: res[\"data\"],\r\n dropoffPointMasterTemp: res[\"data\"]\r\n });\r\n })\r\n }\r\n\r\n setValidation(formId:any){\r\n if(this.changeResidentialForm[formId].controls.isPickup.value && !this.changeResidentialForm[formId].controls.isDropoff.value)\r\n {\r\n this.changeResidentialForm[formId].controls.pickupArea.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLocation.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffArea.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffArea.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.updateValueAndValidity();\r\n }\r\n else if(this.changeResidentialForm[formId].controls.isDropoff.value && !this.changeResidentialForm[formId].controls.isPickup.value){\r\n this.changeResidentialForm[formId].controls.dropoffArea.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLocation.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupArea.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupArea.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLocation.updateValueAndValidity();\r\n\r\n }\r\n else if(this.changeResidentialForm[formId].controls.isDropoff.value && this.changeResidentialForm[formId].controls.isPickup.value)\r\n {\r\n this.changeResidentialForm[formId].controls.dropoffArea.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupArea.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLocation.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLocation.setValidators([Validators.required]);\r\n \r\n this.changeResidentialForm[formId].controls.dropoffArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.markAsUntouched();\r\n }\r\n this.changeResidentialForm[formId].patchValue({\r\n dropoffArea:'',\r\n dropoffPoint:'',\r\n dropoffLandmark:'',\r\n pickupArea:'',\r\n pickupPoint:'',\r\n pickupLandmark:'',\r\n pickupLocation:'',\r\n dropoffLocation:''\r\n })\r\n // this.pickupLocation='';\r\n // this.dropoffLocation=''\r\n }\r\n\r\n changePickupArea(formId:any)\r\n {\r\n this.selectedpickuparea = \"\";\r\n let pickupAreaDesc = this.pickupArea.find(x=>x.id == this.changeResidentialForm[formId].get('pickupArea').value);\r\n if(pickupAreaDesc)\r\n {\r\n this.selectedpickuparea = \"Pick-up Area: \" + pickupAreaDesc.descr;\r\n this.selectedpickuparea1 = pickupAreaDesc.id;\r\n this.getPickupPoints(pickupAreaDesc.id, formId);\r\n this.getFeeStructure(formId);\r\n }\r\n this.changeResidentialForm[formId].patchValue({\r\n pickupPoint:'',\r\n pickupLandmark:'',\r\n pickupLocation:''\r\n })\r\n //this.pickupLocation='';\r\n //this.editAllChildFields(formId);\r\n this.autoPopulateDropoff(formId)\r\n }\r\n\r\n changePickupPoint(formId:any)\r\n {\r\n let pickupAreaDesc = this.pickupPointTemp.find(x=>x.id == this.changeResidentialForm[formId].get('pickupPoint').value);\r\n if(pickupAreaDesc){\r\n this.changeResidentialForm[formId].patchValue({\"isPickupOther\":pickupAreaDesc?.descr == 'Other' ? true :false})\r\n if(this.changeResidentialForm[formId].controls.isPickupOther.value)\r\n {\r\n this.changeResidentialForm[formId].controls.pickupPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLocation.setValidators([Validators.required]);\r\n }\r\n else{\r\n this.changeResidentialForm[formId].controls.pickupPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.pickupLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLocation.updateValueAndValidity();\r\n }\r\n }\r\n else this.changeResidentialForm[formId].patchValue({\"isPickupOther\":false});\r\n this.autoPopulateDropoffPoint(formId);\r\n }\r\n\r\n changeDropoffArea(formId:any,fromAutopopulate=false)\r\n {\r\n this.selecteddropoffarea = \"\";\r\n let dropoffAreaDesc = this.dropoffArea.find(x=>x.id == this.changeResidentialForm[formId].get('dropoffArea').value);\r\n if(dropoffAreaDesc)\r\n {\r\n this.selecteddropoffarea = \"Drop-off Area: \" + dropoffAreaDesc.descr;\r\n this.selecteddropofarea2 = dropoffAreaDesc.id;\r\n this.getDropOffPoints(dropoffAreaDesc.id, formId)\r\n this.getFeeStructure(formId);\r\n }\r\n this.changeResidentialForm[formId].patchValue({\r\n dropoffPoint:'',\r\n dropoffLandmark:'',\r\n dropoffLocation:''\r\n })\r\n //this.dropoffLocation='';\r\n // if(!fromAutopopulate)\r\n // this.autoPopulateDropoff(formId);\r\n this.editAllChildFields(formId);\r\n }\r\n\r\n changeDropoffPoint(formId:any)\r\n {\r\n let dropoffAreaDesc = this.dropoffPointTemp.find(x=>x.id == this.changeResidentialForm[formId].get('dropoffPoint').value);\r\n if(dropoffAreaDesc)\r\n {\r\n this.changeResidentialForm[formId].patchValue({\"isDropoffOther\":dropoffAreaDesc?.descr == 'Other' ? true :false})\r\n if(this.changeResidentialForm[formId].controls.isDropoffOther.value)\r\n {\r\n this.changeResidentialForm[formId].controls.dropoffPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLocation.setValidators([Validators.required]);\r\n }\r\n else{\r\n this.changeResidentialForm[formId].controls.dropoffPoint.setValidators([Validators.required]);\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.updateValueAndValidity();\r\n }\r\n }else this.changeResidentialForm[formId].patchValue({\"isDropoffOther\":false})\r\n this.editAllChildFields(formId);\r\n }\r\n\r\n changeCity(formId:any)\r\n {\r\n this.changeResidentialForm[formId].controls.dropoffArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffArea.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffArea.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupArea.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupArea.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupArea.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupPoint.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupPoint.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupPoint.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLandmark.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.dropoffLocation.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.pickupLocation.clearValidators();\r\n this.changeResidentialForm[formId].controls.pickupLocation.updateValueAndValidity();\r\n this.changeResidentialForm[formId].controls.house.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.street.markAsUntouched();\r\n this.changeResidentialForm[formId].controls.tptType.markAsUntouched();\r\n this.changeResidentialForm[formId].patchValue({\r\n house:\"\",\r\n street:\"\",\r\n tptType:\"\",\r\n dropoffArea:'',\r\n dropoffPoint:'',\r\n dropoffLandmark:'',\r\n pickupArea:'',\r\n pickupPoint:'',\r\n pickupLandmark:'',\r\n pickupLocation:'',\r\n dropoffLocation:'',\r\n isPickup: false,\r\n isDropoff: false,\r\n isPickupOther:false,\r\n isDropoffOther: false,\r\n latitudePickup:0,\r\n longitudePickup: 0,\r\n latitudeDropoff: 0,\r\n longitudeDropoff: 0,\r\n })\r\n // this.dropoffLocation=''\r\n // this.pickupLocation=''\r\n this.editAllChildFields(formId);\r\n\r\n this.getAreaBasedOnCity(this.changeResidentialForm[formId].controls.city.value, formId);\r\n }\r\n\r\n autoPopulateDropoff(formId:any)\r\n {\r\n if(this.changeResidentialForm[formId].get('tptType').value == 0)\r\n {\r\n if(this.changeResidentialForm[formId].controls.pickupArea.value)\r\n {\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffArea\": this.changeResidentialForm[formId].controls.pickupArea.value\r\n })\r\n this.changeDropoffArea(formId, true);\r\n }\r\n if((this.changeResidentialForm[formId].controls.pickupArea.value == this.changeResidentialForm[formId].controls.dropoffArea.value) && this.changeResidentialForm[formId].controls.pickupPoint.value)\r\n {\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffPoint\": this.changeResidentialForm[formId].controls.pickupPoint.value\r\n })\r\n }else{\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffPoint\": ''\r\n })\r\n }\r\n this.changeDropoffPoint(formId);\r\n let dropoffAreaDesc = this.dropoffPointTemp.find(x=>x.id == this.changeResidentialForm[formId].get('dropoffPoint').value);\r\n if(dropoffAreaDesc)\r\n {\r\n this.changeResidentialForm[formId].patchValue({\"isDropoffOther\":dropoffAreaDesc?.descr == 'Other' ? true :false})\r\n }else this.changeResidentialForm[formId].patchValue({\"isDropoffOther\":false})\r\n }\r\n this.editAllChildFields(formId);\r\n }\r\n\r\n autoPopulateDropoffPoint(formId: any) {\r\n if (this.changeResidentialForm[formId].get('tptType').value == 0) {\r\n if ((this.changeResidentialForm[formId].controls.pickupArea.value == this.changeResidentialForm[formId].controls.dropoffArea.value) && this.changeResidentialForm[formId].controls.pickupPoint.value) {\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffPoint\": this.changeResidentialForm[formId].controls.pickupPoint.value\r\n })\r\n } else {\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffPoint\": ''\r\n })\r\n }\r\n\r\n this.changeDropoffPoint(formId);\r\n\r\n let dropoffAreaDesc = this.dropoffPointTemp.find(x => x.id == this.changeResidentialForm[formId].get('dropoffPoint').value);\r\n if (dropoffAreaDesc) {\r\n this.changeResidentialForm[formId].patchValue({ \"isDropoffOther\": dropoffAreaDesc?.descr == 'Other' ? true : false })\r\n } \r\n else{\r\n this.changeResidentialForm[formId].patchValue({ \"isDropoffOther\": false })\r\n }\r\n }\r\n this.editAllChildFields(formId);\r\n }\r\n\r\n changeTptType(formId:any)\r\n {\r\n this.selectedpickuparea = \"\";\r\n this.selecteddropoffarea = \"\";\r\n this.selectedpickuparea1 = \"\";\r\n this.selecteddropofarea2 = \"\";\r\n if(this.changeResidentialForm[formId].get('tptType').value == 1)\r\n {\r\n this.changeResidentialForm[formId].patchValue({\"isPickup\":true})\r\n this.changeResidentialForm[formId].patchValue({\"isDropoff\":false})\r\n // this.isPickup=true;\r\n // this.isDropoff=false;\r\n }\r\n else if(this.changeResidentialForm[formId].get('tptType').value == 2){\r\n // this.isPickup=false;\r\n // this.isDropoff=true;\r\n this.changeResidentialForm[formId].patchValue({\"isPickup\":false})\r\n this.changeResidentialForm[formId].patchValue({\"isDropoff\":true})\r\n }else if(this.changeResidentialForm[formId].get('tptType').value == 0){\r\n // this.isPickup=true;\r\n // this.isDropoff=true;\r\n this.changeResidentialForm[formId].patchValue({\"isPickup\":true})\r\n this.changeResidentialForm[formId].patchValue({\"isDropoff\":true})\r\n }else{\r\n this.changeResidentialForm[formId].patchValue({\"isPickup\":false})\r\n this.changeResidentialForm[formId].patchValue({\"isDropoff\":false})\r\n }\r\n this.setValidation(formId);\r\n this.editAllChildFields(formId);\r\n }\r\n\r\n getSiblingList(template:any)\r\n {\r\n this.addSiblingDialog(template)\r\n }\r\n\r\n toggleSibling(event:any,sibling:any)\r\n {\r\n setTimeout(() => {\r\n this.digopen.close();\r\n }, 200);\r\n this.siblingList.forEach(x=>{\r\n if(sibling.stU_NO == x.stU_NO)\r\n x.checked=event.checked;\r\n })\r\n if(event.checked)\r\n {\r\n this.formIndex=Number(sibling.stU_NO)\r\n this.changeResidentialForm[this.formIndex]=this.createFormGroup();\r\n this.setFormValues(this.formIndex,sibling),\r\n this.setResidentialForms(this.formIndex,true)\r\n }\r\n else{\r\n let SpliceIndex = this.residentialForms.findIndex(x=> x.id == Number(sibling.stU_NO))\r\n if(SpliceIndex != -1)\r\n {\r\n this.residentialForms.splice(SpliceIndex,1)\r\n for (let formId of Object.keys(this.changeResidentialForm)) {\r\n if(formId == sibling.stU_NO)\r\n delete this.changeResidentialForm[Number(sibling.stU_NO)]\r\n }\r\n }\r\n }\r\n }\r\n\r\n editAllChildFields(formId:any)\r\n {\r\n let isFalse =false;\r\n if(this.selectedStudent == formId)\r\n {\r\n this.residentialForms.forEach(x=>{\r\n if(x.id != formId)\r\n {\r\n this.changeResidentialForm[x.id].patchValue({\r\n id:x.id,\r\n city:this.changeResidentialForm[formId].controls.city.value,\r\n house:this.changeResidentialForm[formId].controls.house.value,\r\n street:this.changeResidentialForm[formId].controls.street.value,\r\n tptType:this.changeResidentialForm[formId].controls.tptType.value,\r\n pickupArea:this.changeResidentialForm[formId].controls.pickupArea.value,\r\n dropoffArea:this.changeResidentialForm[formId].controls.dropoffArea.value,\r\n pickupPoint:this.changeResidentialForm[formId].controls.pickupPoint.value,\r\n dropoffPoint:this.changeResidentialForm[formId].controls.dropoffPoint.value,\r\n pickupLocation:this.changeResidentialForm[formId].controls.pickupLocation.value,\r\n dropoffLocation:this.changeResidentialForm[formId].controls.dropoffLocation.value,\r\n pickupLandmark:this.changeResidentialForm[formId].controls.pickupLandmark.value,\r\n dropoffLandmark:this.changeResidentialForm[formId].controls.dropoffLandmark.value,\r\n changeLocDate:this.changeResidentialForm[formId].controls.changeLocDate.value,\r\n latitudePickup: this.changeResidentialForm[formId].controls.latitudePickup.value,\r\n longitudePickup: this.changeResidentialForm[formId].controls.longitudePickup.value,\r\n latitudeDropoff: this.changeResidentialForm[formId].controls.latitudeDropoff.value,\r\n longitudeDropoff: this.changeResidentialForm[formId].controls.longitudeDropoff.value,\r\n isPickup:this.changeResidentialForm[formId].controls.isPickup.value,\r\n isDropoff:this.changeResidentialForm[formId].controls.isDropoff.value,\r\n isPickupOther: this.changeResidentialForm[formId].controls.isPickupOther.value,\r\n isDropoffOther: this.changeResidentialForm[formId].controls.isDropoffOther.value,\r\n pickupMarker:this.changeResidentialForm[formId].controls.pickupMarker.value,\r\n dropoffMarker:this.changeResidentialForm[formId].controls.dropoffMarker.value,\r\n pickupCenter:this.changeResidentialForm[formId].controls.pickupCenter.value,\r\n dropoffCenter:this.changeResidentialForm[formId].controls.dropoffCenter.value,\r\n mapOpenedFrom:this.changeResidentialForm[formId].controls.mapOpenedFrom.value\r\n })\r\n }\r\n })\r\n }\r\n\r\n \r\n\r\n this.residentialForms.forEach(x=>{\r\n let isValid = this.changeResidentialForm[x.id].valid ? true :false;\r\n if(!isValid)\r\n isFalse=true;\r\n })\r\n this.isFormValid=isFalse?false:true;\r\n }\r\n\r\n setResidentialForms(id:any, isCreate:boolean)\r\n {\r\n if(!isCreate)\r\n {\r\n let SpliceIndex = this.residentialForms.findIndex(x=> x.id == id)\r\n if(SpliceIndex != -1)\r\n this.residentialForms.splice(SpliceIndex,1)\r\n\r\n let date = new Date(this.changeResidentialForm[id].get('changeLocDate').value?._d)\r\n let reqDate= this.datePipe.transform(date,'yyyy-MM-dd')+\"T00:00:00\";\r\n let body={\r\n \"id\":id,\r\n \"studName\":this.changeResidentialForm[id].get('studentName').value,\r\n \"photopath\":this.changeResidentialForm[id].get('photopath').value,\r\n \"StudentNumber\":id,\r\n \"HouseNo\":this.changeResidentialForm[id].get('house').value,\r\n \"Address\":this.changeResidentialForm[id].get('street').value,\r\n \"LOC_ID_CITY\":this.changeResidentialForm[id].get('city').value,\r\n \"SBL_ID_PICKUP\":this.changeResidentialForm[id].get('pickupArea').value == \"\" ? 0 : this.changeResidentialForm[id].get('pickupArea').value,\r\n \"PNT_ID_PICKUPPOINT\":this.changeResidentialForm[id].get('pickupPoint').value == \"\" ? 0 : this.changeResidentialForm[id].get('pickupPoint').value,\r\n \"SBL_ID_DROPOFF\":this.changeResidentialForm[id].get('dropoffArea').value==\"\" ? 0 : this.changeResidentialForm[id].get('dropoffArea').value,\r\n \"PNT_ID_DROPOFFPOINT\":this.changeResidentialForm[id].get('dropoffPoint').value == \"\" ? 0 : this.changeResidentialForm[id].get('dropoffPoint').value,\r\n \"TRIPTYPE\":this.changeResidentialForm[id].get('tptType').value,\r\n \"REQSTARTDATE\":reqDate,\r\n \"PICKUPLANDMARK\":this.changeResidentialForm[id].get('pickupLandmark').value,\r\n \"DROPOFFLANDMARK\":this.changeResidentialForm[id].get('dropoffLandmark').value,\r\n \"Picklat\":this.changeResidentialForm[id].get('latitudePickup').value == 0 ? null : this.changeResidentialForm[id].get('latitudePickup').value,\r\n \"Picklog\":this.changeResidentialForm[id].get('longitudePickup').value == 0 ? null : this.changeResidentialForm[id].get('longitudePickup').value,\r\n \"Droplat\":this.changeResidentialForm[id].get('latitudeDropoff').value == 0 ? null :this.changeResidentialForm[id].get('latitudeDropoff').value,\r\n \"Droplog\":this.changeResidentialForm[id].get('longitudeDropoff').value == 0 ? null : this.changeResidentialForm[id].get('longitudeDropoff').value,\r\n \"Source\":\"web\"\r\n }\r\n this.residentialForms.push({...body})\r\n }\r\n else{\r\n this.residentialForms.push({id:id,studName:this.changeResidentialForm[id].get('studentName').value,\r\n photopath:this.changeResidentialForm[id].get('photopath').value })\r\n }\r\n }\r\n searchPickupArea(value: string, formId: any) {\r\n let filter = value.toLowerCase();\r\n let tempArea = this.changeResidentialForm[formId].get('pickupAreaMaster').value;\r\n if (filter != '') {\r\n let filteredArea =tempArea.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupAreaMasterTemp': filteredArea\r\n });\r\n } \r\n else{\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupAreaMasterTemp': tempArea\r\n });\r\n }\r\n }\r\n\r\n searchPickupPoints(value: string, formId:any) {\r\n let filter = value.toLowerCase();\r\n let tempPoints = this.changeResidentialForm[formId].get('pickupPointMaster').value;\r\n if (filter != '') {\r\n let filteredPoints = tempPoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupPointMasterTemp': filteredPoints\r\n });\r\n }\r\n else {\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupPointMasterTemp': tempPoints\r\n });\r\n }\r\n }\r\n\r\n searchDropoffArea(value: string, formId: any) {\r\n let filter = value.toLowerCase();\r\n let tempArea = this.changeResidentialForm[formId].get('dropOffAreaMaster').value;\r\n if (filter != '') {\r\n let filteredArea =tempArea.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropOffAreaMasterTemp': filteredArea\r\n });\r\n } \r\n else{\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropOffAreaMasterTemp': tempArea\r\n });\r\n }\r\n }\r\n\r\n searchDropoffPoints(value: string, formId:any) {\r\n let filter = value.toLowerCase();\r\n let tempPoints = this.changeResidentialForm[formId].get('dropoffPointMaster').value;\r\n if (filter != '') {\r\n let filteredPoints = tempPoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropoffPointMasterTemp': filteredPoints\r\n });\r\n }\r\n else {\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropoffPointMasterTemp': tempPoints\r\n });\r\n }\r\n }\r\n\r\n mapTextSearch() {\r\n if (this.mapSearch.length >= 3) {\r\n this.autocompleteService.getPlacePredictions(this.mapSearch).subscribe(predictions => {\r\n this.predictions = predictions;\r\n });\r\n } else {\r\n this.predictions = [];\r\n }\r\n }\r\n\r\n eventHandler(event: any, name: string, formId:any) {\r\n if (name === 'mapDblclick' || name === 'mapClick') {\r\n this.dropMarker(event,formId)\r\n this.editAllChildFields(formId);\r\n }\r\n }\r\n\r\n dropMarker(event: any ,formId:any) {\r\n if (this.changeResidentialForm[formId].controls.mapOpenedFrom.value == 'pickup') {\r\n this.changeResidentialForm[formId].patchValue({\r\n \"latitudePickup\":event.latLng.lat(),\r\n \"longitudePickup\":event.latLng.lng(),\r\n \"pickupConfirmed\": false\r\n })\r\n // this.latitudePickup = event.latLng.lat();\r\n // this.longitudePickup = event.latLng.lng();\r\n this.PickupgetAddress(event.latLng.lat(), event.latLng.lng(),formId)\r\n if (this.changeResidentialForm[formId].get('tptType').value == 0) {\r\n // this.latitudeDropoff = this.latitudePickup;\r\n // this.longitudeDropoff = this.longitudePickup;\r\n this.changeResidentialForm[formId].patchValue({\r\n \"latitudeDropoff\": event.latLng.lat(),\r\n \"longitudeDropoff\": event.latLng.lng(),\r\n \"dropoffConfirmed\": false\r\n })\r\n\r\n this.changeResidentialForm[formId].patchValue({ \"dropoffMarker\": [] });\r\n let dropoffMarker = [];\r\n dropoffMarker.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (dropoffMarker.length + 1),\r\n },\r\n title: 'Marker title ' + (dropoffMarker.length + 1),\r\n info: 'Marker info ' + (dropoffMarker.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.changeResidentialForm[formId].patchValue({ \"dropoffMarker\": dropoffMarker });\r\n this.changeResidentialForm[formId].patchValue({ \"dropoffCenter\": { lat: event.latLng.lat(), lng: event.latLng.lng() } });\r\n this.DropoffgetAddress(event.latLng.lat(), event.latLng.lng(), formId)\r\n }\r\n this.changeResidentialForm[formId].patchValue({\"pickupMarker\":[]})\r\n let pickupMarker=[];\r\n pickupMarker.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (pickupMarker.length + 1),\r\n },\r\n title: 'Marker title ' + (pickupMarker.length + 1),\r\n info: 'Marker info ' + (pickupMarker.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.changeResidentialForm[formId].patchValue({\"pickupMarker\":pickupMarker})\r\n this.changeResidentialForm[formId].patchValue({\"pickupCenter\":{ lat: event.latLng.lat(), lng: event.latLng.lng() }});\r\n } else {\r\n // this.latitudeDropoff = event.latLng.lat();\r\n // this.longitudeDropoff = event.latLng.lng();\r\n this.changeResidentialForm[formId].patchValue({\r\n \"latitudeDropoff\":event.latLng.lat(),\r\n \"longitudeDropoff\":event.latLng.lng(),\r\n \"dropoffConfirmed\": false\r\n })\r\n this.changeResidentialForm[formId].patchValue({\"dropoffMarker\":[]});\r\n let dropoffMarker=[];\r\n dropoffMarker.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (dropoffMarker.length + 1),\r\n },\r\n title: 'Marker title ' + (dropoffMarker.length + 1),\r\n info: 'Marker info ' + (dropoffMarker.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.changeResidentialForm[formId].patchValue({\"dropoffMarker\":dropoffMarker});\r\n this.changeResidentialForm[formId].patchValue({\"dropoffCenter\":{ lat: event.latLng.lat(), lng: event.latLng.lng() }});\r\n this.DropoffgetAddress(event.latLng.lat(), event.latLng.lng(),formId)\r\n }\r\n }\r\n\r\n PickupgetAddress(latitude, longitude,formId) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n // this.pickupLocation = results[0].formatted_address\r\n this.changeResidentialForm[formId].patchValue({\r\n \"pickupLocation\":results[0].formatted_address\r\n })\r\n this.changeResidentialForm[formId].patchValue({\"pickupCenter\" : {lat:latitude,lng:longitude}});\r\n this.changeResidentialForm[formId].patchValue({\"pickupMarker\" : []});\r\n let pickupMarker=[];\r\n pickupMarker.push({position: this.changeResidentialForm[formId].controls.pickupCenter.value,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.changeResidentialForm[formId].patchValue({\"pickupMarker\" : pickupMarker});\r\n } \r\n } \r\n });\r\n }\r\n\r\n DropoffgetAddress(latitude, longitude,formId:any) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n //this.dropoffLocation = results[0].formatted_address\r\n this.changeResidentialForm[formId].patchValue({\r\n \"dropoffLocation\":results[0].formatted_address\r\n })\r\n this.changeResidentialForm[formId].patchValue({\"dropoffCenter\" : {lat:latitude,lng:longitude}});\r\n this.changeResidentialForm[formId].patchValue({\"dropoffMarker\" : []});\r\n let dropoffMarker=[];\r\n dropoffMarker.push({position: this.changeResidentialForm[formId].controls.dropoffCenter.value,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.changeResidentialForm[formId].patchValue({\"dropoffMarker\" : dropoffMarker});\r\n } \r\n } \r\n });\r\n }\r\n\r\n confirmLocation(type:any){\r\n\r\n if(type == 'pickup'){\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"pickupConfirmed\":true})\r\n\r\n if (this.changeResidentialForm[this.MapFormIndex].get('tptType').value == 0){\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"dropoffConfirmed\":true})\r\n }\r\n }else{\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"dropoffConfirmed\":true})\r\n }\r\n\r\n this.dialog.closeAll();\r\n this.mapSearch = '',\r\n this.predictions=[];\r\n }\r\n\r\n close() {\r\n\r\n if (this.changeResidentialForm[this.MapFormIndex].controls.mapOpenedFrom.value == 'pickup') {\r\n if (!this.changeResidentialForm[this.MapFormIndex].get('pickupConfirmed').value) {\r\n\r\n this.changeResidentialForm[this.MapFormIndex].controls.pickupLocation.markAsUntouched();\r\n this.changeResidentialForm[this.MapFormIndex].controls.pickupLocation.clearValidators();\r\n this.changeResidentialForm[this.MapFormIndex].controls.pickupLocation.updateValueAndValidity();\r\n if(this.existingMapInfo != null && this.existingMapInfo != undefined){\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n pickupMarker:this.existingMapInfo.pickupMarker,\r\n pickupLocation: this.existingMapInfo.pickupLocation,\r\n latitudePickup: this.existingMapInfo.latitudePickup,\r\n longitudePickup: this.existingMapInfo.longitudePickup,\r\n pickupCenter: this.existingMapInfo.pickupCenter\r\n });\r\n }else{\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n pickupMarker: [],\r\n pickupLocation: '',\r\n latitudePickup: 0,\r\n longitudePickup: 0,\r\n pickupCenter: this.pickCenter\r\n });\r\n }\r\n\r\n if (this.changeResidentialForm[this.MapFormIndex].get('tptType').value == 0) {\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.clearValidators();\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.updateValueAndValidity();\r\n if (this.existingMapInfo != null && this.existingMapInfo != undefined) {\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n dropoffMarker: this.existingMapInfo.dropoffMarker,\r\n dropoffLocation: this.existingMapInfo.dropoffLocation,\r\n latitudeDropoff: this.existingMapInfo.latitudeDropoff,\r\n longitudeDropoff: this.existingMapInfo.longitudeDropoff,\r\n dropoffCenter: this.existingMapInfo.dropoffCenter\r\n })\r\n }else{\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n dropoffMarker: [],\r\n dropoffLocation: '',\r\n latitudeDropoff: 0,\r\n longitudeDropoff: 0,\r\n dropoffCenter: this.dropCenter\r\n })\r\n }\r\n }\r\n }\r\n } else {\r\n if (!this.changeResidentialForm[this.MapFormIndex].get('dropoffConfirmed').value) {\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.markAsUntouched();\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.clearValidators();\r\n this.changeResidentialForm[this.MapFormIndex].controls.dropoffLocation.updateValueAndValidity();\r\n if (this.existingMapInfo != null && this.existingMapInfo != undefined) {\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n dropoffMarker: this.existingMapInfo.dropoffMarker,\r\n dropoffLocation: this.existingMapInfo.dropoffLocation,\r\n latitudeDropoff: this.existingMapInfo.latitudeDropoff,\r\n longitudeDropoff: this.existingMapInfo.longitudeDropoff,\r\n dropoffCenter: this.existingMapInfo.dropoffCenter\r\n })\r\n }else{\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n dropoffMarker: [],\r\n dropoffLocation: '',\r\n latitudeDropoff: 0,\r\n longitudeDropoff: 0,\r\n dropoffCenter: this.dropCenter\r\n })\r\n }\r\n }\r\n }\r\n\r\n this.dialog.closeAll();\r\n this.mapSearch = '',\r\n this.predictions = [];\r\n }\r\n cancel()\r\n {\r\n this.digopen?.close();\r\n this.router.navigate(['/request-area-change'])\r\n }\r\n\r\n openMap(template: TemplateRef, value: any,formId:any) {\r\n\r\n this.existingMapInfo = {\r\n pickupMarker: this.changeResidentialForm[formId].get('pickupMarker').value,\r\n dropoffMarker: this.changeResidentialForm[formId].get('dropoffMarker').value,\r\n pickupLocation: this.changeResidentialForm[formId].get('pickupLocation').value,\r\n dropoffLocation: this.changeResidentialForm[formId].get('dropoffLocation').value,\r\n latitudePickup: this.changeResidentialForm[formId].get('latitudePickup').value,\r\n longitudePickup: this.changeResidentialForm[formId].get('longitudePickup').value,\r\n latitudeDropoff: this.changeResidentialForm[formId].get('latitudeDropoff').value,\r\n longitudeDropoff: this.changeResidentialForm[formId].get('longitudeDropoff').value,\r\n pickupCenter: this.changeResidentialForm[formId].get('pickupCenter').value,\r\n dropoffCenter: this.changeResidentialForm[formId].get('dropoffCenter').value\r\n }\r\n this.changeResidentialForm[formId].patchValue({\"mapOpenedFrom\" : value});\r\n this.dialog.open(template, {\r\n disableClose: true,\r\n width: '1040px',\r\n panelClass: ['custom-modalbox', 'mapPopup']\r\n });\r\n this.MapFormIndex=formId\r\n }\r\n\r\n openInfo(marker: MapMarker, content: string) {\r\n this.infoContent = content;\r\n this.info.open(marker)\r\n }\r\n\r\n onPredictionClick(prediction: google.maps.places.AutocompletePrediction) {\r\n const geocoder = new google.maps.Geocoder();\r\n if(this.changeResidentialForm[this.MapFormIndex].controls.mapOpenedFrom.value =='pickup'){\r\n //this.pickupLocation = prediction.description\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({'pickupLocation':prediction.description})\r\n } else{\r\n //this.dropoffLocation = prediction.description\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({'dropoffLocation':prediction.description})\r\n }\r\n geocoder.geocode({ placeId: prediction.place_id }, (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n // Update the map center and clear existing markers\r\n if(this.changeResidentialForm[this.MapFormIndex].controls.mapOpenedFrom.value == 'pickup'){\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"pickupCenter\": { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() }});\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"pickupMarker\" :[]});\r\n // Add a marker for the selected location\r\n let pickupMarker=[];\r\n pickupMarker.push({position: this.changeResidentialForm[this.MapFormIndex].controls.pickupCenter.value,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"pickupMarker\" :pickupMarker});\r\n // this.latitudePickup = results[0].geometry.location.lat(),\r\n // this.longitudePickup = results[0].geometry.location.lng()\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n \"latitudePickup\":results[0].geometry.location.lat(),\r\n \"longitudePickup\":results[0].geometry.location.lng(),\r\n \"pickupConfirmed\": false\r\n })\r\n\r\n if (this.changeResidentialForm[this.MapFormIndex].get('tptType').value == 0) {\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({'dropoffLocation':prediction.description})\r\n\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({ \"dropoffCenter\": { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() } });\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({ \"dropoffMarker\": [] });\r\n // Add a marker for the selected location\r\n let dropoffMarker = [];\r\n dropoffMarker.push({\r\n position: this.changeResidentialForm[this.MapFormIndex].controls.dropoffCenter.value, label: '', title: prediction.description, options: {\r\n animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({ \"dropoffMarker\": dropoffMarker })\r\n //this.latitudeDropoff = results[0].geometry.location.lat(),\r\n //this.longitudeDropoff = results[0].geometry.location.lng()\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n \"latitudeDropoff\": results[0].geometry.location.lat(),\r\n \"longitudeDropoff\": results[0].geometry.location.lng(),\r\n \"dropoffConfirmed\": false\r\n })\r\n }\r\n this.mapSearch = prediction.description\r\n \r\n this.predictions=[];\r\n } else{\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"dropoffCenter\" : { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() }});\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"dropoffMarker\" :[]}) ;\r\n // Add a marker for the selected location\r\n let dropoffMarker=[];\r\n dropoffMarker.push({position: this.changeResidentialForm[this.MapFormIndex].controls.dropoffCenter.value,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\"dropoffMarker\" :dropoffMarker})\r\n //this.latitudeDropoff = results[0].geometry.location.lat(),\r\n //this.longitudeDropoff = results[0].geometry.location.lng()\r\n this.changeResidentialForm[this.MapFormIndex].patchValue({\r\n \"latitudeDropoff\":results[0].geometry.location.lat(),\r\n \"longitudeDropoff\":results[0].geometry.location.lng(),\r\n \"dropoffConfirmed\": false\r\n })\r\n this.mapSearch = prediction.description\r\n this.predictions=[];\r\n }\r\n this.editAllChildFields(this.MapFormIndex);\r\n }\r\n });\r\n }\r\n\r\n addSiblingDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n \r\n submit(template:any)\r\n {\r\n let forms =[...this.residentialForms];\r\n forms.forEach(x=>{\r\n this.setResidentialForms(x.id,false) \r\n })\r\n let body = this.residentialForms\r\n let token = JSON.parse(localStorage.getItem('currentToken'))?.access_token\r\n this.areaChangeService.postAreaChange(body,token).subscribe((res : any)=>{\r\n if(res?.success == \"true\")\r\n {\r\n this.referenceNo = res?.data;\r\n this.successDialog(template);\r\n }\r\n })\r\n }\r\n\r\n clearAreaSearch(type: any, formId: any){\r\n if(type == 'pickupArea'){\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupAreaMasterTemp': this.changeResidentialForm[formId].get('pickupAreaMaster').value\r\n });\r\n }else if(type == 'dropoffArea'){\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropOffAreaMasterTemp': this.changeResidentialForm[formId].get('dropOffAreaMaster').value\r\n });\r\n }\r\n }\r\n clearPointSearch(type:any, formId:any){\r\n if (type == 'pickupPoint') {\r\n this.changeResidentialForm[formId].patchValue({\r\n 'pickupPointMasterTemp': this.changeResidentialForm[formId].get('pickupPointMaster').value\r\n });\r\n } else if (type == 'dropoffPoint') {\r\n this.changeResidentialForm[formId].patchValue({\r\n 'dropoffPointMasterTemp': this.changeResidentialForm[formId].get('dropoffPointMaster').value\r\n });\r\n }\r\n }\r\n clearSearchValue(event:any){\r\n event.target.value = '';\r\n }\r\n\r\n getFeeStructure(formId:any) {\r\n let provider: any;\r\n provider = JSON.parse(localStorage.getItem('schoolDetails'))\r\n let data: any = [];\r\n data.push({\r\n ACD_ID: this.studentDetails?.acdid ?? 0,\r\n TRIPTYPE: this.changeResidentialForm[formId].get('tptType').value ?? 0,\r\n SBLID: Number(this.changeResidentialForm[formId].get('pickupArea').value ?? 0),\r\n DSBLID: Number(this.changeResidentialForm[formId].get('dropoffArea').value ?? 0),\r\n STU_ID: 0,\r\n PROVIDER_BSU_ID: provider.provider,\r\n TRM_STARTDT: '',\r\n SSV_STARTDT: '',\r\n })\r\n this.areaChangeService.getFeeAmounts(this.token, data).subscribe(res => {\r\n this.tptFee = res.data;\r\n\r\n this.tptFee = this.tptFee.filter((x:any) => x.type == 2);\r\n\r\n if (this.tptFee.length > 0) {\r\n this.IsCloseFee = true\r\n } else {\r\n this.IsCloseFee = false\r\n\r\n }\r\n });\r\n }\r\n \r\n closeFee() {\r\n this.IsCloseFee = false\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { areaChangeService } from 'src/app/service/areaChange.service';\r\n\r\n@Component({\r\n selector: 'app-request-area-change',\r\n templateUrl: './request-area-change.component.html',\r\n styleUrls: ['./request-area-change.component.scss']\r\n})\r\nexport class RequestAreaChangeComponent implements OnInit {\r\n getAreaChangeDetails:any[]=[];\r\n isPending: boolean=false;\r\n token: any;\r\n isDataNotAvailable: boolean=false;\r\n\r\n constructor(public areaChangeService:areaChangeService,public router:Router,private dialog: MatDialog) { }\r\n \r\n ngOnInit(): void {\r\n this.getDetails();\r\n }\r\n\r\n getDetails()\r\n {\r\n this.isDataNotAvailable = false;\r\n this.token = JSON.parse(localStorage.getItem('currentToken'))?.access_token\r\n this.areaChangeService.getAreaChange(this.token).subscribe((res:any)=>{\r\n\r\n if(res?.data == null || res?.data?.length == 0){\r\n this.isDataNotAvailable = true;\r\n }\r\n\r\n res?.data?.forEach(x=>{\r\n x.date = x.tcH_REQDATE.replaceAll('/',' ')\r\n })\r\n this.getAreaChangeDetails=res?.data\r\n if(this.getAreaChangeDetails)\r\n {\r\n let index=this.getAreaChangeDetails.findIndex(x=>x?.appR_STATUS == 'PENDING');\r\n this.isPending= index == -1 ? false :true\r\n }else this.isPending=false;\r\n }, (err: HttpErrorResponse) => {\r\n this.isDataNotAvailable = true;\r\n })\r\n }\r\n\r\n navigate()\r\n {\r\n this.router.navigate(['/request-area-change-info'])\r\n }\r\n \r\n cancel(id:any)\r\n {\r\n this.areaChangeService.deleteAreaChange(id,this.token).subscribe(res=>{\r\n this.openMessageDialog(\"Deleted successfully.\",false,'')\r\n })\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getDetails();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-app-terms-and-conditions',\r\n templateUrl: './app-terms-and-conditions.component.html',\r\n styleUrls: ['./app-terms-and-conditions.component.scss']\r\n})\r\nexport class AppTermsAndConditionsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatInput } from '@angular/material/input';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n isPasswordLength: boolean=true;\r\n password: any='';\r\n isAlphabets: boolean=true;\r\n isNumbers: boolean=true;\r\n passwordNew:any;\r\n passwordConfirm:any=''\r\n isConfirmPasswordRequired: boolean=false;\r\n ispasswordConfirmed: boolean=false;\r\n passwordOld:any=''\r\n @ViewChild(\"newPassword\") newPasswordInput!: MatInput;\r\n @ViewChild(\"confirmPassword\") confirmPasswordInput!: MatInput;\r\n @ViewChild(\"oldPassword\") oldPasswordInput!: MatInput;\r\n isNewPasswordVisible: boolean=false;\r\n isOldPasswordVisible: boolean=false;\r\n isConfirmPasswordVisible: boolean=false;\r\n resErr:boolean=false;\r\n checkNewOld:boolean=false;\r\n constructor( private router: Router,public service:DashboardService,private dialog: MatDialog,) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n public changeNewPassword(value: any) {\r\n if(!this.isNewPasswordVisible)\r\n this.hidePasswordForNew();\r\n this.checkNewOld=false;\r\n this.ispasswordConfirmed = false;\r\n this.password = value;\r\n if (value.length < 8 || value.length > 16) {\r\n this.isPasswordLength = true\r\n } else {\r\n this.isPasswordLength = false\r\n }\r\n\r\n if (this.checkAlphabets(value)) {\r\n this.isAlphabets = false;\r\n }\r\n else {\r\n this.isAlphabets = true;\r\n }\r\n if ((this.checkNumerics(value)) && (this.hasSpecialChars(value))) {\r\n this.isNumbers = false;\r\n }\r\n else {\r\n this.isNumbers = true;\r\n }\r\n }\r\n\r\n public changeOldpassword() {\r\n this.checkNewOld=false;\r\n if(!this.isOldPasswordVisible)\r\n this.hidePasswordForOld();\r\n }\r\n\r\n public checkconfirmpassword(value: any) {\r\n if(!this.isConfirmPasswordVisible)\r\n this.hidePasswordForConfirm();\r\n if (value == '') {\r\n this.isConfirmPasswordRequired = true\r\n } else {\r\n this.isConfirmPasswordRequired = false\r\n }\r\n if (value == this.passwordNew) {\r\n this.ispasswordConfirmed = false;\r\n } else {\r\n this.ispasswordConfirmed = true;\r\n\r\n }\r\n }\r\n\r\n public checkAlphabets(text: any) {\r\n return text.match(/(?=.*[a-z])(?=.*[A-Z])/) ? true : false;\r\n\r\n }\r\n public checkNumerics(text: any) {\r\n return text.match(/(?=.*[0-9])/) ? true : false;\r\n\r\n }\r\n public hasSpecialChars(str: any) {\r\n var format = /[ `!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?~]/;\r\n if (format.test(str)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public hidePasswordForNew() {\r\n\r\n if (this.newPasswordInput) {\r\n this.newPasswordInput.type = \"password\";\r\n this.isNewPasswordVisible = false;\r\n }\r\n\r\n }\r\n public showPasswordForNew() {\r\n\r\n if (this.newPasswordInput) {\r\n this.newPasswordInput.type = \"text\";\r\n this.isNewPasswordVisible = true;\r\n }\r\n }\r\n\r\n public hidePasswordForOld() {\r\n\r\n if (this.oldPasswordInput) {\r\n this.oldPasswordInput.type = \"password\";\r\n this.isOldPasswordVisible = false;\r\n }\r\n\r\n }\r\n public showPasswordForOld() {\r\n\r\n if (this.oldPasswordInput) {\r\n this.oldPasswordInput.type = \"text\";\r\n this.isOldPasswordVisible = true;\r\n }\r\n }\r\n public hidePasswordForConfirm() {\r\n\r\n if (this.confirmPasswordInput) {\r\n this.confirmPasswordInput.type = \"password\";\r\n this.isConfirmPasswordVisible = false;\r\n }\r\n\r\n }\r\n public showPasswordForConfirm() {\r\n\r\n if (this.confirmPasswordInput) {\r\n this.confirmPasswordInput.type = \"text\";\r\n this.isConfirmPasswordVisible = true;\r\n }\r\n }\r\n\r\n cancel()\r\n {\r\n this.router.navigate(['/settings']);\r\n }\r\n\r\n submit()\r\n {\r\n this.checkconfirmpassword(this.passwordConfirm);\r\n if(!this.isConfirmPasswordRequired && !this.ispasswordConfirmed && !this.isAlphabets && !this.isNumbers && !this.isPasswordLength)\r\n {\r\n if(this.passwordOld != this.passwordNew)\r\n {\r\n this.checkNewOld=false;\r\n let body={\r\n old:this.passwordOld,\r\n new:this.passwordNew,\r\n confirm:this.passwordConfirm\r\n }\r\n this.service.changePassword(body).subscribe((res:any)=>{\r\n if(res?.bPasswordChanged)\r\n {\r\n this.resErr=false;\r\n this.openMessageDialog(\"Password updated successfully.\",false,'')\r\n }\r\n else \r\n {\r\n this.resErr=true;\r\n this.openMessageDialog(\"Old password mismatched.\",true,'')\r\n }\r\n })\r\n }else this.checkNewOld=true\r\n }\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(!this.resErr)\r\n this.cancel();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-privacy-policy',\r\n templateUrl: './privacy-policy.component.html',\r\n styleUrls: ['./privacy-policy.component.scss']\r\n})\r\nexport class PrivacyPolicyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.scss']\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n checked: boolean=false;\r\n\r\n constructor( private router: Router,public service:DashboardService,private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.getMessageAlerts();\r\n }\r\n navigatetolink(lnk) {\r\n this.router.navigate([lnk]);\r\n }\r\n getMessageAlerts()\r\n {\r\n this.service.getMessageAlerts().subscribe((res:any)=>{\r\n this.checked = res?.data ?? false;\r\n })\r\n }\r\n onToggle(event) {\r\n this.checked = event.checked;\r\n this.service.updateMessageAlert(this.checked).subscribe((res:any)=>{\r\n if(res?.data)\r\n this.openMessageDialog(\"Message alerts updated.\",false,'')\r\n else this.openMessageDialog(\"Message alerts update failed.\",true,'')\r\n })\r\n }\r\n openPdf(type:any)\r\n {\r\n this.service.getTermsAndPolicy(type).subscribe((res:any)=>{\r\n window.open(res?.data, '_blank');\r\n })\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CarouselComponent, OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { forkJoin } from 'rxjs';\r\nimport { HomeService } from 'src/app/service/home.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\n\r\n@Component({\r\n selector: 'app-sts-group',\r\n templateUrl: './sts-group.component.html',\r\n styleUrls: ['./sts-group.component.scss']\r\n})\r\nexport class StsGroupComponent implements OnInit {\r\n latestNews: any[] = [];\r\n awards: any[]=[];\r\n accreditation: any[]=[];\r\n partnership: any[]=[];\r\n vision:any;\r\n defaultToken: any;\r\n constructor(public service:HomeService,public tokenService:TokenService) { }\r\n\r\n ngOnInit(): void {\r\n this.getToken();\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getLatestNews();\r\n this.getAwardSection();\r\n })\r\n }\r\n getAwardSection()\r\n {\r\n let services = [];\r\n services.push(this.service.getAwards(this.defaultToken))\r\n services.push(this.service.getAccreditation(this.defaultToken));\r\n services.push(this.service.getPartnership(this.defaultToken));\r\n services.push(this.service.getVision(this.defaultToken));\r\n forkJoin(services).subscribe((res: any) => {\r\n this.awards = [];\r\n this.accreditation = [];\r\n this.partnership = [];\r\n if (res) {\r\n if (res[0]?.length > 0) {\r\n this.awards = res[0];\r\n }\r\n if (res[1]?.length > 0) {\r\n this.accreditation = res[1];\r\n }\r\n if (res[2]?.length > 0) {\r\n this.partnership = res[2];\r\n }\r\n if (res[3]?.length > 0) {\r\n let data=res[3]\r\n this.vision = data[0].descriprtion.split('\\n');\r\n }\r\n }\r\n })\r\n }\r\n getLatestNews() {\r\n this.service.getNews(this.defaultToken).subscribe(\r\n res => {\r\n if(res.length <=3)\r\n this.latestNews = res\r\n else this.latestNews =res.slice(0,3)\r\n })\r\n }\r\n\r\n customOptions: OwlOptions = {\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n dots: true,\r\n margin: 20,\r\n navSpeed: 700,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 400: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 740: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 940: {\r\n items: 2,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n }\r\n },\r\n nav: false\r\n }\r\n\r\n// swiper\r\n\r\nredirectUrl(url:any)\r\n{\r\n if(url)\r\n window.open(url, '_blank')\r\n}\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-sts-offers',\r\n templateUrl: './sts-offers.component.html',\r\n styleUrls: ['./sts-offers.component.scss']\r\n})\r\nexport class StsOffersComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n\r\n@Component({\r\n selector: 'app-contact-sde',\r\n templateUrl: './contact-sde.component.html',\r\n styleUrls: ['./contact-sde.component.scss']\r\n})\r\nexport class ContactSdeComponent implements OnInit {\r\n contactDetails: any;\r\n primaryContact: string;\r\n contactBusDetails: any;\r\n busContact: string;\r\n\r\n constructor(private supportService:SupportService) { }\r\n\r\n ngOnInit(): void {\r\n this.supportService.getSDEContact().subscribe(\r\n (res:any)=>{\r\n this.contactDetails = res?.data;\r\n this.primaryContact = [this.contactDetails.mobileNumber.slice(0, 3)+\" \"+this.contactDetails.mobileNumber.slice(3,5) +\" \"+this.contactDetails.mobileNumber.slice(5,8)+\" \"+this.contactDetails.mobileNumber.slice(8,12)].join('');\r\n this.supportService.getBusContact().subscribe((resp:any)=>{\r\n this.contactBusDetails = resp?.data[0];\r\n if((this.contactBusDetails.diverMobile.length >= 12 && (this.contactBusDetails.diverMobile.slice(0, 3) == \"971\")) || (this.contactBusDetails.diverMobile.length >= 11 && (this.contactBusDetails.diverMobile.slice(0, 3) == \"974\")))\r\n {\r\n this.busContact = \"+\"+[this.contactBusDetails.diverMobile.slice(0, 3)+\" \"+this.contactBusDetails.diverMobile.slice(3,5) +\" \"+this.contactBusDetails.diverMobile.slice(5,8)+\" \"+this.contactBusDetails.diverMobile.slice(8,12)].join('');\r\n }\r\n else{\r\n this.busContact = this.contactBusDetails.diverMobile\r\n }\r\n })\r\n }\r\n )\r\n }\r\n \r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n\r\n@Component({\r\n selector: 'app-faq',\r\n templateUrl: './faq.component.html',\r\n styleUrls: ['./faq.component.scss']\r\n})\r\nexport class FaqComponent implements OnInit {\r\n faqDetails: any[]=[];\r\n\r\n constructor(private supportService:SupportService) { }\r\n\r\n ngOnInit(): void {\r\n this.faqDetails=[];\r\n this.supportService.getFAQs().subscribe(\r\n (res:any)=>{\r\n this.faqDetails = res?.data;\r\n }\r\n )\r\n }\r\n\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { ErrorSupportForm } from 'src/app/models/landing.model';\r\nimport { HomeService } from 'src/app/service/home.service';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n@Component({\r\n selector: 'app-add-feedback',\r\n templateUrl: './add-feedback.component.html',\r\n styleUrls: ['./add-feedback.component.scss']\r\n})\r\nexport class AddFeedbackComponent implements OnInit {\r\n private rating: number = 0;\r\n private starCount: number = 5;\r\n private color: string = 'accent';\r\n public serviceRequest: Request = new Request();\r\n errorModel: ErrorSupportForm = new ErrorSupportForm()\r\n submitform:boolean=false;\r\n categoryList: any[] = [];\r\n imgdata: string;\r\n date: any = new Date();\r\n invalidFileSize: boolean = false;\r\n invalidFile: boolean = false;\r\n public ratingArr = []\r\n validRating: boolean = false;\r\n constructor(private route:Router,private supportService: SupportService, private homeService: HomeService, private datePipe: DatePipe, private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n for (let index = 0; index < this.starCount; index++) {\r\n this.ratingArr.push(index);\r\n }\r\n this.getCategories();\r\n let email: any;\r\n email = localStorage.getItem('primaryEmail')\r\n let studentNo: any;\r\n studentNo = localStorage.getItem('selectedstudentid')\r\n this.serviceRequest.email = email;\r\n this.serviceRequest.studentNo = studentNo;\r\n\r\n }\r\n showIcon(index:number) {\r\n if (this.rating >= index + 1) {\r\n return 'star';\r\n } else {\r\n return 'star_border';\r\n }\r\n }\r\n rate(index: number): void {\r\n this.rating = index + 1;\r\n this.checkForRating();\r\n }\r\n isStarBorder(index: number): boolean {\r\n return index >= this.rating;\r\n }\r\n optionChange(){\r\n this.rating=0;\r\n this.checkForRating();\r\n }\r\n cancel() {\r\n this.serviceRequest = new Request();\r\n this.route.navigate(['/feedback']);\r\n this.invalidFileSize=false;\r\n this.serviceRequest = new Request();\r\n }\r\n getCategories() {\r\n this.supportService.getCategoriesData().subscribe(\r\n res => {\r\n console.log(res);\r\n let data: any;\r\n data = res?.data.filter(x => x.category == \"FEEDBACK\");\r\n\r\n let array = data[0]?.datavalues.split(';')\r\n console.log(array);\r\n this.categoryList = []\r\n array.forEach(ele => {\r\n let data: any;\r\n data = ele.split(',');\r\n this.categoryList.push({\r\n id: data[1],\r\n value: data[2]\r\n })\r\n })\r\n console.log(this.categoryList);\r\n\r\n }\r\n )\r\n }\r\n handleFileInputChange(files: any) {\r\n //alert(files.target.files[0]);\r\n console.log(files.target.files[0]);\r\n\r\n let fileData: any;\r\n\r\n fileData = files.target.files[0];\r\n let type: any = '';\r\n type = fileData?.type.split('/')[1];\r\n let extName: any = '';\r\n extName = fileData?.name.split('.')[1];\r\n let filesize: any = '';\r\n filesize = fileData?.size;\r\n this.serviceRequest.imgname = fileData?.name;\r\n if ((type == 'png' || type == 'jpg' || type == 'jpeg') || (extName == 'doc' || extName == 'docx' || extName == 'pdf')) {\r\n this.invalidFile = false;\r\n\r\n }\r\n else {\r\n this.invalidFile = true;\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgtype = '';\r\n }\r\n if (filesize <= 5242880) {\r\n this.invalidFileSize = false;\r\n } else {\r\n this.invalidFileSize = true;\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgtype = '';\r\n }\r\n\r\n\r\n this.serviceRequest.imgname = fileData?.name;\r\n this.serviceRequest.imgtype = fileData?.type;\r\n\r\n this.convertFile(files.target.files[0]).subscribe(base64 => {\r\n this.serviceRequest.imgdata = base64;\r\n });\r\n\r\n\r\n }\r\n convertFile(file: File): Observable {\r\n const result = new ReplaySubject(1);\r\n const reader = new FileReader();\r\n reader.readAsBinaryString(file);\r\n reader.onload = (event) => result.next(btoa(event.target.result.toString()));\r\n return result;\r\n }\r\n submitSupport() {\r\n this.submitform=true;\r\n\r\n if (this.serviceRequest.details == null || this.serviceRequest.details == '') {\r\n this.errorModel.IsDescription = true\r\n } else {\r\n this.errorModel.IsDescription = false\r\n\r\n }\r\n if (this.serviceRequest.email == null || this.serviceRequest.email == '') {\r\n this.errorModel.IsEmail = true\r\n } else {\r\n this.errorModel.IsEmail = false\r\n\r\n }\r\n this.serviceRequest.dtime = this.datePipe.transform(this.date, 'yyyy-MM-dd');\r\n console.log(this.serviceRequest);\r\n this.serviceRequest.FeedbackStars=this.rating;\r\n if (!this.errorModel.IsTitleID && !this.errorModel.IsDescription && !this.errorModel.IsEmail && this.serviceRequest.details.trim() != '' && this.validRating) {\r\n let token: any;\r\n token = JSON.parse(localStorage.getItem('currentToken'));\r\n this.homeService.postComplaint(this.serviceRequest, token?.access_token).subscribe(\r\n res => {\r\n if (res.Success == \"true\") {\r\n // this._snackBar.open('Request send successfully.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n\r\n //this.imageName = '';\r\n // this.invalidFile = false;\r\n // this.invalidFileSize = false;\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n } else {\r\n // this._snackBar.open('Something went wrong.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.openMessageDialog(res?.Message, false, \"\");\r\n\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n minWidth: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n this.cancel();\r\n this.gotoFeedbackList()\r\n });\r\n }\r\n gotoFeedbackList(){\r\n this.route.navigateByUrl('/feedback')\r\n }\r\n\r\n checkForRating(){\r\n if(this.serviceRequest.titleID == 19 || this.serviceRequest.titleID ==20 || this.serviceRequest.titleID == 48 || this.serviceRequest.titleID == 52){\r\n this.validRating = this.rating > 0;\r\n }else{\r\n this.validRating = true;\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class Request {\r\n constructor(\r\n public titleID: any = '',\r\n public details: any = '',\r\n public imgdata: any = '',\r\n public imgname: any = '',\r\n public imgtype: any = '',\r\n public dtime: any = '',\r\n public email: any = '',\r\n public studentNo: string = \"0\",\r\n public refID: any = 1,\r\n public comments: any = null,\r\n public contactID: any = 2,\r\n public feedbackID: any = null,\r\n public smiley: any = null,\r\n public FeedbackStars:any=0\r\n ) { }\r\n}","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin } from 'rxjs';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n\r\n@Component({\r\n selector: 'app-feedback',\r\n templateUrl: './feedback.component.html',\r\n styleUrls: ['./feedback.component.scss']\r\n})\r\nexport class FeedbackComponent implements OnInit {\r\n inProgressList: any[]=[];\r\n closeList: any[]=[];\r\n feedbackList: any[]=[];\r\n digopen: any;\r\n Imagename: any;\r\n ext: string;\r\n isDataNotAvailable: boolean = false;\r\n\r\n constructor( private router: Router, private supportService:SupportService, private _sanitizer: DomSanitizer, private dialog:MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.getProgressDetails()\r\n this.getCloseDetails()\r\n\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n if (this.feedbackList.length == 0) {\r\n this.isDataNotAvailable = true;\r\n }\r\n }, 3000);\r\n }\r\n navigatetolink(lnk) {\r\n this.router.navigate([lnk]);\r\n }\r\n getProgressDetails(){\r\n this.supportService.getFeedbackList('-3').subscribe(res=>{\r\n this.inProgressList = res?.data;\r\n if(res?.data == null){\r\n this.inProgressList = []\r\n }\r\n console.log(this.inProgressList) \r\n \r\n this.inProgressList.forEach(ele=>{\r\n ele.status = \"Inprogress\"\r\n })\r\n this.getFeedbackList();\r\n })\r\n \r\n\r\n let array :any[]=[];\r\n console.log(array);\r\n }\r\n getCloseDetails(){\r\n this.supportService.getFeedbackList('-4').subscribe(res=>{\r\n this.closeList = res?.data;\r\n if(res?.data == null){\r\n this.closeList = []\r\n }\r\n console.log(this.closeList) \r\n \r\n this.closeList.forEach(ele=>{\r\n ele.status = \"Closed\"\r\n })\r\n this.getFeedbackList();\r\n })\r\n }\r\n getFeedbackList(){\r\n this.feedbackList=[];\r\n this.feedbackList=[...this.inProgressList,...this.closeList];\r\n\r\n //console.log(this.feedbackList);\r\n // this.feedbackList.forEach(ele=>{\r\n // ele.image_data = this.getImage(ele.image_data)\r\n // });\r\n // console.log(this.feedbackList);\r\n \r\n }\r\ngetImage(image){\r\n \r\n // imagedata = image.split(\"''\");\r\n return btoa(image.toString());\r\n console.log();\r\n \r\n}\r\npublic b64toBlob(b64Data, contentType) {\r\n contentType = contentType || '';\r\n let sliceSize = 512;\r\n\r\n var byteCharacters = atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n var byteArray = new Uint8Array(byteNumbers);\r\n\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n var blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n}\r\ngetPdf(base64:any,extension:any) {\r\n var blob = this.b64toBlob(base64, extension);\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n var url = window.URL.createObjectURL(blob);\r\n window.open(url, '_blank')\r\n}\r\nopenDialog(templateRef: TemplateRef, imagename) \r\n{\r\n this.ext=imagename.imgname.split('.')\r\n this.Imagename='';\r\n this.Imagename = imagename.image_data\r\n if(this.ext[1] != \"pdf\" && this.ext[1] != \"doc\" && this.ext[1] != \"docx\")\r\n {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n}else{\r\n let extension=''\r\n if(this.ext[1] == \"doc\")\r\n extension=\"application/msword\"\r\n else if(this.ext[1] == \"docx\")\r\n extension=\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\r\n else extension=\"application/pdf\"\r\n this.getPdf(this.Imagename,extension);\r\n}\r\n}\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { CommonService } from 'src/app/service/common.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { FileService } from 'src/app/service/file.service';\r\nimport { ReregistrationService } from 'src/app/service/reregistration.service';\r\nimport { SupportService } from 'src/app/service/support.service';\r\nimport { UserprofileupdateService } from 'src/app/service/userprofileupdate.service';\r\n\r\n@Component({\r\n selector: 'app-rfid',\r\n templateUrl: './rfid.component.html',\r\n styleUrls: ['./rfid.component.scss']\r\n})\r\nexport class RfidComponent implements OnInit {\r\n digopen: any;\r\n\r\n bsuCurrency: string = '';\r\n studentProfilePhoto: string = '';\r\n\r\n file: File;\r\n base64Conversion: any;\r\n fileType: any;\r\n base64String: any;\r\n fileErr:boolean=false;\r\n selectedFile: any;\r\n\r\n checked: boolean = false;\r\n cardTypes: any[] = [];\r\n\r\n idForm = new FormGroup({\r\n studentName:new FormControl(''),\r\n schoolId: new FormControl(''),\r\n studentId:new FormControl(''),\r\n grade:new FormControl(''),\r\n section:new FormControl(''),\r\n type:new FormControl('', [Validators.required])\r\n });\r\n\r\n isLeasedSchool: any;\r\n isHybridSchool: any;\r\n \r\n PaymentRefNo: any;\r\n PaymentRedirectURL: any;\r\n paymentTypeID: any;\r\n\r\n amountNotAvailable: boolean = false;\r\n\r\n constructor(private dialog: MatDialog, private router: Router, private dashboardService: DashboardService, \r\n private fileService:FileService, private userprofileimageservice: UserprofileupdateService,\r\n private supportService: SupportService, private configService: ConfigService, private reRegService: ReregistrationService, \r\n private common:CommonService) { }\r\n\r\n ngOnInit(): void {\r\n \r\n this.isLeasedSchool = localStorage.getItem('leasemodelschool');\r\n this.isHybridSchool = localStorage.getItem('IsHybrid');\r\n\r\n this.getIdCardTypes();\r\n\r\n this.bsuCurrency = localStorage.getItem('bsu_currency');\r\n\r\n let selectedStudent = localStorage.getItem(\"selectedstudentid\");\r\n let transportChildInfo = JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n\r\n let childInfo = transportChildInfo.filter((x:any) => x.studentNo == selectedStudent);\r\n\r\n let schoolId = childInfo[0]?.stU_SCHOOL_ID;\r\n let studentName = JSON.parse(localStorage.parentChildrens)[0].studentName;\r\n this.studentProfilePhoto = JSON.parse(localStorage.parentChildrens)[0].photoPath;\r\n let studentTransportId = JSON.parse(localStorage.parentChildrens)[0].studentId;\r\n let studentGrade = JSON.parse(localStorage.parentChildrens)[0].grade;\r\n let studentSection = JSON.parse(localStorage.parentChildrens)[0].section;\r\n\r\n this.idForm.patchValue({\r\n studentName: studentName,\r\n studentId: studentTransportId,\r\n grade: studentGrade,\r\n section: studentSection,\r\n schoolId: schoolId\r\n });\r\n }\r\n\r\n getIdCardTypes(){\r\n this.supportService.getIdCardTypes().subscribe((res:any) => {\r\n this.cardTypes = res?.data;\r\n\r\n this.common.getIPAddress().subscribe(\r\n (ipRes: any) => {\r\n localStorage.setItem('IPAddress', ipRes?.ip)\r\n });\r\n });\r\n }\r\n\r\n onChangeType(){\r\n this.amountNotAvailable = false;\r\n let amount = this.cardTypes.find((x:any) => x.id == this.idForm.get('type').value)?.amount;\r\n\r\n if(amount <= 0){\r\n this.amountNotAvailable = true;\r\n }\r\n }\r\n\r\n submitRequest() {\r\n this.idForm.markAllAsTouched();\r\n if (this.idForm.valid) {\r\n let payload:any;\r\n payload = {\r\n \"STU_NO\": this.idForm.get('studentId').value,\r\n \"CARD_TYPE\": this.idForm.get('type').value,\r\n \"PAYMENT_STATUS\": this.amountNotAvailable,\r\n \"PAYMENT_REFNO\": \"0\",\r\n \"SOURCE\": \"STS_WEB\"\r\n }\r\n\r\n this.supportService.saveIdCardRequest(payload).subscribe((res: any) => {\r\n if(res.success == \"true\"){\r\n let amount = this.cardTypes.find((x:any) => x.id == this.idForm.get('type').value)?.amount;\r\n if(amount > 0){\r\n this.postFeeDetails(amount, res.data);\r\n }else{\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n //this.router.navigate(['/service-request']);\r\n }\r\n }else{\r\n this.openMessageDialog(res?.message, true, '');\r\n }\r\n });\r\n }\r\n }\r\n\r\n postFeeDetails(amount:any, referenceNo:any) {\r\n let data: any[] = [];\r\n let studentId = this.idForm.get('studentId').value;\r\n\r\n this.supportService.getFeeDetails(studentId).subscribe(\r\n res => {\r\n let feedetailsData = res?.data.find((x:any) => x.stU_NO == studentId);\r\n\r\n let obj = {\r\n headers: {\r\n \"STUID\": studentId,\r\n \"SOURCE\": this.configService.source,\r\n \"paymentOrigin\": this.configService.paymentreenrollOrigin\r\n \r\n }\r\n }\r\n \r\n this.supportService.getPaymentType(obj).subscribe((res: any) => {\r\n this.paymentTypeID = res?.data?.filter(x => x.providerTypeID == '2')[0].paymentTypeID;\r\n \r\n let feedetail: any[] = [];\r\n feedetailsData.feeDetail.forEach(ele1 => {\r\n feedetail.push({\r\n \"blockPayNow\": ele1.blockPayNow,\r\n \"advancePaymentAvailable\": ele1.advancePaymentAvailable,\r\n \"advanceDetails\": ele1.advanceDetails,\r\n \"discAmount\": 0,\r\n \"dueAmount\": amount,\r\n \"payAmount\": amount,\r\n \"originalAmount\": amount,\r\n \"feeDescription\": \"ID Card Fees\",\r\n \"feeID\": 49,\r\n \"activityRefID\": ele1.activityRefID,\r\n \"activityFeeCollType\": ele1.activityFeeCollType\r\n });\r\n });\r\n\r\n data.push({\r\n \"stU_NO\": studentId,\r\n \"onlinePaymentAllowed\": feedetailsData.onlinePaymentAllowed,\r\n \"userMessageforOnlinePaymentBlock\": feedetailsData.userMessageforOnlinePaymentBlock,\r\n \"ipAddress\": localStorage.getItem('IPAddress'),\r\n \"paymentTypeID\": this.paymentTypeID,\r\n \"paymentProcessingCharge\": feedetailsData.paymentProcessingCharge,\r\n \"payingAmount\": amount,\r\n \"payMode\": \"\",\r\n \"feeDetail\": feedetail,\r\n \"discountDetails\": []\r\n });\r\n \r\n this.supportService.postFeeDetails(data).subscribe(\r\n (res: any) => {\r\n if (res.Response.Success == \"true\") {\r\n this.PaymentRefNo = res?.PaymentRefNo;\r\n localStorage.setItem('idCardRefNo', referenceNo);\r\n localStorage.setItem('idCardPayment', '1');\r\n localStorage.setItem(\"postPaymentRefNo\", res.PaymentRefNo);\r\n\r\n this.PaymentRedirectURL = res.PaymentRedirectURL;\r\n console.log('paymentdet', this.PaymentRedirectURL);\r\n this.gotoPayment();\r\n } else {\r\n this.openMessageDialog(res.Response.Message, true, '');\r\n }\r\n });\r\n });\r\n }\r\n );\r\n }\r\n\r\n gotoPayment() {\r\n if (this.PaymentRefNo != 0) {\r\n window.open(this.PaymentRedirectURL, '_self');\r\n }\r\n }\r\n\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n ok()\r\n {\r\n this.digopen.close();\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n selectedImgFile(event: any) {\r\n this.file = event.target.files[0];\r\n\r\n if (this.file) {\r\n let splits = this.file.name.split(\".\");\r\n this.fileType = splits[1];\r\n if (this.fileType == \"png\" || this.fileType == \"jpeg\" || this.fileType == \"jpg\") {\r\n this.fileErr = false;\r\n this.selectedFile = this.file;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.file);\r\n this.fileService.setFile(this.file);\r\n reader.onload = (e: any) => {\r\n this.studentProfilePhoto = e.target.result;\r\n this.updatePhoto();\r\n };\r\n }\r\n else {\r\n this.fileErr = true;\r\n this.studentProfilePhoto = \"\"\r\n }\r\n }\r\n }\r\n\r\n updatePhoto() {\r\n let data: any;\r\n let selectedStudent = JSON.parse(localStorage.parentChildrens)[0];\r\n data = {\r\n StudentId: selectedStudent.stuId.toString(),\r\n BsuId: JSON.parse(localStorage.getItem('currentUser')).schooId\r\n }\r\n this.dashboardService.updateProfile(data).subscribe(\r\n (res: any) => {\r\n if (res?.success == 'false') {\r\n this.openProileSuccessDialog(res?.message, true, '');\r\n } else {\r\n this.openProileSuccessDialog(\"Profile updated successfully.\", false, '');\r\n this.userprofileimageservice.updateUserProfileImage(this.studentProfilePhoto);\r\n }\r\n }\r\n )\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n })\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.cancel();\r\n });\r\n }\r\n\r\n openProileSuccessDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n })\r\n }\r\n\r\n cancel() {\r\n this.router.navigate(['/service-request']);\r\n }\r\n\r\n selectedValue = \"Option 2 - Description for option 2\";\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { ErrorSupportForm } from 'src/app/models/landing.model';\r\nimport { HomeService } from 'src/app/service/home.service';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n\r\n@Component({\r\n selector: 'app-service-request',\r\n templateUrl: './service-request.component.html',\r\n styleUrls: ['./service-request.component.scss']\r\n})\r\nexport class ServiceRequestComponent implements OnInit {\r\n @Input('rating') private rating: number = 3;\r\n @Input('starCount') private starCount: number = 5;\r\n @Input('color') private color: string = 'accent';\r\n\r\n\r\n public serviceRequest: Request = new Request();\r\n errorModel: ErrorSupportForm = new ErrorSupportForm()\r\n\r\n categoryList: any[] = [];\r\n imgdata: string;\r\n date: any = new Date();\r\n invalidFileSize: boolean = false;\r\n invalidFile: boolean = false;\r\n public ratingArr = []\r\n \r\n constructor(private supportService: SupportService, private homeService: HomeService, private datePipe: DatePipe, private dialog: MatDialog, public router:Router) { }\r\n\r\n ngOnInit(): void {\r\n for (let index = 0; index < this.starCount; index++) {\r\n this.ratingArr.push(index);\r\n }\r\n\r\n let email: any;\r\n email = localStorage.getItem('primaryEmail')\r\n let studentNo: any;\r\n studentNo = localStorage.getItem('selectedstudentid')\r\n\r\n this.getCategories();\r\n \r\n this.serviceRequest.email = email;\r\n this.serviceRequest.studentNo = studentNo;\r\n\r\n }\r\n cancel() {\r\n this.serviceRequest = new Request();\r\n this.router.navigate(['/support'])\r\n this.invalidFileSize=false\r\n }\r\n showIcon(index:number) {\r\n if (this.rating >= index + 1) {\r\n return 'star';\r\n } else {\r\n return 'star_border';\r\n }\r\n }\r\n rate(index: number): void {\r\n this.rating = index + 1;\r\n }\r\n isStarBorder(index: number): boolean {\r\n return index >= this.rating;\r\n }\r\n getCategories() {\r\n this.supportService.getCategoriesData().subscribe(\r\n res => {\r\n console.log(res);\r\n let data: any;\r\n data = res?.data.filter(x => x.category == \"SERVICE REQUESTS\");\r\n\r\n let array = data[0]?.datavalues.split(';')\r\n console.log(array);\r\n this.categoryList = []\r\n array.forEach(ele => {\r\n let data: any;\r\n data = ele.split(',');\r\n this.categoryList.push({\r\n id: data[1],\r\n value: data[2]\r\n })\r\n })\r\n console.log(this.categoryList);\r\n }\r\n )\r\n }\r\n handleFileInputChange(files: any) {\r\n //alert(files.target.files[0]);\r\n console.log(files.target.files[0]);\r\n\r\n let fileData: any;\r\n\r\n fileData = files.target.files[0];\r\n let type: any = '';\r\n type = fileData?.type.split('/')[1];\r\n let extName: any = '';\r\n extName = fileData?.name.split('.')[1];\r\n let filesize: any = '';\r\n filesize = fileData?.size;\r\n this.serviceRequest.imgname = fileData?.name;\r\n if ((type == 'png' || type == 'jpg' || type == 'jpeg') || (extName == 'doc' || extName == 'docx' || extName == 'pdf')) {\r\n this.invalidFile = false;\r\n\r\n }\r\n else {\r\n this.invalidFile = true;\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgtype = '';\r\n }\r\n if (filesize <= 5242880) {\r\n this.invalidFileSize = false;\r\n } else {\r\n this.invalidFileSize = true;\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgname = '';\r\n this.serviceRequest.imgtype = '';\r\n }\r\n\r\n\r\n this.serviceRequest.imgname = fileData?.name;\r\n this.serviceRequest.imgtype = fileData?.type;\r\n\r\n this.convertFile(files.target.files[0]).subscribe(base64 => {\r\n this.serviceRequest.imgdata = base64;\r\n });\r\n\r\n\r\n }\r\n convertFile(file: File): Observable {\r\n const result = new ReplaySubject(1);\r\n const reader = new FileReader();\r\n reader.readAsBinaryString(file);\r\n reader.onload = (event) => result.next(btoa(event.target.result.toString()));\r\n return result;\r\n }\r\n submitSupport() {\r\n\r\n if (this.serviceRequest.details == null || this.serviceRequest.details == '') {\r\n this.errorModel.IsDescription = true\r\n } else {\r\n this.errorModel.IsDescription = false\r\n\r\n }\r\n if (this.serviceRequest.email == null || this.serviceRequest.email == '') {\r\n this.errorModel.IsEmail = true\r\n } else {\r\n this.errorModel.IsEmail = false\r\n\r\n }\r\n this.serviceRequest.dtime = this.datePipe.transform(this.date, 'yyyy-MM-dd');\r\n console.log(this.serviceRequest);\r\n\r\n if (!this.errorModel.IsTitleID && !this.errorModel.IsDescription && !this.errorModel.IsEmail && this.serviceRequest.details.trim() != '') {\r\n let token: any;\r\n token = JSON.parse(localStorage.getItem('currentToken'));\r\n this.homeService.postComplaint(this.serviceRequest, token?.access_token).subscribe(\r\n res => {\r\n if (res.Success == \"true\") {\r\n // this._snackBar.open('Request send successfully.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n //this.imageName = '';\r\n // this.invalidFile = false;\r\n // this.invalidFileSize = false;\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n } else {\r\n // this._snackBar.open('Something went wrong.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.openMessageDialog(res?.Message, false, \"\");\r\n\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n minWidth: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n this.cancel();\r\n });\r\n }\r\n\r\n onSelectionChange(event: MatSelectChange) {\r\n console.log('Selected option: ', event.value);\r\n if(event.value == 61){\r\n this.router.navigateByUrl('/rfid');\r\n }else if(event.value == 58){\r\n this.router.navigateByUrl('/request-area-change');\r\n }else if(event.value == 59){\r\n this.router.navigateByUrl('/request-schedule-change');\r\n }else if(event.value == 60){\r\n this.router.navigateByUrl('/transport-information');\r\n }\r\n }\r\n}\r\n\r\n\r\nexport class Request {\r\n constructor(\r\n public titleID: any = '',\r\n public details: any = '',\r\n public imgdata: any = '',\r\n public imgname: any = '',\r\n public imgtype: any = '',\r\n public dtime: any = '',\r\n public email: any = '',\r\n public studentNo: string = \"0\",\r\n public refID: any = 1,\r\n public comments: any = null,\r\n public contactID: any = 2,\r\n public feedbackID: any = null,\r\n public smiley: any = null\r\n ) { }\r\n\r\n}\r\n\r\nexport enum StarRatingColor {\r\n primary = \"primary\",\r\n accent = \"accent\",\r\n warn = \"warn\"\r\n}","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { SupportService } from 'src/app/service/support.service';\r\n\r\n@Component({\r\n selector: 'app-view-service-request',\r\n templateUrl: './view-service-request.component.html',\r\n styleUrls: ['./view-service-request.component.scss']\r\n})\r\nexport class ViewServiceRequestComponent implements OnInit {\r\n allServiceRequests: any[] = [];\r\n isDataNotAvailable: boolean = false;\r\n\r\n constructor(public supportService: SupportService) { }\r\n\r\n ngOnInit(): void {\r\n this.getDetails();\r\n }\r\n\r\n getDetails() {\r\n this.isDataNotAvailable = false;\r\n this.supportService.getAllServiceRequests().subscribe((res: any) => {\r\n\r\n if (res?.data == null || res?.data?.length == 0) {\r\n this.isDataNotAvailable = true;\r\n }\r\n\r\n this.allServiceRequests = res?.data\r\n }, (err: HttpErrorResponse) => {\r\n this.isDataNotAvailable = true;\r\n })\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-support',\r\n templateUrl: './support.component.html',\r\n styleUrls: ['./support.component.scss']\r\n})\r\nexport class SupportComponent implements OnInit {\r\n\r\n constructor( private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n navigatetolink(lnk) {\r\n this.router.navigate([lnk]);\r\n }\r\n\r\n navigatetoBBC(Link){\r\n this.router.navigate([Link],{queryParams:{isBBC:true}})\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nconst key = 'TUc0emRqRXpkdw==';\r\n\r\n@Pipe({ name: 'encrypted' })\r\nexport class EncryptPipe implements PipeTransform {\r\n transform(value: string) {\r\n if (value) {\r\n return CryptoJS.AES.encrypt(value, key).toString();\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'decrypted' })\r\nexport class DecryptPipe implements PipeTransform {\r\n transform(encrypted: string) {\r\n if (encrypted) {\r\n const decrypted = CryptoJS.AES.decrypt(encrypted, key);\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n }\r\n}\r\n\r\n@Pipe({ name: 'TCPipe' })\r\nexport class TCPipe implements PipeTransform {\r\n constructor(private domSanitizer: DomSanitizer) {}\r\n transform(url) {\r\n url=url.replace(\"http://\",\"https://\");\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n} \r\n","\r\nimport { SupportService } from 'src/app/service/support.service';\r\nimport { Component, ElementRef, EventEmitter, OnInit, Output, TemplateRef, ViewChild,Inject,Renderer2, Pipe, PipeTransform } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport html2canvas from 'html2canvas';\r\nimport * as html2pdf from 'html2pdf.js';\r\nimport jsPDF from 'jspdf';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { PdfserviceService } from 'src/app/service/pdfservice.service';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport htmlToPdfmake from 'html-to-pdfmake';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n@Component({\r\n selector: 'app-terms-conditions',\r\n templateUrl: './terms-conditions.component.html',\r\n styleUrls: ['./terms-conditions.component.scss']\r\n})\r\nexport class TermsConditionsComponent implements OnInit {\r\n pdfName: string=\"Terms and Conditions.pdf\";\r\n defaultToken: any;\r\n index: number;\r\n pdfHtml: any;\r\n pdfContent: SafeHtml;\r\n pdfType: string;\r\n @ViewChild('pdf') pdf: ElementRef;\r\n @ViewChild('header') header: ElementRef;\r\n isGrade: boolean;\r\n studentDetails: any;\r\n city: any;\r\n base64String: string | ArrayBuffer;\r\n istnc:boolean =false;\r\n isBBC: boolean = false;\r\n noDataAvailable: boolean = false;\r\n constructor(private dialog: MatDialog,private router: Router,private renderer: Renderer2,\r\n @Inject(DOCUMENT) private document: Document,private http: HttpClient,\r\n public supportservice:SupportService,private tokenService: TokenService,\r\n private pdfservice:PdfserviceService,private sanitizer: DomSanitizer,public regservice:RegistrationService, private activatedRoute: ActivatedRoute) { }\r\n pdfs:any[]=[];\r\n @ViewChild('downloadContent') downloadContent: ElementRef;\r\n pdfSrc=\"\";\r\n pdfSrc_s=\"\";\r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n this.studentDetails= JSON.parse(localStorage.getItem(\"parentChildrens\"))[0];\r\n this.city = JSON.parse(localStorage.getItem(\"schoolDetails\"))?.city;\r\n // let transportData=JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n // this.studentDetails= transportData.find(x=>x.stU_ID == data.stuId);\r\n // this.isGrade= (this.studentDetails?.grade.includes('1') && !this.studentDetails?.grade.includes('10') && !this.studentDetails?.grade.includes('11') && !this.studentDetails?.grade.includes('12') ) || (this.studentDetails?.grade.includes('2') && !this.studentDetails?.grade.includes('12')) || this.studentDetails?.grade.includes('3') || this.studentDetails?.grade.includes('KG')? true : false\r\n\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n if(params?.isBBC){\r\n this.isBBC=params.isBBC;\r\n }\r\n })\r\n\r\n this.getSchoolsList();\r\n\r\n }\r\n\r\n getTermsConditions()\r\n {\r\n this.supportservice.getTermsandConditions().subscribe(res=>{\r\n // this.pdfs = res?.data\r\n let pdfData = [];\r\n let parentPdfCount= res?.data.filter(y=>y.ttcuL_DOC_TYPE == 'PUT')?.length;\r\n res?.data.forEach(x=>{\r\n if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount > 1)\r\n {\r\n this.isGrade=x.ttcuL_bShowSiblingInput;\r\n let gradeCheck= (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG') ? true : false;\r\n if((gradeCheck && this.isGrade) || (!gradeCheck && !this.isGrade)) \r\n pdfData.push(x)\r\n }else pdfData.push(x)\r\n })\r\n\r\n if(this.isBBC){\r\n this.pdfs = pdfData.filter(x=>x.ttcuL_DOC_TYPE == 'BBC');\r\n }else{\r\n this.pdfs = pdfData.filter(x=>x.ttcuL_DOC_TYPE == 'TNC') //To show only t&c\r\n this.istnc=true;\r\n }\r\n \r\n if(this.pdfs.length == 0){\r\n this.noDataAvailable = true;\r\n }\r\n\r\n this.pdfs.forEach(x=>x.isAgree=false);\r\n this.loadPdf(0);\r\n })\r\n }\r\n loadPdf(index:number)\r\n {\r\n this.pdfSrc=this.pdfs[index].ttcul_Url_Path\r\n this.pdfSrc_s=this.pdfSrc.replace(\"http://\",\"https://\");\r\n this.pdfName=this.pdfs[index].ttcul_Url_Text\r\n this.pdfHtml=this.pdfs[index].ttcuL_PDF_HTML;\r\n this.index=index;\r\n }\r\n agree()\r\n {\r\n this.pdfs[this.index].isAgree =true;\r\n this.index++;\r\n if(this.index <= (this.pdfs.length - 1))\r\n {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth' \r\n });\r\n this.loadPdf(this.index)\r\n }\r\n else{\r\n let falseIndex = this.pdfs.findIndex(x=>x.isAgree == false)\r\n if(falseIndex == -1)\r\n this.router.navigate(['/support']);\r\n else this.router.navigate(['/support']);\r\n }\r\n }\r\n \r\n goToPage()\r\n {\r\n this.router.navigate(['/support'])\r\n }\r\n\r\n // convertToBase64(filePath: string) {\r\n // fetch(filePath)\r\n // .then(response => response.blob())\r\n // .then(blob => {\r\n // const reader = new FileReader();\r\n // reader.onload = () => {\r\n // this.base64String = reader.result;\r\n // };\r\n // reader.readAsDataURL(blob);\r\n // })\r\n // }\r\n pdfDownload()\r\n {\r\n var domain=this.regservice.appUrl\r\n var pdfLogo = (this.city == \"Dubai\" || this.city == \"Qatar\")? domain+\"/assets/images/sts-logo.png\": domain+\"/assets/images/bbt-logo.png\";\r\n var content:any;\r\n var headerOption= {\r\n tableAutoSize:true,\r\n imagesByReference:true\r\n }\r\n var pdftitle = (this.city == \"Dubai\" || this.city == \"Qatar\") ? \"School Transport Services LLC\":\"Bright Bus Transport\"\r\n var headerContent= `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
${pdftitle}
${this.pdfName}
`\r\n if(this.header && this.header.nativeElement && this.pdfType=='PUT')\r\n {\r\n content =headerContent+this.removeMetadata(this.header.nativeElement.innerHTML)+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n \r\n }\r\n else\r\n {\r\n content =headerContent+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n }\r\n \r\n var html = htmlToPdfmake(content,headerOption); \r\n // else var html = htmlToPdfmake(this.pdf.nativeElement.innerHTML); \r\n const documentDefinition = { content:html.content,images:html.images };\r\n pdfMake.createPdf(documentDefinition).download(this.pdfName); \r\n }\r\n\r\n removeMetadata(html: string): string {\r\n const metadataRegex = /<\\s*(meta|title|link|style|script)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n const nonContentRegex = /<\\s*(head|script|style)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n\r\n html = html.replace(metadataRegex, '');\r\n html = html.replace(nonContentRegex, '');\r\n return html;\r\n }\r\n downloadPdf()\r\n {\r\n this.pdfservice.downloadPdf(this.defaultToken,this.pdfSrc,this.pdfName);\r\n // //this.http.get(this.pdfSrc, { responseType: 'blob' }).subscribe((blob: Blob) => {\r\n // const blob = new Blob([this.pdfSrc], { type: 'application/pdf' });\r\n // const link = document.createElement('a');\r\n // link.href = window.URL.createObjectURL(blob);\r\n // link.download = this.pdfName;\r\n // link.click();\r\n // // });\r\n\r\n }\r\n get sanitizedPdfHtml(): SafeHtml { \r\n this.pdfContent=this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent }\r\n getSchoolsList(){\r\n this.supportservice.getSchoolList().subscribe(\r\n res=>{\r\n \r\n let schooldetails:any;\r\n let currentUser:any;\r\n currentUser = JSON.parse(localStorage.getItem('currentUser'));\r\n\r\nschooldetails= res?.filter(x=>x.bsU_ID == currentUser.schooId)\r\n \r\n localStorage.setItem('schoolList',JSON.stringify(schooldetails));\r\n this.getTermsConditions();\r\n\r\n }\r\n )\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\nimport { FileService } from 'src/app/service/file.service';\r\n\r\n@Component({\r\n selector: 'app-myaccount',\r\n templateUrl: './myaccount.component.html',\r\n styleUrls: ['./myaccount.component.scss']\r\n})\r\nexport class MyaccountComponent implements OnInit {\r\n\r\n accountDetails:any;\r\n file: File;\r\n imageUrl: any;\r\n base64Conversion: any;\r\n fileType: any;\r\n base64String: any;\r\n fileErr:boolean=false;\r\n constructor(public dashboardService:DashboardService,private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.getAccount();\r\n this.getuserProfileImg();\r\n // setTimeout(() => {\r\n // this.dialog.closeAll()\r\n // }, 5000);\r\n this.dialog.closeAll();\r\n }\r\n\r\n getAccount()\r\n {\r\n this.dashboardService.getAccountDetails().subscribe((res:any)=>{\r\n if(res?.data.primaryContactNumber)\r\n {\r\n let number = res.data.primaryContactNumber;\r\n // if(res?.data.primaryContactNumber.length == 12)\r\n // {\r\n // let result=\"+\"+number.substr(0, 3)+\" \"+number.substr(3, 2)+\" \"+number.substr(5, 3)+\" \"+number.substr(8)\r\n // res.data.primaryContactNumber=result;\r\n // }else if(res?.data.primaryContactNumber.length == 11)\r\n // {\r\n number=number.replace(\"+\",'');\r\n let result=\"+\"+number.substr(0, 3)+\" \"+number.substr(3, 2)+\" \"+number.substr(5, 3)+\" \"+number.substr(8)\r\n res.data.primaryContactNumber=result;\r\n // }\r\n }\r\n if(res?.data.secondaryContactNumber)\r\n {\r\n let number = res.data.secondaryContactNumber;\r\n number=number.replace(\"+\",'');\r\n let result=\"+\"+number.substr(0, 3)+\" \"+number.substr(3, 2)+\" \"+number.substr(5, 3)+\" \"+number.substr(8)\r\n res.data.secondaryContactNumber=result;\r\n }\r\n this.accountDetails=res?.data;\r\n })\r\n }\r\n\r\n selectedImgFile(event:any)\r\n {\r\n this.file= event.target.files[0];\r\n let splits=this.file.name.split(\".\");\r\n this.fileType=splits[1];\r\n if (this.file) {\r\n if( this.fileType==\"jpeg\" || this.fileType==\"jpg\")\r\n {\r\n this.fileErr=false;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.file);\r\n reader.onload = (e: any) => {\r\n this.base64String=e.target.result;\r\n this.base64String= this.fileType == \"png\" ? this.base64String.replace(\"data:image/png;base64,\",\"\"): this.fileType==\"jpg\"? this.base64String.replace(\"data:image/jpeg;base64,\",\"\") : this.base64String.replace(\"data:image/jpeg;base64,\",\"\");\r\n this.imageUrl = e.target.result;\r\n // this.compressImage(this.base64String, 200, 200).subscribe(compressed => {\r\n // this.base64String = compressed;\r\n // });\r\n this.updateProfile();\r\n };\r\n }else this.fileErr=true;\r\n }\r\n }\r\ngetuserProfileImg()\r\n{\r\n this.dashboardService.getuserProfileImg().subscribe((res:MyResponse)=>\r\n {\r\n\r\n this.imageUrl=res?.data.profileImageURL;\r\n\r\n });\r\n\r\n}\r\n updateProfile()\r\n {\r\n let body = {\r\n imageFormat:'.'+this.fileType,\r\n imageBase64:this.base64String\r\n }\r\n this.dashboardService.updateProfilePhoto(body).subscribe(res=>{\r\n this.openMessageDialog(\"Profile updated successfully.\",false,'')\r\n })\r\n }\r\n compressImage(src, newX, newY) {\r\n return Observable.create(observer => {\r\n const img = new Image();\r\n img.src = src;\r\n img.onload = () => {\r\n const elem = document.createElement('canvas');\r\n elem.width = newX;\r\n elem.height = newY;\r\n const ctx = elem.getContext('2d');\r\n ctx.drawImage(img, 0, 0, newX, newY);\r\n const data = ctx.canvas.toDataURL();\r\n observer.next(data);\r\n }\r\n // img.onerror = error => rej(error);\r\n })\r\n}\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n}\r\ninterface MyResponse {\r\n data: {\r\n profileImageURL: string;\r\n // other properties...\r\n };\r\n // other properties...\r\n}","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotificationService } from 'src/app/service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-notification-alerts',\r\n templateUrl: './notification-alerts.component.html',\r\n styleUrls: ['./notification-alerts.component.scss']\r\n})\r\nexport class NotificationAlertsComponent implements OnInit {\r\n @Input('notificationAlertList') notificationAlertList;\r\n @Output() alertUpdate:EventEmitter= new EventEmitter()\r\n modifiedMessages:any[]=[];\r\n checkAll:boolean=false;\r\n enableBulks:boolean=false;\r\n notificationType: any;\r\n totalcount: number;\r\n constructor(private notificationService: NotificationService,private datePipe: DatePipe,public router:Router) { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.notificationAlertList);\r\n this.notificationAlertList.forEach(ele => {\r\n ele.isChecked = false;\r\n })\r\n\r\n }\r\n \r\n ngOnChanges():void\r\n {\r\n this.getMessages();\r\n }\r\n\r\n getMessages()\r\n {\r\n this.checkAll=false\r\n this.totalcount=0;\r\n this.notificationAlertList.forEach(x=>{\r\n const parsedTime = new Date(x.notification_Date);\r\n const formattedDate = this.datePipe.transform(parsedTime, 'dd MMM yyyy')\r\n const Hour = parsedTime.getHours();\r\n const Minute = parsedTime.getMinutes();\r\n const AmPm = Hour >= 12 ? 'PM' : 'AM';\r\n const FormattedHour = Hour % 12 || 12; \r\n x.notificationFormattedDate = `${formattedDate}`\r\n x.notificationFormattedTime=`${FormattedHour}:${Minute < 10 ? '0' + Minute : Minute} ${AmPm}`\r\n x.isChecked=false;\r\n })\r\n this.modifiedMessages=[... this.notificationAlertList]\r\n }\r\n\r\n checkBoxSelection(type:any)\r\n {\r\n if(type == 'all')\r\n {\r\n let tempList=this.modifiedMessages;\r\n this.enableBulks = this.checkAll ? true : false;\r\n tempList.forEach(x=>{\r\n x.isChecked = this.checkAll ? true : false;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n this.modifiedMessages=[...tempList];\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n else{\r\n let count=0;\r\n this.modifiedMessages.forEach(x=>{\r\n count++;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n this.totalcount = this.modifiedMessages.filter(x=>x.isChecked == true).length\r\n }\r\n\r\n updateNotification(type:any)\r\n {\r\n this.notificationType = type;\r\n let postmodel={};\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n // data= this.modifiedMessages\r\n postmodel={\r\n type:this.notificationType,\r\n data:data,\r\n isBulk:true\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n }\r\n updateNotificationType(type, selecteddata,res?:any){\r\n let postmodel={};\r\n let data:any[]=[];\r\n data.push(selecteddata)\r\n postmodel={\r\n type:type,\r\n data:data,\r\n res:res ? res:'',\r\n isBulk:false\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n\r\n }\r\n navigateUrl(notification:any)\r\n {\r\n if(notification.categorY_CODE== \"URD\")\r\n {\r\n window.open(notification.notification_Url, '_blank')\r\n }\r\n else if (notification.categorY_CODE== \"FEP\")\r\n {\r\n this.router.navigate(['/payment-detail'])\r\n }\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotificationService } from 'src/app/service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-notification-messages',\r\n templateUrl: './notification-messages.component.html',\r\n styleUrls: ['./notification-messages.component.scss']\r\n})\r\nexport class NotificationMessagesComponent implements OnInit,OnChanges {\r\n @Input() notificationMessages :any[]=[];\r\n @Output() alertUpdate:EventEmitter= new EventEmitter()\r\n modifiedMessages:any[]=[];\r\n checkAll:boolean=false;\r\n enableBulks:boolean=false;\r\n notificationType: any;\r\n totalcount: number;\r\n isdata: boolean=false;\r\n showNoRecordMessage: boolean = false;\r\n constructor(private notificationService: NotificationService,private datePipe: DatePipe,public router:Router) { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.notificationMessages);\r\n\r\n setTimeout(() => {\r\n this.showNoRecordMessage = true;\r\n }, 500);\r\n\r\n if(this.notificationMessages != null && this.notificationMessages.length == 0){\r\n this.isdata = true;\r\n }\r\n\r\n this.notificationMessages.forEach(ele => {\r\n ele.isChecked = false;\r\n })\r\n\r\n }\r\n \r\n ngOnChanges():void\r\n {\r\n this.getMessages();\r\n }\r\n\r\n getMessages()\r\n {\r\n this.checkAll=false;\r\n this.totalcount=0;\r\n this.notificationMessages.forEach(x=>{\r\n const parsedTime = new Date(x.notification_Date);\r\n const formattedDate = this.datePipe.transform(parsedTime, 'dd MMM yyyy')\r\n const Hour = parsedTime.getHours();\r\n const Minute = parsedTime.getMinutes();\r\n const AmPm = Hour >= 12 ? 'PM' : 'AM';\r\n const FormattedHour = Hour % 12 || 12; \r\n x.notificationFormattedDate = `${formattedDate}`\r\n x.notificationFormattedTime=`${FormattedHour}:${Minute < 10 ? '0' + Minute : Minute} ${AmPm}`\r\n x.isChecked=false;\r\n })\r\n this.modifiedMessages=[... this.notificationMessages]\r\n this.notificationService.isNotifications.subscribe(res=>{\r\n if(res)\r\n this.isdata=true;\r\n })\r\n }\r\n\r\n checkBoxSelection(type:any)\r\n {\r\n if(type == 'all')\r\n {\r\n let tempList=this.modifiedMessages;\r\n this.enableBulks = this.checkAll ? true : false;\r\n tempList.forEach(x=>{\r\n x.isChecked = this.checkAll ? true : false;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n this.modifiedMessages=[...tempList];\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n else{\r\n let count=0;\r\n this.modifiedMessages.forEach(x=>{\r\n count++;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n this.totalcount = this.modifiedMessages.filter(x=>x.isChecked == true).length\r\n }\r\n\r\n updateNotification(type:any)\r\n {\r\n this.notificationType = type;\r\n let postmodel={};\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n // data= this.modifiedMessages\r\n postmodel={\r\n type:this.notificationType,\r\n data:data,\r\n isBulk:true\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n }\r\n updateNotificationType(type, selecteddata,res?:any){\r\n let postmodel={};\r\n let data:any[]=[];\r\n data.push(selecteddata)\r\n postmodel={\r\n type:type,\r\n data:data,\r\n res:res ? res:'',\r\n isBulk:false\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n\r\n }\r\n navigateUrl(notification:any)\r\n {\r\n if(notification.categorY_CODE== \"URD\")\r\n {\r\n window.open(notification.notification_Url, '_blank')\r\n }\r\n else if (notification.categorY_CODE== \"FEP\")\r\n {\r\n this.router.navigate(['/payment-detail'])\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { NotificationComponent } from './notification.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'notification',\r\n component: NotificationComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class NotificationRoutingModule { }\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotificationService } from 'src/app/service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-notification-starred',\r\n templateUrl: './notification-starred.component.html',\r\n styleUrls: ['./notification-starred.component.scss']\r\n})\r\nexport class NotificationStarredComponent implements OnInit {\r\n@Input('notificationStarredList') notificationStarredList;\r\n@Output() alertUpdate:EventEmitter= new EventEmitter()\r\n modifiedMessages:any[]=[];\r\n checkAll:boolean=false;\r\n enableBulks:boolean=false;\r\n notificationType: any;\r\n totalcount: number;\r\n constructor(private notificationService: NotificationService,private datePipe: DatePipe,public router:Router) { }\r\n\r\n ngOnInit(): void {\r\n console.log(this.notificationStarredList);\r\n this.notificationStarredList.forEach(ele => {\r\n ele.isChecked = false;\r\n })\r\n\r\n }\r\n \r\n ngOnChanges():void\r\n {\r\n this.getMessages();\r\n }\r\n\r\n getMessages()\r\n {\r\n this.checkAll=false\r\n this.totalcount=0;\r\n this.notificationStarredList.forEach(x=>{\r\n const parsedTime = new Date(x.notification_Date);\r\n const formattedDate = this.datePipe.transform(parsedTime, 'dd MMM yyyy')\r\n const Hour = parsedTime.getHours();\r\n const Minute = parsedTime.getMinutes();\r\n const AmPm = Hour >= 12 ? 'PM' : 'AM';\r\n const FormattedHour = Hour % 12 || 12; \r\n x.notificationFormattedDate = `${formattedDate}`\r\n x.notificationFormattedTime=`${FormattedHour}:${Minute < 10 ? '0' + Minute : Minute} ${AmPm}`\r\n x.isChecked=false;\r\n })\r\n this.modifiedMessages=[... this.notificationStarredList]\r\n }\r\n\r\n checkBoxSelection(type:any)\r\n {\r\n if(type == 'all')\r\n {\r\n let tempList=this.modifiedMessages;\r\n this.enableBulks = this.checkAll ? true : false;\r\n tempList.forEach(x=>{\r\n x.isChecked = this.checkAll ? true : false;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n this.modifiedMessages=[...tempList];\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n else{\r\n let count=0;\r\n this.modifiedMessages.forEach(x=>{\r\n count++;\r\n })\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n if(this.modifiedMessages.length == data.length ){\r\n this.checkAll = true\r\n }else{\r\n this.checkAll = false\r\n }\r\n }\r\n this.totalcount = this.modifiedMessages.filter(x=>x.isChecked == true).length\r\n }\r\n\r\n updateNotification(type:any)\r\n {\r\n this.notificationType = type;\r\n let postmodel={};\r\n let data:any[];\r\n data= this.modifiedMessages.filter(x=>x.isChecked == true)\r\n //data= this.modifiedMessages\r\n postmodel={\r\n type:this.notificationType,\r\n data:data,\r\n isBulk:true\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n }\r\n updateNotificationType(type, selecteddata,res?:any){\r\n let postmodel={};\r\n let data:any[]=[];\r\n data.push(selecteddata)\r\n postmodel={\r\n type:type,\r\n data:data,\r\n res:res ? res:'',\r\n isBulk:false\r\n }\r\n this.alertUpdate.emit(postmodel)\r\n\r\n }\r\n\r\n navigateUrl(notification:any)\r\n {\r\n if(notification.categorY_CODE== \"URD\")\r\n {\r\n window.open(notification.notification_Url, '_blank')\r\n }\r\n else if (notification.categorY_CODE== \"FEP\")\r\n {\r\n this.router.navigate(['/payment-detail'])\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { CommonService } from 'src/app/service';\r\nimport { NotificationService } from 'src/app/service/notification.service';\r\n\r\n@Component({\r\n selector: 'app-notification',\r\n templateUrl: './notification.component.html',\r\n styleUrls: ['./notification.component.scss']\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n selectedTab: any=0;\r\n\r\n constructor(public notificationService:NotificationService, private dialog:MatDialog,public commonService:CommonService) { }\r\n notificationList:any[]=[];\r\n notificationMessageList:any[]=[];\r\n notificationAlertList:any[]=[];\r\n notificationStarredList:any[]=[];\r\n messageCount:any;\r\n alertCount:any;\r\n starredCount:any;\r\n \r\n ngOnInit(): void {\r\n this.getNotifications();\r\n }\r\n\r\n getNotifications()\r\n {\r\n this.notificationService.getNotifications().subscribe((res:any)=>{\r\n this.notificationList=res?.data;\r\n if(this.notificationList != null){\r\n this.notificationMessageList=this.notificationList.filter(x=>(x.categorY_CODE != 'EMG') && (x.categorY_CODE != 'GEN') && (x.categorY_CODE != 'TRA') && (x.categorY_CODE != 'ALE') );\r\n this.notificationAlertList=this.notificationList.filter(x=>(x.categorY_CODE == 'EMG') ||(x.categorY_CODE == 'GEN') || (x.categorY_CODE == 'TRA') || (x.categorY_CODE == 'ALE') );\r\n this.notificationStarredList=this.notificationList.filter(x=>x.npD_IS_FAV_FLAG == true );\r\n }\r\n this.notificationService.isNotifications.next(true)\r\n })\r\n }\r\n\r\n callNotification(event:any)\r\n {\r\n if(event)\r\n this.getNotifications();\r\n }\r\n postData(event){\r\n console.log(event);\r\n let postdata=[];\r\n if(!event.isBulk)\r\n {\r\n event.data.forEach(ele=>{\r\n postdata.push( {\r\n \"NotificationID\": ele.npD_ID,\r\n \"ReadFlag\": (event.type == 'read' && event.res == 1) ? 1: event.type != 'read'? ele.npD_ISREADFLAG : 0,\r\n \"FavoriteFlag\": (event.type == 'starred' && event.res == 1) ? 1: event.type != 'starred'? ele.npD_IS_FAV_FLAG : 0,\r\n \"DeleteFlag\": event.type == 'delete' ? 1:0,\r\n })\r\n })\r\n }else{\r\n event.data.forEach(ele=>{\r\n postdata.push( {\r\n \"NotificationID\": ele.npD_ID,\r\n \"ReadFlag\": (event.type == 'read' && ele.isChecked == 1) ? 1: event.type != 'read'? ele.npD_ISREADFLAG :0,\r\n \"FavoriteFlag\": (event.type == 'starred' && ele.isChecked == 1) ? 1: event.type != 'starred'? ele.npD_IS_FAV_FLAG :0,\r\n \"DeleteFlag\": event.type == 'delete' ? 1:0,\r\n })\r\n })\r\n }\r\n \r\n \r\n this.notificationService.postNotifications(postdata).subscribe(\r\n res=>{\r\n if(event.type == 'read')\r\n this.commonService.reloadNotificationCount.next(true)\r\n this.getNotifications();\r\n if(event.type == 'delete'){\r\n this.openMessageDialog('Notification(s) deleted successfully.', false,'')\r\n }\r\n }\r\n )\r\n \r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n minWidth: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n \r\n });\r\n }\r\n searchtext:string='';\r\n changeTab(value){\r\n console.log(value);\r\n this.selectedTab = value.index;\r\n this.searchtext='';\r\n if(this.notificationList != null){\r\n this.notificationMessageList=this.notificationList.filter(x=>(x.categorY_CODE != 'EMG') && (x.categorY_CODE != 'GEN') && (x.categorY_CODE != 'TRA') && (x.categorY_CODE != 'ALE') );\r\n this.notificationAlertList=this.notificationList.filter(x=>(x.categorY_CODE == 'EMG') ||(x.categorY_CODE == 'GEN') || (x.categorY_CODE == 'TRA') || (x.categorY_CODE == 'ALE') );\r\n this.notificationStarredList=this.notificationList.filter(x=>x.npD_IS_FAV_FLAG == true );\r\n }\r\n }\r\n search(){\r\n console.log(this.searchtext);\r\n if(this.selectedTab == 0){\r\n this.notificationMessageList= this.notificationList.filter(x=>(x.categorY_CODE != 'EMG') && (x.categorY_CODE != 'GEN') && (x.categorY_CODE != 'TRA') && (x.categorY_CODE != 'ALE') ).filter(x=>x.notification_MSG.toLowerCase().includes(this.searchtext.toLowerCase()) || x.nlD_NOTIFICATION_TITLE.toLowerCase().includes(this.searchtext.toLowerCase()) );\r\n }else if (this.selectedTab == 1){\r\n this.notificationAlertList= this.notificationList.filter(x=>(x.categorY_CODE == 'EMG') ||(x.categorY_CODE == 'GEN') || (x.categorY_CODE == 'TRA') || (x.categorY_CODE == 'ALE') ).filter(x=>x.notification_MSG.toLowerCase().includes(this.searchtext.toLowerCase()) || x.nlD_NOTIFICATION_TITLE.toLowerCase().includes(this.searchtext.toLowerCase()) );\r\n }else {\r\n this.notificationStarredList= this.notificationList.filter(x=>x.npD_IS_FAV_FLAG == true ).filter(x=>x.notification_MSG.toLowerCase().includes(this.searchtext.toLowerCase()) || x.nlD_NOTIFICATION_TITLE.toLowerCase().includes(this.searchtext.toLowerCase()) );\r\n\r\n }\r\n // this.notificationAlertList= this.notificationList.filter(x=>(x.categorY_CODE == 'EMG') ||(x.categorY_CODE == 'GEN') || (x.categorY_CODE == 'TRA') || (x.categorY_CODE == 'ALE') ).filter(x=>x.notification_MSG.toLowerCase().startsWith(this.searchtext.toLowerCase()) );\r\n console.log( this.notificationAlertList);\r\n \r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { NotificationRoutingModule } from './notification-routing.module';\r\nimport { MatTooltipModule} from '@angular/material/tooltip';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { NotificationAlertsComponent } from './notification-alerts/notification-alerts.component';\r\nimport { NotificationStarredComponent } from './notification-starred/notification-starred.component';\r\nimport { NotificationMessagesComponent } from './notification-messages/notification-messages.component';\r\nimport { NotificationComponent } from './notification.component';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\n@NgModule({\r\n declarations: [\r\n NotificationAlertsComponent,\r\n NotificationStarredComponent,\r\n NotificationMessagesComponent,\r\n NotificationComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NotificationRoutingModule,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n MatTabsModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule, MatInputModule,\r\n ],\r\n exports: [[NotificationRoutingModule],],providers:[DatePipe]\r\n})\r\nexport class NotificationModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { CommonService } from 'src/app/service';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\n\r\n@Component({\r\n selector: 'app-payment-detail',\r\n templateUrl: './payment-detail.component.html',\r\n styleUrls: ['./payment-detail.component.scss']\r\n})\r\nexport class PaymentDetailComponent implements OnInit {\r\n editAmount: boolean = false;\r\n selectedValue: number;\r\n allStudentsList: any[];\r\n getFeeDetails: any[] = [];\r\n grandtotal: number = 0;\r\n index: any;\r\n steps: number[] = []\r\n finalValue: number;\r\n stepIndex: any = 0;\r\n defaultValue: any = 0;\r\n paymentTypeID: any;\r\n dialogOpen: any;\r\n PaymentRedirectURL: string | URL;\r\n PaymentRefNo: any;\r\n currency: string;\r\n ipAddress: string;\r\n constructor(private router: Router, private paymentService: PaymentService, private dialog: MatDialog,private common:CommonService) { }\r\n\r\n ngOnInit(): void {\r\n let data: any[] = [];\r\n data = JSON.parse(localStorage.getItem('allChildren'));\r\n this.common.getIPAddress().subscribe(\r\n (res: any) => {localStorage.setItem('IPAddress', res?.ip) \r\n }\r\n )\r\n this.currency= localStorage.getItem('bsu_currency')\r\n this.allStudentsList = data;\r\n this.getStudentFee();\r\n this.getFeeType()\r\n }\r\n formatLabel(value: number | null) {\r\n this.selectedValue = value\r\n if (!value) {\r\n return 0;\r\n }\r\n\r\n if (value >= 1000) {\r\n return Math.round(value / 1000) + 'k';\r\n }\r\n\r\n return value;\r\n }\r\n editFeeAmount(data) {\r\n // this.editAmount = !this.editAmount;\r\n //data.feedetails.feeDetail[0].advanceDetails[2].feeAmount= 2000;\r\n this.allStudentsList.forEach(ele => {\r\n if (ele.studentId == data.studentId) {\r\n ele.isAmountChecked = !data.isAmountChecked\r\n\r\n } else {\r\n ele.isAmountChecked = ele.isAmountChecked\r\n\r\n }\r\n })\r\n\r\n this.steps = data.feedetails.feeDetail[0].advanceDetails.map(x => x.feeAmount);\r\n let sum=0;\r\n let sumdata:any;\r\n\r\n if(data.stepnumber == 0){\r\n this.steps.forEach( num => {\r\n sum += num;\r\n });\r\n this.finalValue =sum;\r\n this.defaultValue = this.steps.length;\r\n }else{\r\n this.steps.forEach( (num, index) => {\r\n if(index<=data.stepnumber-1){\r\n sum += num;\r\n }\r\n });\r\n this.finalValue =sum;\r\n this.defaultValue = data.stepnumber;\r\n }\r\n\r\n\r\n }\r\n onInputChange($event: any, data) {\r\n this.stepIndex = $event.value - 1;\r\n data.stepnumber =$event.value;\r\n // this.defaultValue = this.steps[this.stepIndex]\r\n let array = this.steps.slice(0, $event.value);\r\n this.finalValue = 0;\r\n this.finalValue = array.reduce(function (acc, obj) { return acc + obj; }, 0);\r\n console.log(this.defaultValue);\r\n\r\n }\r\n navigatetolink(value, data) {\r\n if (value == 'history') {\r\n this.router.navigate(['/payment-history'], { queryParams: { id: data.studentId } });\r\n } else {\r\n this.router.navigate(['/statement-of-accounts'], { queryParams: { id: data.studentId } });\r\n }\r\n }\r\n apply(data, fee) {\r\n data.isDueAmountShown = true;\r\n data.finalamount = this.finalValue;\r\n this.grandtotal = 0;\r\n this.allStudentsList.forEach(ele => {\r\n this.grandtotal += ele.finalamount\r\n })\r\n data.isAmountChecked = false;\r\n data.isDueAmountShown = true;\r\n fee.payAmount = this.finalValue\r\n // this.editAmount = !this.editAmount;\r\n }\r\n\r\n\r\n getStudentFee() {\r\n let data: any;\r\n data = {\r\n stuid: this.allStudentsList[0].studentId,\r\n isPaySibling: '1',\r\n providerTypeID: '144'\r\n }\r\n this.paymentService.getFeeDetails(data).subscribe(\r\n res => {\r\n if (res?.data == null) {\r\n this.getFeeDetails = [];\r\n } else {\r\n this.getFeeDetails = res?.data;\r\n let count = 0\r\n this.getFeeDetails.forEach(ele => {\r\n ele.feeDetail.forEach(ele1 => {\r\n\r\n count += ele1.dueAmount,\r\n ele.isAmountChecked = false;\r\n })\r\n })\r\n this.allStudentsList.forEach(ele => {\r\n this.getFeeDetails.forEach(ele1 => {\r\n if (ele.studentId == ele1.stU_NO) {\r\n ele.feedetails = ele1;\r\n ele.checked = true;\r\n ele.isAmountChecked = false;\r\n ele.isDueAmountShown = false;\r\n ele.finalamount = 0;\r\n ele.subtotal = 0;\r\n ele.stepnumber = 0;\r\n }\r\n })\r\n })\r\n this.grandtotal = count\r\n }\r\n }\r\n )\r\n }\r\n showOptions(event: MatCheckboxChange, data): void {\r\n if (event.checked == false) {\r\n data.checked = false;\r\n this.grandtotal = this.grandtotal - data.finalamount\r\n } else {\r\n data.checked = true;\r\n this.grandtotal = this.grandtotal + data.finalamount\r\n }\r\n }\r\n\r\n getFeeType() {\r\n this.paymentService.getPaymentType(this.allStudentsList[0].studentId).subscribe(\r\n res => {\r\n this.paymentTypeID = res?.data?.filter(x => x.providerTypeID == '2')[0].paymentTypeID;\r\n\r\n }\r\n )\r\n }\r\n\r\n postFeeDetails(template) {\r\n let data: any[] = [];\r\n let data1: any[] = [];\r\n data1 = this.allStudentsList.filter(x => x.checked == true);\r\n\r\n data1.forEach(ele1 => {\r\n let feedetail: any = [];\r\n ele1.feedetails.feeDetail.forEach(ele => {\r\n\r\n ele1.subtotal =0\r\n })\r\n ele1.feedetails.feeDetail.forEach(ele => {\r\n\r\n ele1.subtotal += ele.payAmount\r\n })\r\n ele1.feedetails.feeDetail.forEach(ele => {\r\n feedetail.push({ \"blockPayNow\": ele.blockPayNow, \"advancePaymentAvailable\": ele.advancePaymentAvailable, \"advanceDetails\": ele.advanceDetails, \"discAmount\": 0, \"dueAmount\": ele.dueAmount, \"payAmount\": ele.payAmount, \"originalAmount\": ele.originalAmount, \"feeDescription\": ele.feeDescription, \"feeID\": ele.feeID, \"activityRefID\": ele.activityRefID, \"activityFeeCollType\": ele.activityFeeCollType })\r\n })\r\n \r\n data.push({ \"stU_NO\": ele1.studentId, \"onlinePaymentAllowed\": ele1.feedetails.onlinePaymentAllowed, \"userMessageforOnlinePaymentBlock\": ele1.feedetails.userMessageforOnlinePaymentBlock, \"ipAddress\": this.ipAddress ? this.ipAddress : this.getIpAddress(), \"paymentTypeID\": this.paymentTypeID, \"paymentProcessingCharge\": ele1.feedetails.paymentProcessingCharge, \"payingAmount\": ele1.subtotal, \"payMode\": ele1.feedetails.payMode, \"feeDetail\": feedetail, \"discountDetails\": [] })\r\n })\r\n\r\n this.paymentService.postFeeDetails(data).subscribe(\r\n (res: any) => {\r\n this.PaymentRefNo = res?.PaymentRefNo;\r\n localStorage.setItem(\"postPaymentRefNo\", res.PaymentRefNo);\r\n\r\n this.PaymentRedirectURL = res.PaymentRedirectURL;\r\n }\r\n )\r\n\r\n\r\n }\r\n\r\n getIpAddress()\r\n {\r\n this.ipAddress=localStorage.getItem('IPAddress');\r\n if(!this.ipAddress)\r\n this.ipAddress=localStorage.getItem('IPAddress')\r\n return this.ipAddress;\r\n }\r\n openConfirm(template: TemplateRef, template1: TemplateRef) {\r\n\r\n //this.save()\r\n let data: any[] = [];\r\n let data1: any[] = [];\r\n data1 = this.allStudentsList.filter(x => x.checked == true);\r\n\r\n data1.forEach(ele1 => {\r\n let feedetail: any = [];\r\n ele1.feedetails.feeDetail.forEach(ele => {\r\n\r\n ele1.subtotal += ele.payAmount\r\n })\r\n ele1.feedetails.feeDetail.forEach(ele => {\r\n feedetail.push({ \"blockPayNow\": ele.blockPayNow, \"advancePaymentAvailable\": ele.advancePaymentAvailable, \"advanceDetails\": ele.advanceDetails, \"discAmount\": 0, \"dueAmount\": ele.dueAmount, \"payAmount\": ele.payAmount, \"originalAmount\": ele.originalAmount, \"feeDescription\": ele.feeDescription, \"feeID\": ele.feeID, \"activityRefID\": ele.activityRefID, \"activityFeeCollType\": ele.activityFeeCollType })\r\n })\r\n\r\n data.push({ \"stU_NO\": ele1.studentId, \"onlinePaymentAllowed\": ele1.feedetails.onlinePaymentAllowed, \"userMessageforOnlinePaymentBlock\": ele1.feedetails.userMessageforOnlinePaymentBlock, \"ipAddress\": localStorage.getItem('IPAddress'), \"paymentTypeID\": this.paymentTypeID, \"paymentProcessingCharge\": ele1.feedetails.paymentProcessingCharge, \"payingAmount\": ele1.subtotal, \"payMode\": ele1.feedetails.payMode, \"feeDetail\": feedetail, \"discountDetails\": [] })\r\n })\r\n let postdata:any[]=[];\r\n postdata= data.filter(x=>x.payingAmount == 0);\r\n if(postdata.length > 0){\r\n this.openMessageDialog('', true,'Invalid Amount, should be greater than zero.')\r\n }else{\r\n this.dialogOpen = this.dialog.open(template, {\r\n width: '600px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n this.postFeeDetails(template1)\r\n }\r\n }\r\n gotoPayment(template: TemplateRef) {\r\n window.open(this.PaymentRedirectURL, '_self')\r\n }\r\n\r\n cancel(){\r\n this.router.navigate(['/home'])\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n minWidth: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n\r\n });\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, TemplateRef, } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer,SafeHtml } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\n\r\n@Component({\r\n selector: 'app-payment-history',\r\n templateUrl: './payment-history.component.html',\r\n styleUrls: ['./payment-history.component.scss']\r\n})\r\nexport class PaymentHistoryComponent implements OnInit {\r\n displayedColumns = ['receiptDate', 'status', 'refNo','recNo', 'decription', 'debit'];\r\n fromdate: string;\r\n todate: string;\r\n historyList: any;\r\n studentId: any;\r\n dataSource: any;\r\n recDialog: any;\r\n htmlContent: any;\r\n content: SafeHtml;\r\n\r\n constructor(private dialog: MatDialog,private datePipe: DatePipe, private paymentService:PaymentService, private router:ActivatedRoute,\r\n private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n let date= new Date();\r\n date = new Date(date.getFullYear(), new Date(date).getMonth(), new Date(date).getDate() - 90);\r\n this.fromdate = this.datePipe.transform(new Date(date), 'yyyy-MM-dd');\r\n this.todate = this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n this.router.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n })\r\n this.getHistoryDetails()\r\n }\r\n changeServiceDate(event, value) {\r\n let serviceDate = event.value._d;\r\n let data: any;\r\n if (value == 'fdate') {\r\n this.fromdate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n } else {\r\n this.todate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n\r\n clear() {\r\n this.todate = '';\r\n this.fromdate = '';\r\n }\r\n\r\n getReceipt(recNo:any,template:any)\r\n {\r\n let data={\r\n receiptNo:recNo,\r\n studNo:this.studentId\r\n }\r\n this.paymentService.getReceipt(data).subscribe(res=>{\r\n this.htmlContent=res?.data\r\n this.receiptDialog(template);\r\n })\r\n }\r\n\r\n get sanitizedPdfHtml(): SafeHtml { \r\n this.content=this.sanitizer.bypassSecurityTrustHtml(this.htmlContent ?? '');\r\n return this.content }\r\n\r\n receiptDialog(template: TemplateRef) {\r\n this.recDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '700px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n getHistoryDetails(){\r\n let data:any;\r\n data={\r\n stuid:this.studentId,\r\n fromDate:this.fromdate,\r\n toDate:this.todate\r\n }\r\n this.paymentService.getPaymentHistory(data).subscribe(\r\n res=>{\r\n this.historyList = res;\r\n this.dataSource = this.historyList;\r\n console.log('dataSource', this.dataSource)\r\n }\r\n )\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { StatementOfAccountsComponent } from './statement-of-accounts/statement-of-accounts.component';\r\nimport { PaymentHistoryComponent } from './payment-history/payment-history.component';\r\nimport { PaymentDetailComponent } from './payment-detail/payment-detail.component';\r\nimport { PaymentRefundComponent } from './statement-of-accounts/payment-refund/payment-refund.component';\r\nimport { ReceiptsComponent } from './receipts/receipts.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'statement-of-accounts',\r\n component: StatementOfAccountsComponent\r\n },\r\n {\r\n path: 'payment-detail',\r\n component: PaymentDetailComponent\r\n },\r\n {\r\n path: 'payment-history',\r\n component: PaymentHistoryComponent\r\n },\r\n {\r\n path: 'payment-refund',\r\n component: PaymentRefundComponent\r\n },\r\n {\r\n path:'payment-receipt',\r\n component:ReceiptsComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class PaymentsRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StatementOfAccountsComponent } from './statement-of-accounts/statement-of-accounts.component';\r\nimport { PaymentHistoryComponent } from './payment-history/payment-history.component';\r\nimport { PaymentsRoutingModule } from './payments-routing.module';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport {MatDatepickerModule} from '@angular/material/datepicker';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatFormFieldModule} from '@angular/material/form-field';\r\nimport { SoaDetailsComponent } from './statement-of-accounts/soa-details/soa-details.component';\r\nimport { SoaSummaryComponent } from './statement-of-accounts/soa-summary/soa-summary.component';\r\nimport {MatCheckboxModule} from '@angular/material/checkbox';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { PaymentDetailComponent } from './payment-detail/payment-detail.component';\r\nimport {MatSliderModule} from '@angular/material/slider';\r\nimport { PaymentRefundComponent } from './statement-of-accounts/payment-refund/payment-refund.component';\r\nimport { MatTooltipModule} from '@angular/material/tooltip';\r\nimport { ReceiptsComponent } from './receipts/receipts.component';\r\nimport {MatTableModule} from '@angular/material/table';\r\nimport { DateFormatPipe } from 'src/app/models/date-format.pipe';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n StatementOfAccountsComponent,\r\n PaymentHistoryComponent,\r\n SoaDetailsComponent,\r\n SoaSummaryComponent,\r\n PaymentDetailComponent,\r\n PaymentRefundComponent,\r\n ReceiptsComponent,\r\n DateFormatPipe\r\n ],\r\n exports: [PaymentsRoutingModule],\r\n imports: [\r\n CommonModule,\r\n PaymentsRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule, MatInputModule, MatDatepickerModule,\r\n MatTabsModule,\r\n MatButtonModule,\r\n MatCheckboxModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatSliderModule,\r\n MatTooltipModule,\r\n MatTableModule\r\n ]\r\n})\r\nexport class PaymentsModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CommonService } from 'src/app/service';\r\n\r\n@Component({\r\n selector: 'app-receipts',\r\n templateUrl: './receipts.component.html',\r\n styleUrls: ['./receipts.component.scss']\r\n})\r\nexport class ReceiptsComponent implements OnInit {\r\n type: string='';\r\n id: string='';\r\n src: string='';\r\n transactionStatusMessage: any;\r\n paymentDetails: any;\r\n transactionStatusCode: any;\r\n idCardPayment: any = \"0\";\r\n today = new Date()\r\n constructor(private commonservice:CommonService) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.idCardPayment = localStorage.getItem('idCardPayment');\r\n\r\n let data = decodeURIComponent(window.location.href).split('?');\r\n let finaldata = data.slice(1).toString();\r\n if(finaldata.length > 0){\r\n this.type = finaldata.split('&')[0]?.split('=')[1].concat('=')\r\n this.id = finaldata.split('&')[1]?.split('=')[1].concat('=')\r\n this.src = finaldata.split('&')[2]?.split('=')[1].concat('=');\r\n this.getTransportFeeDEtails()\r\n }else{\r\n this.type = ''\r\n this.id = ''\r\n this.src = ''\r\n }\r\n }\r\n getTransportFeeDEtails(){\r\n let data:any;\r\n data={\r\n type:this.type,PaymentRefNo:localStorage.getItem('postPaymentRefNo'),\r\n }\r\n \r\n this.commonservice.getTransportFeeDetails(data).subscribe(res=>{\r\n this.transactionStatusMessage = res?.data?.transactionStatusMessage\r\n if(res?.success == \"true\"){\r\n //this.openPaymentDialog(this.showReceipt);\r\n this.transactionStatusCode = res?.data?.transactionStatusCode\r\n this.paymentDetails = res?.data?.schoolFeePaymentResultDetails\r\n }\r\n\r\n if(this.idCardPayment != null && this.idCardPayment != \"0\"){\r\n localStorage.removeItem('idCardPayment');\r\n let payload:any;\r\n payload = {\r\n \"SSR_ID\": localStorage.getItem('idCardRefNo'),\r\n \"PAYMENT_STATUS\": res?.success,\r\n \"PAYMENT_REFNO\": localStorage.getItem('postPaymentRefNo')\r\n }\r\n this.commonservice.updateIdCardPayment(payload).subscribe(res=>{\r\n\r\n });\r\n }\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, TemplateRef } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\n\r\n@Component({\r\n selector: 'app-payment-refund',\r\n templateUrl: './payment-refund.component.html',\r\n styleUrls: ['./payment-refund.component.scss']\r\n})\r\nexport class PaymentRefundComponent implements OnInit {\r\nstudentDetail:any;\r\n// refundForm = new FormGroup({\r\n// studentName:new FormControl('',[Validators.required]),\r\n// studentId:new FormControl('',[Validators.required]),\r\n// refundAmt:new FormControl('',[Validators.required]),\r\n// payeeName:new FormControl(''),\r\n// grade:new FormControl('',[Validators.required]),\r\n// section:new FormControl('',[Validators.required]),\r\n// Iban:new FormControl(''),\r\n// accName:new FormControl(''),\r\n// bankName:new FormControl(''),\r\n// swiftCode:new FormControl(''),\r\n// reason:new FormControl('',[Validators.required])\r\n// })\r\n\r\nrefundForm = new FormGroup({\r\n payeeName:new FormControl(''),\r\n Iban:new FormControl(''),\r\n accName:new FormControl(''),\r\n bankName:new FormControl(''),\r\n swiftCode:new FormControl(''),\r\n reason:new FormControl('',[Validators.required]),\r\n imageName: new FormControl('')\r\n})\r\n\r\nisCheque:boolean=true;\r\nisBank:boolean=false\r\ncount: any=0;\r\nminDescErr: boolean=true;\r\nexcessAmt:any;\r\n digopen: any;\r\n referenceNumber:any;\r\n siblingsRefundDetails: any[] = [];\r\n bsuCurrency: any;\r\n totalRefundAmount: number=0;\r\n acdId: any;\r\n refundAmtForm: { [key: string]: FormGroup } = {};\r\n checkboxDisabled: boolean = false;\r\n invalidFileSize: boolean = false;\r\n invalidFile: boolean = false;\r\n attachment: any;\r\n invalidAmount: boolean = false;\r\n\r\n constructor(public paymentService:PaymentService,private dialog: MatDialog, private router:Router, private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit(): void {\r\n this.setValidations();\r\n // this.paymentService.excessAmt.subscribe(res=>{\r\n // this.excessAmt=res;\r\n // })\r\n\r\n this.bsuCurrency = localStorage.getItem('bsu_currency');\r\n\r\n this.populateSiblingDetails();\r\n\r\n let transportInfo =JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let selectedStudent =localStorage.getItem(\"selectedstudentid\")\r\n let detail = transportInfo.find(x=>x.studentNo == selectedStudent);\r\n this.acdId = detail?.acdid;\r\n this.studentDetail=detail;\r\n\r\n // let grade = detail?.grade.split(\"/\");\r\n // //detail.section=section[1];\r\n // this.refundForm.patchValue({\r\n // \"studentName\":this.studentDetail?.studentName,\r\n // \"studentId\":this.studentDetail?.stU_SCHOOL_ID,\r\n // \"grade\":grade[0],\r\n // \"section\":this.studentDetail?.section\r\n // })\r\n }\r\n\r\n createRefundAmountForm(): FormGroup {\r\n return this.formBuilder.group({\r\n refundAmt:new FormControl('',[Validators.required, Validators.maxLength(5)])\r\n })\r\n }\r\n\r\n populateSiblingDetails() {\r\n let transportInfo = JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let stuIds: any[] = [];\r\n transportInfo.forEach((x:any) => {\r\n stuIds.push(x.stU_ID)\r\n });\r\n let studentIds = stuIds.join(',');\r\n\r\n this.paymentService.getRefundsData(studentIds).subscribe((res:any)=>{\r\n if(res?.length > 0){\r\n transportInfo?.forEach((x: any) => {\r\n\r\n let refund = res.find((y:any) => y.stU_ID == x.stU_ID && y.fee?.toLowerCase() == \"total\");\r\n\r\n if(refund?.amount >= 100){\r\n let grade = x.grade.split(\"/\");\r\n this.siblingsRefundDetails.push({\r\n \"studentName\": x.studentName,\r\n \"studentPhoto\": x.photoPath,\r\n \"studentId\": x.studentNo,\r\n \"stU_ID\": x.stU_ID,\r\n \"schoolId\": x.stU_SCHOOL_ID,\r\n \"grade\": grade[0],\r\n \"section\": x.section,\r\n \"refundAmount\": 0,\r\n \"allowedRefundAmount\": refund?.amount,\r\n \"isChecked\": false,\r\n \"disableEdit\": false\r\n });\r\n this.refundAmtForm[x.studentNo] = this.createRefundAmountForm();\r\n }\r\n });\r\n\r\n this.siblingsRefundDetails?.forEach((x:any) => {\r\n x.isChecked = true;\r\n this.onChange(true, x);\r\n });\r\n\r\n if(this.siblingsRefundDetails != null && this.siblingsRefundDetails.length == 1){\r\n this.checkboxDisabled = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n onChangeRadio(isCheque:any,isBank:any)\r\n {\r\n this.isCheque=isCheque.checked;\r\n this.isBank=isBank.checked;\r\n this.refundForm.patchValue({\r\n payeeName: '',\r\n Iban: '',\r\n accName: '',\r\n bankName: '',\r\n swiftCode: '',\r\n imageName: '',\r\n reason: ''\r\n })\r\n this.count = 0;\r\n this.minDescErr = false;\r\n this.setValidations();\r\n }\r\n isChecked = true;\r\n\r\n onChange(checked: any, formData: any) {\r\n formData.disableEdit = checked;\r\n\r\n if(checked){\r\n this.refundAmtForm[formData.studentId].controls.refundAmt.setValidators([Validators.required, Validators.min(1), Validators.max(formData.allowedRefundAmount), this.maxLengthValidator(5)]);\r\n this.refundAmtForm[formData.studentId].controls.refundAmt.updateValueAndValidity();\r\n\r\n if(this.refundAmtForm[formData.studentId].invalid){\r\n this.invalidAmount = true;\r\n }\r\n }\r\n\r\n if(!checked){\r\n formData.refundAmount = 0;\r\n \r\n this.refundAmtForm[formData.studentId].patchValue({\r\n refundAmt: 0\r\n });\r\n this.refundAmtForm[formData.studentId].controls.refundAmt.markAsUntouched();\r\n this.refundAmtForm[formData.studentId].controls.refundAmt.clearValidators();\r\n this.refundAmtForm[formData.studentId].controls.refundAmt.updateValueAndValidity();\r\n this.calculateRefundAmount();\r\n }\r\n }\r\n\r\n onChangeRefundAmount(event:any, formData: any){\r\n const inputElement = event.target.value;\r\n\r\n formData.refundAmount = inputElement;\r\n\r\n this.calculateRefundAmount();\r\n }\r\n\r\n calculateRefundAmount(){\r\n this.totalRefundAmount = 0;\r\n this.invalidAmount = false;\r\n this.siblingsRefundDetails.forEach((x:any) => {\r\n if(x.isChecked){\r\n if(this.refundAmtForm[x.studentId].invalid){\r\n this.invalidAmount = true;\r\n }\r\n this.totalRefundAmount = (+this.totalRefundAmount) + (+x.refundAmount)\r\n }\r\n });\r\n }\r\n\r\n setValidations()\r\n {\r\n if(this.isCheque)\r\n {\r\n this.refundForm.controls.payeeName.setValidators([Validators.required]);\r\n this.refundForm.controls.imageName.setValidators([Validators.required]);\r\n this.refundForm.controls.Iban.markAsUntouched();\r\n this.refundForm.controls.accName.markAsUntouched();\r\n this.refundForm.controls.Iban.clearValidators();\r\n this.refundForm.controls.Iban.updateValueAndValidity();\r\n this.refundForm.controls.accName.clearValidators();\r\n this.refundForm.controls.accName.updateValueAndValidity();\r\n \r\n this.refundForm.controls.bankName.markAsUntouched();\r\n this.refundForm.controls.bankName.clearValidators();\r\n this.refundForm.controls.bankName.updateValueAndValidity();\r\n this.refundForm.controls.swiftCode.markAsUntouched();\r\n this.refundForm.controls.swiftCode.clearValidators();\r\n this.refundForm.controls.swiftCode.updateValueAndValidity();\r\n \r\n this.refundForm.controls.reason.setErrors(null);\r\n this.refundForm.controls.reason.markAsUntouched();\r\n this.refundForm.controls.reason.markAsPristine();\r\n this.refundForm.controls.reason.updateValueAndValidity();\r\n\r\n }\r\n else{\r\n this.refundForm.controls.payeeName.markAsUntouched();\r\n this.refundForm.controls.payeeName.clearValidators();\r\n this.refundForm.controls.payeeName.updateValueAndValidity();\r\n this.refundForm.controls.imageName.markAsUntouched();\r\n this.refundForm.controls.imageName.clearValidators();\r\n this.refundForm.controls.imageName.updateValueAndValidity();\r\n this.refundForm.controls.Iban.setValidators([Validators.required]);\r\n this.refundForm.controls.accName.setValidators([Validators.required]);\r\n this.refundForm.controls.bankName.setValidators([Validators.required]);\r\n this.refundForm.controls.swiftCode.setValidators([Validators.required]);\r\n\r\n this.refundForm.controls.reason.setErrors(null);\r\n this.refundForm.controls.reason.markAsUntouched();\r\n this.refundForm.controls.reason.markAsPristine();\r\n this.refundForm.controls.reason.updateValueAndValidity();\r\n }\r\n }\r\n onDescChange()\r\n {\r\n if(this.refundForm.get('reason').value && this.refundForm.get('reason').value.trim() != \"\")\r\n {\r\n this.count=this.refundForm.get('reason').value.length;\r\n if(this.count <=9)\r\n this.minDescErr=true;\r\n else this.minDescErr=false;\r\n }\r\n else{\r\n this.count=0;\r\n this.minDescErr=false;\r\n this.refundForm.patchValue({ \"reason\":this.refundForm.get('reason').value?.trim() == \"\" ? \"\" : this.refundForm.get('reason').value})\r\n }\r\n }\r\n\r\n submit(template:any)\r\n {\r\n // let payload={\r\n // \"studentno\":this.studentDetail?.studentNo,\r\n // \"RequestAmount\":this.refundForm.get('refundAmt').value,\r\n // \"TransferMode\":this.isBank?\"bank\":\"cheqe\",\r\n // \"PayeeName\":this.isBank ? null :this.refundForm.get('payeeName').value,\r\n // \"IBANNumber\":this.isBank ? this.refundForm.get('Iban').value :null,\r\n // \"AccountName\":this.isBank ? this.refundForm.get('accName').value :'',\r\n // \"RequestReason\":this.refundForm.get('reason').value\r\n // }\r\n\r\n let attachment: any = null;\r\n\r\n if(!this.invalidFile && !this.invalidFileSize){\r\n attachment = this.attachment;\r\n }\r\n\r\n let stuRefundData: any[] = [];\r\n\r\n this.siblingsRefundDetails.forEach((x:any)=> {\r\n if(x.isChecked){\r\n stuRefundData.push({\r\n \"FRD_ID\": 0,\r\n \"FRD_FRH_ID\": 0,\r\n \"FRD_AMOUNT\": x.refundAmount,\r\n \"FRD_FEE_ID\": \"6\",\r\n \"FRD_NARRATION\": \"Transport Fee\",\r\n \"FRD_STU_ID\": x.stU_ID,\r\n \"FRD_STU_NO\": x.studentId\r\n });\r\n }\r\n });\r\n\r\n\r\n let payload: any;\r\n payload = {\r\n \"FRH_ID\": 0,\r\n \"FRH_BSU_ID\": localStorage.getItem(\"bsU_ID\"),\r\n \"FRH_STU_BSU_ID\": localStorage.getItem(\"bsU_ID\"),\r\n \"FRH_ACD_ID\": this.acdId,\r\n \"FRH_STU_TYPE\": \"S\",\r\n \"FRH_STU_ID\": this.studentDetail?.stU_ID,\r\n \"FRH_STU_NO\": this.studentDetail?.studentNo,\r\n \"FRH_FAR_ID\": 0,\r\n \"FRH_DATE\": new Date(),\r\n \"FRH_CHQDT\": new Date(),\r\n \"FRH_bPosted\": false,\r\n \"FRH_bDeleted\": false,\r\n \"FRH_NARRATION\": this.refundForm.get('reason').value,\r\n \"FRH_VHH_DOCNO\": \"\",\r\n \"FRH_BANK_CASH\": this.isBank ? \"B\" : \"C\",\r\n \"FRH_ACT_ID\": this.isBank ? this.refundForm.get('Iban').value : null,\r\n \"FRH_PAIDTO\": this.isBank ? this.refundForm.get('accName').value : this.refundForm.get('payeeName').value,\r\n \"FRH_TOTAL\": this.totalRefundAmount,\r\n \"FRH_BANKCHARGE\": 0.0,\r\n \"FRH_APD_ID\": 0,\r\n \"FRH_SOURCE\": \"STS_WEB\",\r\n \"FRH_FCL_FCL_ID\": 0,\r\n \"FRH_CATEGORY\": 0,\r\n \"FRH_USER_ID\": localStorage.getItem(\"parent\"),\r\n \"FRH_BANK_NAKE\": this.isBank ? this.refundForm.get('bankName').value :'',\r\n \"FRH_SWIFT_CODE\": this.isBank ? this.refundForm.get('swiftCode').value : null,\r\n \"refundDetails\": stuRefundData\r\n }\r\n\r\n this.paymentService.saveFeeRefund(JSON.stringify(payload), attachment).subscribe((res:any)=>{\r\n if(res?.success == \"true\")\r\n {\r\n this.referenceNumber=res?.data\r\n if(this.referenceNumber != \"0\")\r\n this.successDialog(template)\r\n else this.openMessageDialog(\"Request already exist and not approved.\", true, \"\");\r\n }else{\r\n this.openMessageDialog(res?.message, true, \"\");\r\n }\r\n })\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.cancel();\r\n });\r\n }\r\ncancel()\r\n{\r\n this.digopen?.close();\r\n this.router.navigate(['/statement-of-accounts'], { queryParams: { id: this.studentDetail?.studentNo } });\r\n}\r\n\r\ncharOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode === 32) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nvalidateChar(type:any){\r\n if (type == 'payee') {\r\n if (!(this.refundForm.get('payeeName').value && this.refundForm.get('payeeName').value.trim() != \"\")) {\r\n this.refundForm.patchValue({ \"payeeName\": this.refundForm.get('payeeName').value?.trim() == \"\" ? \"\" : this.refundForm.get('payeeName').value })\r\n }\r\n }\r\n \r\n if (type == 'iban') {\r\n if (!(this.refundForm.get('Iban').value && this.refundForm.get('Iban').value.trim() != \"\")) {\r\n this.refundForm.patchValue({ \"Iban\": this.refundForm.get('Iban').value?.trim() == \"\" ? \"\" : this.refundForm.get('Iban').value })\r\n }\r\n }\r\n\r\n if(type == 'account'){\r\n if (!(this.refundForm.get('accName').value && this.refundForm.get('accName').value.trim() != \"\")) {\r\n this.refundForm.patchValue({ \"accName\": this.refundForm.get('accName').value?.trim() == \"\" ? \"\" : this.refundForm.get('accName').value })\r\n }\r\n }\r\n if(type == 'swift'){\r\n if (!(this.refundForm.get('swiftCode').value && this.refundForm.get('swiftCode').value.trim() != \"\")) {\r\n this.refundForm.patchValue({ \"swiftCode\": this.refundForm.get('swiftCode').value?.trim() == \"\" ? \"\" : this.refundForm.get('swiftCode').value })\r\n }\r\n }\r\n if(type == 'bank'){\r\n if (!(this.refundForm.get('bankName').value && this.refundForm.get('bankName').value.trim() != \"\")) {\r\n this.refundForm.patchValue({ \"bankName\": this.refundForm.get('bankName').value?.trim() == \"\" ? \"\" : this.refundForm.get('bankName').value })\r\n }\r\n }\r\n}\r\n\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n ibanCharOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || (charCode >= 48 && charCode <= 57) || charCode === 32) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n handleFileInputChange(files: any) {\r\n let fileData: any;\r\n let imageName: any = '';\r\n\r\n fileData = files.target.files[0];\r\n let type: any = '';\r\n type = fileData?.type.split('/')[1];\r\n let extName: any = '';\r\n extName = fileData?.name.split('.')[1];\r\n let filesize: any = '';\r\n filesize = fileData?.size;\r\n imageName = fileData?.name;\r\n if ((type == 'png' || type == 'jpg' || type == 'jpeg') || (extName == 'pdf')) {\r\n this.invalidFile = false;\r\n\r\n }\r\n else {\r\n this.invalidFile = true;\r\n imageName = \"\";\r\n }\r\n if (filesize <= 5242880) {\r\n this.invalidFileSize = false;\r\n } else {\r\n this.invalidFileSize = true;\r\n imageName = \"\";\r\n }\r\n\r\n imageName = fileData?.name;\r\n\r\n this.refundForm.patchValue({\r\n imageName: imageName\r\n });\r\n\r\n this.attachment = files.target.files[0];\r\n\r\n }\r\n\r\n maxLengthValidator(maxLength: number) {\r\n return (control) => {\r\n if (control.value && control.value.toString().length > maxLength) {\r\n return { 'maxlength': true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n attachmentValidation(){\r\n \r\n if(this.isCheque){\r\n let attachment: any = null;\r\n\r\n if(!this.invalidFile && !this.invalidFileSize){\r\n attachment = this.attachment;\r\n }\r\n\r\n if(attachment == null){\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, TemplateRef } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { saveAs } from 'file-saver';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\nimport * as html2pdf from 'html2pdf.js';\r\n\r\n@Component({\r\n selector: 'app-soa-details',\r\n templateUrl: './soa-details.component.html',\r\n styleUrls: ['./soa-details.component.scss']\r\n})\r\nexport class SoaDetailsComponent implements OnInit {\r\n displayedColumns = ['date', 'refNo', 'feeDescription', 'narration', 'debit', 'credit'];\r\n\r\n\r\n @Input()fromdate: string;\r\n @Input()todate: string;\r\n @Output() dates:EventEmitter= new EventEmitter()\r\n summaryList: any;\r\n studentId: any;\r\n dataSource: any;\r\n isOnChange: boolean=false;\r\n schoolCurrency: string = '';\r\n invoiceDialog: any;\r\n htmlContent: any;\r\n content: SafeHtml;\r\n detailsPDFSub: Subscription;\r\n schoolName: string = '';\r\n studentName: string = '';\r\n studentGrade: string = '';\r\n invoiceNo: any;\r\n\r\n constructor(private datePipe: DatePipe, private paymentService:PaymentService, private router:ActivatedRoute, \r\n private dialog: MatDialog, private sanitizer: DomSanitizer) {\r\n \r\n }\r\n\r\n ngOnChanges(): void {\r\n this.isOnChange=true;\r\n this.router.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n })\r\n this.getPaymentSummaryDetails();\r\n\r\n this.detailsPDFSub = this.paymentService.downloadDetailsPDF.subscribe((res: any) => {\r\n if (res == \"1\") {\r\n this.downloadAsPDF();\r\n }\r\n });\r\n }\r\n ngOnInit(): void {\r\n this.schoolName = localStorage.getItem('schoolName');\r\n this.schoolCurrency= localStorage.getItem('bsu_currency');\r\n if(!this.isOnChange)\r\n {\r\n this.router.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n })\r\n this.getPaymentSummaryDetails()\r\n }\r\n\r\n let transportChildInfo = JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let childInfo = transportChildInfo.filter((x: any) => x.studentNo == this.studentId);\r\n this.studentName = childInfo[0]?.studentName;\r\n this.studentGrade = childInfo[0]?.grade;\r\n }\r\n\r\n ngOnDestroy(){\r\n this.detailsPDFSub?.unsubscribe();\r\n }\r\n\r\n changeServiceDate(event, value) {\r\n let serviceDate = event.value._d;\r\n let data: any;\r\n if (value == 'fdate') {\r\n this.fromdate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n } else {\r\n this.todate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n\r\n clear() {\r\n this.todate = '';\r\n this.fromdate = '';\r\n }\r\n\r\n getPaymentSummaryDetails(){\r\n let data:any;\r\n data={\r\n stuid:this.studentId,\r\n fromDate:this.fromdate,\r\n toDate:this.todate\r\n }\r\n this.dates.emit(data);\r\n this.paymentService.getPaymentSummaryDetails(data).subscribe(\r\n res=>{\r\n this.summaryList = res;\r\n this.dataSource = this.summaryList;\r\n console.log('dataSource', this.dataSource)\r\n }\r\n )\r\n }\r\n\r\n downloadAsPDF() {\r\n let data: any;\r\n data = {\r\n stuid: this.studentId,\r\n fromDate: this.fromdate,\r\n toDate: this.todate,\r\n studentName: this.studentName,\r\n studentGrade: this.studentGrade,\r\n schoolName: this.schoolName\r\n }\r\n this.paymentService.downloadStatementOfAccountsDetailsPdf(data).subscribe(\r\n (res:any) => {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n saveAs(blob, \"Details.pdf\");\r\n this.paymentService.downloadDetailsPDF.next(\"0\");\r\n }\r\n )\r\n }\r\n\r\n getTaxInvoice(refNo:any,template:any)\r\n {\r\n let data={\r\n receiptNo:refNo,\r\n studNo:this.studentId\r\n }\r\n this.invoiceNo = refNo;\r\n\r\n this.paymentService.getReceipt(data).subscribe(res=>{\r\n this.htmlContent=res?.data\r\n this.receiptDialog(template);\r\n });\r\n }\r\n\r\n get sanitizedPdfHtml(): SafeHtml { \r\n this.content=this.sanitizer.bypassSecurityTrustHtml(this.htmlContent ?? '');\r\n return this.content }\r\n\r\n receiptDialog(template: TemplateRef) {\r\n this.invoiceDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '700px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n convertHtmlToPdf(htmlContent: string, filename: string) {\r\n // Create a new element to hold the HTML content\r\n const element = document.createElement('div');\r\n element.innerHTML = htmlContent;\r\n\r\n // Append the element to the document body\r\n document.body.appendChild(element);\r\n\r\n // Define options for html2pdf\r\n const options = {\r\n margin: [0.5, 0.5, 0.5, 0.5], // margins: top, right, bottom, left\r\n filename: 'document.pdf',\r\n image: { type: 'jpeg', quality: 0.98 },\r\n html2canvas: { scale: 2 },\r\n jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }\r\n };\r\n\r\n html2pdf().from(element).set(options).outputPdf('blob').then((blob: Blob) => {\r\n document.body.removeChild(element);\r\n \r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = this.invoiceNo + \".pdf\";\r\n a.click();\r\n URL.revokeObjectURL(url);\r\n });\r\n }\r\n\r\n downloadInvoiceAsPDF(){\r\n this.convertHtmlToPdf(this.htmlContent, this.invoiceNo);\r\n }\r\n\r\n removeMetadata(html: string): string {\r\n const metadataRegex = /<\\s*(meta|title|link|style|script)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n const nonContentRegex = /<\\s*(head|script|style)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n\r\n html = html.replace(metadataRegex, '');\r\n html = html.replace(nonContentRegex, '');\r\n return html;\r\n }\r\n}\r\n\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\nimport { saveAs } from 'file-saver';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-soa-summary',\r\n templateUrl: './soa-summary.component.html',\r\n styleUrls: ['./soa-summary.component.scss']\r\n})\r\nexport class SoaSummaryComponent implements OnInit,OnChanges {\r\n displayedColumns = ['feeDescription', 'debit', 'credit', 'balance'];\r\n\r\n @Input()fromdate: string;\r\n @Input()todate: string;\r\n @Output() dates:EventEmitter= new EventEmitter()\r\n paymentList: any;\r\n studentId: any;\r\n digopen: any;\r\n dataSource: any;\r\n isOnChange: boolean=false;\r\n schoolCurrency: string = '';\r\n summaryPDFSub: Subscription;\r\n schoolName: string = '';\r\n studentName: string = '';\r\n studentGrade: string = '';\r\n\r\n constructor(private datePipe: DatePipe, private paymentService:PaymentService, private router:ActivatedRoute, private dialog:MatDialog) {\r\n }\r\n ngOnChanges(): void {\r\n this.isOnChange=true;\r\n this.router.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n })\r\n this.getSummaryDetails();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.schoolName = localStorage.getItem('schoolName');\r\n this.schoolCurrency= localStorage.getItem('bsu_currency');\r\n if(!this.isOnChange)\r\n {\r\n this.router.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n })\r\n this.getSummaryDetails()\r\n }\r\n\r\n let transportChildInfo = JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n\r\n let childInfo = transportChildInfo.filter((x: any) => x.studentNo == this.studentId);\r\n this.studentName = childInfo[0]?.studentName;\r\n this.studentGrade = childInfo[0]?.grade;\r\n\r\n this.summaryPDFSub = this.paymentService.downloadSummaryPDF.subscribe((res: any) => {\r\n if (res == \"1\") {\r\n this.downloadAsPDF();\r\n }\r\n });\r\n }\r\n changeServiceDate(event, value) {\r\n let serviceDate = event.value._d;\r\n let data: any;\r\n if (value == 'fdate') {\r\n this.fromdate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n } else {\r\n this.todate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n\r\n ngOnDestroy(){\r\n this.summaryPDFSub?.unsubscribe();\r\n }\r\n\r\n clear() {\r\n this.todate = '';\r\n this.fromdate = '';\r\n }\r\n getSummaryDetails(){\r\n let data:any;\r\n data={\r\n stuid:this.studentId,\r\n fromDate:this.fromdate,\r\n toDate:this.todate\r\n }\r\n this.dates.emit(data);\r\n this.paymentService.getPaymentSummary(data).subscribe(\r\n res=>{\r\n this.paymentList = res;\r\n this.dataSource = this.paymentList;\r\n console.log('dataSource', this.dataSource)\r\n }\r\n )\r\n }\r\n getEmailStatement(template: TemplateRef){\r\n let data:any;\r\n data={\r\n stuid:this.studentId,\r\n fromDate:this.fromdate,\r\n toDate:this.todate\r\n }\r\n this.paymentService.getEmailSummary(data).subscribe(res=>{\r\n this.successDialog(template)\r\n })\r\n }\r\n successDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n\r\n }\r\n\r\n downloadAsPDF() {\r\n let data: any;\r\n data = {\r\n stuid: this.studentId,\r\n fromDate: this.fromdate,\r\n toDate: this.todate,\r\n studentName: this.studentName,\r\n studentGrade: this.studentGrade,\r\n schoolName: this.schoolName\r\n }\r\n this.paymentService.downloadStatementOfAccountsSummaryPdf(data).subscribe(\r\n (res:any) => {\r\n const blob = new Blob([res], { type: 'application/pdf' });\r\n saveAs(blob, \"Summary.pdf\");\r\n this.paymentService.downloadSummaryPDF.next(\"0\");\r\n }\r\n )\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { PaymentService } from 'src/app/service/payment.service';\r\n\r\n@Component({\r\n selector: 'app-statement-of-accounts',\r\n templateUrl: './statement-of-accounts.component.html',\r\n styleUrls: ['./statement-of-accounts.component.scss']\r\n})\r\nexport class StatementOfAccountsComponent implements OnInit {\r\n\r\n \r\n fromdate: string;\r\n todate: string;\r\n excessAmt: any;\r\n selectedTab:number=0;\r\n studentId: any;\r\n disableRefund: boolean = true;\r\n\r\n constructor(private datePipe: DatePipe, private router:Router,public paymentService:PaymentService, private activatedRoute:ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n this.studentId = params?.id\r\n });\r\n\r\n let transportInfo =JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let stuIds: any[] = [];\r\n transportInfo.forEach((x:any) => {\r\n stuIds.push(x.stU_ID)\r\n });\r\n let studentIds = stuIds.join(',');\r\n this.paymentService.getRefundsData(studentIds).subscribe((res:any)=>{\r\n if(res?.length > 0){\r\n res?.forEach((refund:any) => {\r\n if(refund?.fee?.toLowerCase() == \"total\" && refund?.amount >= 100){\r\n //this.excessAmt=refund?.amount;\r\n this.disableRefund = false\r\n }\r\n });\r\n }\r\n });\r\n\r\n let date= new Date();\r\n date = new Date(date.getFullYear(), new Date(date).getMonth(), new Date(date).getDate() - 90);\r\n this.fromdate = this.datePipe.transform(new Date(date), 'yyyy-MM-dd'); this.todate = this.datePipe.transform(new Date(), 'yyyy-MM-dd');\r\n }\r\n changeDates(event:any)\r\n {\r\n this.fromdate =event.fromDate;\r\n this.todate=event.toDate;\r\n }\r\n changeServiceDate(event, value) {\r\n let serviceDate = event.value._d;\r\n let data: any;\r\n if (value == 'fdate') {\r\n this.fromdate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n } else {\r\n this.todate = this.datePipe.transform(serviceDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n \r\n clear() {\r\n this.todate = '';\r\n this.fromdate = '';\r\n }\r\n\r\n navigatetolink(lnk) {\r\n //this.paymentService.excessAmt.next(this.excessAmt)\r\n this.router.navigate([lnk],{queryParams:{id:this.studentId}});\r\n }\r\n\r\n onTabChange(event:any)\r\n {\r\n this.selectedTab=event;\r\n }\r\n\r\n downloadAsPDF(){\r\n if(this.selectedTab == 0){\r\n this.paymentService.downloadDetailsPDF.next(\"1\");\r\n }else{\r\n this.paymentService.downloadSummaryPDF.next(\"1\");\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { SchoolsListComponent } from './schools-list/schools-list.component';\r\nimport { SchoolbusRegistrationComponent } from './schoolbus-registration/schoolbus-registration.component';\r\nimport { ViewTermsAndConditionsComponent } from './schoolbus-registration/terms-and-conditions/view-terms-and-conditions/view-terms-and-conditions.component';\r\nimport { UaepassCallbackComponent } from './schoolbus-registration/terms-and-conditions/uaepass-callback/uaepass-callback.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'schools-list',\r\n component: SchoolsListComponent\r\n },\r\n {\r\n path: 'schoolbus-registration',\r\n component: SchoolbusRegistrationComponent\r\n },\r\n {\r\n path: 'terms-and-conditions',\r\n component: ViewTermsAndConditionsComponent\r\n },\r\n {\r\n path: 'uaepass_callback',\r\n component: UaepassCallbackComponent\r\n },\r\n \r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class SchoolBusRegistrationRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SchoolsListComponent } from './schools-list/schools-list.component';\r\nimport { SchoolBusRegistrationRoutingModule } from './school-bus-registration-routing.module';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SchoolbusRegistrationComponent } from './schoolbus-registration/schoolbus-registration.component';\r\nimport {MatTabsModule} from '@angular/material/tabs';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\nimport {MatSelectModule} from '@angular/material/select';\r\nimport { ParentInformationComponent } from './schoolbus-registration/parent-information/parent-information.component';\r\nimport { StudentInformationComponent } from './schoolbus-registration/student-information/student-information.component';\r\nimport { ResidentialInformationComponent } from './schoolbus-registration/residential-information/residential-information.component';\r\nimport { TermsAndConditionsComponent } from './schoolbus-registration/terms-and-conditions/terms-and-conditions.component';\r\nimport { ViewTermsAndConditionsComponent } from './schoolbus-registration/terms-and-conditions/view-terms-and-conditions/view-terms-and-conditions.component';\r\nimport {MatRadioModule} from '@angular/material/radio';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { Ng2TelInputModule } from 'ng2-tel-input';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { AgmCoreModule } from '@agm/core';\r\nimport { PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { NgxMatIntlTelInputModule } from 'ngx-mat-intl-tel-input';\r\nimport { MatTooltipModule} from '@angular/material/tooltip';\r\nimport { SafePipe } from 'src/app/core/enctypt-decrytp.pipe';\r\nimport { ReactivateStudentInformationComponent } from './schoolbus-registration/reactivate-student-information/reactivate-student-information.component';\r\nimport { CommonModulesModule } from 'src/app/common-modules/common-modules.module';\r\nimport { UaepassCallbackComponent } from './schoolbus-registration/terms-and-conditions/uaepass-callback/uaepass-callback.component';\r\nimport { PreventArabicDirective } from 'src/app/models/prevent-arabic.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n SchoolsListComponent,\r\n SchoolbusRegistrationComponent,\r\n ParentInformationComponent,\r\n StudentInformationComponent,\r\n ReactivateStudentInformationComponent,\r\n ResidentialInformationComponent,\r\n TermsAndConditionsComponent,\r\n ViewTermsAndConditionsComponent,\r\n SafePipe,\r\n UaepassCallbackComponent,\r\n PreventArabicDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatCheckboxModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatInputModule, MatCardModule,MatTabsModule,\r\n MatExpansionModule,\r\n MatSlideToggleModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatDatepickerModule,\r\n GoogleMapsModule,Ng2TelInputModule,\r\n MatDialogModule,\r\n AgmCoreModule.forRoot({\r\n apiKey: 'AIzaSyA1iYoEmhopACwr8vAOLOO3KSOHvMERD-E',\r\n libraries: ['places']\r\n }),\r\n PdfViewerModule,\r\n NgxMatIntlTelInputModule,\r\n CommonModulesModule\r\n ],\r\n exports: [\r\n SchoolBusRegistrationRoutingModule\r\n ]\r\n})\r\nexport class SchoolBusRegistrationModule { }\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { OtherDetails, PrimaryDetails, SecondaryDetails } from 'src/app/models/registration.model';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { Form, Validators } from '@angular/forms';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport parsePhoneNumberFromString from 'libphonenumber-js';\r\nimport { FileService } from 'src/app/service/file.service';\r\nimport { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n@Component({\r\n selector: 'app-parent-information',\r\n templateUrl: './parent-information.component.html',\r\n styleUrls: ['./parent-information.component.scss']\r\n})\r\nexport class ParentInformationComponent implements OnInit {\r\n checked = false;\r\n token: any;\r\n IsMobileVerified: boolean = false;\r\n enableOTP: boolean = false;\r\n interval: any;\r\n countdown: number = 0;\r\n isResendOtp: boolean = false;\r\n isInvalidOTP: boolean = false;\r\n encOTP: any;\r\n enteredOTP: any = '';\r\n isOtpEntered: boolean = false;\r\n IsEmailMatch: boolean = false;\r\n studParentDetails: any;\r\n isOtherRelationship: boolean = false;\r\n isOtherFullName: boolean = false;\r\n isOtherMobile: boolean = false;\r\n studentDialog: any\r\n statusDialog: any\r\n @Output() onTabChange: EventEmitter = new EventEmitter();\r\n details: any;\r\n primaryRel: any = '';\r\n secondaryRel: any = '';\r\n guardianRel: any = '';\r\n selectedCountries: string;\r\n disabledContact: boolean=true;\r\n nationalnumber: any;\r\n isVerifyOTP: boolean=false;\r\n count: any=0;\r\n resendcount: any=0;\r\n isUAENoValidPrimary: boolean=false;\r\n isUAENoValidOther: boolean=false;\r\n isUAENoValidSecondary: boolean=false;\r\n hasLoginUser:boolean=false;\r\n @ViewChild('editStudentInfo')editStudent:TemplateRef;\r\n @ViewChild('statusMsg')statusMsg:TemplateRef;\r\n parentDetailResponse: any[]=[];\r\n disableAddSibling: boolean=false;\r\n studentStatus: any;\r\n showloader:boolean=false;\r\n @Input() isReactivate: boolean = false;\r\n constructor(private dialog: MatDialog, private registrationService: RegistrationService, private tokenService: TokenService, private router: Router\r\n ,private fileService: FileService, private configService: ConfigService) { }\r\n\r\n @ViewChild(\"otp1\") otp1!: ElementRef;\r\n @ViewChild(\"otp2\") otp2!: ElementRef;\r\n @ViewChild(\"otp3\") otp3!: ElementRef;\r\n @ViewChild(\"otp4\") otp4!: ElementRef;\r\n @ViewChild(\"otp5\") otp5!: ElementRef;\r\n @ViewChild(\"otp6\") otp6!: ElementRef;\r\n @ViewChild('primaryMobile') primaryMobile: NgxMatIntlTelInputComponent;\r\n @ViewChild('secondaryMobile') secondaryMobile: NgxMatIntlTelInputComponent;\r\n @ViewChild('otherMobile') otherMobile: NgxMatIntlTelInputComponent;\r\n\r\n public otpValue1: any = '';\r\n public otpValue2: any = '';\r\n public otpValue3: any = '';\r\n public otpValue4: any = '';\r\n public otpValue5: any = '';\r\n public otpValue6: any = '';\r\n\r\n public primaryDetails: FormGroup;\r\n public secondaryDetails: SecondaryDetails = new SecondaryDetails();\r\n public otherDetails: OtherDetails = new OtherDetails();\r\n public countries=['ae', 'qa']\r\n\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n }, 500);\r\n\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n console.log(schooldata);\r\n let loginUser = localStorage.getItem(\"loginuser\");\r\n this.hasLoginUser=loginUser?true:false\r\nif(schooldata.country == \"UAE\") {\r\n this.selectedCountries = this.countries[0]\r\n} else{\r\n this.selectedCountries = this.countries[1]\r\n}\r\n\r\nthis.getToken();\r\n\r\n this.primaryDetails = new FormGroup({\r\n primaryRelationShip: new FormControl('', Validators.required),\r\n primaryFname: new FormControl('', Validators.required),\r\n primaryMname: new FormControl(''),\r\n primaryLname: new FormControl('', Validators.required),\r\n primaryMobile: new FormControl('', [Validators.required]),\r\n primaryEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n primaryReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n secondaryRelationShip: new FormControl('', Validators.required),\r\n secondaryFname: new FormControl('', Validators.required),\r\n secondaryMname: new FormControl(''),\r\n secondaryLname: new FormControl('', Validators.required),\r\n secondaryMobile: new FormControl('', [Validators.required, Validators.minLength(8), Validators.maxLength(13)]),\r\n otherRelationShip: new FormControl(''),\r\n otherFullName: new FormControl(''),\r\n otherMobile: new FormControl(''),\r\n otpValue1: new FormControl(''),\r\n otpValue2: new FormControl(''),\r\n otpValue3: new FormControl(''),\r\n otpValue4: new FormControl(''),\r\n otpValue5: new FormControl(''),\r\n otpValue6: new FormControl(''),\r\n });\r\n\r\n }\r\n\r\n // editInfoDialog(template: TemplateRef) {\r\n // this.studentDialog= this.dialog.open(template, {\r\n // disableClose: true,\r\n // width: '510px',\r\n // panelClass: 'custom-modalbox'\r\n // });\r\n // }\r\n numberOnly(event: any): boolean {\r\n const charCode = (event.which) ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.token = res?.access_token;\r\n let data: any = '';\r\n data = JSON.parse(localStorage.getItem('parentDetails'));\r\n if (data != '' && data != null) {\r\n this.phone = data?.MOBILEPHONE;\r\n this.IsMobileVerified = true;\r\n // this.verifyOTP()\r\n this.gotoPrevious()\r\n } else {\r\n this.IsMobileVerified = false;\r\n this.primaryDetails = new FormGroup({\r\n primaryRelationShip: new FormControl('', Validators.required),\r\n primaryFname: new FormControl('', Validators.required),\r\n primaryMname: new FormControl(''),\r\n primaryLname: new FormControl('', Validators.required),\r\n primaryMobile: new FormControl('', [Validators.required]),\r\n primaryEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n primaryReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n secondaryRelationShip: new FormControl('', Validators.required),\r\n secondaryFname: new FormControl('', Validators.required),\r\n secondaryMname: new FormControl(''),\r\n secondaryLname: new FormControl('', Validators.required),\r\n secondaryMobile: new FormControl('', [Validators.required, Validators.minLength(8), Validators.maxLength(13)]),\r\n otherRelationShip: new FormControl(''),\r\n otherFullName: new FormControl(''),\r\n otherMobile: new FormControl(''),\r\n otpValue1: new FormControl(''),\r\n otpValue2: new FormControl(''),\r\n otpValue3: new FormControl(''),\r\n otpValue4: new FormControl(''),\r\n otpValue5: new FormControl(''),\r\n otpValue6: new FormControl(''),\r\n });\r\n }\r\n }\r\n )\r\n }\r\n addSibling()\r\n {\r\n this.studentDialog.close();\r\n setTimeout(() => {\r\n // alert('scrolled up')\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, 200);\r\n this.gotoPrevious();\r\n localStorage.setItem(\"addSiblingFromParent\",\"true\")\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let index:any\r\n if (!this.hasLoginUser) {\r\n index = data?.length == 1 ? 0 : data.findIndex((x: any) => x.disableRegistration == 0)\r\n index = index == -1 ? 0 : index;\r\n }\r\n else {\r\n index = data?.length == 1 ? 0 : data.findIndex((x: any) => x.transportStatus == \"Service is already Active\")\r\n index = index == -1 ? 0 : index;\r\n }\r\n let studentData={\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": '',\r\n \"stU_MIDNAME\": '',\r\n \"stU_LASTNAME\": '',\r\n \"stU_GENDER\": '',\r\n \"stU_GRD_ID\": '',\r\n \"stU_GRM_ID\": 0,\r\n \"stU_DOB\": '',\r\n \"stU_SCHOOL_ID\": '',\r\n \"stU_PHOTOPATH\": '',\r\n \"stS_MED\": 0,\r\n \"stU_MED_CONDITION\": '',\r\n \"stS_MED_STAFF_REQUIRED\": 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": '',\r\n \"stU_PRIMARYCONTACT\": this.primaryDetails.value.primaryRelationShip,\r\n \"stS_FFIRSTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryFname,\r\n \"stS_FMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryMname,\r\n \"stS_FLASTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryLname,\r\n \"stS_FMOBILE\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.phone:this.primaryDetails.value.secondaryMobile,\r\n \"stS_FEMAIL\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_MFIRSTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryFname,\r\n \"stS_MMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryMname,\r\n \"stS_MLASTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryLname,\r\n \"stS_MMOBILE\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.phone:this.primaryDetails.value.secondaryMobile,\r\n \"stS_MEMAIL\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_GFULLNAME\": this.primaryDetails.value.otherFullName,\r\n \"stS_GMOBILE\": this.primaryDetails.value.otherMobile,\r\n \"stS_GEMAIL\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stU_SECONDARY_CONTACT\":this.primaryDetails.value.secondaryRelationShip,\r\n \"disableRegistration\": 0,\r\n \"city\": data?.city ?? '',\r\n \"house\": data?.house ?? '',\r\n \"street\": data?.street ?? '',\r\n \"transportType\": data?.transportType ?? '',\r\n \"pickupArea\": data?.pickupArea ?? '',\r\n \"pickupPoint\": data?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": data?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": data?.dropoffArea ?? '',\r\n \"dropoffPoint\": data?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": data?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": data?.busServiceRequestedDate ?? '',\r\n \"picklat\": data?.picklat ?? 0,\r\n \"picklog\": data?.picklog ?? 0,\r\n \"droplat\": data?.droplog ?? 0,\r\n \"droplog\": data?.droplog ?? 0,\r\n \"stU_BSU_ID\":data?.stU_BSU_ID?? '',\r\n \"SBL_ID_DROPOFF\":data?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":data?.DROPOFFPOINT?? 0,\r\n\r\n }\r\n let json=JSON.stringify(studentData)\r\n localStorage.setItem('studentDetails',json);\r\n this.sendStudentDetails(this.studParentDetails);\r\n }\r\n\r\n editInfoDialog(template: TemplateRef) {\r\n this.studentDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n msgDialog(template: TemplateRef) {\r\n this.statusDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n getNumber(event) {\r\n\r\n this.phone = event;\r\n\r\n\r\n }\r\n sendotp() {\r\n\r\n if (this.primaryDetails.get('primaryMobile').valid && !this.isUAENoValidPrimary) {\r\n\r\n this.verifyMobile(this.phone, this.token, event);\r\n\r\n }\r\n }\r\n phone: string = '';\r\n verifyMobile(data: any, token: any, event: any) {\r\n this.registrationService.getOTPfromMobile(data,\"REGISTRATION\", token).subscribe(\r\n res => {\r\n this.phone = data;\r\n if (res?.success == 'true') {\r\n\r\n this.enableOTP = true;\r\n clearInterval(this.interval);\r\n this.isResendOtp = false;\r\n this.countdown = this.configService.otpTimerExpiry;\r\n this.startCountdown(data);\r\n this.encOTP = res?.data[0].otp\r\n } else {\r\n this.IsMobileVerified = false;\r\n this.enableOTP = false;\r\n }\r\n }\r\n )\r\n }\r\n keytab(event: any, value: any) {\r\n this.otpValue1 = this.primaryDetails.get('otpValue1').value;\r\n this.otpValue2 = this.primaryDetails.get('otpValue2').value;\r\n this.otpValue3 = this.primaryDetails.get('otpValue3').value;\r\n this.otpValue4 = this.primaryDetails.get('otpValue4').value;\r\n this.otpValue5 = this.primaryDetails.get('otpValue5').value;\r\n this.otpValue6 = this.primaryDetails.get('otpValue6').value;\r\n //this.isInvalidOTP=false;\r\n if (event.code == 'Backspace' || event.code == undefined || event.code == 'Delete') {\r\n if (event.srcElement.name == 'otpValue1') {\r\n this.otp1.nativeElement.focus();\r\n if (event.code == undefined && this.otpValue1 == \"\")\r\n this.otpValue1 = '';\r\n }\r\n if (event.srcElement.name == 'otpValue2') {\r\n this.otp2.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue3') {\r\n this.otp3.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue4') {\r\n this.otp4.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue5') {\r\n this.otp5.nativeElement.focus();\r\n }\r\n if (event.srcElement.name == 'otpValue6') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n else {\r\n if (value == 1) {\r\n if (this.otpValue1 != '') {\r\n this.otp2.nativeElement.focus();\r\n }\r\n\r\n }\r\n\r\n if (value == 2) {\r\n if (this.otpValue2 != '') {\r\n this.otp3.nativeElement.focus();\r\n }\r\n }\r\n\r\n if (value == 3) {\r\n if (this.otpValue3 != '') {\r\n this.otp4.nativeElement.focus();\r\n }\r\n }\r\n if (value == 4) {\r\n if (this.otpValue4 != '') {\r\n this.otp5.nativeElement.focus();\r\n }\r\n }\r\n if (value == 5) {\r\n if (this.otpValue5 != '') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n if (value == 6) {\r\n if (this.otpValue6 != '') {\r\n this.otp6.nativeElement.focus();\r\n }\r\n }\r\n }\r\n\r\n }\r\n private startCountdown(event: any) {\r\n\r\n this.isResendOtp = false;\r\n this.countdown = this.configService.otpTimerExpiry; // 60 seconds\r\n this.interval = setInterval(() => {\r\n if (this.countdown === 0) {\r\n clearInterval(this.interval);\r\n this.isResendOtp = true;\r\n this.isVerifyOTP = true;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n\r\n }\r\n } else {\r\n this.countdown -= 1;\r\n\r\n this.isResendOtp = false;\r\n if(this.count > 2){\r\n this.isVerifyOTP = true;\r\n clearInterval(this.interval);\r\n this.countdown = 0;\r\n this.isResendOtp = true;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n\r\n }\r\n }else{\r\n this.isVerifyOTP = false;\r\n\r\n }\r\n //event.preventDefault();\r\n }\r\n }, 1000); // Update every second\r\n }\r\n reSend(event) {\r\n this.resendcount++;\r\n if(this.resendcount > 2){\r\n this.isResendOtp = false\r\n }else{\r\n this.isResendOtp = true\r\n\r\n }\r\n this.verifyMobile(this.primaryDetails.get('primaryMobile').value, this.token, event);\r\n this.isInvalidOTP = false;\r\n this.countdown = 0;\r\n clearInterval(this.interval);\r\n this.countdown = this.configService.otpTimerExpiry;\r\n this.startCountdown(event);\r\n this.otpValue1 = \"\";\r\n this.otpValue2 = \"\"\r\n this.otpValue3 = \"\";\r\n this.otpValue4 = \"\";\r\n this.otpValue5 = \"\";\r\n this.otpValue6 = \"\";\r\n this.count = 0;\r\n this.isVerifyOTP = false;\r\n\r\n // this.primaryDetails.setValue({\r\n // otpValue1: new FormControl(''),\r\n // otpValue2: new FormControl(''),\r\n // otpValue3: new FormControl(''),\r\n // otpValue4: new FormControl(''),\r\n // otpValue5: new FormControl(''),\r\n // otpValue6: new FormControl(''),\r\n // });\r\n this.primaryDetails.get('otpValue1').reset();\r\n this.primaryDetails.get('otpValue2').reset();\r\n this.primaryDetails.get('otpValue3').reset();\r\n this.primaryDetails.get('otpValue4').reset();\r\n this.primaryDetails.get('otpValue5').reset();\r\n this.primaryDetails.get('otpValue6').reset();\r\n }\r\n getEnteredOTP() {\r\n\r\n if (this.otpValue1 != '' && this.otpValue2 != '' && this.otpValue3 != '' && this.otpValue4 != '' && this.otpValue5 != '' && this.otpValue6 != '') {\r\n this.enteredOTP = this.otpValue1 + this.otpValue2 + this.otpValue3 + this.otpValue4 + this.otpValue5 + this.otpValue6;\r\n this.isOtpEntered = false;\r\n this.isInvalidOTP = false;\r\n } else {\r\n this.isOtpEntered = true;\r\n this.isInvalidOTP = false;\r\n\r\n }\r\n }\r\n sha512Enc(val: string) {\r\n const hash = CryptoJS.SHA512(val);\r\n return hash.toString(CryptoJS.enc.Hex);\r\n }\r\n verifyOTP() {\r\n this.showloader=true\r\n this.fileService.clearFile();\r\n let otp: any = '';\r\n let data: any = '';\r\n data = JSON.parse(localStorage.getItem('parentDetails'));\r\n if (data == '' || data == undefined) {\r\n this.getEnteredOTP();\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n console.log(schooldata);\r\n this.selectedCountries=''\r\n if(schooldata.country == \"UAE\") {\r\n this.selectedCountries = this.countries[0]\r\n } else{\r\n this.selectedCountries = this.countries[1]\r\n }\r\n otp = this.sha512Enc(this.enteredOTP);\r\n if (this.encOTP == otp) {\r\n this.isInvalidOTP = false;\r\n this.disabledContact = false\r\n localStorage.setItem('primaryMobileNo', this.primaryDetails.get('primaryMobile').value)\r\n this.getParentDEtails()\r\n } else {\r\n this.isInvalidOTP = true;\r\n this.showloader=false\r\n this.count++;\r\n if(this.count > 2){\r\n this.isVerifyOTP = true\r\n }else{\r\n this.isVerifyOTP = false\r\n }\r\n this.disabledContact = false\r\n\r\n }\r\n\r\n } else {\r\n\r\n this.getParentDEtails()\r\n }\r\n\r\n\r\n\r\n }\r\n getParentDEtails() {\r\n\r\n this.registrationService.getParentsList(this.phone, this.token).subscribe(\r\n res => {\r\n if (res?.success == 'true') {\r\n this.IsMobileVerified = true;\r\n this.enableOTP = false;\r\n this.showloader=false;\r\n this.parentDetailResponse=res?.data;\r\n this.openMessageDialog(\"Mobile number successfully verified.\", false, \"\",'mobile',true);\r\n } else {\r\n this.IsMobileVerified = false;\r\n this.showloader=false;\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n setParentDetails()\r\n {\r\n // let data: any = {};\r\n // let index= res?.data.length == 1 ? 0 : res?.data.findIndex((x:any)=>x.disableRegistration == 0)\r\n // index = index == -1? 0:index;\r\n //data = res?.data[index];\r\n let data = JSON.parse(localStorage.getItem('studentDetails'));\r\n this.studParentDetails =[... this.parentDetailResponse];\r\n this.studParentDetails.forEach(x => {\r\n x=>x.isClicked = false;\r\n });\r\n localStorage.setItem('studParentDetails', JSON.stringify(this.studParentDetails))\r\n localStorage.setItem('parentDetails', JSON.stringify((this.parentDetailResponse)))\r\n\r\n\r\n\r\n if (data) {\r\n this.setFormFields(data)\r\n } else {\r\n //let index= this.studParentDetails.findIndex(x=>x.disableRegistration == 0 && !x.transportMessage)\r\n let index= this.studParentDetails.findIndex(x=>x.isPartial == 1);\r\n this.disableAddSibling = index == -1 ? false :true\r\n this.primaryDetails = new FormGroup({\r\n primaryRelationShip: new FormControl('', Validators.required),\r\n primaryFname: new FormControl('', Validators.required),\r\n primaryMname: new FormControl(''),\r\n primaryLname: new FormControl('', Validators.required),\r\n primaryMobile: new FormControl(this.phone, [Validators.required]),\r\n primaryEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n primaryReEmail: new FormControl('', [Validators.required, Validators.pattern('[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]),\r\n secondaryRelationShip: new FormControl('', Validators.required),\r\n secondaryFname: new FormControl('', Validators.required),\r\n secondaryMname: new FormControl(''),\r\n secondaryLname: new FormControl('', Validators.required),\r\n secondaryMobile: new FormControl('', [Validators.required, Validators.minLength(8), Validators.maxLength(13)]),\r\n otherRelationShip: new FormControl(''),\r\n otherFullName: new FormControl(''),\r\n otherMobile: new FormControl(''),\r\n otpValue1: new FormControl(this.otpValue1),\r\n otpValue2: new FormControl(this.otpValue2),\r\n otpValue3: new FormControl(this.otpValue3),\r\n otpValue4: new FormControl(this.otpValue4),\r\n otpValue5: new FormControl(this.otpValue5),\r\n otpValue6: new FormControl(this.otpValue6),\r\n });\r\n if(this.studParentDetails.length > 0)\r\n this.editInfoDialog(this.editStudent)\r\n }\r\n\r\n }\r\n\r\n setFormFields(data:any)\r\n {\r\n let other=''\r\n let fullName=''\r\n let othermobile=''\r\n if((data?.stU_PRIMARYCONTACT == \"F\" && data?.stU_SECONDARY_CONTACT == \"M\") || (data?.stU_PRIMARYCONTACT == \"M\" && data?.stU_SECONDARY_CONTACT == \"F\"))\r\n {\r\n other =\"G\";\r\n fullName=data?.stS_GFULLNAME\r\n othermobile=data?.stS_GMOBILE\r\n }\r\n else if((data?.stU_PRIMARYCONTACT == \"F\" && data?.stU_SECONDARY_CONTACT == \"G\") || (data?.stU_PRIMARYCONTACT == \"G\" && data?.stU_SECONDARY_CONTACT == \"F\"))\r\n {\r\n other =\"M\"\r\n fullName=data?.stS_MFIRSTNAME+' '+data?.stS_MMIDNAME+' '+data?.stS_MLASTNAME\r\n othermobile=data?.stS_MMOBILE\r\n }\r\n else if((data?.stU_PRIMARYCONTACT == \"M\" && data?.stU_SECONDARY_CONTACT == \"G\") || (data?.stU_PRIMARYCONTACT == \"G\" && data?.stU_SECONDARY_CONTACT == \"M\"))\r\n {\r\n other =\"F\"\r\n fullName=data?.stS_FFIRSTNAME+' '+data?.stS_FMIDNAME+' '+data?.stS_FLASTNAME\r\n othermobile=data?.stS_FMOBILE\r\n }\r\n\r\n let otherName =data?.stS_GFULLNAME?.split(' ')\r\n this.primaryDetails.patchValue({\r\n primaryRelationShip: data?.stU_PRIMARYCONTACT,\r\n primaryFname:data?.stU_PRIMARYCONTACT == \"F\" ? data?.stS_FFIRSTNAME : data?.stU_PRIMARYCONTACT == \"M\" ? data?.stS_MFIRSTNAME : otherName[0],\r\n primaryMname:data?.stU_PRIMARYCONTACT == \"F\" ? data?.stS_FMIDNAME : data?.stU_PRIMARYCONTACT == \"M\"?data?.stS_MMIDNAME: otherName.length > 2 ? otherName[1]:'',\r\n primaryLname:data?.stU_PRIMARYCONTACT == \"F\" ? data?.stS_FLASTNAME :data?.stU_PRIMARYCONTACT == \"M\"?data?.stS_MLASTNAME :otherName.length == 2 ? otherName[1]:otherName.length > 2 ? otherName[2]:otherName[0],\r\n primaryMobile: this.phone,\r\n primaryEmail: data?.stU_PRIMARYCONTACT == \"F\" ? data.stS_FEMAIL : data?.stU_PRIMARYCONTACT == \"M\"? data?.stS_MEMAIL:data?.stS_GEMAIL,\r\n primaryReEmail:data?.stU_PRIMARYCONTACT == \"F\" ? data.stS_FEMAIL :data?.stU_PRIMARYCONTACT == \"M\"? data?.stS_MEMAIL:data?.stS_GEMAIL,\r\n secondaryRelationShip: data?.stU_SECONDARY_CONTACT,\r\n secondaryFname: data?.stU_SECONDARY_CONTACT == \"M\" ? data?.stS_MFIRSTNAME:data?.stU_SECONDARY_CONTACT == \"F\"?data?.stS_FFIRSTNAME: otherName[0] ,\r\n secondaryMname: data?.stU_SECONDARY_CONTACT == \"M\" ? data?.stS_MMIDNAME:data?.stU_SECONDARY_CONTACT == \"F\"?data?.stS_FMIDNAME:otherName.length > 2 ? otherName[1]:'',\r\n secondaryLname: data?.stU_SECONDARY_CONTACT == \"M\" ? data?.stS_MLASTNAME:data?.stU_SECONDARY_CONTACT == \"F\"?data?.stS_FLASTNAME:otherName.length == 2 ? otherName[1]:otherName.length > 2 ? otherName[2]:otherName[0],\r\n secondaryMobile:data?.stU_SECONDARY_CONTACT == \"M\" ? data?.stS_MMOBILE:data?.stU_SECONDARY_CONTACT == \"F\"?data?.stS_FMOBILE:data?.stS_GMOBILE,\r\n otherRelationShip: other ,\r\n otherFullName: fullName,\r\n otherMobile: othermobile\r\n })\r\n this.checkRelationship( this.primaryDetails.value.primaryRelationShip, 'pRel')\r\n this.checkRelationship( this.primaryDetails.value.secondaryRelationShip, 'sRel')\r\n\r\n if (data?.stS_GFULLNAME == '') {\r\n this.checked = false;\r\n this.primaryDetails.value.otherRelationShip = ''\r\n\r\n } else {\r\n this.checked = true;\r\n this.isOtherFullName = data?.stS_GFULLNAME == \"\" ? true : false;\r\n this.isOtherMobile = data?.stS_GMOBILE == \"\" ? true : false;\r\n this.isOtherRelationship = data?.otherRelationShip == \"\" ? true : false;\r\n this.checkRelationship(this.primaryDetails.value.otherRelationShip, 'gRel')\r\n\r\n }\r\n\r\n }\r\n selectStudent(student:any)\r\n {\r\n let studentList:any[]=[];\r\n studentList=this.studParentDetails;\r\n studentList.forEach(x=>{\r\n let id= x.stU_ID ? x.stU_ID:x.stU_SCHOOL_ID\r\n let compareId= x.stU_ID ?student.stU_ID : student.stU_SCHOOL_ID\r\n if(id==compareId)\r\n x.isClicked=true;\r\n else x.isClicked=false;\r\n })\r\n this.studParentDetails=[...studentList];\r\n setTimeout(() => {\r\n this.studentDialog.close();\r\n }, 400);\r\n if(student.disableRegistration == 0 && student.transportMessage)\r\n {\r\n this.studentStatus=student.transportMessage;\r\n this.msgDialog(this.statusMsg);\r\n }else{\r\n this.setFormFields(student)\r\n localStorage.setItem('photopath',student.stU_PHOTOPATH)\r\n let jsonString=JSON.stringify(student);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n }\r\n }\r\n ok()\r\n {\r\n this.statusDialog.close();\r\n this.router.navigate(['/login']);\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string, value?:any,fromVerify=false): void {\r\n let btnname:any;\r\n if(value == 'mobile'){\r\n btnname='Proceed'\r\n }\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n buttonName:btnname\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n if(fromVerify)\r\n this.setParentDetails();\r\n });\r\n }\r\n checkEmail(value: any, type: any) {\r\n this.IsEmailMatch = false;\r\n if (type == 1 && this.primaryDetails.get('primaryReEmail').value != '') {\r\n if (value.toLowerCase() == this.primaryDetails.get('primaryReEmail').value.toLowerCase()) {\r\n this.IsEmailMatch = false;\r\n }\r\n else {\r\n this.IsEmailMatch = true;\r\n }\r\n } else {\r\n if (this.primaryDetails.get('primaryEmail').value.toLowerCase() == value.toLowerCase()) {\r\n this.IsEmailMatch = false;\r\n }\r\n else {\r\n this.IsEmailMatch = true;\r\n }\r\n }\r\n\r\n\r\n }\r\n saveAsDraft(value: any) {\r\n // let data = {};\r\n // data = { \"BSU_ID\": 0, \"ACD_ID\": 0, \"GRM_ID\": 0, \"STU_FIRSTNAME\": \"\", \"STU_MIDNAME\": null, \"STU_LASTNAME\": \"\", \"STU_DOB\": \"1994-02-09T00:00:00\", \"STU_GENDER\": \"M\", \"STU_MED_CONDITION\": null, \"STARTDATE\": \"2023-12-12T00:00:00\", \"SBL_ID\": 0, \"PNT_ID\": 0, \"SBL_ID_DROPOFF\": 0, \"PNT_ID_DROPOFFPOINT\": 0, \"PRIMARYCONTACT\": this.primaryDetails.value.primaryRelationShip, \"TITLE\": null, \"PFIRSTNAME\": this.primaryDetails.value.primaryFname, \"PMIDNAME\": this.primaryDetails.value.primaryMname, \"PLASTNAME\": this.primaryDetails.value.primaryLname, \"POBOX\": null, \"EMIRATE\": \"\", \"HOUSE_NO\": \"\", \"ADDRESS\": \"\", \"OFFPHONE\": null, \"RESPHONE\": null, \"MOBILEPHONE\": this.phone, \"MFIRSTNAME\": this.primaryDetails.value.secondaryFname, \"MMIDNAME\": this.primaryDetails.value.secondaryMname, \"MLASTNAME\": this.primaryDetails.value.secondaryLname, \"BBT_MOTHER_MOBILE\": this.primaryDetails.value.secondaryMobile, \"EMERGENCY_MOBILE\": this.primaryDetails.value.secondaryMobile, \"EMAIL\": this.primaryDetails.value.primaryEmail, \"ALTEMAIL\": null, \"GFULLNAME\": this.primaryDetails.value.otherFullName, \"GMOBILE\": this.primaryDetails.value.otherMobile, \"bSENDEMAIL\": 0, \"bSMS\": 0, \"PICKUPLOCATION\": \"\", \"DROPOFFLOCATION\": \"\", \"REGFROM\": \"\", \"OTHERPICKUP\": \"\", \"OTHERDROPOFF\": \"\", \"IMAGE_LOC\": \"\", \"LAT\": 0, \"LONG\": 0, \"TPT_PROMO_ID\": 0, \"STU_SCHOOL_ID\": \"\", \"TPT_TYPE\": 0, \"STUTYPE\": \"\", \"SchoolName\": \"\", \"PICKUPAREA\": \"\", \"PICKUPPOINT\": \"\", \"DROPOFFAREA\": \"\", \"DROPOFFPOINT\": \"\" }\r\n //localStorage.setItem('parentDetails', JSON.stringify(data))\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let OtherName = this.primaryDetails.value.otherFullName?.split(' ');\r\n let formData: any[] = [];\r\n if (data?.length > 0) {\r\n data.forEach(ele => {\r\n formData.push({\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": '',\r\n \"stU_MIDNAME\": '',\r\n \"stU_LASTNAME\": '',\r\n \"stU_GENDER\": '',\r\n \"stU_GRD_ID\": '',\r\n \"stU_GRM_ID\": 0,\r\n \"stU_DOB\": '',\r\n \"stU_SCHOOL_ID\": '',\r\n \"stU_PHOTOPATH\": '',\r\n \"stS_MED\": 0,\r\n \"stU_MED_CONDITION\": '',\r\n \"stS_MED_STAFF_REQUIRED\": 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": '',\r\n \"stU_PRIMARYCONTACT\": this.primaryDetails.value.primaryRelationShip,\r\n \"stS_FFIRSTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryRelationShip==\"F\" ? this.primaryDetails.value.secondaryFname : OtherName[0],\r\n \"stS_FMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryMname :OtherName.length > 2 ? OtherName[1]:'' ,\r\n \"stS_FLASTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryLname :OtherName.length == 2 ? OtherName[1]:OtherName.length > 2 ? OtherName[2]:OtherName[0],\r\n \"stS_FMOBILE\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_FEMAIL\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_MFIRSTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryFname:OtherName[0],\r\n \"stS_MMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryMname:OtherName.length > 2 ? OtherName[1]:'',\r\n \"stS_MLASTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryLname:OtherName.length == 2 ? OtherName[1]:OtherName.length > 2 ? OtherName[2]:OtherName[0],\r\n \"stS_MMOBILE\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_MEMAIL\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_GFULLNAME\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.primaryDetails.value.primaryFname+' '+this.primaryDetails.value.primaryMname+' '+this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"G\" ? this.primaryDetails.value.secondaryFname+' '+this.primaryDetails.value.secondaryMname+' '+this.primaryDetails.value.secondaryLname : this.primaryDetails.value.otherFullName,\r\n \"stS_GMOBILE\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"G\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_GEMAIL\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stU_SECONDARY_CONTACT\":this.primaryDetails.value.secondaryRelationShip,\r\n \"disableRegistration\": 0,\r\n \"city\": ele?.city ?? '',\r\n \"house\": ele?.house ?? '',\r\n \"street\": ele?.street ?? '',\r\n \"transportType\": ele?.transportType ?? '',\r\n \"pickupArea\": ele?.pickupArea ?? '',\r\n \"pickupPoint\": ele?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": ele?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": ele?.dropoffArea ?? '',\r\n \"dropoffPoint\": ele?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": ele?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": ele?.busServiceRequestedDate ?? '',\r\n \"picklat\": ele?.picklat ?? 0,\r\n \"picklog\": ele?.picklog ?? 0,\r\n \"droplat\": ele?.droplog ?? 0,\r\n \"droplog\": ele?.droplog ?? 0,\r\n \"stU_BSU_ID\":ele?.stU_BSU_ID?? '',\r\n \"SBL_ID_DROPOFF\":ele?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":ele?.DROPOFFPOINT?? 0,\r\n })\r\n })\r\n } else {\r\n\r\n formData.push({\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": '',\r\n \"stU_MIDNAME\": '',\r\n \"stU_LASTNAME\": '',\r\n \"stU_GENDER\": '',\r\n \"stU_GRD_ID\": '',\r\n \"stU_GRM_ID\": 0,\r\n \"stU_DOB\": '',\r\n \"stU_SCHOOL_ID\": '',\r\n \"stU_PHOTOPATH\": '',\r\n \"stS_MED\": 0,\r\n \"stU_MED_CONDITION\": '',\r\n \"stS_MED_STAFF_REQUIRED\": 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": '',\r\n \"stU_PRIMARYCONTACT\": this.primaryDetails.value.primaryRelationShip,\r\n \"stS_FFIRSTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryRelationShip==\"F\" ? this.primaryDetails.value.secondaryFname : OtherName[0],\r\n \"stS_FMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryMname :OtherName.length > 2 ? OtherName[1]:'' ,\r\n \"stS_FLASTNAME\":this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryLname :OtherName.length == 2 ? OtherName[1]:OtherName.length > 2 ? OtherName[2]:OtherName[0],\r\n \"stS_FMOBILE\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"F\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_FEMAIL\": this.primaryDetails.value.primaryRelationShip==\"F\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_MFIRSTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryFname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryFname:OtherName[0],\r\n \"stS_MMIDNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryMname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryMname:OtherName.length > 2 ? OtherName[1]:'',\r\n \"stS_MLASTNAME\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryLname:OtherName.length == 2 ? OtherName[1]:OtherName.length > 2 ? OtherName[2]:OtherName[0],\r\n \"stS_MMOBILE\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"M\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_MEMAIL\": this.primaryDetails.value.primaryRelationShip==\"M\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stS_GFULLNAME\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.primaryDetails.value.primaryFname+' '+this.primaryDetails.value.primaryMname+' '+this.primaryDetails.value.primaryLname:this.primaryDetails.value.secondaryRelationShip==\"G\" ? this.primaryDetails.value.secondaryFname+' '+this.primaryDetails.value.secondaryMname+' '+this.primaryDetails.value.secondaryLname : this.primaryDetails.value.otherFullName,\r\n \"stS_GMOBILE\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.phone:this.primaryDetails.value.secondaryRelationShip==\"G\" ?this.primaryDetails.value.secondaryMobile:this.primaryDetails.value.otherMobile,\r\n \"stS_GEMAIL\": this.primaryDetails.value.primaryRelationShip==\"G\"?this.primaryDetails.value.primaryEmail:'',\r\n \"stU_SECONDARY_CONTACT\":this.primaryDetails.value.secondaryRelationShip,\r\n \"disableRegistration\": 0,\r\n \"city\": '',\r\n \"house\": '',\r\n \"street\": '',\r\n \"transportType\": '',\r\n \"pickupArea\": '',\r\n \"pickupPoint\": '',\r\n \"pickupPointLandMark\": '',\r\n \"dropoffArea\": '',\r\n \"dropoffPoint\": '',\r\n \"dropoffPointLandMark\": '',\r\n \"busServiceRequestedDate\": '',\r\n \"picklat\": 0,\r\n \"picklog\": 0,\r\n \"droplat\": 0,\r\n \"droplog\": 0,\r\n \"stU_BSU_ID\": '',\r\n \"SBL_ID_DROPOFF\":0,\r\n \"PNT_ID_DROPOFFPOINT\":0,\r\n\r\n })\r\n\r\n }\r\n\r\n let jsonString = JSON.stringify(formData);\r\n localStorage.setItem(\"parentDetails\", jsonString);\r\n localStorage.setItem(\"otherContactChecked\", JSON.stringify(this.checked));\r\n if (value == 'draft') {\r\n let senddata: any = {};\r\n senddata = {\r\n \"MobileNumber\": this.phone,\r\n \"StuDetails\": jsonString\r\n }\r\n this.registrationService.studentSaveAsDraft(senddata, this.token).subscribe(\r\n res => {\r\n this.openMessageDialog(\"Request saved successfully.\", false, \"\");\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n }\r\n sendStudentDetails(data) {\r\n\r\n let details: any;\r\n details = JSON.parse(localStorage.getItem('studParentDetails'));\r\n if (details == null) {\r\n this.registrationService.sendStudentDetails.next(data);\r\n } else {\r\n this.registrationService.sendStudentDetails.next(details);\r\n\r\n }\r\n this.onTabChange.emit(1);\r\n }\r\n onToggle(event) {\r\n this.checked = event.checked\r\n if (this.checked == true) {\r\n // this.isOtherFullName = this.primaryDetails.value.otherFullName ? false : true;\r\n // this.isOtherMobile = this.primaryDetails.value.otherMobile ? false : true;\r\n // this.isOtherRelationship = this.primaryDetails.value.otherRelationShip ? false : true;\r\n\r\n this.primaryDetails.controls['otherFullName'].setValidators([Validators.required]);\r\n this.primaryDetails.controls['otherMobile'].setValidators([Validators.required]);\r\n this.primaryDetails.controls['otherRelationShip'].setValidators([Validators.required]);\r\n\r\n\r\n } else {\r\n // this.isOtherFullName = false;\r\n // this.isOtherMobile = false;\r\n // this.isOtherRelationship = false;\r\n this.primaryDetails.controls['otherFullName'].clearValidators();\r\n this.primaryDetails.controls['otherMobile'].clearValidators();\r\n this.primaryDetails.controls['otherRelationShip'].clearValidators();\r\n this.primaryDetails.controls['otherFullName'].updateValueAndValidity();\r\n this.primaryDetails.controls['otherMobile'].updateValueAndValidity();\r\n this.primaryDetails.controls['otherRelationShip'].updateValueAndValidity();\r\n\r\n }\r\n console.log(this.primaryDetails.valid);\r\n\r\n }\r\n checkOthersForm(value) {\r\n if (this.checked == true) {\r\n if (this.primaryDetails.value.otherRelationShip == '') {\r\n this.isOtherRelationship = true;\r\n } else {\r\n this.isOtherRelationship = false;\r\n }\r\n if (this.primaryDetails.value.otherFullName == '') {\r\n this.isOtherFullName = true;\r\n } else {\r\n this.isOtherFullName = false;\r\n }\r\n if (this.primaryDetails.value.otherMobile == '') {\r\n this.isOtherMobile = true;\r\n } else {\r\n this.isOtherMobile = false;\r\n }\r\n } else {\r\n this.primaryDetails.value.otherRelationShip = '';\r\n this.primaryDetails.value.otherFullName = '';\r\n this.primaryDetails.value.otherMobile = ''\r\n }\r\n }\r\n\r\n gotoPrevious() {\r\n this.disabledContact = false;\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n console.log(schooldata);\r\nif(schooldata.country == \"UAE\") {\r\n this.selectedCountries = this.countries[0]\r\n} else{\r\n this.selectedCountries = this.countries[1]\r\n}\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let index:any\r\n if (!this.hasLoginUser) {\r\n index = data?.length == 1 ? 0 : data.findIndex((x: any) => x.disableRegistration == 0)\r\n index = index == -1 ? 0 : index;\r\n }\r\n else {\r\n index = data?.length == 1 ? 0 : data.findIndex((x: any) => x.transportStatus == \"Service is already Active\")\r\n index = index == -1 ? 0 : index;\r\n }\r\n this.details = data;\r\n if(this.selectedCountries==\"qa\" && data[index].stS_MMOBILE)\r\n {\r\n if(data[index].stS_MMOBILE.length == 8)\r\n data[index].stS_MMOBILE = \"+974\"+data[index].stS_MMOBILE;\r\n else{\r\n data[index].stS_MMOBILE= data[index].stS_MMOBILE.substr(-8)\r\n data[index].stS_MMOBILE = \"+974\"+data[index].stS_MMOBILE;\r\n }\r\n }\r\n else if(this.selectedCountries==\"ae\"&& data[index].stS_MMOBILE)\r\n {\r\n data[index].stS_MMOBILE = data[index].stS_MMOBILE.includes(\"+971\")?data[index].stS_MMOBILE.replace(\"+971\",''): data[index].stS_MMOBILE;\r\n if(data[index].stS_MMOBILE.length == 9)\r\n data[index].stS_MMOBILE = \"+971\"+data[index].stS_MMOBILE;\r\n\r\n else if(data[index].stS_MMOBILE.length == 8){\r\n data[index].stS_MMOBILE= data[index].stS_MMOBILE.substr(-8)\r\n data[index].stS_MMOBILE = \"+971\"+data[index].stS_MMOBILE;\r\n }\r\n else{\r\n data[index].stS_MMOBILE= data[index].stS_MMOBILE.substr(-9)\r\n data[index].stS_MMOBILE = \"+971\"+data[index].stS_MMOBILE;\r\n }\r\n // data[index].stS_MMOBILE = data[index].stS_MMOBILE.slice(0, 6) +\r\n // \"-\"+ data[index].stS_MMOBILE.slice(6)\r\n }\r\n\r\n if(this.selectedCountries==\"qa\" && data[index].stS_FMOBILE)\r\n {\r\n if(data[index].stS_FMOBILE.length == 8)\r\n data[index].stS_FMOBILE = \"+974\"+data[index].stS_FMOBILE;\r\n else{\r\n data[index].stS_FMOBILE= data[index].stS_FMOBILE.substr(-8)\r\n data[index].stS_FMOBILE = \"+974\"+data[index].stS_FMOBILE;\r\n }\r\n }\r\n else if(this.selectedCountries==\"ae\"&& data[index].stS_FMOBILE)\r\n {\r\n data[index].stS_FMOBILE = data[index].stS_FMOBILE.includes(\"+971\")?data[index].stS_FMOBILE.replace(\"+971\",''): data[index].stS_FMOBILE;\r\n if(data[index].stS_FMOBILE.length == 9)\r\n data[index].stS_FMOBILE = \"+971\"+data[index].stS_FMOBILE;\r\n\r\n else if(data[index].stS_FMOBILE.length == 8){\r\n data[index].stS_FMOBILE= data[index].stS_FMOBILE.substr(-8)\r\n data[index].stS_FMOBILE = \"+971\"+data[index].stS_FMOBILE;\r\n }\r\n else{\r\n data[index].stS_FMOBILE= data[index].stS_FMOBILE.substr(-9)\r\n data[index].stS_FMOBILE = \"+971\"+data[index].stS_FMOBILE;\r\n }\r\n // data[index].stS_FMOBILE = data[index].stS_FMOBILE.slice(0, 6) +\r\n // \"-\"+ data[index].stS_FMOBILE.slice(6)\r\n }\r\n\r\n if(this.selectedCountries==\"qa\" && data[index].stS_GMOBILE)\r\n {\r\n if(data[index].stS_GMOBILE.length == 8)\r\n data[index].stS_GMOBILE = \"+974\"+data[index].stS_GMOBILE;\r\n else{\r\n data[index].stS_GMOBILE= data[index].stS_GMOBILE.substr(-8)\r\n data[index].stS_GMOBILE = \"+974\"+data[index].stS_GMOBILE;\r\n }\r\n }\r\n else if(this.selectedCountries==\"ae\"&& data[index].stS_GMOBILE)\r\n {\r\n data[index].stS_GMOBILE = data[index].stS_GMOBILE.includes(\"+971\")?data[index].stS_GMOBILE.replace(\"+971\",''): data[index].stS_GMOBILE;\r\n if(data[index].stS_GMOBILE.length == 9)\r\n data[index].stS_GMOBILE = \"+971\"+data[index].stS_GMOBILE;\r\n\r\n else if(data[index].stS_GMOBILE.length == 8){\r\n data[index].stS_GMOBILE= data[index].stS_GMOBILE.substr(-8)\r\n data[index].stS_GMOBILE = \"+971\"+data[index].stS_GMOBILE;\r\n }\r\n\r\n else{\r\n data[index].stS_GMOBILE= data[index].stS_GMOBILE.substr(-9)\r\n data[index].stS_GMOBILE = \"+971\"+data[index].stS_GMOBILE;\r\n }\r\n // data[index].stS_GMOBILE = data[index].stS_GMOBILE.slice(0, 6) +\r\n // \"-\"+ data[index].stS_GMOBILE.slice(6)\r\n }\r\n\r\n let otherContactChecked = localStorage.getItem(\"otherContactChecked\");\r\n\r\n let other=''\r\n let fullName=''\r\n let othermobile=''\r\n if((data[index]?.stU_PRIMARYCONTACT == \"F\" && data[index]?.stU_SECONDARY_CONTACT == \"M\") || (data[index]?.stU_PRIMARYCONTACT == \"M\" && data[index]?.stU_SECONDARY_CONTACT == \"F\"))\r\n {\r\n other =\"G\";\r\n fullName=data[index]?.stS_GFULLNAME\r\n othermobile=data[index]?.stS_GMOBILE\r\n }\r\n else if((data[index]?.stU_PRIMARYCONTACT == \"F\" && data[index]?.stU_SECONDARY_CONTACT == \"G\") || (data[index]?.stU_PRIMARYCONTACT == \"G\" && data[index]?.stU_SECONDARY_CONTACT == \"F\"))\r\n {\r\n other =\"M\"\r\n fullName=data[index]?.stS_MFIRSTNAME+' '+data[index]?.stS_MMIDNAME+' '+data[index]?.stS_MLASTNAME\r\n othermobile=data[index]?.stS_MMOBILE\r\n }\r\n else if((data[index]?.stU_PRIMARYCONTACT == \"M\" && data[index]?.stU_SECONDARY_CONTACT == \"G\") || (data[index]?.stU_PRIMARYCONTACT == \"G\" && data[index]?.stU_SECONDARY_CONTACT == \"M\"))\r\n {\r\n other =\"F\"\r\n fullName=data[index]?.stS_FFIRSTNAME+' '+data[index]?.stS_FMIDNAME+' '+data[index]?.stS_FLASTNAME\r\n othermobile=data[index]?.stS_FMOBILE\r\n }\r\n\r\n let otherName =data[index]?.stS_GFULLNAME?.split(' ')\r\n this.phone = data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index]?.stS_FMOBILE:data[index]?.stU_PRIMARYCONTACT == \"M\"?data[index]?.stS_MMOBILE:data[index]?.stS_GMOBILE;\r\n this.primaryDetails.patchValue({\r\n // primaryRelationShip: \"F\",\r\n // primaryFname: data[0]?.stS_FFIRSTNAME,\r\n // primaryMname: data[0]?.stS_FMIDNAME,\r\n // primaryLname: data[0]?.stS_FLASTNAME,\r\n // primaryMobile: data[0]?.stS_FMOBILE,\r\n // primaryEmail: data[0]?.stS_FEMAIL,\r\n // primaryReEmail: data[0]?.stS_FEMAIL,\r\n // secondaryRelationShip: \"M\",\r\n // secondaryFname: data[0]?.stS_MFIRSTNAME,\r\n // secondaryMname: data[0]?.stS_MMIDNAME,\r\n // secondaryLname: data[0]?.stS_MLASTNAME,\r\n // secondaryMobile: data[0]?.stS_MMOBILE,\r\n primaryRelationShip: data[index]?.stU_PRIMARYCONTACT,\r\n primaryFname:data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index]?.stS_FFIRSTNAME : data[index]?.stU_PRIMARYCONTACT == \"M\" ? data[index]?.stS_MFIRSTNAME : otherName[0],\r\n primaryMname:data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index]?.stS_FMIDNAME : data[index]?.stU_PRIMARYCONTACT == \"M\"?data[index]?.stS_MMIDNAME: otherName.length > 2 ? otherName[1]:'',\r\n primaryLname:data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index]?.stS_FLASTNAME :data[index]?.stU_PRIMARYCONTACT == \"M\"?data[index]?.stS_MLASTNAME :otherName.length == 2 ? otherName[1]:otherName.length > 2 ? otherName[2]:otherName[0],\r\n primaryMobile: this.phone,\r\n primaryEmail: data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index].stS_FEMAIL : data[index]?.stU_PRIMARYCONTACT == \"M\"? data[index]?.stS_MEMAIL:data[index]?.stS_GEMAIL,\r\n primaryReEmail:data[index]?.stU_PRIMARYCONTACT == \"F\" ? data[index].stS_FEMAIL :data[index]?.stU_PRIMARYCONTACT == \"M\"? data[index]?.stS_MEMAIL:data[index]?.stS_GEMAIL,\r\n secondaryRelationShip: data[index]?.stU_SECONDARY_CONTACT,\r\n secondaryFname: data[index]?.stU_SECONDARY_CONTACT == \"M\" ? data[index]?.stS_MFIRSTNAME:data[index]?.stU_SECONDARY_CONTACT == \"F\"?data[index]?.stS_FFIRSTNAME: otherName[0] ,\r\n secondaryMname: data[index]?.stU_SECONDARY_CONTACT == \"M\" ? data[index]?.stS_MMIDNAME:data[index]?.stU_SECONDARY_CONTACT == \"F\"?data[index]?.stS_FMIDNAME:otherName.length > 2 ? otherName[1]:'',\r\n secondaryLname: data[index]?.stU_SECONDARY_CONTACT == \"M\" ? data[index]?.stS_MLASTNAME:data[index]?.stU_SECONDARY_CONTACT == \"F\"?data[index]?.stS_FLASTNAME:otherName.length == 2 ? otherName[1]:otherName.length > 2 ? otherName[2]:otherName[0],\r\n secondaryMobile:data[index]?.stU_SECONDARY_CONTACT == \"M\" ? data[index]?.stS_MMOBILE:data[index]?.stU_SECONDARY_CONTACT == \"F\"?data[index]?.stS_FMOBILE:data[index]?.stS_GMOBILE,\r\n otherRelationShip: otherContactChecked == 'false' ? '' : other,\r\n otherFullName: otherContactChecked == 'false' ? '' : fullName,\r\n otherMobile: otherContactChecked == 'false' ? '' : othermobile\r\n })\r\n if(this.selectedCountries=='ae')\r\n {\r\n this.formatPhoneNumber();\r\n this.formatsPhoneNumber();\r\n }\r\n\r\n if (data[index]?.stS_GFULLNAME == null || data[index]?.stS_GFULLNAME == '' || otherContactChecked == 'false') {\r\n this.checked = false;\r\n this.isOtherFullName = false;\r\n this.isOtherMobile = false;\r\n this.isOtherRelationship = false\r\n this.primaryDetails.value.otherRelationShip = ''\r\n } else {\r\n this.checked = true;\r\n this.isOtherFullName = data[index]?.stS_GFULLNAME == \"\" ? true : false;\r\n this.isOtherMobile = data[index]?.stS_GMOBILE == \"\" ? true : false;\r\n this.isOtherRelationship = data[index]?.otherRelationShip == \"\" ? true : false;\r\n this.primaryDetails.value.otherRelationShip = 'G';\r\n this.formatsPhoneNumber1();\r\n this.checkRelationship(this.primaryDetails.value.primaryRelationShip, 'pRel')\r\n this.checkRelationship(this.primaryDetails.value.secondaryRelationShip, 'sRel')\r\n this.checkRelationship(this.primaryDetails.value.otherRelationShip, 'gRel')\r\n }\r\n\r\n }\r\n previous() {\r\n localStorage.removeItem('parentDetails');\r\n localStorage.removeItem('bsU_ID');\r\n localStorage.removeItem('studParentDetails');\r\n this.router.navigateByUrl('/schools-list');\r\n }\r\n checkRelationship(value, name) {\r\n if (name == 'pRel') {\r\n this.primaryRel = value;\r\n this.secondaryRel = '';\r\n }\r\n if (name == 'sRel') {\r\n this.secondaryRel = value;\r\n\r\n }\r\n if (name == 'GRel') {\r\n this.guardianRel = value;\r\n\r\n }\r\n }\r\n formatPrimaryPhoneNumber($event, currentCtrl) {\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n console.log(phoneNumber);\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n\r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidPrimary=phone.startsWith('5')? false:true;\r\n\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidPrimary= false;\r\n }\r\n this.nationalnumber = phoneNumber.number\r\n console.log(phone);\r\n $event.srcElement.value = phone }\r\n }\r\n formatSecondaryPhoneNumber($event, currentCtrl) {\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidSecondary=phone.startsWith('5')? false:true;\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidSecondary=false\r\n }\r\n\r\n console.log(phone);\r\n this.nationalnumber = phoneNumber.number\r\n\r\n $event.srcElement.value = phone\r\n }\r\n }\r\n formatOtherPhoneNumber($event, currentCtrl) {\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n\r\n let phone =''\r\n if(this.selectedCountries == 'ae'){\r\n phone = [string.nationalNumber.slice(0, 2)+\"-\"+string.nationalNumber.slice(2,9)].join('');\r\n this.isUAENoValidOther=phone.startsWith('5')? false:true;\r\n }else{\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidOther=false;\r\n }\r\n\r\n console.log(phone);\r\n this.nationalnumber = phoneNumber.number\r\n\r\n $event.srcElement.value = phone\r\n }\r\n }\r\n formatPhoneNumber() {\r\n\r\n const parsedPhoneNumber = this.primaryMobile.phoneNumber;\r\n this.primaryMobile.phoneNumber= [this.primaryMobile.phoneNumber.slice(0, 2)+\"-\"+this.primaryMobile.phoneNumber.slice(2,9)].join('');\r\n\r\n }\r\n formatsPhoneNumber() {\r\n\r\n const parsedPhoneNumber = this.secondaryMobile.phoneNumber;\r\n this.secondaryMobile.phoneNumber= [this.secondaryMobile.phoneNumber.slice(0, 2)+\"-\"+this.secondaryMobile.phoneNumber.slice(2,9)].join('');\r\n\r\n }\r\n formatsPhoneNumber1() {\r\n\r\n const parsedPhoneNumber = this.otherMobile.phoneNumber;\r\n this.otherMobile.phoneNumber= [this.otherMobile.phoneNumber.slice(0, 2)+\"-\"+this.otherMobile.phoneNumber.slice(2,9)].join('');\r\n\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { FormControl, FormGroup } from 'ngx-typesafe-forms';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { studentDetail } from 'src/app/models/registration.model';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { FileService } from 'src/app/service/file.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n\r\n@Component({\r\n selector: 'app-reactivate-student-information',\r\n templateUrl: './reactivate-student-information.component.html',\r\n styleUrls: ['./reactivate-student-information.component.scss']\r\n})\r\nexport class ReactivateStudentInformationComponent implements OnInit {\r\n studentForm = new FormGroup({\r\n schoolId : new FormControl('',[Validators.required]),\r\n firstName:new FormControl('',[Validators.required]),\r\n middleName:new FormControl(''),\r\n lastName:new FormControl('',[Validators.required]),\r\n gender:new FormControl('',[Validators.required]),\r\n grade:new FormControl('',[Validators.required]),\r\n dob:new FormControl('',[Validators.required]),\r\n academicYr:new FormControl('',[Validators.required]),\r\n studentId:new FormControl('',[Validators.required]),\r\n serviceDate:new FormControl('',[Validators.required])\r\n })\r\n medicalRadiobtn:any=\"2\";\r\n medicalDesc:any;\r\n medicalRadiobtn2:any=\"2\";\r\n medicalDesc2:any;\r\n defaultToken: any;\r\n gradeList:any[]=[];\r\n selectedgrades:any[]=this.gradeList;\r\n count: number=0;\r\n count2:number=0;\r\n minDescErr:boolean=false;\r\n minDescErr2:boolean=false;\r\n selectedFile: File | null = null;\r\n imageUrl: string | null = \"\";\r\n imgErr:boolean=false;\r\n promptEnable:boolean=false;\r\n studentDetails:studentDetail;\r\n selectedStudent:any;\r\n studentList:any[]=[];\r\n studentDialog: MatDialogRef;\r\n @ViewChild('editStudentInfo')editStudent:TemplateRef;\r\n studentSchIds:any[]=[];\r\n infoCount:number=0;\r\n msg: string;\r\n studentIdDialog:any\r\n file: File\r\n schoolList:any[]=[];\r\n academicYrList:any[]=[];\r\n minDate:Date=new Date(new Date().setDate(new Date().getDate() + 1));\r\n maxDate:Date=new Date(new Date().getFullYear()-1, null,null);\r\n @ViewChild(\"StudentInfo\")StudentInfo:TemplateRef;\r\n @Output() onTabChange:EventEmitter=new EventEmitter();\r\n\r\n academicYr: any;\r\n serviceDate: any;\r\n disableStudents:any;\r\n academicYrId: any;\r\n imgSaveUrl:any;\r\n isAddSibling: boolean=false;\r\n enableSchool: boolean=false;\r\n disableAddSibling: boolean=false;\r\n fileType: string;\r\n fileFormatErr: boolean=false;\r\n msgForId:any\r\n hasLoginUser:boolean=false;\r\n studentStatus: any;\r\n statusDialog: any;\r\n @ViewChild('statusMsg')statusMsg:TemplateRef;\r\n isAddSiblingFromParent: boolean=false;\r\n constructor(private dialog: MatDialog,private tokenService: TokenService,\r\n public regService:RegistrationService,private router: Router,private datePipe: DatePipe\r\n ,private fileService: FileService,private configService:ConfigService) {\r\n this.msgForId=\"Note: Please provide the Student ID assigned by the school.\"\r\n }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth' \r\n });\r\n let loginUser = localStorage.getItem(\"loginuser\");\r\n this.hasLoginUser=loginUser?true:false\r\n this.getToken();\r\n // this.assignSavedFile();\r\n }\r\nassignSavedFile()\r\n{\r\n let savedFile: File = this.fileService.getFile();\r\n\r\nif (savedFile !== null && savedFile !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(savedFile);\r\n reader.onload = (event:any) => {\r\n // 'result' contains the binary data\r\n \r\n this.imageUrl=event.target.result;\r\n \r\n };\r\n\r\n // Read the content of the file as binary data\r\n //reader.readAsBinaryString(savedFile);\r\n}\r\n\r\n}\r\nhandleBinaryData(binaryData: string) {\r\n // Do something with the binary data\r\n console.log(binaryData);\r\n // You can use the binary data as needed, for example, sending it to a server or processing it further\r\n}\r\n getSchoolList() {\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n this.regService.getSchoolList(this.defaultToken,schooldata?.country).subscribe(res=>{\r\n this.schoolList=res;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n let data = JSON.parse(localStorage.getItem('studentDetails'));\r\n let proceed = localStorage.getItem('proceed')\r\n let showSchool =localStorage.getItem(\"showSchool\")\r\n this.enableSchool=showSchool== \"true\" ? true : false\r\n if(data != \"\" && data != null && proceed == \"false\")\r\n {\r\n let value=localStorage.getItem(\"addSiblingFromParent\")\r\n this.isAddSiblingFromParent=value == \"true\"?true:false;\r\n data.imgPath=localStorage.getItem(\"photopath\");\r\n if(data.imgPath.includes(environment.photopath))\r\n {\r\n data.imgPath=data.imgPath.replace(environment.photopath, '');\r\n }\r\n data.stU_PHOTOPATH =environment.photopath+data.imgPath;\r\n this.selectedStudent=data;\r\n this.mapStudent();\r\n }\r\n else this.getStudentDetails();\r\n })\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n // this.getAcademicYrs();\r\n this.getSchoolList();\r\n }\r\n )\r\n }\r\n\r\n getAcademicYrs()\r\n {\r\n\r\n if(this.serviceDate)\r\n {\r\n this.regService.getAcademicYrs(this.defaultToken,this.serviceDate).subscribe(res=>{\r\n this.academicYrList=res?.data;\r\n this.studentForm.patchValue({'academicYr':this.academicYrList[0].descr})\r\n this.ChangeAcademicYrs();\r\n });\r\n }\r\n }\r\n\r\n getStudentDetails()\r\n {\r\n let dataFetched=true;\r\n this.regService.sendStudentDetails.subscribe(res=>{\r\n if(dataFetched)\r\n {\r\n dataFetched=false;\r\n this.studentList=res;\r\n //let disableStudent=localStorage.getItem(\"disableIds\");\r\n if(this.studentList)\r\n {\r\n this.studentList.forEach(x=>{\r\n x.isClicked = false;\r\n x.isDisable=false;\r\n x.transportStatus= x.transportStatus? '('+x.transportStatus+')':\"\"\r\n x.imgPath=x.stU_PHOTOPATH;\r\n if(x.imgPath.includes(environment.photopath))\r\n {\r\n x.imgPath=x.imgPath.replace(environment.photopath, '');\r\n }\r\n x.stU_PHOTOPATH =environment.photopath+x.imgPath;\r\n // if(disableStudent != \"\" && disableStudent != null)\r\n // {\r\n // if(Number(disableStudent) == x.stU_ID)\r\n // x.isDisable=true;\r\n // }\r\n });\r\n if(this.studentList.length <= 1)\r\n {\r\n if(this.studentList[0]?.stU_SCHOOL_ID || this.studentList[0]?.stU_ID)\r\n this.isAddSibling=true;\r\n else this.isAddSibling=false;\r\n }\r\n else this.isAddSibling=true;\r\n localStorage.setItem(\"proceed\",\"false\");\r\n if(this.isAddSibling)\r\n this.editInfoDialog(this.editStudent);\r\n }\r\n else {\r\n this.isAddSibling=false;\r\n this.resetForm();\r\n this.selectedStudent=null;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n }\r\n }\r\n })\r\n }\r\n getGrades()\r\n {\r\n this.regService.getGrades(this.defaultToken).subscribe(res=>{\r\n this.gradeList=res?.data;\r\n this.selectedgrades=this.gradeList;\r\n if(this.selectedStudent)\r\n {\r\n let grade = this.gradeList.find(x=>x.id == Number(this.selectedStudent.stU_GRM_ID))\r\n if(grade)\r\n this.studentForm.patchValue({ grade:Number(this.selectedStudent.stU_GRM_ID)})\r\n }\r\n })\r\n }\r\n ChangeAcademicYrs()\r\n {\r\n localStorage.removeItem('currentAcademicYear')\r\n localStorage.removeItem('currentAcademicYearId')\r\n if(this.studentForm.controls.academicYr.value)\r\n {\r\n this.academicYr=this.studentForm.controls.academicYr.value;\r\n this.academicYrId=this.academicYrList.find(x=>x.descr == this.academicYr)?.id;\r\n localStorage.setItem('currentAcademicYear', this.academicYr)\r\n localStorage.setItem('currentAcademicYearId', this.academicYrId)\r\n this.getGrades();\r\n }\r\n }\r\n changeDOB(event){\r\n let dob = event.value._d;\r\n this.studentForm.controls['dob'].setValue(this.datePipe.transform(dob, 'yyyy-MM-dd'))\r\n }\r\n changeServiceDate(event){\r\n let serviceDate = event.value._d;\r\n this.studentForm.controls['serviceDate'].setValue(this.datePipe.transform(serviceDate, 'yyyy-MM-dd'));\r\n this.serviceDate=this.studentForm.get('serviceDate').value\r\n this.getAcademicYrs();\r\n }\r\n \r\n // selectSchool(event:any)\r\n // {\r\n // this.schoolName=event.value\r\n // if(this.schoolName == \"\" || this.schoolName==null)\r\n // this.SchNameErr=true;\r\n // else this.SchNameErr=false;\r\n // }\r\n addSibling()\r\n {\r\n this.studentDialog.close();\r\n this.isAddSibling=true;\r\n this.enableSchool=true;\r\n this.resetForm();\r\n this.selectedStudent=null;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n }\r\n ok()\r\n {\r\n this.studentIdDialog.close();\r\n if(this.infoCount==2)\r\n this.router.navigate(['/']);\r\n }\r\n editInfoDialog(template: TemplateRef) {\r\n let index=this.studentList.findIndex(x=>x.isPartial == 1);\r\n if(index != -1)\r\n {\r\n this.disableAddSibling=true;\r\n //this.enableSchool=false\r\n }\r\n else {this.disableAddSibling=false;\r\n // this.enableSchool=true\r\n }\r\n this.enableSchool=false\r\n this.studentDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n // this.studentDialog.backdropClick().subscribe(() => {\r\n // this.studentDialog.close();\r\n // this.addSibling();\r\n // })\r\n }\r\n selectStudent(student:any)\r\n {\r\n let studentList:any[]=[];\r\n this.isAddSibling=false;\r\n // this.studentForm.controls.schoolId.clearValidators();\r\n this.fileFormatErr=false;\r\n studentList=this.studentList;\r\n studentList.forEach(x=>{\r\n let id= x.stU_ID ? x.stU_ID:x.stU_SCHOOL_ID\r\n let compareId= x.stU_ID ?student.stU_ID : student.stU_SCHOOL_ID\r\n if(id==compareId)\r\n x.isClicked=true;\r\n else x.isClicked=false;\r\n })\r\n this.studentList=[...studentList];\r\n setTimeout(() => {\r\n this.studentDialog.close();\r\n }, 400);\r\n if(student.disableRegistration == 0 && student.transportMessage)\r\n {\r\n this.studentStatus=student.transportMessage;\r\n this.msgDialog(this.statusMsg);\r\n }else{\r\n this.selectedStudent=student;\r\n if(this.selectedStudent)\r\n {\r\n this.mapStudent();\r\n }\r\n }\r\n }\r\n\r\n msgDialog(template: TemplateRef) {\r\n this.statusDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n okMsg()\r\n {\r\n this.statusDialog.close();\r\n this.router.navigate(['/home']);\r\n }\r\n mapStudent()\r\n {\r\n let serviceFormattedDate:any;\r\n let formattedDate:any\r\n // if(!fromStorage)\r\n // {\r\n // const parsedDate = moment(this.selectedStudent.stU_DOB, 'MMM DD YYYY h:mmA').toDate();\r\n // formattedDate = moment(parsedDate).format('YYYY-MM-DD HH:mm:ss');\r\n\r\n // const serviceParseDate=moment(this.selectedStudent.busServiceRequestedDate, 'MMM DD YYYY h:mmA').toDate();\r\n // serviceFormattedDate = moment(serviceParseDate).format('YYYY-MM-DD HH:mm:ss');\r\n // }\r\n // else{\r\n if(this.selectedStudent.stU_DOB)\r\n {\r\n const stringDate = new Date(this.selectedStudent.stU_DOB);\r\n formattedDate = this.datePipe.transform(stringDate, 'yyyy-MM-dd')\r\n }\r\n\r\n if(this.selectedStudent.busServiceRequestedDate)\r\n {\r\n const serviceParseDate=new Date(this.selectedStudent.busServiceRequestedDate);\r\n if(serviceParseDate)\r\n {\r\n serviceFormattedDate = this.datePipe.transform(serviceParseDate, 'yyyy-MM-dd');\r\n }\r\n }else{\r\n let transportInfo =JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n let selectedStudent =localStorage.getItem(\"selectedstudentid\");\r\n let detail = transportInfo.find(x=>x.studentNo == selectedStudent);\r\n\r\n if(detail?.fromDate)\r\n serviceFormattedDate = this.datePipe.transform(detail.fromDate, 'yyyy-MM-dd');\r\n }\r\n // }\r\n // this.selectedStudent.stU_PHOTOPATH=this.configService.photopath+this.selectedStudent.stU_PHOTOPATH;\r\n let bsuId = this.selectedStudent.stU_BSU_ID ?this.selectedStudent.stU_BSU_ID : localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n if(school)\r\n localStorage.setItem(\"schoolName\",school?.schoolName)\r\n localStorage.setItem('bsU_ID', school?.bsU_ID);\r\n let schoolDetails ={\r\n city:school?.city,\r\n bsu_city:school?.citycode,\r\n provider:school?.provider,\r\n country:school?.country,\r\n currency:school?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n console.log(this.selectedStudent);\r\n this.studentForm.patchValue({\r\n //schoolName : this.selectedStudent.stU_FIRSTNAME,\r\n firstName:this.selectedStudent.stU_FIRSTNAME,\r\n middleName:this.selectedStudent.stU_MIDNAME,\r\n lastName:this.selectedStudent.stU_LASTNAME,\r\n gender:this.selectedStudent.stU_GENDER,\r\n //grade:this.selectedStudent.stU_GRD_ID,\r\n dob:new Date(formattedDate),\r\n studentId:this.selectedStudent.stU_SCHOOL_ID,\r\n schoolId:school?.schoolID,\r\n serviceDate:serviceFormattedDate\r\n })\r\n this.serviceDate=this.studentForm.get('serviceDate').value;\r\n this.getAcademicYrs();\r\n this.imageUrl=this.selectedStudent.stU_PHOTOPATH;\r\n \r\n this.assignSavedFile();\r\n this.imgSaveUrl=this.selectedStudent.imgPath;\r\n this.medicalDesc=this.selectedStudent.stU_MED_CONDITION;\r\n this.onDescChange();\r\n this.medicalRadiobtn = this.selectedStudent.stS_MED == 1 ? \"1\":\"2\";\r\n this.medicalDesc2=this.selectedStudent.stS_MED_STAFF_REQUIRED_DESC;\r\n this.onDescChange2();\r\n this.medicalRadiobtn2 = this.selectedStudent.stS_MED_STAFF_REQUIRED == 1 ? \"1\":\"2\";\r\n\r\n // this.studentForm.patchValue({ grade:Number(this.selectedStudent.stU_GRD_ID)})\r\n\r\n // let storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n // let parent = storageData[0];\r\n // let formData={\r\n // \"stU_ID\": this.selectedStudent.stU_ID,\r\n // \"stU_FIRSTNAME\": this.selectedStudent.stU_FIRSTNAME,\r\n // \"stU_MIDNAME\": this.selectedStudent.stU_MIDNAME,\r\n // \"stU_LASTNAME\": this.selectedStudent.stU_LASTNAME,\r\n // \"stU_GENDER\": this.selectedStudent.stU_GENDER,\r\n // \"stU_GRD_ID\": this.selectedStudent.stU_GRD_ID,\r\n // \"stU_DOB\": formattedDate,\r\n // \"stU_SCHOOL_ID\": this.selectedStudent.stU_SCHOOL_ID,\r\n // \"stU_PHOTOPATH\": this.selectedStudent.stU_PHOTOPATH,\r\n // \"stU_SPMEDICATION\":this.selectedStudent.stU_SPMEDICATION,\r\n // \"stU_PRIMARYCONTACT\": parent?.stU_PRIMARYCONTACT ?? '',\r\n // \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n // \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n // \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n // \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n // \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n // \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n // \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n // \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n // \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n // \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n // \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n // \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n // \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n // \"disableRegistration\": parent?.disableRegistration,\r\n // \"city\": parent?.city ?? '',\r\n // \"house\": parent?.house ?? '',\r\n // \"street\": parent?.street ?? '',\r\n // \"transportType\": parent?.transportType ?? '',\r\n // \"pickupArea\": parent?.pickupArea ?? '',\r\n // \"pickupPoint\": parent?.pickupPoint ?? '',\r\n // \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n // \"doopoffArea\": parent?.doopoffArea ?? '',\r\n // \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n // \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n // \"busServiceRequestedDate\": serviceFormattedDate,\r\n // \"picklat\":parent?.picklat ?? 0,\r\n // \"picklog\":parent?.picklog ?? 0,\r\n // \"droplat\":parent?.droplog ?? 0,\r\n // \"droplog\":parent?.droplog ?? 0,\r\n // }\r\n // let jsonString=JSON.stringify(formData);\r\n // localStorage.setItem(\"studentDetails\",jsonString);\r\n }\r\n onDescChange()\r\n {\r\n if(this.medicalDesc && this.medicalDesc.trim() != \"\")\r\n {\r\n this.count=this.medicalDesc.length;\r\n if(this.count <=14)\r\n //this.promptEnable=false;\r\n // if(this.count <=14)\r\n this.minDescErr=true;\r\n else this.minDescErr=false;\r\n }\r\n else{\r\n this.count=0;\r\n this.minDescErr=false;\r\n // this.promptEnable=false;\r\n this.medicalDesc=this.medicalDesc?.trim() == \"\" ? \"\" : this.medicalDesc\r\n }\r\n }\r\n onDescChange2()\r\n {\r\n if(this.medicalDesc2 && this.medicalDesc2.trim() != \"\")\r\n {\r\n this.count2=this.medicalDesc2.length;\r\n if(this.count2 <=14)\r\n {\r\n this.promptEnable=false;\r\n this.minDescErr2=true;\r\n }\r\n else {this.minDescErr2=false;\r\n this.promptEnable=true;\r\n }\r\n }\r\n else{\r\n this.count2=0;\r\n this.minDescErr2=false;\r\n this.promptEnable=false;\r\n this.medicalDesc2=this.medicalDesc2?.trim() == \"\" ? \"\" : this.medicalDesc2\r\n }\r\n }\r\n selectedImgFile(event:any)\r\n {\r\n this.file= event.target.files[0];\r\n\r\n // localStorage.setItem('sprofileimg', JSON.stringify(this.file));\r\n\r\n if (this.file) {\r\n let splits=this.file.name.split(\".\");\r\n this.fileType=splits[1];\r\n if( this.fileType == \"png\" || this.fileType==\"jpeg\" || this.fileType==\"jpg\")\r\n {\r\n this.fileFormatErr=false;\r\n this.selectedFile = this.file;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.file);\r\n this.fileService.setFile(this.file);\r\n reader.onload = (e: any) => {\r\n\r\n\r\n this.imageUrl = e.target.result;\r\n };\r\n }\r\n else {this.fileFormatErr=true;\r\n this.imageUrl =\"\"}\r\n }\r\n }\r\n proceed()\r\n {\r\n this.promptEnable=true;\r\n }\r\n onChangeRadio()\r\n {\r\n this.medicalDesc=\"\";\r\n this.minDescErr=false;\r\n this.medicalDesc2=\"\";\r\n this.minDescErr2=false;\r\n this.medicalRadiobtn2='2'\r\n if(this.medicalRadiobtn =='2')\r\n {\r\n this.medicalRadiobtn2=\"\";\r\n }\r\n }\r\n\r\n onChangeRadio2()\r\n {\r\n this.medicalDesc2=\"\";\r\n this.minDescErr2=false;\r\n // if(this.medicalRadiobtn2 =='2')\r\n // {\r\n // this.medicalPhotoUpload();\r\n // }\r\n }\r\n\r\n changeSchoolName()\r\n {\r\n let data= this.schoolList.find(x=>x.schoolID == this.studentForm.value.schoolId);\r\n if(data)\r\n localStorage.setItem(\"schoolName\",data?.schoolName)\r\n localStorage.setItem('bsU_ID', data.bsU_ID);\r\n let schoolDetails ={\r\n city:data.city,\r\n bsu_city:data.citycode,\r\n provider:data.provider,\r\n country:data.country,\r\n currency:data?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n }\r\n previous()\r\n {\r\n this.onTabChange.emit(0);\r\n }\r\n next()\r\n {\r\n localStorage.removeItem(\"studentDetails\");\r\n let formattedDate:any;\r\n let serviceFormattedDate:any\r\n let data:any\r\n if(this.studentForm.controls.dob.value != null)\r\n {\r\n const stringDate = new Date(this.studentForm.controls.dob.value);\r\n formattedDate = this.datePipe.transform(stringDate, 'yyyy-MM-dd')\r\n }\r\n\r\n if(this.studentForm.controls.serviceDate.value != null)\r\n {\r\n const serviceParseDate=new Date(this.studentForm.controls.serviceDate.value);\r\n if(serviceParseDate)\r\n {\r\n serviceFormattedDate = this.datePipe.transform(serviceParseDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n let storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n let bsuId= localStorage.getItem('bsU_ID')\r\n data = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentForm.controls.studentId.value);\r\n let photopath=this.selectedFile?.name ?? this.imgSaveUrl\r\n localStorage.setItem('photopath',photopath)\r\n const imgname = this.imgSaveUrl?.substring(this.imgSaveUrl?.lastIndexOf('/') + 1);\r\n if(data != -1 && !this.isAddSibling){\r\n\r\n storageData[data].stU_ID =this.selectedStudent?.stU_ID?this.selectedStudent?.stU_ID:0,\r\n storageData[data].stU_FIRSTNAME= this.studentForm.controls.firstName.value,\r\n storageData[data].stU_MIDNAME=this.studentForm.controls.middleName.value,\r\n storageData[data].stU_LASTNAME=this.studentForm.controls.lastName.value,\r\n storageData[data].stU_GENDER=this.studentForm.controls.gender.value,\r\n storageData[data].stU_GRD_ID= this.studentForm.controls.grade.value,\r\n storageData[data].stU_GRM_ID= this.studentForm.controls.grade.value,\r\n storageData[data].stU_DOB= this.studentForm.controls.dob.value,\r\n storageData[data].stU_SCHOOL_ID= this.studentForm.controls.studentId.value,\r\n storageData[data].stU_PHOTOPATH= this.selectedFile?.name ?? imgname,\r\n storageData[data].stS_MED=Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[data].stU_MED_CONDITION=this.medicalDesc,\r\n storageData[data].stS_MED_STAFF_REQUIRED=Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[data].stS_MED_STAFF_REQUIRED_DESC=this.medicalDesc2,\r\n storageData[data].busServiceRequestedDate= this.studentForm.controls.serviceDate.value\r\n storageData[data].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[data]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[data]];\r\n }\r\n else if(data == -1 && !this.isAddSibling && !this.isAddSiblingFromParent){\r\n storageData[0].stU_ID = 0,\r\n storageData[0].stU_FIRSTNAME= this.studentForm.controls.firstName.value,\r\n storageData[0].stU_MIDNAME=this.studentForm.controls.middleName.value,\r\n storageData[0].stU_LASTNAME=this.studentForm.controls.lastName.value,\r\n storageData[0].stU_GENDER=this.studentForm.controls.gender.value,\r\n storageData[0].stU_GRD_ID= this.studentForm.controls.grade.value,\r\n storageData[0].stU_GRM_ID= this.studentForm.controls.grade.value,\r\n storageData[0].stU_DOB= this.studentForm.controls.dob.value,\r\n storageData[0].stU_SCHOOL_ID= this.studentForm.controls.studentId.value,\r\n storageData[0].stU_PHOTOPATH=this.selectedFile?.name ?? imgname,\r\n storageData[0].stS_MED=Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[0].stU_MED_CONDITION=this.medicalDesc,\r\n storageData[0].stS_MED_STAFF_REQUIRED=Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[0].stS_MED_STAFF_REQUIRED_DESC=this.medicalDesc2,\r\n storageData[0].busServiceRequestedDate= this.studentForm.controls.serviceDate.value\r\n storageData[0].stU_BSU_ID=bsuId\r\n\r\n let jsonString=JSON.stringify(storageData[0]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[0]];\r\n }\r\n else if(this.isAddSibling || this.isAddSiblingFromParent)\r\n {\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n let parent = storageData[index];\r\n let formData={\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": this.studentForm.controls.firstName.value,\r\n \"stU_MIDNAME\": this.studentForm.controls.middleName.value,\r\n \"stU_LASTNAME\": this.studentForm.controls.lastName.value,\r\n \"stU_GENDER\": this.studentForm.controls.gender.value,\r\n \"stU_GRD_ID\": this.studentForm.controls.grade.value,\r\n \"stU_GRM_ID\": this.studentForm.controls.grade.value,\r\n \"stU_DOB\": formattedDate,\r\n \"stU_SCHOOL_ID\": this.studentForm.controls.studentId.value,\r\n \"stU_PHOTOPATH\": this.selectedFile?.name ?? imgname,\r\n \"stS_MED\":Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n \"stU_MED_CONDITION\":this.medicalDesc,\r\n \"stS_MED_STAFF_REQUIRED\":Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\":this.medicalDesc2,\r\n \"stU_PRIMARYCONTACT\":parent?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\":parent?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": parent?.city ?? '',\r\n \"house\": parent?.house ?? '',\r\n \"street\": parent?.street ?? '',\r\n \"transportType\": parent?.transportType ?? '',\r\n \"pickupArea\": parent?.pickupArea ?? '',\r\n \"pickupPoint\": parent?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": parent?.dropoffArea ?? '',\r\n \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": serviceFormattedDate,\r\n \"picklat\":parent?.picklat ?? 0,\r\n \"picklog\":parent?.picklog ?? 0,\r\n \"droplat\":parent?.droplog ?? 0,\r\n \"droplog\":parent?.droplog ?? 0,\r\n \"stU_BSU_ID\":bsuId,\r\n \"SBL_ID_DROPOFF\":parent?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":parent?.DROPOFFPOINT?? 0,\r\n }\r\n let jsonString=JSON.stringify(formData);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n //storageData.push(formData);\r\n storageData=[formData]\r\n}\r\nlet studentGrade=this.gradeList.find(x=>x.id == this.studentForm.controls.grade.value)?.descr;\r\nlocalStorage.setItem('studentGrade',studentGrade)\r\nlet jsonString=JSON.stringify(storageData);\r\n localStorage.setItem(\"parentDetails\",jsonString);\r\n this.onTabChange.emit(2);\r\n }\r\n saveAsDraft()\r\n {\r\n this.studentForm.markAllAsTouched();\r\n if(!this.studentForm.invalid && this.imageUrl && this.imageUrl != '' && !this.minDescErr && !this.minDescErr2 && !this.fileFormatErr && \r\n !(this.medicalRadiobtn2 == '1' && this.medicalDesc2 =='') && !(this.medicalRadiobtn == '1' && this.medicalDesc == ''))\r\n {\r\n this.imgErr=false;\r\n let storageData:any[]=[];\r\n let data: any;\r\n let formData:any;\r\n storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n let photopath=this.selectedFile?.name ?? this.imgSaveUrl\r\n localStorage.setItem('photopath',photopath)\r\n const imgname = this.imgSaveUrl?.substring(this.imgSaveUrl?.lastIndexOf('/') + 1);\r\n this.studentForm.controls['dob'].setValue(this.datePipe.transform(this.studentForm.controls['dob'].value, 'yyyy-MM-dd'));\r\n this.studentDetails={\r\n firstName:this.studentForm.controls.firstName.value,\r\n lastName:this.studentForm.controls.lastName.value,\r\n middleName:this.studentForm.controls.middleName.value,\r\n medicalDesc:this.medicalDesc,\r\n medicalRadiobtn:this.medicalRadiobtn,\r\n medicalRadiobtn2:this.medicalRadiobtn2,\r\n medicalDesc2:this.medicalDesc2,\r\n gender:this.studentForm.controls.gender.value,\r\n grade:this.studentForm.controls.grade.value,\r\n photopath:this.selectedFile?.name ?? imgname,\r\n dob:this.studentForm.controls.dob.value,\r\n schoolId:this.studentForm.controls.schoolId.value,\r\n studentId:this.studentForm.controls.studentId.value,\r\n academicYr:this.studentForm.controls.academicYr.value,\r\n serviceDate:this.serviceDate\r\n }\r\n\r\n data = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentDetails.studentId);\r\n let bsuId= localStorage.getItem('bsU_ID')\r\n if(data != -1 && !this.isAddSibling){\r\n\r\n storageData[data].stU_ID = this.selectedStudent?.stU_ID?this.selectedStudent?.stU_ID:0,\r\n storageData[data].stU_FIRSTNAME= this.studentDetails.firstName,\r\n storageData[data].stU_MIDNAME=this.studentDetails.middleName,\r\n storageData[data].stU_LASTNAME=this.studentDetails.lastName,\r\n storageData[data].stU_GENDER=this.studentDetails.gender,\r\n storageData[data].stU_GRD_ID= this.studentDetails.grade,\r\n storageData[data].stU_GRM_ID= this.studentDetails.grade,\r\n storageData[data].stU_DOB= this.studentDetails.dob,\r\n storageData[data].stU_SCHOOL_ID= this.studentDetails.studentId,\r\n storageData[data].stU_PHOTOPATH= this.studentDetails.photopath,\r\n storageData[data].stS_MED=Number(this.studentDetails.medicalRadiobtn) == 1 ? 1:0,\r\n storageData[data].stU_MED_CONDITION=this.studentDetails.medicalDesc,\r\n storageData[data].stS_MED_STAFF_REQUIRED=Number(this.studentDetails.medicalRadiobtn2) == 1 ? 1:0,\r\n storageData[data].stS_MED_STAFF_REQUIRED_DESC=this.studentDetails.medicalDesc2,\r\n storageData[data].busServiceRequestedDate= this.studentDetails.serviceDate\r\n storageData[data].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[data]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[data]];\r\n }\r\n else if(data == -1 && !this.isAddSibling && !this.isAddSiblingFromParent){\r\n storageData[0].stU_ID = 0,\r\n storageData[0].stU_FIRSTNAME= this.studentDetails.firstName,\r\n storageData[0].stU_MIDNAME=this.studentDetails.middleName,\r\n storageData[0].stU_LASTNAME=this.studentDetails.lastName,\r\n storageData[0].stU_GENDER=this.studentDetails.gender,\r\n storageData[0].stU_GRD_ID= this.studentDetails.grade,\r\n storageData[0].stU_GRM_ID= this.studentDetails.grade,\r\n storageData[0].stU_DOB= this.studentDetails.dob,\r\n storageData[0].stU_SCHOOL_ID= this.studentDetails.studentId,\r\n storageData[0].stU_PHOTOPATH= this.studentDetails.photopath,\r\n storageData[0].stS_MED=Number(this.studentDetails.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[0].stU_MED_CONDITION=this.studentDetails.medicalDesc,\r\n storageData[0].stS_MED_STAFF_REQUIRED=Number(this.studentDetails.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[0].stS_MED_STAFF_REQUIRED_DESC=this.studentDetails.medicalDesc2,\r\n storageData[0].busServiceRequestedDate= this.studentDetails.serviceDate\r\n storageData[0].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[0]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[0]];\r\n }\r\n else if(this.isAddSibling || this.isAddSiblingFromParent){\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n let parent = storageData[index];\r\n let dupData = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentDetails.studentId);\r\n if(dupData == -1)\r\n {\r\n formData={\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": this.studentDetails.firstName,\r\n \"stU_MIDNAME\": this.studentDetails.middleName,\r\n \"stU_LASTNAME\": this.studentDetails.lastName,\r\n \"stU_GENDER\": this.studentDetails.gender,\r\n \"stU_GRD_ID\": this.studentDetails.grade,\r\n \"stU_GRM_ID\": this.studentDetails.grade,\r\n \"stU_DOB\": this.studentDetails.dob,\r\n \"stU_SCHOOL_ID\": this.studentDetails.studentId,\r\n \"stU_PHOTOPATH\": this.studentDetails.photopath,\r\n \"stS_MED\":Number(this.studentDetails.medicalRadiobtn)== 1 ? 1:0,\r\n \"stU_MED_CONDITION\":this.studentDetails.medicalDesc,\r\n \"stS_MED_STAFF_REQUIRED\":Number(this.studentDetails.medicalRadiobtn2)== 1 ? 1:0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\":this.studentDetails.medicalDesc2,\r\n \"stU_PRIMARYCONTACT\": parent?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\":parent?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": parent?.city ?? '',\r\n \"house\": parent?.house ?? '',\r\n \"street\": parent?.street ?? '',\r\n \"transportType\": parent?.transportType ?? '',\r\n \"pickupArea\": parent?.pickupArea ?? '',\r\n \"pickupPoint\": parent?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": parent?.dropoffArea ?? '',\r\n \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": this.studentDetails.serviceDate,\r\n \"picklat\":parent?.picklat ?? 0,\r\n \"picklog\":parent?.picklog ?? 0,\r\n \"droplat\":parent?.droplog ?? 0,\r\n \"droplog\":parent?.droplog ?? 0,\r\n \"stU_BSU_ID\":bsuId,\r\n \"SBL_ID_DROPOFF\":parent?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":parent?.DROPOFFPOINT?? 0,\r\n }\r\n localStorage.removeItem(\"studentDetails\");\r\n let jsonString=JSON.stringify(formData);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n //storageData.push(formData);\r\n storageData=[formData]\r\n }\r\n }\r\n let studentGrade=this.gradeList.find(x=>x.id == this.studentDetails.grade)?.descr;\r\n localStorage.setItem('studentGrade',studentGrade)\r\n let jsonString=JSON.stringify(storageData);\r\n localStorage.setItem(\"parentDetails\",jsonString);\r\n let senddata :any={};\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n senddata = {\r\n \"MobileNumber\":storageData[index]?.stU_PRIMARYCONTACT==\"F\"? storageData[index]?.stS_FMOBILE :storageData[index]?.stS_MMOBILE,\r\n \"StuDetails\": jsonString\r\n }\r\n this.disableStudents=this.studentDetails.studentId\r\n //localStorage.setItem(\"disableIds\",this.disableStudents);\r\n if(senddata.MobileNumber!=\"\" && senddata.MobileNumber!= null )\r\n {\r\n\r\n this.regService.studentSaveAsDraft(senddata,this.defaultToken,this.selectedFile).subscribe(res=>{\r\n if(res)\r\n {\r\n //this.resetForm();\r\n this.isAddSibling=false;\r\n this.openMessageDialog(\"Request saved successfully.\", false, \"\");\r\n }\r\n })\r\n }\r\n else this.openMessageDialog(\"Please provide mobile number.\",true,\"\");\r\n }else {\r\n if(!this.imageUrl || this.imageUrl == '')\r\n this.imgErr=true;\r\n }\r\n }\r\n resetForm()\r\n {\r\n this.studentForm.reset();\r\n this. medicalRadiobtn=\"2\";\r\n this.medicalDesc=\"\";\r\n this. medicalRadiobtn2=\"2\";\r\n this.medicalDesc2=\"\";\r\n this.count=0;\r\n this.count2=0;\r\n this.infoCount=0;\r\n this.minDescErr=false;\r\n this.minDescErr2=false;\r\n this.imageUrl= \"\";\r\n this.imgErr=false;\r\n this.promptEnable=false;\r\n //this.SchNameErr=false;\r\n this.studentDetails=new studentDetail();\r\n }\r\n studentInfoDialog(template: TemplateRef) {\r\n this.studentIdDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n search(value: string) {\r\n\r\n\r\n let filter = value.toLowerCase();\r\n return this.gradeList.filter((option) =>\r\n option.descr.toLowerCase() .includes(filter)\r\n );\r\n\r\n }\r\n onKey(eventTarget: any) {\r\n\r\n this.selectedgrades = this.search(eventTarget.value);\r\n\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n \r\n goBack()\r\n {\r\n this.studentDialog.close();\r\n this.router.navigate(['/home'])\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, NgZone, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ServiceinfoService } from 'src/app/service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { MapsAPILoader } from '@agm/core'\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { FormGroup, Validators } from '@angular/forms';\r\nimport { FormControl } from 'ngx-typesafe-forms';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport {\r\n MatDialog\r\n} from '@angular/material/dialog';\r\nimport { DatePipe } from '@angular/common';\r\nimport { GoogleMapsAutocompleteService } from 'src/app/service/google-maps-autocomplete-service.service';\r\nimport { MatSelectChange } from '@angular/material/select';\r\n\r\n@Component({\r\n selector: 'app-residential-information',\r\n templateUrl: './residential-information.component.html',\r\n styleUrls: ['./residential-information.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class ResidentialInformationComponent implements OnInit {\r\n pickuppoints: any[] = [];\r\n pickupareapoints: any[] = [];\r\n dropoffareapints: any[] = [];\r\n selectedpickuparea1: any = '';\r\n selecteddropofarea2: any = '';\r\n tptFee: any[] = [];\r\n selectedpickuparea: string = \"\";\r\n selecteddropoffarea: string = \"\";\r\n transportTypes: any[] = [];\r\n emirates: any[] = [];\r\n isPickupOnly: boolean = false;\r\n isDropOnly: boolean = false;\r\n @ViewChild(MapInfoWindow, { static: false }) infoWindow: MapInfoWindow;\r\n\r\n mapZoom = 12;\r\n mapCenter: google.maps.LatLng;\r\n mapOptions: google.maps.MapOptions = {\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n zoomControl: true,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n maxZoom: 20,\r\n minZoom: 4,\r\n };\r\n\r\n markerInfoContent = '';\r\n markerOptions: google.maps.MarkerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n residentialsDetails!: FormGroup;\r\n registerationdetails: any = {};\r\n token: any = '';\r\n @Output() onTabChange: EventEmitter = new EventEmitter();\r\n date: any;\r\n mapOpenedFrom: string = '';\r\n tptType: any;\r\n IsCloseFee: boolean = false;\r\n pickupAreaList: any[] = [];\r\n pickupPointList: any[] = [];\r\n dropoffpoints: any[] = [];\r\n dropoffareapoints: any[] = [];\r\n geoCoder: google.maps.Geocoder;\r\n pickuplocation: string = '';\r\n dropofflocation: string = '';\r\n markers1: any;\r\n searchInput: string = ''; predictions: google.maps.places.AutocompletePrediction[] = [];\r\n countryDetails: any;\r\n ishibrid:string=\"false\";\r\n isLeased:string=\"false\";\r\n dropoffAreaErrMsg: boolean=false;\r\n @Input() isReactivate: boolean = false;\r\n constructor(private tokenService: TokenService, private serviceinfoService: ServiceinfoService, private registrationService: RegistrationService, private dialog: MatDialog, private datePipe: DatePipe,private autocompleteService:GoogleMapsAutocompleteService) { }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n this.getMasers();\r\n\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'));\r\n this.registerationdetails = data;\r\n this.countryDetails = JSON.parse(localStorage.getItem('schoolDetails'));\r\n this.ishibrid = localStorage.getItem('ishybrid');\r\n this.isLeased = localStorage.getItem('isLeased');\r\n this.residentialsDetails = new FormGroup({\r\n EMIRATE: new FormControl('', Validators.required),\r\n HOUSE_NO: new FormControl('', Validators.required),\r\n ADDRESS: new FormControl('', Validators.required),\r\n TPT_TYPE: new FormControl(null, Validators.required),\r\n PICKUPAREA: new FormControl(null),\r\n DROPOFFAREA: new FormControl(null),\r\n PICKUPPOINT: new FormControl(null),\r\n DROPOFFPOINT: new FormControl(null),\r\n PICKUPLOCATION: new FormControl(''),\r\n DROPOFFLOCATION: new FormControl(''),\r\n PICKUPPOINTLANDMARK: new FormControl(''),\r\n DROPOFFPOINTLANDMARK: new FormControl(''),\r\n });\r\n this.geoCoder = new google.maps.Geocoder;\r\n\r\n if (this.isReactivate) {\r\n this.ishibrid = JSON.parse(localStorage.getItem('IsHybrid')) == 0 ? \"false\" : \"true\";\r\n this.isLeased = JSON.parse(localStorage.getItem('leasemodelschool')) == 0 ? \"false\" : \"true\";\r\n }\r\n\r\n }\r\n getPickupPoints() {\r\n\r\n this.pickupareapoints = [];\r\n this.dropoffareapoints = [];\r\n this.pickupAreaList = [];\r\n let obj3: any = {\r\n headers: {\r\n \"master\": \"PICKUP_TPT_R\",\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"param1\": \"172\",\r\n \"param2\": this.selectedpickuparea1?.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj3).subscribe(res => {\r\n this.pickupareapoints = res[\"data\"];\r\n this.dropoffareapoints = res[\"data\"];\r\n this.pickupAreaList = res[\"data\"];\r\n //alert(this.pickupareapoints);\r\n })\r\n }\r\n getDropOffPoints() {\r\n this.dropoffareapints = [];\r\n let obj3: any = {\r\n headers: {\r\n \"master\": \"DROP_TPT_R\",\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"param1\": \"172\",\r\n \"param2\": this.selecteddropofarea2?.toString(),\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj3).subscribe(res => {\r\n this.dropoffareapints = res[\"data\"];\r\n //alert(this.pickupareapoints);\r\n })\r\n }\r\n\r\n getMasers() {\r\n let tkn = \"\";\r\n this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n this.token = tknresult.access_token;\r\n tkn = tknresult.access_token;\r\n if (this.registerationdetails[0]?.EMIRATE != '') {\r\n\r\n this.selecteddropofarea2 = this.registerationdetails[0]?.dropoffArea\r\n this.selectedpickuparea1 = this.registerationdetails[0]?.pickupArea\r\n }\r\n\r\n let obj1: any = {\r\n headers: {\r\n \"master\": \"TPT_TYPE\",\r\n \"bsuid\": localStorage.getItem('bsU_ID').toString(),\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let obj2: any = {\r\n headers: {\r\n \"master\": \"TPT_CITY_M\",\r\n \"param1\": \"172\",\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n this.serviceinfoService.getMaster(obj1).subscribe(res => {\r\n\r\n this.transportTypes = res[\"data\"]?.filter(x => x.id != -1).map(x => ({ descr: x.descr, id: x.id.toString() }));\r\n this.transportTypes.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n\r\n\r\n this.serviceinfoService.getMaster(obj2).subscribe(res => {\r\n\r\n this.emirates = res[\"data\"];\r\n this.emirates.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n if (this.registerationdetails[0]?.EMIRATE != '') {\r\n\r\n this.getAreaBasedOnCity(this.registerationdetails[0]?.city);\r\n\r\n this.residentialsDetails.patchValue({\r\n EMIRATE: this.registerationdetails[0]?.city,\r\n HOUSE_NO: this.registerationdetails[0]?.house,\r\n ADDRESS: this.registerationdetails[0]?.street,\r\n TPT_TYPE: this.registerationdetails[0]?.transportType,\r\n PICKUPAREA: this.registerationdetails[0]?.pickupArea == \"-1\" ? -1 : Number(this.registerationdetails[0]?.pickupArea),\r\n DROPOFFAREA: this.registerationdetails[0]?.dropoffArea == \"-1\" ? -1 : Number(this.registerationdetails[0]?.dropoffArea),\r\n PICKUPPOINT: Number(this.registerationdetails[0]?.pickupPoint),\r\n DROPOFFPOINT: Number(this.registerationdetails[0]?.dropoffPoint),\r\n PICKUPLOCATION: this.registerationdetails[0]?.PICKUPLOCATION,\r\n DROPOFFLOCATION: this.registerationdetails[0]?.DROPOFFLOCATION,\r\n PICKUPPOINTLANDMARK: this.registerationdetails[0]?.pickupPointLandMark,\r\n DROPOFFPOINTLANDMARK: this.registerationdetails[0]?.dropoffPointLandMark,\r\n });\r\n\r\n this.latitude = this.registerationdetails[0]?.picklat\r\n this.longitude = this.registerationdetails[0]?.picklog\r\n this.latitudeDrop = this.registerationdetails[0]?.droplat\r\n this.longitudeDrop = this.registerationdetails[0]?.droplog\r\n if(this.latitude!=0 || this.longitude!=0){\r\n this.PickupgetAddress(this.latitude,this.longitude)\r\n }else{\r\n this.getCurrentLocation('pick')\r\n }\r\n if(this.latitudeDrop!=0 || this.longitudeDrop!=0){\r\n this.DropoffgetAddress(this.latitudeDrop,this.longitudeDrop)\r\n }else{\r\n this.getCurrentLocation('drop')\r\n\r\n }\r\n if (this.registerationdetails[0]?.pickupArea != \"\") {\r\n this.selectedpickuparea = this.pickupPointList.filter(x => x.id == this.registerationdetails[0]?.pickupArea)[0]?.descr;\r\n\r\n }\r\n if (this.registerationdetails[0]?.dropoffArea != \"\") {\r\n this.selecteddropoffarea = this.pickupPointList.filter(x => x.id == this.registerationdetails[0]?.dropoffArea)[0]?.descr;\r\n\r\n }\r\n this.getFeeStructure()\r\n let tptdata = [];\r\n tptdata = this.transportTypes.filter(x => x.id == this.registerationdetails[0]?.transportType)\r\n this.tptType=tptdata[0]?.id\r\n if (tptdata.length > 0) {\r\n if (tptdata[0]?.id == 0) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n }\r\n else if (tptdata[0]?.id == 1) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = false;\r\n }\r\n else if (tptdata[0]?.id == 2) {\r\n this.isPickupOnly = false;\r\n this.isDropOnly = true;\r\n }\r\n else {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n }\r\n }\r\n\r\n //this.getOthersDetails();\r\n this.getPickupPoints();\r\n this.getDropOffPoints();\r\n console.log(this.residentialsDetails.value);\r\n\r\n } else {\r\n this.residentialsDetails = new FormGroup({\r\n EMIRATE: new FormControl('', Validators.required),\r\n HOUSE_NO: new FormControl('', Validators.required),\r\n ADDRESS: new FormControl('', Validators.required),\r\n TPT_TYPE: new FormControl(null, Validators.required),\r\n PICKUPAREA: new FormControl(null),\r\n DROPOFFAREA: new FormControl(null),\r\n PICKUPPOINT: new FormControl(null),\r\n DROPOFFPOINT: new FormControl(null),\r\n PICKUPLOCATION: new FormControl(''),\r\n DROPOFFLOCATION: new FormControl(''),\r\n PICKUPPOINTLANDMARK: new FormControl(''),\r\n DROPOFFPOINTLANDMARK: new FormControl(''),\r\n });\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n }\r\n });\r\n });\r\n });\r\n }\r\n next() {\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let formData: any[] = [];\r\n data.forEach(ele => {\r\n formData.push({\r\n \"stU_ID\": ele?.stU_ID ?? 0,\r\n \"stU_FIRSTNAME\": ele?.stU_FIRSTNAME ?? '',\r\n \"stU_MIDNAME\": ele?.stU_MIDNAME ?? '',\r\n \"stU_LASTNAME\": ele?.stU_LASTNAME ?? '',\r\n \"stU_GENDER\": ele?.stU_GENDER ?? '',\r\n \"stU_GRD_ID\": ele?.stU_GRD_ID ?? 0,\r\n \"stU_GRM_ID\": ele?.stU_GRM_ID ?? 0,\r\n \"stU_DOB\": ele?.stU_DOB ?? '',\r\n \"stU_SCHOOL_ID\": ele?.stU_SCHOOL_ID ?? '',\r\n \"stU_PHOTOPATH\": ele?.stU_PHOTOPATH ?? '',\r\n \"stS_MED\": ele?.STS_MED ?? 0,\r\n \"stU_MED_CONDITION\": ele?.STU_MED_CONDITION ?? '',\r\n \"stS_MED_STAFF_REQUIRED\": ele?.STS_MED_STAFF_REQUIRED ?? 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": ele?.STS_MED_STAFF_REQUIRED_DESC ?? '',\r\n \"stU_PRIMARYCONTACT\": ele?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": ele?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": ele?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": ele?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": ele?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": ele?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": ele?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": ele?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": ele?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": ele?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": ele?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\": ele?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": ele?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": ele?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\": ele?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": this.residentialsDetails.value.EMIRATE,\r\n \"house\": this.residentialsDetails.value.HOUSE_NO,\r\n \"street\": this.residentialsDetails.value.ADDRESS,\r\n \"transportType\": this.residentialsDetails.value.TPT_TYPE,\r\n \"pickupArea\": this.residentialsDetails.value.PICKUPAREA,\r\n \"pickupPoint\": this.residentialsDetails.value.PICKUPPOINT,\r\n \"pickupPointLandMark\": this.residentialsDetails.value.PICKUPPOINTLANDMARK,\r\n \"dropoffArea\": this.residentialsDetails.value.DROPOFFAREA,\r\n \"SBL_ID_DROPOFF\": this.residentialsDetails.value.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\": this.residentialsDetails.value.DROPOFFPOINT ?? 0,\r\n \"dropoffPoint\": this.residentialsDetails.value.DROPOFFPOINT,\r\n \"dropoffPointLandMark\": this.residentialsDetails.value.DROPOFFPOINTLANDMARK,\r\n \"busServiceRequestedDate\": ele?.busServiceRequestedDate ?? '',\r\n \"picklat\": this.latitude,\r\n \"picklog\": this.longitude,\r\n \"droplat\": this.latitudeDrop,\r\n \"droplog\": this.longitudeDrop,\r\n \"stU_BSU_ID\": ele?.stU_BSU_ID ?? '',\r\n })\r\n })\r\n\r\n let jsonString = JSON.stringify(formData);\r\n localStorage.setItem(\"parentDetails\", jsonString);\r\n this.onTabChange.emit(3);\r\n }\r\n checkTPTType(value) {\r\n let data: any[];\r\n data = this.transportTypes.filter(x => x.id == value);\r\n this.tptType = data[0].id\r\n if (data[0].id == 0) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = true;\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINT: '',\r\n PICKUPAREA: '',\r\n PICKUPPOINTLANDMARK: '',\r\n DROPOFFAREA: '',\r\n DROPOFFPOINTLANDMARK: '',\r\n DROPOFFPOINT: ''\r\n })\r\n }\r\n if (data[0].id == 1) {\r\n this.isPickupOnly = true;\r\n this.isDropOnly = false;\r\n this.residentialsDetails.controls['PICKUPAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFAREA'].clearValidators();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].clearValidators();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].clearValidators();\r\n }\r\n if (data[0].id == 2) {\r\n this.isPickupOnly = false;\r\n this.isDropOnly = true;\r\n this.residentialsDetails.controls['DROPOFFAREA'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPAREA'].clearValidators();\r\n this.residentialsDetails.controls['PICKUPPOINT'].clearValidators();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].clearValidators();\r\n }\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFAREA'].markAsPristine();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFPOINT'].markAsPristine();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].markAsUntouched();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPAREA'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPPOINT'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPPOINT'].markAsPristine();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].markAsUntouched();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].markAsPristine();\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINT: '',\r\n PICKUPAREA: '',\r\n PICKUPPOINTLANDMARK: '',\r\n DROPOFFAREA: '',\r\n DROPOFFPOINTLANDMARK: '',\r\n DROPOFFPOINT: ''\r\n })\r\n this.selectedpickuparea1 = null\r\n this.selecteddropofarea2 = null\r\n this.selectedpickuparea = '';\r\n this.selecteddropoffarea = '';\r\n this.getOthersDetails()\r\n\r\n }\r\n openInfoWindow(marker: MapMarker) {\r\n // this is called when the marker is clicked.\r\n this.infoWindow.open(marker);\r\n }\r\n\r\n getCurrentLocation(value) {\r\n navigator.geolocation.getCurrentPosition(\r\n (position: GeolocationPosition) => {\r\n\r\n\r\n const point: google.maps.LatLngLiteral = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n };\r\n if(value == 'pick'){\r\n this.center1 = point;\r\n // this.dropofflocation= data[0].descr\r\n this.markers = [];\r\n // Add a marker for the selected location\r\n this.markers.push({position: this.center1,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.PickupgetAddress(position.coords.latitude,position.coords.longitude)\r\n }else{\r\n this.center2 = point;\r\n // this.dropofflocation= data[0].descr\r\n this.markers1 = [];\r\n // Add a marker for the selected location\r\n this.markers1.push({position: this.center2,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.DropoffgetAddress(position.coords.latitude,position.coords.longitude)\r\n }\r\n console.log(point);\r\n this.mapCenter = new google.maps.LatLng(point);\r\n this.map.panTo(point);\r\n\r\n this.markerInfoContent = \"I'm here!\";\r\n\r\n this.markerOptions = {\r\n draggable: false,\r\n animation: google.maps.Animation.DROP,\r\n };\r\n },\r\n (error) => {\r\n\r\n\r\n if (error.PERMISSION_DENIED) {\r\n // alert(\"Couldn't get your location Permission denied\");\r\n } else if (error.POSITION_UNAVAILABLE) {\r\n // alert(\r\n // \"Couldn't get your location Position unavailable\"\r\n // );\r\n } else if (error.TIMEOUT) {\r\n // alert(\"Couldn't get your location 'Timed out'\");\r\n } else {\r\n // alert(error.message);\r\n }\r\n },\r\n { enableHighAccuracy: true }\r\n );\r\n }\r\n checkPickupArea(name,event)\r\n {\r\n if (this.tptType == 0) {\r\n if(this.residentialsDetails.controls['PICKUPAREA'].value !=''){\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFAREA': this.residentialsDetails.controls['PICKUPAREA'].value\r\n })\r\n this.getGeoLocation(this.residentialsDetails.controls['PICKUPAREA'].value,name,event);\r\n }\r\n else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFAREA': ''\r\n })\r\n }\r\n }\r\n }\r\n saveAsDraft() {\r\n\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let formData: any[] = [];\r\n data.forEach(ele => {\r\n formData.push({\r\n \"stU_ID\": ele?.stU_ID ?? 0,\r\n \"stU_FIRSTNAME\": ele?.stU_FIRSTNAME ?? '',\r\n \"stU_MIDNAME\": ele?.stU_MIDNAME ?? '',\r\n \"stU_LASTNAME\": ele?.stU_LASTNAME ?? '',\r\n \"stU_GENDER\": ele?.stU_GENDER ?? '',\r\n \"stU_GRD_ID\": ele?.stU_GRD_ID ?? 0,\r\n \"stU_GRM_ID\": ele?.stU_GRM_ID ?? 0,\r\n \"stU_DOB\": ele?.stU_DOB ?? '',\r\n \"stU_SCHOOL_ID\": ele?.stU_SCHOOL_ID ?? '',\r\n \"stU_PHOTOPATH\": ele?.stU_PHOTOPATH ?? '',\r\n \"stS_MED\": ele?.STS_MED ?? 0,\r\n \"stU_MED_CONDITION\": ele?.STU_MED_CONDITION ?? '',\r\n \"stS_MED_STAFF_REQUIRED\": ele?.STS_MED_STAFF_REQUIRED ?? 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": ele?.STS_MED_STAFF_REQUIRED_DESC ?? '',\r\n \"stU_PRIMARYCONTACT\": ele?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": ele?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": ele?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": ele?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": ele?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": ele?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": ele?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": ele?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": ele?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": ele?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": ele?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\": ele?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": ele?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": ele?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\": ele?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": this.residentialsDetails.value.EMIRATE,\r\n \"house\": this.residentialsDetails.value.HOUSE_NO,\r\n \"street\": this.residentialsDetails.value.ADDRESS,\r\n \"transportType\": this.residentialsDetails.value.TPT_TYPE,\r\n \"pickupArea\": this.residentialsDetails.value.PICKUPAREA,\r\n \"pickupPoint\": this.residentialsDetails.value.PICKUPPOINT,\r\n \"pickupPointLandMark\": this.residentialsDetails.value.PICKUPPOINTLANDMARK,\r\n \"dropoffArea\": this.residentialsDetails.value.DROPOFFAREA,\r\n \"SBL_ID_DROPOFF\": this.residentialsDetails.value.DROPOFFAREA,\r\n \"PNT_ID_DROPOFFPOINT\": this.residentialsDetails.value.DROPOFFPOINT,\r\n \"dropoffPoint\": this.residentialsDetails.value.DROPOFFPOINT,\r\n \"dropoffPointLandMark\": this.residentialsDetails.value.DROPOFFPOINTLANDMARK,\r\n \"busServiceRequestedDate\": ele?.busServiceRequestedDate ?? '',\r\n \"picklat\": this.latitude,\r\n \"picklog\": this.longitude,\r\n \"droplat\": this.latitudeDrop,\r\n \"droplog\": this.longitudeDrop,\r\n \"stU_BSU_ID\": ele?.stU_BSU_ID ?? '',\r\n\r\n })\r\n })\r\n let jsonString = JSON.stringify(formData);\r\n localStorage.setItem(\"parentDetails\", jsonString);\r\n let senddata: any = {};\r\n senddata = {\r\n \"MobileNumber\": JSON.parse(localStorage.studentDetails).stS_FMOBILE,\r\n \"StuDetails\": jsonString\r\n }\r\n this.registrationService.studentSaveAsDraft(senddata, this.token).subscribe(\r\n res => { this.openMessageDialog(\"Request saved successfully.\", false, \"\"); }\r\n )\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n });\r\n }\r\n previous() {\r\n let data: any;\r\n data = JSON.parse(localStorage.getItem('parentDetails'))\r\n let formData: any[] = [];\r\n data.forEach(ele => {\r\n formData.push({\r\n \"stU_ID\": ele?.stU_ID ?? 0,\r\n \"stU_FIRSTNAME\": ele?.stU_FIRSTNAME ?? '',\r\n \"stU_MIDNAME\": ele?.stU_MIDNAME ?? '',\r\n \"stU_LASTNAME\": ele?.stU_LASTNAME ?? '',\r\n \"stU_GENDER\": ele?.stU_GENDER ?? '',\r\n \"stU_GRD_ID\": ele?.stU_GRD_ID ?? 0,\r\n \"stU_GRM_ID\": ele?.stU_GRM_ID ?? 0,\r\n \"stU_DOB\": ele?.stU_DOB ?? '',\r\n \"stU_SCHOOL_ID\": ele?.stU_SCHOOL_ID ?? '',\r\n \"stU_PHOTOPATH\": ele?.stU_PHOTOPATH ?? '',\r\n \"stS_MED\": ele?.STS_MED ?? 0,\r\n \"stU_MED_CONDITION\": ele?.STU_MED_CONDITION ?? '',\r\n \"stS_MED_STAFF_REQUIRED\": ele?.STS_MED_STAFF_REQUIRED ?? 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": ele?.STS_MED_STAFF_REQUIRED_DESC ?? '',\r\n \"stU_PRIMARYCONTACT\": ele?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": ele?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": ele?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": ele?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": ele?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": ele?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": ele?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": ele?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": ele?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": ele?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": ele?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\": ele?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": ele?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": ele?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\": ele?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": this.residentialsDetails.value.EMIRATE,\r\n \"house\": this.residentialsDetails.value.HOUSE_NO,\r\n \"street\": this.residentialsDetails.value.ADDRESS,\r\n \"transportType\": this.residentialsDetails.value.TPT_TYPE,\r\n \"pickupArea\": this.residentialsDetails.value.PICKUPAREA,\r\n \"pickupPoint\": this.residentialsDetails.value.PICKUPPOINT,\r\n \"pickupPointLandMark\": this.residentialsDetails.value.PICKUPPOINTLANDMARK,\r\n \"dropoffArea\": this.residentialsDetails.value.DROPOFFAREA,\r\n \"SBL_ID_DROPOFF\": this.residentialsDetails.value.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\": this.residentialsDetails.value.DROPOFFPOINT ?? 0,\r\n \"dropoffPoint\": this.residentialsDetails.value.DROPOFFPOINT,\r\n \"dropoffPointLandMark\": this.residentialsDetails.value.DROPOFFPOINTLANDMARK,\r\n \"busServiceRequestedDate\": ele?.busServiceRequestedDate ?? '',\r\n \"picklat\": this.latitude,\r\n \"picklog\": this.longitude,\r\n \"droplat\": this.latitudeDrop,\r\n \"droplog\": this.longitudeDrop,\r\n \"stU_BSU_ID\": ele?.stU_BSU_ID ?? '',\r\n })\r\n })\r\n\r\n let jsonString = JSON.stringify(formData);\r\n localStorage.setItem(\"parentDetails\", jsonString);\r\n this.onTabChange.emit(1);\r\n }\r\n\r\n eventHandler(event: any, name: string) {\r\n\r\n // Add marker on double click event\r\n if (name === 'mapDblclick' || name === 'mapClick') {\r\n this.dropMarker(event)\r\n }\r\n }\r\n @ViewChild('myGoogleMap', { static: false })\r\n map!: GoogleMap;\r\n @ViewChild(MapInfoWindow, { static: false })\r\n info!: MapInfoWindow;\r\n zoom = 20;\r\n maxZoom = 20;\r\n minZoom = 3;\r\n latitude: number = 0;\r\n longitude: number = 0;\r\n latitudeDrop: number = 0;\r\n longitudeDrop: number = 0;\r\n center!: google.maps.LatLngLiteral;\r\n center1!: google.maps.LatLngLiteral;\r\n center2!: google.maps.LatLngLiteral;\r\n options: google.maps.MapOptions = {\r\n zoomControl: false,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n mapTypeId: 'hybrid',\r\n maxZoom: this.maxZoom,\r\n minZoom: this.minZoom,\r\n }\r\n markers = [] as any;\r\n infoContent = ''\r\n dropMarker(event: any) {\r\n if (this.mapOpenedFrom == 'pick') {\r\n\r\n this.latitude = event.latLng.lat();\r\n this.longitude = event.latLng.lng();\r\n this.PickupgetAddress(this.latitude, this.longitude)\r\n if (this.tptType == 0) {\r\n this.latitudeDrop = this.latitude;\r\n this.longitudeDrop = this.longitude;\r\n\r\n }\r\n this.markers = [];\r\n this.markers.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (this.markers.length + 1),\r\n },\r\n title: 'Marker title ' + (this.markers.length + 1),\r\n info: 'Marker info ' + (this.markers.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.center1={ lat: this.latitude, lng: this.longitude };\r\n } else {\r\n this.latitudeDrop = event.latLng.lat();\r\n this.longitudeDrop = event.latLng.lng();\r\n this.markers1 = [];\r\n this.markers1.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (this.markers1.length + 1),\r\n },\r\n title: 'Marker title ' + (this.markers1.length + 1),\r\n info: 'Marker info ' + (this.markers1.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n this.center2={ lat: this.latitudeDrop, lng: this.longitudeDrop };\r\n\r\n this.DropoffgetAddress(this.latitudeDrop, this.longitudeDrop)\r\n }\r\n\r\n\r\n\r\n\r\n }\r\n openInfo(marker: MapMarker, content: string) {\r\n this.infoContent = content;\r\n this.info.open(marker)\r\n }\r\n zoomIn() {\r\n if (this.zoom < this.maxZoom) this.zoom++;\r\n }\r\n\r\n zoomOut() {\r\n if (this.zoom > this.minZoom) this.zoom--;\r\n }\r\n\r\n getGeoLocation(value, name, event) {\r\n console.log(value, event);\r\n\r\n let data: any = [];\r\n data.push({\r\n SBLID: this.residentialsDetails.value.PICKUPAREA,\r\n });\r\n // if(this.tptType == \"Round Trip\"){\r\n\r\n // this.residentialsDetails.patchValue({\r\n // 'DROPOFFAREA':this.residentialsDetails.controls['PICKUPAREA'].value\r\n // })\r\n // }\r\n\r\n // else{\r\n // this.residentialsDetails.patchValue({\r\n // 'DROPOFFAREA':''\r\n // })\r\n // }\r\n if (name == 'parea') {\r\n this.selectedpickuparea = \"Pick-up Area: \" + event.source.triggerValue;\r\n this.selectedpickuparea1 = value;\r\n let data :any[]=[];\r\n data = this.pickuppoints.filter(x=>x.id == value);\r\n console.log(data);\r\n if(value == -1){\r\n if((data[0].lat == 0||data[0].lat == null ) && (data[0].long == 0 || data[0].long== null )){\r\n this.getCurrentLocation('pick');\r\n }else{\r\n this.center1 = { lat: Number(data[0].lat), lng: Number(data[0].long) };\r\n }\r\n \r\n this.pickuplocation= data[0].descr\r\n this.markers = [];\r\n // Add a marker for the selected location\r\n this.markers.push({position: this.center1,label: '',title: data[0].descr,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n }\r\n \r\n this.getOthersDetails()\r\n this.getPickupPoints();\r\n }\r\n if (name == 'darea') {\r\n if(this.tptType == 0)\r\n {\r\n if(this.residentialsDetails.controls['PICKUPAREA'].value == this.residentialsDetails.controls['DROPOFFAREA'].value)\r\n this.dropoffAreaErrMsg=false\r\n else this.dropoffAreaErrMsg=true\r\n }\r\n this.selecteddropoffarea = \"Drop-off Area: \" + event.source.triggerValue;\r\n\r\n this.selecteddropofarea2 = value;\r\n let data :any[]=[];\r\n data = this.pickuppoints.filter(x=>x.id == value);\r\n console.log(data);\r\n if(value == -1){\r\n if((data[0].lat == 0||data[0].lat == null ) && (data[0].long == 0 || data[0].long== null )){\r\n this.getCurrentLocation('drop');\r\n }else{\r\n this.center2 = { lat: Number(data[0].lat), lng: Number(data[0].long) };\r\n this.dropofflocation= data[0].descr\r\n this.markers1 = [];\r\n // Add a marker for the selected location\r\n this.markers1.push({position: this.center2,label: '',title: data[0].descr,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n }\r\n }\r\n \r\n this.getOthersDetails()\r\n this.getDropOffPoints();\r\n }\r\n if (value != null && value != -1)\r\n this.registrationService.getGeoLocation(this.token, data).subscribe(res => {\r\n if (name == 'parea') {\r\n\r\n this.residentialsDetails.controls['PICKUPLOCATION'].setValue(`${res?.data?.sbL_LAT} , ${res?.data?.sbL_LONG}`)\r\n }\r\n else {\r\n this.selecteddropofarea2 = value;\r\n this.residentialsDetails.controls['DROPOFFLOCATION'].setValue(`${res?.data?.sbL_LAT} , ${res?.data?.sbL_LONG}`)\r\n\r\n }\r\n\r\n })\r\n if (this.residentialsDetails.value.PICKUPAREA! = this.residentialsDetails.value.DROPOFFAREA) {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': ''\r\n });\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n } else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': this.residentialsDetails.controls['PICKUPPOINT'].value\r\n })\r\n }\r\n }\r\n getFeeStructure() {\r\n let provider: any;\r\n provider = JSON.parse(localStorage.getItem('schoolDetails'))\r\n let data: any = [];\r\n data.push({\r\n TRIPTYPE: this.residentialsDetails.value.TPT_TYPE ?? 0,\r\n SBLID: Number(this.residentialsDetails.value.PICKUPAREA ?? 0),\r\n DSBLID: Number(this.residentialsDetails.value.DROPOFFAREA ?? 0),\r\n STU_ID: 0,\r\n PROVIDER_BSU_ID: provider.provider,\r\n TRM_STARTDT: '',\r\n SSV_STARTDT: '',\r\n })\r\n this.registrationService.getFeeAmounts(this.token, data).subscribe(res => {\r\n //alert(JSON.stringify(res));\r\n this.tptFee = res.data;\r\n\r\n this.tptFee = this.tptFee.filter((x:any) => x.type == 2);\r\n\r\n if (this.tptFee.length > 0) {\r\n this.IsCloseFee = true\r\n } else {\r\n this.IsCloseFee = false\r\n\r\n }\r\n console.log(res);\r\n\r\n })\r\n }\r\n openMap(template: TemplateRef, value: any) {\r\n this.mapOpenedFrom = value;\r\n // if(value == 'pick'){\r\n // this.markers = [];\r\n // this.markers.push({\r\n // position: {\r\n // lat: this.latitude,\r\n // lng: this.longitude,\r\n // },\r\n // label: {\r\n // color: 'blue',\r\n // text: 'Marker label ' + (this.markers.length + 1),\r\n // },\r\n // title: 'Marker title ' + (this.markers.length + 1),\r\n // info: 'Marker info ' + (this.markers.length + 1),\r\n // options: {\r\n // animation: google.maps.Animation.DROP,\r\n // },\r\n // })\r\n // }else{\r\n // this.markers1 = [];\r\n // this.markers1.push({\r\n // position: {\r\n // lat: this.latitudeDrop,\r\n // lng: this.latitudeDrop,\r\n // },\r\n // label: {\r\n // color: 'blue',\r\n // text: 'Marker label ' + (this.markers.length + 1),\r\n // },\r\n // title: 'Marker title ' + (this.markers.length + 1),\r\n // info: 'Marker info ' + (this.markers.length + 1),\r\n // options: {\r\n // animation: google.maps.Animation.DROP,\r\n // },\r\n // })\r\n // }\r\n this.dialog.open(template, {\r\n disableClose: true,\r\n width: '1040px',\r\n panelClass: ['custom-modalbox', 'mapPopup']\r\n });\r\n }\r\n\r\n close() {\r\n\r\n this.dialog.closeAll();\r\n this.searchInput = '',\r\n this.predictions=[];\r\n }\r\n checkPickupPoint(event:MatSelectChange) {\r\n if (this.tptType == 0) {\r\n localStorage.setItem(\"regselecteddroparea\", event.source.triggerValue);\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': this.residentialsDetails.controls['PICKUPPOINT'].value\r\n })\r\n if (this.residentialsDetails.value.PICKUPAREA == this.residentialsDetails.value.DROPOFFAREA) {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': this.residentialsDetails.controls['PICKUPPOINT'].value\r\n })\r\n\r\n } else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': ''\r\n });\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n\r\n }\r\n } else {\r\n this.residentialsDetails.patchValue({\r\n 'DROPOFFPOINT': ''\r\n })\r\n }\r\n\r\n\r\n }\r\n closeFee() {\r\n this.IsCloseFee = false\r\n }\r\n\r\n clearAreaSearch(type: any){\r\n if(type == 'pickupArea'){\r\n this.pickuppoints = this.pickupPointList;\r\n }else if(type == 'dropoffArea'){\r\n this.dropoffpoints = this.pickupPointList;\r\n }\r\n }\r\n\r\n clearPointSearch(type:any){\r\n if(type == 'pickupPoint'){\r\n this.pickupareapoints = this.pickupAreaList;\r\n }else if(type == 'dropoffPoint'){\r\n this.dropoffareapints = this.pickupAreaList;\r\n }\r\n }\r\n\r\n clearSearchValue(event:any){\r\n event.target.value = '';\r\n }\r\n\r\n onKey(value) {\r\n this.pickuppoints = this.search(value);\r\n }\r\n search(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.pickuppoints = this.pickupPointList\r\n }\r\n console.log(this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter)));\r\n\r\n }\r\n onKeyPoint(value) {\r\n this.dropoffpoints = this.searchPoint(value);\r\n }\r\n searchPoint(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffpoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffpoints = this.pickupPointList\r\n }\r\n console.log(this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter)));\r\n\r\n }\r\n onkeypickarea(value) {\r\n this.pickupareapoints = this.searchpickarea(value);\r\n }\r\n searchpickarea(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.pickupareapoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.pickupareapoints = this.pickupAreaList\r\n }\r\n console.log(this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter)));\r\n\r\n }\r\n onKeyArea(value) {\r\n this.dropoffpoints = this.searchArea(value);\r\n }\r\n onchangedropoff(event:MatSelectChange)\r\n {\r\n localStorage.setItem(\"regselecteddroparea\", event.source.triggerValue);\r\n }\r\n searchArea(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffpoints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffpoints = this.pickupAreaList\r\n }\r\n console.log(this.pickuppoints.filter(option => option.descr.toLowerCase().startsWith(filter)));\r\n\r\n }\r\n\r\n onkeyDropOffPoint(value) {\r\n this.dropoffareapints = this.searchDropOffPoints(value);\r\n }\r\n searchDropOffPoints(value: string) {\r\n let filter = value.toLowerCase();\r\n if (filter != '') {\r\n return this.dropoffareapints.filter(option => option.descr.toLowerCase().startsWith(filter));\r\n } else {\r\n return this.dropoffareapints = this.pickupAreaList\r\n }\r\n }\r\n\r\n getOthersDetails() {\r\n if (!this.isDropOnly || (this.isPickupOnly && this.isDropOnly)) {\r\n if (this.selectedpickuparea1 == -1) {\r\n this.residentialsDetails.controls['PICKUPPOINT'].clearValidators();\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.latitude = 0;\r\n this.longitude = 0;\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINT: ''\r\n })\r\n } else {\r\n this.residentialsDetails.controls['PICKUPPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['PICKUPPOINTLANDMARK'].clearValidators();\r\n this.residentialsDetails.patchValue({\r\n PICKUPPOINTLANDMARK: ''\r\n })\r\n this.latitude = 0;\r\n this.longitude = 0;\r\n }\r\n }\r\n if (!this.isPickupOnly || (this.isPickupOnly && this.isDropOnly)) {\r\n if (this.selecteddropofarea2 == -1) {\r\n this.residentialsDetails.controls['DROPOFFPOINT'].clearValidators();\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].setValidators([Validators.required]);\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n this.residentialsDetails.patchValue({\r\n DROPOFFPOINT: ''\r\n })\r\n } else {\r\n this.residentialsDetails.controls['DROPOFFPOINT'].setValidators([Validators.required]);\r\n this.residentialsDetails.controls['DROPOFFPOINTLANDMARK'].clearValidators();\r\n this.residentialsDetails.patchValue({\r\n DROPOFFPOINTLANDMARK: ''\r\n })\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n }\r\n }\r\n }\r\n handlePanelClick(event: Event) {\r\n event.stopPropagation();\r\n }\r\n\r\n onEmiratesChange() {\r\n let cityId = this.residentialsDetails.value.EMIRATE;\r\n\r\n this.residentialsDetails.patchValue({\r\n PICKUPAREA: '',\r\n DROPOFFAREA: '',\r\n PICKUPPOINT: '',\r\n DROPOFFPOINT: '',\r\n PICKUPLOCATION: '',\r\n DROPOFFLOCATION: '',\r\n PICKUPPOINTLANDMARK: '',\r\n DROPOFFPOINTLANDMARK: ''\r\n });\r\n this.selectedpickuparea1 = null;\r\n this.selecteddropofarea2 = null;\r\n this.latitude = 0;\r\n this.longitude = 0;\r\n this.latitudeDrop = 0;\r\n this.longitudeDrop = 0;\r\n this.getAreaBasedOnCity(cityId);\r\n }\r\n\r\n getAreaBasedOnCity(cityId:any){\r\n\r\n if(cityId != \"\"){\r\n let obj: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT_R\",\r\n \"param1\": cityId.toString(),\r\n \"bsuid\": localStorage.getItem('bsU_ID'),\r\n \"acdid\": localStorage.getItem(\"currentAcademicYearId\") ?? '0',\r\n \"Authorization\": \"Bearer \" + this.token\r\n }\r\n }\r\n this.serviceinfoService.getMaster(obj).subscribe(res => {\r\n \r\n this.pickuppoints = res[\"data\"];\r\n this.dropoffpoints = res[\"data\"];\r\n this.pickupPointList = res[\"data\"];\r\n this.pickuppoints?.unshift({\r\n descr: 'Select',\r\n id: null\r\n })\r\n });\r\n }\r\n }\r\n\r\n PickupgetAddress(latitude, longitude) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n\r\n this.pickuplocation = results[0].formatted_address\r\n this.center1 = {lat:latitude,lng:longitude};\r\n // this.dropofflocation= data[0].descr\r\n this.markers = [];\r\n // Add a marker for the selected location\r\n this.markers.push({position: this.center1,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n // window.alert(results[0].formatted_address);\r\n } else {\r\n // window.alert('No results found');\r\n }\r\n } else {\r\n // window.alert('Geocoder failed due to: ' + status);\r\n }\r\n\r\n });\r\n\r\n }\r\n DropoffgetAddress(latitude, longitude) {\r\n this.geoCoder.geocode({ 'location': { lat: latitude, lng: longitude } }, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n this.zoom = 20;\r\n\r\n this.dropofflocation = results[0].formatted_address\r\n localStorage.setItem(\"regselecteddroparea\", this.dropofflocation);\r\n this.center2 = {lat:latitude,lng:longitude};\r\n // this.dropofflocation= data[0].descr\r\n this.markers1 = [];\r\n // Add a marker for the selected location\r\n this.markers1.push({position: this.center2,label: '',title: '',options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n // window.alert(results[0].formatted_address);\r\n } else {\r\n //window.alert('No results found');\r\n }\r\n } else {\r\n //window.alert('Geocoder failed due to: ' + status);\r\n }\r\n\r\n });\r\n\r\n }\r\n onInputChange() {\r\n if (this.searchInput.length >= 3) {\r\n this.autocompleteService.getPlacePredictions(this.searchInput).subscribe(predictions => {\r\n this.predictions = predictions;\r\n });\r\n } else {\r\n this.predictions = [];\r\n }\r\n }\r\n onPredictionClick(prediction: google.maps.places.AutocompletePrediction) {\r\n const geocoder = new google.maps.Geocoder();\r\n if(this.mapOpenedFrom=='pick'){\r\n this.pickuplocation = prediction.description\r\n } else{\r\n this.dropofflocation = prediction.description\r\n localStorage.setItem(\"regselecteddroparea\", this.dropofflocation);\r\n }\r\n geocoder.geocode({ placeId: prediction.place_id }, (results, status) => {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n // Update the map center and clear existing markers\r\n if(this.mapOpenedFrom == 'pick'){\r\n this.center1 = { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() };\r\n this.markers = [];\r\n // Add a marker for the selected location\r\n this.markers.push({position: this.center1,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.latitude = results[0].geometry.location.lat(),\r\n this.longitude = results[0].geometry.location.lng()\r\n this.searchInput = prediction.description\r\n\r\n this.predictions=[];\r\n } else{\r\n this.center2 = { lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng() };\r\n this.markers1 = [];\r\n // Add a marker for the selected location\r\n this.markers1.push({position: this.center2,label: '',title: prediction.description,options: { animation: google.maps.Animation.DROP\r\n }\r\n });\r\n this.latitudeDrop = results[0].geometry.location.lat(),\r\n this.longitudeDrop = results[0].geometry.location.lng()\r\n this.searchInput = prediction.description\r\n this.predictions=[];\r\n\r\n }\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import { Component,Inject, OnInit, Renderer2, ViewChild} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { StudentInformationComponent } from './student-information/student-information.component';\r\nimport { ParentInformationComponent } from './parent-information/parent-information.component';\r\nimport { ResidentialInformationComponent } from './residential-information/residential-information.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ReactivateStudentInformationComponent } from './reactivate-student-information/reactivate-student-information.component';\r\n\r\n@Component({\r\n selector: 'app-schoolbus-registration',\r\n templateUrl: './schoolbus-registration.component.html',\r\n styleUrls: ['./schoolbus-registration.component.scss']\r\n})\r\nexport class SchoolbusRegistrationComponent implements OnInit {\r\n IsParentTab: boolean=false;\r\n IsStudentTab: boolean=false;\r\n IsResidentTab: boolean=false;\r\n IsTCTab: boolean=false;\r\n digopen: any;\r\n isReactivate:boolean = false;\r\n constructor(private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,private router: Router,private activatedRoute:ActivatedRoute,private dialog: MatDialog) { }\r\n selectedTab:number=0;\r\n @ViewChild(\"studentInfo\") studentInfo:StudentInformationComponent\r\n @ViewChild(\"reactivateStudentInfo\") reactivateStudentInfo:ReactivateStudentInformationComponent\r\n @ViewChild(\"parentInfo\") parentInfo:ParentInformationComponent\r\n @ViewChild(\"residentaddress\") residentaddress: ResidentialInformationComponent\r\n //isTabYes: any\r\n isAgree:boolean=false;\r\n ngOnInit(): void {\r\n this.dialog.closeAll();\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n if(params?.isAgreed)\r\n {\r\n this.isAgree = params.isAgreed == \"false\" ?false:true;\r\n this.selectedTab=params.tab ;\r\n }\r\n else if(params?.isFromDashboard){\r\n this.selectedTab=params.tab;\r\n // this.tabYes(true);\r\n }\r\n\r\n if(params?.isReactivate){\r\n this.isReactivate=params.isReactivate == 'false' ? false : true;\r\n }\r\n this.setStyle(this.selectedTab)\r\n })\r\n\r\n }\r\n\r\n goToLanding(){\r\n this.router.navigate(['/home']);\r\n }\r\n // tabYes(event:any)\r\n // {\r\n // this.isTabYes=event;\r\n // }\r\n onTabChange(event:any)\r\n {\r\n this.selectedTab=event;\r\n this.setStyle(this.selectedTab)\r\n }\r\n\r\n setStyle(event:any)\r\n {\r\n if(event == 0){\r\n this.IsParentTab = false;\r\n this.IsStudentTab = false;\r\n this.IsResidentTab = false;\r\n this.IsTCTab = false;\r\n }\r\n if(event == 1){\r\n this.IsParentTab = true;\r\n this.IsStudentTab = false;\r\n this.IsResidentTab = false;\r\n this.IsTCTab = false;\r\n }\r\n if(event == 2){\r\n this.IsParentTab = true;\r\n this.IsStudentTab = true;\r\n this.IsResidentTab = false;\r\n this.IsTCTab = false;\r\n }\r\n if(event == 3){\r\n this.IsParentTab = true;\r\n this.IsStudentTab = true;\r\n this.IsResidentTab = true;\r\n this.IsTCTab = false;\r\n }\r\n }\r\n gotoLogin(){\r\n this.router.navigate(['/login']);\r\n\r\n }\r\n}\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { FormControl, FormGroup } from 'ngx-typesafe-forms';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { studentDetail } from 'src/app/models/registration.model';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { FileService } from 'src/app/service/file.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n\r\n@Component({\r\n selector: 'app-student-information',\r\n templateUrl: './student-information.component.html',\r\n styleUrls: ['./student-information.component.scss']\r\n})\r\nexport class StudentInformationComponent implements OnInit {\r\n studentForm = new FormGroup({\r\n schoolId : new FormControl('',[Validators.required]),\r\n firstName:new FormControl('',[Validators.required]),\r\n middleName:new FormControl(''),\r\n lastName:new FormControl('',[Validators.required]),\r\n gender:new FormControl('',[Validators.required]),\r\n grade:new FormControl('',[Validators.required]),\r\n dob:new FormControl('',[Validators.required]),\r\n academicYr:new FormControl('',[Validators.required]),\r\n studentId:new FormControl(''),\r\n serviceDate:new FormControl('',[Validators.required])\r\n })\r\n // @HostListener('window:scroll', [])\r\n // onWindowScroll() {\r\n // window.scrollTo(0, 0);\r\n // }\r\n medicalRadiobtn:any=\"2\";\r\n medicalDesc:any;\r\n medicalRadiobtn2:any=\"2\";\r\n medicalDesc2:any;\r\n defaultToken: any;\r\n gradeList:any[]=[];\r\n selectedgrades:any[]=this.gradeList;\r\n count: number=0;\r\n count2:number=0;\r\n minDescErr:boolean=false;\r\n minDescErr2:boolean=false;\r\n selectedFile: File | null = null;\r\n imageUrl: string | null = \"\";\r\n imgErr:boolean=false;\r\n promptEnable:boolean=false;\r\n studentDetails:studentDetail;\r\n selectedStudent:any;\r\n studentList:any[]=[];\r\n studentDialog: MatDialogRef;\r\n @ViewChild('editStudentInfo')editStudent:TemplateRef;\r\n studentSchIds:any[]=[];\r\n infoCount:number=0;\r\n msg: string;\r\n studentIdDialog:any\r\n file: File\r\n schoolList:any[]=[];\r\n academicYrList:any[]=[];\r\n currentDate: Date = new Date();\r\n minDate:Date= new Date(\"2024-08-26\");//new Date(new Date().setDate(new Date().getDate() + 1));\r\n maxDate:Date=new Date(new Date().getFullYear()-1, null,null);\r\n @ViewChild(\"StudentInfo\")StudentInfo:TemplateRef;\r\n @Output() onTabChange:EventEmitter=new EventEmitter();\r\n\r\n academicYr: any;\r\n serviceDate: any;\r\n disableStudents:any;\r\n academicYrId: any;\r\n imgSaveUrl:any;\r\n isAddSibling: boolean=false;\r\n enableSchool: boolean=false;\r\n disableAddSibling: boolean=false;\r\n fileType: string;\r\n fileFormatErr: boolean=false;\r\n msgForId:any\r\n hasLoginUser:boolean=false;\r\n studentStatus: any;\r\n statusDialog: any;\r\n @ViewChild('statusMsg')statusMsg:TemplateRef;\r\n isAddSiblingFromParent: boolean=false;\r\n isHybrid:string=\"false\";\r\n isLeased:string=\"false\";\r\n constructor(private dialog: MatDialog,private tokenService: TokenService,\r\n public regService:RegistrationService,private router: Router,private datePipe: DatePipe\r\n ,private fileService: FileService,private configService:ConfigService, private activatedRoute: ActivatedRoute) {\r\n this.msgForId=\"Note: Please provide the School ID assigned by the school.\"\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n let schoolDetails = JSON.parse(localStorage.getItem('schoolDetails'));\r\n\r\n if (schoolDetails?.bsu_city?.toLowerCase() == \"wkr\") {\r\n this.minDate = new Date(\"2024-09-01\");\r\n }\r\n\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n if (params?.isFromDashboard) {\r\n this.isHybrid = JSON.parse(localStorage.getItem('IsHybrid')) == 0 ? 'false' : 'true';\r\n this.isLeased = JSON.parse(localStorage.getItem('leasemodelschool')) == 0 ? 'false' : 'true';\r\n }else{\r\n this.isHybrid = localStorage.getItem('ishybrid');\r\n this.isLeased = localStorage.getItem('isLeased');\r\n }\r\n });\r\n\r\n this.updateStudentIdValidator();\r\n\r\n if (this.currentDate > this.minDate) {\r\n this.minDate = new Date(new Date().setDate(new Date().getDate() + 1));\r\n }\r\n\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n let loginUser = localStorage.getItem(\"loginuser\");\r\n this.hasLoginUser=loginUser?true:false\r\n this.getToken();\r\n // this.assignSavedFile();\r\n }\r\n\r\n updateStudentIdValidator(){\r\n const validators = (this.isLeased == 'false' && this.isHybrid == 'false') ? [Validators.required] : [];\r\n this.studentForm.controls['studentId'].setValidators(validators);\r\n this.studentForm.controls['studentId'].updateValueAndValidity();\r\n }\r\n\r\nassignSavedFile()\r\n{\r\n let savedFile: File = this.fileService.getFile();\r\n\r\nif (savedFile !== null && savedFile !== undefined) {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(savedFile);\r\n reader.onload = (event:any) => {\r\n // 'result' contains the binary data\r\n\r\n this.imageUrl=event.target.result;\r\n\r\n };\r\n\r\n // Read the content of the file as binary data\r\n //reader.readAsBinaryString(savedFile);\r\n}\r\n\r\n}\r\nhandleBinaryData(binaryData: string) {\r\n // Do something with the binary data\r\n console.log(binaryData);\r\n // You can use the binary data as needed, for example, sending it to a server or processing it further\r\n}\r\n getSchoolList() {\r\n let schooldata:any;\r\n schooldata = JSON.parse(localStorage.getItem('schoolDetails'));\r\n this.regService.getSchoolList(this.defaultToken,schooldata?.country).subscribe(res=>{\r\n this.schoolList=res;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n let data = JSON.parse(localStorage.getItem('studentDetails'));\r\n let proceed = localStorage.getItem('proceed')\r\n let showSchool =localStorage.getItem(\"showSchool\")\r\n this.enableSchool=showSchool== \"true\" ? true : false\r\n if(data != \"\" && data != null && proceed == \"false\")\r\n {\r\n let value=localStorage.getItem(\"addSiblingFromParent\")\r\n this.isAddSiblingFromParent=value == \"true\"?true:false;\r\n data.imgPath=localStorage.getItem(\"photopath\");\r\n if(data.imgPath.includes(environment.photopath))\r\n {\r\n data.imgPath=data.imgPath.replace(environment.photopath, '');\r\n }\r\n data.stU_PHOTOPATH =environment.photopath+data.imgPath;\r\n this.selectedStudent=data;\r\n this.mapStudent();\r\n }\r\n else this.getStudentDetails();\r\n })\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n // this.getAcademicYrs();\r\n this.getSchoolList();\r\n }\r\n )\r\n }\r\n\r\n getAcademicYrs()\r\n {\r\n\r\n if(this.serviceDate)\r\n {\r\n this.regService.getAcademicYrs(this.defaultToken,this.serviceDate).subscribe(res=>{\r\n this.academicYrList=res?.data;\r\n this.studentForm.patchValue({'academicYr':this.academicYrList[0].descr})\r\n this.ChangeAcademicYrs();\r\n });\r\n }\r\n }\r\n\r\n getStudentDetails()\r\n {\r\n let dataFetched=true;\r\n this.regService.sendStudentDetails.subscribe(res=>{\r\n if(dataFetched)\r\n {\r\n dataFetched=false;\r\n this.studentList=res;\r\n //let disableStudent=localStorage.getItem(\"disableIds\");\r\n if(this.studentList)\r\n {\r\n this.studentList.forEach(x=>{\r\n x.isClicked = false;\r\n x.isDisable=false;\r\n x.transportStatus= x.transportStatus? '('+x.transportStatus+')':\"\"\r\n x.imgPath=x.stU_PHOTOPATH;\r\n if(x.imgPath.includes(environment.photopath))\r\n {\r\n x.imgPath=x.imgPath.replace(environment.photopath, '');\r\n }\r\n x.stU_PHOTOPATH =environment.photopath+x.imgPath;\r\n // if(disableStudent != \"\" && disableStudent != null)\r\n // {\r\n // if(Number(disableStudent) == x.stU_ID)\r\n // x.isDisable=true;\r\n // }\r\n });\r\n if(this.studentList.length <= 1)\r\n {\r\n if(this.studentList[0]?.stU_SCHOOL_ID || this.studentList[0]?.stU_ID)\r\n this.isAddSibling=true;\r\n else this.isAddSibling=false;\r\n }\r\n else this.isAddSibling=true;\r\n localStorage.setItem(\"proceed\",\"false\");\r\n if(this.isAddSibling)\r\n this.editInfoDialog(this.editStudent);\r\n }\r\n else {\r\n this.isAddSibling=false;\r\n this.resetForm();\r\n this.selectedStudent=null;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n }\r\n }\r\n })\r\n }\r\n getGrades()\r\n {\r\n this.regService.getGrades(this.defaultToken).subscribe(res=>{\r\n this.gradeList=res?.data;\r\n this.selectedgrades=this.gradeList;\r\n if(this.selectedStudent)\r\n {\r\n let grade = this.gradeList.find(x=>x.id == Number(this.selectedStudent.stU_GRM_ID))\r\n if(grade)\r\n this.studentForm.patchValue({ grade:Number(this.selectedStudent.stU_GRM_ID)})\r\n }\r\n })\r\n }\r\n ChangeAcademicYrs()\r\n {\r\n localStorage.removeItem('currentAcademicYear')\r\n localStorage.removeItem('currentAcademicYearId')\r\n if(this.studentForm.controls.academicYr.value)\r\n {\r\n this.academicYr=this.studentForm.controls.academicYr.value;\r\n this.academicYrId=this.academicYrList.find(x=>x.descr == this.academicYr)?.id;\r\n localStorage.setItem('currentAcademicYear', this.academicYr)\r\n localStorage.setItem('currentAcademicYearId', this.academicYrId)\r\n this.getGrades();\r\n }\r\n }\r\n changeDOB(event){\r\n let dob = event.value._d;\r\n this.studentForm.controls['dob'].setValue(this.datePipe.transform(dob, 'yyyy-MM-dd'))\r\n }\r\n changeServiceDate(event){\r\n let serviceDate = event.value._d;\r\n this.studentForm.controls['serviceDate'].setValue(this.datePipe.transform(serviceDate, 'yyyy-MM-dd'));\r\n this.serviceDate=this.studentForm.get('serviceDate').value\r\n this.getAcademicYrs();\r\n }\r\n changeSchoolId()\r\n {\r\n let isID:any;\r\n if(this.studentForm.controls.studentId.value && this.studentForm.controls.studentId.touched)\r\n {\r\n isID = this.studentForm.controls.studentId.value;\r\n this.regService.studentAvailabilityCheck(this.defaultToken,isID).subscribe(res=>{\r\n if(res && this.infoCount==0)\r\n {\r\n this.msg=\"The student ID has been previously registered as per our records, please resubmit the student information.\"\r\n this.infoCount=1;\r\n this.studentForm.patchValue({studentId:\"\"});\r\n this.studentInfoDialog(this.StudentInfo)\r\n }\r\n else if(res && this.infoCount>0)\r\n {\r\n this.infoCount=2;\r\n this.msg=\"Please get in touch with STS/BBT office at your school for support.\"\r\n this.studentForm.patchValue({studentId:\"\"});\r\n this.studentInfoDialog(this.StudentInfo)\r\n }\r\n else if(!res)\r\n {\r\n this.infoCount=0;\r\n }\r\n })\r\n }\r\n }\r\n // selectSchool(event:any)\r\n // {\r\n // this.schoolName=event.value\r\n // if(this.schoolName == \"\" || this.schoolName==null)\r\n // this.SchNameErr=true;\r\n // else this.SchNameErr=false;\r\n // }\r\n addSibling()\r\n {\r\n this.studentDialog.close();\r\n this.isAddSibling=true;\r\n this.enableSchool=true;\r\n this.resetForm();\r\n this.selectedStudent=null;\r\n let bsuId = localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n this.studentForm.patchValue({schoolId:school.schoolID})\r\n }\r\n ok()\r\n {\r\n this.studentIdDialog.close();\r\n if(this.infoCount==2)\r\n this.router.navigate(['/']);\r\n }\r\n editInfoDialog(template: TemplateRef) {\r\n let index=this.studentList.findIndex(x=>x.isPartial == 1);\r\n if(index != -1)\r\n {\r\n this.disableAddSibling=true;\r\n //this.enableSchool=false\r\n }\r\n else {this.disableAddSibling=false;\r\n // this.enableSchool=true\r\n }\r\n this.enableSchool=false\r\n this.studentDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n // this.studentDialog.backdropClick().subscribe(() => {\r\n // this.studentDialog.close();\r\n // this.addSibling();\r\n // })\r\n }\r\n selectStudent(student:any)\r\n {\r\n let studentList:any[]=[];\r\n this.isAddSibling=false;\r\n // this.studentForm.controls.schoolId.clearValidators();\r\n this.fileFormatErr=false;\r\n studentList=this.studentList;\r\n studentList.forEach(x=>{\r\n let id= x.stU_ID ? x.stU_ID:x.stU_SCHOOL_ID\r\n let compareId= x.stU_ID ?student.stU_ID : student.stU_SCHOOL_ID\r\n if(id==compareId)\r\n x.isClicked=true;\r\n else x.isClicked=false;\r\n })\r\n this.studentList=[...studentList];\r\n setTimeout(() => {\r\n this.studentDialog.close();\r\n }, 400);\r\n if(student.disableRegistration == 0 && student.transportMessage)\r\n {\r\n this.studentStatus=student.transportMessage;\r\n this.msgDialog(this.statusMsg);\r\n }else{\r\n this.selectedStudent=student;\r\n if(this.selectedStudent)\r\n {\r\n this.mapStudent();\r\n }\r\n }\r\n }\r\n\r\n msgDialog(template: TemplateRef) {\r\n this.statusDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '575px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n\r\n okMsg()\r\n {\r\n this.statusDialog.close();\r\n this.router.navigate(['/home']);\r\n }\r\n mapStudent()\r\n {\r\n let serviceFormattedDate:any;\r\n let formattedDate:any\r\n // if(!fromStorage)\r\n // {\r\n // const parsedDate = moment(this.selectedStudent.stU_DOB, 'MMM DD YYYY h:mmA').toDate();\r\n // formattedDate = moment(parsedDate).format('YYYY-MM-DD HH:mm:ss');\r\n\r\n // const serviceParseDate=moment(this.selectedStudent.busServiceRequestedDate, 'MMM DD YYYY h:mmA').toDate();\r\n // serviceFormattedDate = moment(serviceParseDate).format('YYYY-MM-DD HH:mm:ss');\r\n // }\r\n // else{\r\n if(this.selectedStudent.stU_DOB)\r\n {\r\n const stringDate = new Date(this.selectedStudent.stU_DOB);\r\n formattedDate = this.datePipe.transform(stringDate, 'yyyy-MM-dd')\r\n }\r\n\r\n if(this.selectedStudent.busServiceRequestedDate)\r\n {\r\n const serviceParseDate=new Date(this.selectedStudent.busServiceRequestedDate);\r\n if(serviceParseDate)\r\n {\r\n serviceFormattedDate = this.datePipe.transform(serviceParseDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n // }\r\n // this.selectedStudent.stU_PHOTOPATH=this.configService.photopath+this.selectedStudent.stU_PHOTOPATH;\r\n let bsuId = this.selectedStudent.stU_BSU_ID ?this.selectedStudent.stU_BSU_ID : localStorage.getItem('bsU_ID');\r\n let school=this.schoolList.find(x=>x.bsU_ID == bsuId);\r\n if(school)\r\n localStorage.setItem(\"schoolName\",school?.schoolName)\r\n localStorage.setItem('bsU_ID', school?.bsU_ID);\r\n let schoolDetails ={\r\n city:school?.city,\r\n bsu_city:school?.citycode,\r\n provider:school?.provider,\r\n country:school?.country,\r\n currency:school?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n this.studentForm.patchValue({\r\n //schoolName : this.selectedStudent.stU_FIRSTNAME,\r\n firstName:this.selectedStudent.stU_FIRSTNAME,\r\n middleName:this.selectedStudent.stU_MIDNAME,\r\n lastName:this.selectedStudent.stU_LASTNAME,\r\n gender:this.selectedStudent.stU_GENDER,\r\n //grade:this.selectedStudent.stU_GRD_ID,\r\n dob:new Date(formattedDate),\r\n studentId:this.selectedStudent.stU_SCHOOL_ID,\r\n schoolId:school?.schoolID,\r\n serviceDate:serviceFormattedDate\r\n })\r\n this.serviceDate=this.studentForm.get('serviceDate').value;\r\n this.getAcademicYrs();\r\n this.imageUrl=this.selectedStudent.stU_PHOTOPATH;\r\n\r\n this.assignSavedFile();\r\n this.imgSaveUrl=this.selectedStudent.imgPath;\r\n this.medicalDesc=this.selectedStudent.stU_MED_CONDITION;\r\n this.onDescChange();\r\n this.medicalRadiobtn = this.selectedStudent.stS_MED == 1 ? \"1\":\"2\";\r\n this.medicalDesc2=this.selectedStudent.stS_MED_STAFF_REQUIRED_DESC;\r\n this.onDescChange2();\r\n this.medicalRadiobtn2 = this.selectedStudent.stS_MED_STAFF_REQUIRED == 1 ? \"1\":\"2\";\r\n\r\n // this.studentForm.patchValue({ grade:Number(this.selectedStudent.stU_GRD_ID)})\r\n\r\n // let storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n // let parent = storageData[0];\r\n // let formData={\r\n // \"stU_ID\": this.selectedStudent.stU_ID,\r\n // \"stU_FIRSTNAME\": this.selectedStudent.stU_FIRSTNAME,\r\n // \"stU_MIDNAME\": this.selectedStudent.stU_MIDNAME,\r\n // \"stU_LASTNAME\": this.selectedStudent.stU_LASTNAME,\r\n // \"stU_GENDER\": this.selectedStudent.stU_GENDER,\r\n // \"stU_GRD_ID\": this.selectedStudent.stU_GRD_ID,\r\n // \"stU_DOB\": formattedDate,\r\n // \"stU_SCHOOL_ID\": this.selectedStudent.stU_SCHOOL_ID,\r\n // \"stU_PHOTOPATH\": this.selectedStudent.stU_PHOTOPATH,\r\n // \"stU_SPMEDICATION\":this.selectedStudent.stU_SPMEDICATION,\r\n // \"stU_PRIMARYCONTACT\": parent?.stU_PRIMARYCONTACT ?? '',\r\n // \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n // \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n // \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n // \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n // \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n // \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n // \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n // \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n // \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n // \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n // \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n // \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n // \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n // \"disableRegistration\": parent?.disableRegistration,\r\n // \"city\": parent?.city ?? '',\r\n // \"house\": parent?.house ?? '',\r\n // \"street\": parent?.street ?? '',\r\n // \"transportType\": parent?.transportType ?? '',\r\n // \"pickupArea\": parent?.pickupArea ?? '',\r\n // \"pickupPoint\": parent?.pickupPoint ?? '',\r\n // \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n // \"doopoffArea\": parent?.doopoffArea ?? '',\r\n // \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n // \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n // \"busServiceRequestedDate\": serviceFormattedDate,\r\n // \"picklat\":parent?.picklat ?? 0,\r\n // \"picklog\":parent?.picklog ?? 0,\r\n // \"droplat\":parent?.droplog ?? 0,\r\n // \"droplog\":parent?.droplog ?? 0,\r\n // }\r\n // let jsonString=JSON.stringify(formData);\r\n // localStorage.setItem(\"studentDetails\",jsonString);\r\n }\r\n onDescChange()\r\n {\r\n if(this.medicalDesc && this.medicalDesc.trim() != \"\")\r\n {\r\n this.count=this.medicalDesc.length;\r\n if(this.count <=14)\r\n //this.promptEnable=false;\r\n // if(this.count <=14)\r\n this.minDescErr=true;\r\n else this.minDescErr=false;\r\n }\r\n else{\r\n this.count=0;\r\n this.minDescErr=false;\r\n // this.promptEnable=false;\r\n this.medicalDesc=this.medicalDesc?.trim() == \"\" ? \"\" : this.medicalDesc\r\n }\r\n }\r\n onDescChange2()\r\n {\r\n if(this.medicalDesc2 && this.medicalDesc2.trim() != \"\")\r\n {\r\n this.count2=this.medicalDesc2.length;\r\n if(this.count2 <=14)\r\n {\r\n this.promptEnable=false;\r\n this.minDescErr2=true;\r\n }\r\n else {this.minDescErr2=false;\r\n this.promptEnable=true;\r\n }\r\n }\r\n else{\r\n this.count2=0;\r\n this.minDescErr2=false;\r\n this.promptEnable=false;\r\n this.medicalDesc2=this.medicalDesc2?.trim() == \"\" ? \"\" : this.medicalDesc2\r\n }\r\n }\r\n selectedImgFile(event:any)\r\n {\r\n this.file= event.target.files[0];\r\n\r\n // localStorage.setItem('sprofileimg', JSON.stringify(this.file));\r\n\r\n if (this.file) {\r\n let splits=this.file.name.split(\".\");\r\n this.fileType=splits[1];\r\n if( this.fileType == \"png\" || this.fileType==\"jpeg\" || this.fileType==\"jpg\")\r\n {\r\n this.fileFormatErr=false;\r\n this.selectedFile = this.file;\r\n const reader = new FileReader();\r\n reader.readAsDataURL(this.file);\r\n this.fileService.setFile(this.file);\r\n reader.onload = (e: any) => {\r\n\r\n\r\n this.imageUrl = e.target.result;\r\n };\r\n }\r\n else {this.fileFormatErr=true;\r\n this.imageUrl =\"\"}\r\n }\r\n }\r\n proceed()\r\n {\r\n this.promptEnable=true;\r\n }\r\n onChangeRadio()\r\n {\r\n this.medicalDesc=\"\";\r\n this.minDescErr=false;\r\n this.medicalDesc2=\"\";\r\n this.minDescErr2=false;\r\n this.medicalRadiobtn2='2'\r\n if(this.medicalRadiobtn =='2')\r\n {\r\n this.medicalRadiobtn2=\"\";\r\n }\r\n }\r\n\r\n onChangeRadio2()\r\n {\r\n this.medicalDesc2=\"\";\r\n this.minDescErr2=false;\r\n // if(this.medicalRadiobtn2 =='2')\r\n // {\r\n // this.medicalPhotoUpload();\r\n // }\r\n }\r\n\r\n changeSchoolName()\r\n {\r\n let data= this.schoolList.find(x=>x.schoolID == this.studentForm.value.schoolId);\r\n if(data)\r\n localStorage.setItem(\"schoolName\",data?.schoolName)\r\n localStorage.setItem('bsU_ID', data.bsU_ID);\r\n let schoolDetails ={\r\n city:data.city,\r\n bsu_city:data.citycode,\r\n provider:data.provider,\r\n country:data.country,\r\n currency:data?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n }\r\n previous()\r\n {\r\n this.onTabChange.emit(0);\r\n }\r\n next()\r\n {\r\n localStorage.removeItem(\"studentDetails\");\r\n let formattedDate:any;\r\n let serviceFormattedDate:any\r\n let data:any\r\n if(this.studentForm.controls.dob.value != null)\r\n {\r\n const stringDate = new Date(this.studentForm.controls.dob.value);\r\n formattedDate = this.datePipe.transform(stringDate, 'yyyy-MM-dd')\r\n }\r\n\r\n if(this.studentForm.controls.serviceDate.value != null)\r\n {\r\n const serviceParseDate=new Date(this.studentForm.controls.serviceDate.value);\r\n if(serviceParseDate)\r\n {\r\n serviceFormattedDate = this.datePipe.transform(serviceParseDate, 'yyyy-MM-dd');\r\n }\r\n }\r\n let storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n let bsuId= localStorage.getItem('bsU_ID')\r\n data = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentForm.controls.studentId.value);\r\n let photopath=this.selectedFile?.name ?? this.imgSaveUrl\r\n localStorage.setItem('photopath',photopath)\r\n const imgname = this.imgSaveUrl?.substring(this.imgSaveUrl?.lastIndexOf('/') + 1);\r\n if(data != -1 && !this.isAddSibling){\r\n\r\n storageData[data].stU_ID =this.selectedStudent?.stU_ID?this.selectedStudent?.stU_ID:0,\r\n storageData[data].stU_FIRSTNAME= this.studentForm.controls.firstName.value,\r\n storageData[data].stU_MIDNAME=this.studentForm.controls.middleName.value,\r\n storageData[data].stU_LASTNAME=this.studentForm.controls.lastName.value,\r\n storageData[data].stU_GENDER=this.studentForm.controls.gender.value,\r\n storageData[data].stU_GRD_ID= this.studentForm.controls.grade.value,\r\n storageData[data].stU_GRM_ID= this.studentForm.controls.grade.value,\r\n storageData[data].stU_DOB= this.studentForm.controls.dob.value,\r\n storageData[data].stU_SCHOOL_ID= this.studentForm.controls.studentId.value,\r\n storageData[data].stU_PHOTOPATH= this.selectedFile?.name ?? imgname,\r\n storageData[data].stS_MED=Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[data].stU_MED_CONDITION=this.medicalDesc,\r\n storageData[data].stS_MED_STAFF_REQUIRED=Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[data].stS_MED_STAFF_REQUIRED_DESC=this.medicalDesc2,\r\n storageData[data].busServiceRequestedDate= this.studentForm.controls.serviceDate.value\r\n storageData[data].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[data]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[data]];\r\n }\r\n else if(data == -1 && !this.isAddSibling && !this.isAddSiblingFromParent){\r\n storageData[0].stU_ID = 0,\r\n storageData[0].stU_FIRSTNAME= this.studentForm.controls.firstName.value,\r\n storageData[0].stU_MIDNAME=this.studentForm.controls.middleName.value,\r\n storageData[0].stU_LASTNAME=this.studentForm.controls.lastName.value,\r\n storageData[0].stU_GENDER=this.studentForm.controls.gender.value,\r\n storageData[0].stU_GRD_ID= this.studentForm.controls.grade.value,\r\n storageData[0].stU_GRM_ID= this.studentForm.controls.grade.value,\r\n storageData[0].stU_DOB= this.studentForm.controls.dob.value,\r\n storageData[0].stU_SCHOOL_ID= this.studentForm.controls.studentId.value,\r\n storageData[0].stU_PHOTOPATH=this.selectedFile?.name ?? imgname,\r\n storageData[0].stS_MED=Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[0].stU_MED_CONDITION=this.medicalDesc,\r\n storageData[0].stS_MED_STAFF_REQUIRED=Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[0].stS_MED_STAFF_REQUIRED_DESC=this.medicalDesc2,\r\n storageData[0].busServiceRequestedDate= this.studentForm.controls.serviceDate.value\r\n storageData[0].stU_BSU_ID=bsuId\r\n\r\n let jsonString=JSON.stringify(storageData[0]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[0]];\r\n }\r\n else if(this.isAddSibling || this.isAddSiblingFromParent)\r\n {\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n let parent = storageData[index];\r\n let formData={\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": this.studentForm.controls.firstName.value,\r\n \"stU_MIDNAME\": this.studentForm.controls.middleName.value,\r\n \"stU_LASTNAME\": this.studentForm.controls.lastName.value,\r\n \"stU_GENDER\": this.studentForm.controls.gender.value,\r\n \"stU_GRD_ID\": this.studentForm.controls.grade.value,\r\n \"stU_GRM_ID\": this.studentForm.controls.grade.value,\r\n \"stU_DOB\": formattedDate,\r\n \"stU_SCHOOL_ID\": this.studentForm.controls.studentId.value,\r\n \"stU_PHOTOPATH\": this.selectedFile?.name ?? imgname,\r\n \"stS_MED\":Number(this.medicalRadiobtn)== 1 ? 1:0,\r\n \"stU_MED_CONDITION\":this.medicalDesc,\r\n \"stS_MED_STAFF_REQUIRED\":Number(this.medicalRadiobtn2)== 1 ? 1:0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\":this.medicalDesc2,\r\n \"stU_PRIMARYCONTACT\":parent?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\":parent?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": parent?.city ?? '',\r\n \"house\": parent?.house ?? '',\r\n \"street\": parent?.street ?? '',\r\n \"transportType\": parent?.transportType ?? '',\r\n \"pickupArea\": parent?.pickupArea ?? '',\r\n \"pickupPoint\": parent?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": parent?.dropoffArea ?? '',\r\n \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": serviceFormattedDate,\r\n \"picklat\":parent?.picklat ?? 0,\r\n \"picklog\":parent?.picklog ?? 0,\r\n \"droplat\":parent?.droplog ?? 0,\r\n \"droplog\":parent?.droplog ?? 0,\r\n \"stU_BSU_ID\":bsuId,\r\n \"SBL_ID_DROPOFF\":parent?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":parent?.DROPOFFPOINT?? 0,\r\n }\r\n let jsonString=JSON.stringify(formData);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n //storageData.push(formData);\r\n storageData=[formData]\r\n}\r\nlet studentGrade=this.gradeList.find(x=>x.id == this.studentForm.controls.grade.value)?.descr;\r\nlocalStorage.setItem('studentGrade',studentGrade)\r\nlet jsonString=JSON.stringify(storageData);\r\n localStorage.setItem(\"parentDetails\",jsonString);\r\n this.onTabChange.emit(2);\r\n }\r\n saveAsDraft()\r\n {\r\n this.studentForm.markAllAsTouched();\r\n if(!this.studentForm.invalid && this.imageUrl && this.imageUrl != '' && !this.minDescErr && !this.minDescErr2 && !this.fileFormatErr &&\r\n !(this.medicalRadiobtn2 == '1' && this.medicalDesc2 =='') && !(this.medicalRadiobtn == '1' && this.medicalDesc == ''))\r\n {\r\n this.imgErr=false;\r\n let storageData:any[]=[];\r\n let data: any;\r\n let formData:any;\r\n storageData = JSON.parse(localStorage.getItem('parentDetails'))\r\n let photopath=this.selectedFile?.name ?? this.imgSaveUrl\r\n localStorage.setItem('photopath',photopath)\r\n const imgname = this.imgSaveUrl?.substring(this.imgSaveUrl?.lastIndexOf('/') + 1);\r\n this.studentForm.controls['dob'].setValue(this.datePipe.transform(this.studentForm.controls['dob'].value, 'yyyy-MM-dd'));\r\n this.studentDetails={\r\n firstName:this.studentForm.controls.firstName.value,\r\n lastName:this.studentForm.controls.lastName.value,\r\n middleName:this.studentForm.controls.middleName.value,\r\n medicalDesc:this.medicalDesc,\r\n medicalRadiobtn:this.medicalRadiobtn,\r\n medicalRadiobtn2:this.medicalRadiobtn2,\r\n medicalDesc2:this.medicalDesc2,\r\n gender:this.studentForm.controls.gender.value,\r\n grade:this.studentForm.controls.grade.value,\r\n photopath:this.selectedFile?.name ?? imgname,\r\n dob:this.studentForm.controls.dob.value,\r\n schoolId:this.studentForm.controls.schoolId.value,\r\n studentId:this.studentForm.controls.studentId.value,\r\n academicYr:this.studentForm.controls.academicYr.value,\r\n serviceDate:this.serviceDate\r\n }\r\n\r\n data = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentDetails.studentId);\r\n let bsuId= localStorage.getItem('bsU_ID')\r\n if(data != -1 && !this.isAddSibling){\r\n\r\n storageData[data].stU_ID = this.selectedStudent?.stU_ID?this.selectedStudent?.stU_ID:0,\r\n storageData[data].stU_FIRSTNAME= this.studentDetails.firstName,\r\n storageData[data].stU_MIDNAME=this.studentDetails.middleName,\r\n storageData[data].stU_LASTNAME=this.studentDetails.lastName,\r\n storageData[data].stU_GENDER=this.studentDetails.gender,\r\n storageData[data].stU_GRD_ID= this.studentDetails.grade,\r\n storageData[data].stU_GRM_ID= this.studentDetails.grade,\r\n storageData[data].stU_DOB= this.studentDetails.dob,\r\n storageData[data].stU_SCHOOL_ID= this.studentDetails.studentId,\r\n storageData[data].stU_PHOTOPATH= this.studentDetails.photopath,\r\n storageData[data].stS_MED=Number(this.studentDetails.medicalRadiobtn) == 1 ? 1:0,\r\n storageData[data].stU_MED_CONDITION=this.studentDetails.medicalDesc,\r\n storageData[data].stS_MED_STAFF_REQUIRED=Number(this.studentDetails.medicalRadiobtn2) == 1 ? 1:0,\r\n storageData[data].stS_MED_STAFF_REQUIRED_DESC=this.studentDetails.medicalDesc2,\r\n storageData[data].busServiceRequestedDate= this.studentDetails.serviceDate\r\n storageData[data].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[data]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[data]];\r\n }\r\n else if(data == -1 && !this.isAddSibling && !this.isAddSiblingFromParent){\r\n storageData[0].stU_ID = 0,\r\n storageData[0].stU_FIRSTNAME= this.studentDetails.firstName,\r\n storageData[0].stU_MIDNAME=this.studentDetails.middleName,\r\n storageData[0].stU_LASTNAME=this.studentDetails.lastName,\r\n storageData[0].stU_GENDER=this.studentDetails.gender,\r\n storageData[0].stU_GRD_ID= this.studentDetails.grade,\r\n storageData[0].stU_GRM_ID= this.studentDetails.grade,\r\n storageData[0].stU_DOB= this.studentDetails.dob,\r\n storageData[0].stU_SCHOOL_ID= this.studentDetails.studentId,\r\n storageData[0].stU_PHOTOPATH= this.studentDetails.photopath,\r\n storageData[0].stS_MED=Number(this.studentDetails.medicalRadiobtn)== 1 ? 1:0,\r\n storageData[0].stU_MED_CONDITION=this.studentDetails.medicalDesc,\r\n storageData[0].stS_MED_STAFF_REQUIRED=Number(this.studentDetails.medicalRadiobtn2)== 1 ? 1:0,\r\n storageData[0].stS_MED_STAFF_REQUIRED_DESC=this.studentDetails.medicalDesc2,\r\n storageData[0].busServiceRequestedDate= this.studentDetails.serviceDate\r\n storageData[0].stU_BSU_ID=bsuId\r\n let jsonString=JSON.stringify(storageData[0]);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n storageData=[storageData[0]];\r\n }\r\n else if(this.isAddSibling || this.isAddSiblingFromParent){\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n let parent = storageData[index];\r\n let dupData = storageData.findIndex(x=>x.stU_SCHOOL_ID == this.studentDetails.studentId);\r\n if(dupData == -1)\r\n {\r\n formData={\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": this.studentDetails.firstName,\r\n \"stU_MIDNAME\": this.studentDetails.middleName,\r\n \"stU_LASTNAME\": this.studentDetails.lastName,\r\n \"stU_GENDER\": this.studentDetails.gender,\r\n \"stU_GRD_ID\": this.studentDetails.grade,\r\n \"stU_GRM_ID\": this.studentDetails.grade,\r\n \"stU_DOB\": this.studentDetails.dob,\r\n \"stU_SCHOOL_ID\": this.studentDetails.studentId,\r\n \"stU_PHOTOPATH\": this.studentDetails.photopath,\r\n \"stS_MED\":Number(this.studentDetails.medicalRadiobtn)== 1 ? 1:0,\r\n \"stU_MED_CONDITION\":this.studentDetails.medicalDesc,\r\n \"stS_MED_STAFF_REQUIRED\":Number(this.studentDetails.medicalRadiobtn2)== 1 ? 1:0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\":this.studentDetails.medicalDesc2,\r\n \"stU_PRIMARYCONTACT\": parent?.stU_PRIMARYCONTACT ?? '',\r\n \"stS_FFIRSTNAME\": parent?.stS_FFIRSTNAME ?? '',\r\n \"stS_FMIDNAME\": parent?.stS_FMIDNAME ?? '',\r\n \"stS_FLASTNAME\": parent?.stS_FLASTNAME ?? '',\r\n \"stS_FMOBILE\": parent?.stS_FMOBILE ?? '',\r\n \"stS_FEMAIL\": parent?.stS_FEMAIL ?? '',\r\n \"stS_MFIRSTNAME\": parent?.stS_MFIRSTNAME ?? '',\r\n \"stS_MMIDNAME\": parent?.stS_MMIDNAME ?? '',\r\n \"stS_MLASTNAME\": parent?.stS_MLASTNAME ?? '',\r\n \"stS_MMOBILE\": parent?.stS_MMOBILE ?? '',\r\n \"stS_MEMAIL\": parent?.stS_MEMAIL ?? '',\r\n \"stS_GFULLNAME\":parent?.stS_GFULLNAME ?? '',\r\n \"stS_GMOBILE\": parent?.stS_GMOBILE ?? '',\r\n \"stS_GEMAIL\": parent?.stS_GEMAIL ?? '',\r\n \"stU_SECONDARY_CONTACT\":parent?.stU_SECONDARY_CONTACT ?? '',\r\n \"disableRegistration\": 0,\r\n \"city\": parent?.city ?? '',\r\n \"house\": parent?.house ?? '',\r\n \"street\": parent?.street ?? '',\r\n \"transportType\": parent?.transportType ?? '',\r\n \"pickupArea\": parent?.pickupArea ?? '',\r\n \"pickupPoint\": parent?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": parent?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": parent?.dropoffArea ?? '',\r\n \"dropoffPoint\": parent?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": parent?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": this.studentDetails.serviceDate,\r\n \"picklat\":parent?.picklat ?? 0,\r\n \"picklog\":parent?.picklog ?? 0,\r\n \"droplat\":parent?.droplog ?? 0,\r\n \"droplog\":parent?.droplog ?? 0,\r\n \"stU_BSU_ID\":bsuId,\r\n \"SBL_ID_DROPOFF\":parent?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":parent?.DROPOFFPOINT?? 0,\r\n }\r\n localStorage.removeItem(\"studentDetails\");\r\n let jsonString=JSON.stringify(formData);\r\n localStorage.setItem(\"studentDetails\",jsonString);\r\n //storageData.push(formData);\r\n storageData=[formData]\r\n }\r\n }\r\n let studentGrade=this.gradeList.find(x=>x.id == this.studentDetails.grade)?.descr;\r\n localStorage.setItem('studentGrade',studentGrade)\r\n let jsonString=JSON.stringify(storageData);\r\n localStorage.setItem(\"parentDetails\",jsonString);\r\n let senddata :any={};\r\n let index:any\r\n if(!this.hasLoginUser)\r\n {\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n }\r\n else{\r\n index= storageData?.length == 1 ? 0 : storageData.findIndex((x:any)=>x.transportStatus == \"Service is already Active\")\r\n index = index == -1? 0:index;\r\n }\r\n senddata = {\r\n \"MobileNumber\":storageData[index]?.stU_PRIMARYCONTACT==\"F\"? storageData[index]?.stS_FMOBILE :storageData[index]?.stS_MMOBILE,\r\n \"StuDetails\": jsonString\r\n }\r\n this.disableStudents=this.studentDetails.studentId\r\n //localStorage.setItem(\"disableIds\",this.disableStudents);\r\n if(senddata.MobileNumber!=\"\" && senddata.MobileNumber!= null )\r\n {\r\n\r\n this.regService.studentSaveAsDraft(senddata,this.defaultToken,this.selectedFile).subscribe(res=>{\r\n if(res)\r\n {\r\n //this.resetForm();\r\n this.isAddSibling=false;\r\n this.openMessageDialog(\"Request saved successfully.\", false, \"\");\r\n }\r\n })\r\n }\r\n else this.openMessageDialog(\"Please provide mobile number.\",true,\"\");\r\n }else {\r\n if(!this.imageUrl || this.imageUrl == '')\r\n this.imgErr=true;\r\n }\r\n }\r\n resetForm()\r\n {\r\n this.studentForm.reset();\r\n this. medicalRadiobtn=\"2\";\r\n this.medicalDesc=\"\";\r\n this. medicalRadiobtn2=\"2\";\r\n this.medicalDesc2=\"\";\r\n this.count=0;\r\n this.count2=0;\r\n this.infoCount=0;\r\n this.minDescErr=false;\r\n this.minDescErr2=false;\r\n this.imageUrl= \"\";\r\n this.imgErr=false;\r\n this.promptEnable=false;\r\n //this.SchNameErr=false;\r\n this.studentDetails=new studentDetail();\r\n }\r\n studentInfoDialog(template: TemplateRef) {\r\n this.studentIdDialog= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n search(value: string) {\r\n\r\n\r\n let filter = value.toLowerCase();\r\n return this.gradeList.filter((option) =>\r\n option.descr.toLowerCase() .includes(filter)\r\n );\r\n\r\n }\r\n onKey(eventTarget: any) {\r\n\r\n this.selectedgrades = this.search(eventTarget.value);\r\n\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n\r\n goBack()\r\n {\r\n this.studentDialog.close();\r\n this.router.navigate(['/home'])\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { isValidNumber } from 'libphonenumber-js';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n@Component({\r\n selector: 'app-terms-and-conditions',\r\n templateUrl: './terms-and-conditions.component.html',\r\n styleUrls: ['./terms-and-conditions.component.scss']\r\n})\r\nexport class TermsAndConditionsComponent implements OnInit {\r\n defaultToken: any;\r\n pdfContent: any;\r\n pdfHtml: string;\r\n contentTitle: string;\r\n studentGrade: string;\r\n isGrade: boolean;\r\n schoolDetails: string;\r\n\r\n constructor(private dialog: MatDialog, private router: Router, public regService: RegistrationService, private tokenService: TokenService,\r\n private sanitizer: DomSanitizer,public activatedRoute:ActivatedRoute,private configServe : ConfigService) { }\r\n checkTwo: boolean = false;\r\n checkThree: boolean = false;\r\n checkFour:boolean=false;\r\n city: any;\r\n checkYes: boolean = true;\r\n checkNo: boolean = false;\r\n successDialog: any;\r\n thankyouDialog: any;\r\n disableSave: boolean = true;\r\n tandcfilteredDatapdf:any;\r\n BusBehaviourCodedatapdf:any;\r\n parentUndertakingPdf:any;\r\n contentViewer:any;\r\n pdfs: any[] = [];\r\n referenceNumber:any;\r\n isTerms:boolean=false;\r\n isParentTaking:boolean=false;\r\n isBusBehavior:boolean=false;\r\n showParentUndertaking:boolean=false;\r\n @ViewChild('thankyouPopupTemplate') thankpop: TemplateRef;\r\n //@ViewChild('contentViewer') contentViewer: ElementRef;\r\n //@Output() tabYes:EventEmitter=new EventEmitter();\r\n @Output() onTabChange: EventEmitter = new EventEmitter();\r\n @Input() isAgree: boolean = false;\r\n disableAgree:boolean=false;\r\n @Input() isReactivate: boolean = false;\r\n isStudentReactivate: boolean = false;\r\n docdownloadurl:any;\r\n hasdownloadurl:boolean=false;\r\n ngOnInit(): void {\r\n this.docdownloadurl =localStorage.getItem(\"docdownloadurl\");\r\n\r\n if(this.docdownloadurl?.length>0)\r\n {\r\n this.hasdownloadurl=true;\r\n }\r\n else\r\n {\r\n this.hasdownloadurl=false;\r\n }\r\n\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth'\r\n });\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n if(params)\r\n {\r\n let checksData = JSON.parse(localStorage.getItem(\"termsConditions\"));\r\n if(checksData)\r\n {\r\n let data = {\r\n isAgree:params?.isAgreed==\"true\" ? true :false,\r\n checkTwo: checksData.checkTwo,\r\n checkThree: checksData.checkThree,\r\n checkFour :checksData.checkFour\r\n }\r\n \r\n let json = JSON.stringify(data)\r\n localStorage.setItem(\"termsConditions\", json)\r\n }else{\r\n let data = {\r\n isAgree:params?.isAgreed==\"true\" ? true :false,\r\n checkTwo: false,\r\n checkThree: false,\r\n checkFour :false\r\n }\r\n \r\n let json = JSON.stringify(data)\r\n localStorage.setItem(\"termsConditions\", json)\r\n }\r\n }\r\n })\r\n this.city = JSON.parse(localStorage.getItem(\"schoolDetails\"))?.city;\r\n this.studentGrade=localStorage.getItem(\"studentGrade\");\r\n let bsuId=localStorage.getItem(\"bsU_ID\");\r\n let schoolList=JSON.parse(localStorage.getItem(\"schoolList\"))\r\n this.schoolDetails=schoolList.find(x=>x.bsU_ID == bsuId);\r\n //this.isGrade= this.studentGrade.includes('01') || this.studentGrade.includes('02') || this.studentGrade.includes('03') || this.studentGrade.includes('KG') ? true : false\r\n //this.showParentUndertaking=(this.studentGrade.includes('01') && !this.studentGrade.includes('10') && !this.studentGrade.includes('11') && !this.studentGrade.includes('12') ) || (this.studentGrade.includes('2') && !this.studentGrade.includes('12')) || this.studentGrade.includes('3') || this.studentGrade.includes('4')|| this.studentGrade.includes('5')||this.studentGrade.includes('6')|| this.studentGrade.includes('Year 7')|| this.studentGrade.includes('KG')? true : false\r\n this.getToken();\r\n\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n let checksData = JSON.parse(localStorage.getItem(\"termsConditions\"));\r\n setTimeout(() => {\r\n this.getTermsConditions();\r\n }, 200);\r\n\r\n if (checksData != '' && checksData != null) {\r\n this.isAgree=checksData.isAgree;\r\n this.checkTwo = checksData.checkTwo;\r\n this.checkThree = checksData.checkThree;\r\n this.checkFour= checksData.checkFour;\r\n this.disableAgree=this.isAgree? true:false;\r\n if ((this.isAgree && this.checkTwo && this.checkThree) || (!this.isAgree && !this.isTerms && !this.isBusBehavior && this.checkTwo && this.checkThree))\r\n {\r\n if(!this.checkFour && this.city == 'Abu Dhabi' && this.isParentTaking && this.showParentUndertaking)\r\n this.disableSave = true;\r\n else this.disableSave = false;\r\n }\r\n else this.disableSave = true;\r\n }\r\n })\r\n }\r\n checked(isChecked: boolean, type: any) {\r\n localStorage.removeItem(\"termsConditions\");\r\n if (type == 'one') {\r\n this.isAgree=isChecked;\r\n if (isChecked)\r\n setTimeout(() => {\r\n this.goToTc('one');\r\n this.disableAgree=true;\r\n }, 200);\r\n }\r\n else if(type == 'two')\r\n this.checkTwo=isChecked;\r\n else if(type == 'three')\r\n this.checkThree=isChecked;\r\n else {\r\n this.checkFour=isChecked;\r\n if(this.checkFour)\r\n setTimeout(() => {\r\n this.goToTc('four');\r\n }, 200);\r\n }\r\n\r\n if ((this.isAgree && this.checkTwo && this.checkThree) || (!this.isAgree && !this.isTerms && !this.isBusBehavior && this.checkTwo && this.checkThree))\r\n {\r\n if(!this.checkFour && this.city == 'Abu Dhabi' && this.isParentTaking && this.showParentUndertaking)\r\n this.disableSave = true;\r\n else this.disableSave = false;\r\n }\r\n else this.disableSave = true;\r\n let data = {\r\n isAgree:this.isAgree,\r\n checkTwo: this.checkTwo,\r\n checkThree: this.checkThree,\r\n checkFour :this.checkFour\r\n }\r\n let json = JSON.stringify(data)\r\n localStorage.setItem(\"termsConditions\", json)\r\n }\r\n goToTc(type:any) {\r\n if(type=='one')\r\n this.router.navigate(['/terms-and-conditions'],{queryParams:{type:\"All\",isReactivate:this.isReactivate}});\r\n else this.router.navigate(['/terms-and-conditions'],{queryParams:{type:\"PUT\",isReactivate:this.isReactivate}});\r\n }\r\n proceed() {\r\n this.successDialog.close();\r\n if (this.checkYes) {\r\n //this.tabYes.emit(true);\r\n localStorage.setItem(\"proceed\", \"true\");\r\n localStorage.setItem(\"showSchool\", \"true\")\r\n let data = {\r\n isAgree:false,\r\n checkTwo: false,\r\n checkThree: false,\r\n checkFour :false\r\n }\r\n let json = JSON.stringify(data)\r\n localStorage.setItem(\"termsConditions\", json)\r\n // this.goToTc()\r\n // this.onTabChange.emit(1)\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:1,isAgreed:false,isReactivate:this.isReactivate}})\r\n }\r\n //else\r\n }\r\n radiobtn(event: any) {\r\n if (event?.value == '1') {\r\n this.checkYes = true;\r\n this.checkNo = false;\r\n }\r\n else {\r\n this.checkNo = true;\r\n this.checkYes = false;\r\n setTimeout(() => {\r\n this.successDialog.close();\r\n this.thankPopup(this.thankpop);\r\n }, 200);\r\n }\r\n }\r\n successPopup(template: TemplateRef) {\r\n this.successDialog = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '700px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n thankPopup(template: TemplateRef) {\r\n this.thankyouDialog = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n goToLanding() {\r\n this.thankyouDialog.close();\r\n let isLogin=localStorage.getItem(\"currentToken\")\r\n if(!isLogin)\r\n localStorage.clear();\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n gotoHomePage(){\r\n this.successDialog.close();\r\n this.router.navigate(['/home']);\r\n }\r\n\r\n cancel() {\r\n this.isAgree = false;\r\n this.checkTwo = false;\r\n this.checkThree = false;\r\n this.checkFour=false;\r\n this.disableAgree=false;\r\n let data = {\r\n isAgree:false,\r\n checkTwo: false,\r\n checkThree: false,\r\n checkFour :false\r\n }\r\n let json = JSON.stringify(data)\r\n localStorage.setItem(\"termsConditions\", json)\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n });\r\n }\r\n\r\n cancelPopup() {\r\n this.router.navigate['/schools-list']\r\n }\r\n getTermsConditions() {\r\n\r\n this.regService.getTermsandConditions(this.defaultToken).subscribe(res => {\r\n\r\n this.pdfs = res?.data\r\n this.pdfs.forEach(x => x.isAgree = false);\r\n // Specify the value to filter by\r\n\r\n\r\n // Filter the array based on the specified property and value\r\n var vtermsac = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"TNC\");\r\n if(vtermsac.length > 0)\r\n { this.tandcfilteredDatapdf =vtermsac.map(item => item.ttcul_Url_Path);\r\n this.isTerms=true\r\n }else this.isTerms=false\r\n\r\n var vbusb =this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"BBC\");\r\n if(vbusb.length >0)\r\n { this.BusBehaviourCodedatapdf = vbusb.map(item => item.ttcul_Url_Path);\r\n this.isBusBehavior=true\r\n }else this.isBusBehavior=false\r\n\r\n var parentUndertaking =this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\");\r\n var tpttype= JSON.parse( localStorage.parentDetails)[0].transportType\r\n this.isGrade=parentUndertaking[0]?.ttcuL_bShowSiblingInput;\r\n if(parentUndertaking.length>0 && tpttype!=\"1\")\r\n {this.parentUndertakingPdf = parentUndertaking?.map(item => item?.ttcul_Url_Path);\r\n \r\n this.isParentTaking=true;\r\n this.showParentUndertaking=true;\r\n }else \r\n {\r\n this.isParentTaking=false;\r\n this.showParentUndertaking=false;\r\n }\r\n })\r\n }\r\n\r\n get sanitizedPdfHtml(): SafeHtml {\r\n this.pdfContent=this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent }\r\n openContent(type:any,template:any)\r\n {\r\n if(type == 't&c')\r\n {\r\n this.pdfHtml=this.pdfs.find(item => item.ttcuL_DOC_TYPE === \"TNC\").ttcuL_PDF_HTML;\r\n this.contentTitle= \"Terms and Conditions\"\r\n }\r\n else if(type == 'busbehaviour')\r\n {\r\n this.pdfHtml=this.pdfs.find(item => item.ttcuL_DOC_TYPE === \"BBC\").ttcuL_PDF_HTML;\r\n this.contentTitle= \"Bus Behavior Code\"\r\n }\r\n else if(type == 'parentUndertaking')\r\n {\r\n let parentUndertaking = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\")\r\n let parentpdf:any\r\n if(parentUndertaking.length>1)\r\n {\r\n if(this.isGrade)\r\n {\r\n parentpdf=parentUndertaking?.find(x=> { return (x?.ttcuL_TYPE?.includes('01') ) || (x?.ttcuL_TYPE?.includes('02') ) || x?.ttcuL_TYPE?.includes('03') || x?.ttcuL_TYPE?.includes('KG')})\r\n }\r\n else{\r\n parentpdf=parentUndertaking.find(x=> { return !((x?.ttcuL_TYPE?.includes('01') ) || (x?.ttcuL_TYPE?.includes('02')) || x?.ttcuL_TYPE?.includes('03') || x?.ttcuL_TYPE?.includes('KG'))})\r\n }\r\n }else parentpdf=parentUndertaking[0];\r\n //this.pdfHtml=this.pdfs.find(item => item.ttcuL_DOC_TYPE === \"Parent Undertaking\").ttcuL_PDF_HTML;\r\n this.pdfHtml = parentpdf?.ttcuL_PDF_HTML;\r\n this.contentTitle= \"Parent Undertaking\"\r\n }\r\n this.contentViewer = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '850px',\r\n\r\n height: '500px',\r\n panelClass: ['custom-modalbox', 'rm-padding']\r\n });\r\n }\r\n closeContent()\r\n {\r\n this.contentViewer?.close();\r\n }\r\n\r\n saveRegistration(template: any){\r\n let isReactivate = JSON.parse(this.isReactivate.toString());\r\n if(isReactivate){\r\n this.isStudentReactivate = isReactivate;\r\n let parentData = JSON.parse(localStorage.getItem(\"parentDetails\"));\r\n let studentData = JSON.parse(localStorage.getItem(\"studentDetails\"));\r\n let selectedStudentId = JSON.parse(localStorage.getItem(\"selectedstudentid\"));\r\n let index= parentData?.length == 1 ? 0 : parentData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n let formData = {\r\n \"STU_NUMBER\": selectedStudentId,\r\n \"SBL_ID_PICKUP\": parentData[index].pickupArea == \"\" ? 0 : parentData[index].pickupArea,\r\n \"PICKUP\": parentData[index].pickupPoint == \"\" ? 0 : parentData[index].pickupPoint,\r\n \"SBL_ID_DROPOFF\": parentData[index].SBL_ID_DROPOFF == \"\" ? 0 : parentData[index].SBL_ID_DROPOFF,\r\n \"DROPOFF\": parentData[index].PNT_ID_DROPOFFPOINT == \"\" ? 0 : parentData[index].PNT_ID_DROPOFFPOINT,\r\n \"FROMDATE\": studentData.busServiceRequestedDate,\r\n \"TRD_ID_PICKUP\": 0,\r\n \"TRD_ID_DROPOFF\": 0,\r\n \"ROUNDTRIP\": parentData[index].transportType,\r\n \"RET_ADD_INFO\": \"\",\r\n \"DEVICE_SOURCE\": 'STS_WEB',\r\n \"SNR_PICKLAT\": parentData[index].picklat,\r\n \"SNR_PICKLONG\": parentData[index].picklog,\r\n \"SNR_DROPOFFLAT\": parentData[index].droplat,\r\n \"SNR_DROPOFFLONG\": parentData[index].droplog,\r\n \"SNR_EMIRATE\": parentData[index].city,\r\n \"SNR_HOUSENO\": parentData[index].house,\r\n \"SNR_ADDRESS\": parentData[index].street,\r\n \"SNR_PICKUP_LANDMARK\": parentData[index].pickupPointLandMark,\r\n \"SNR_DROPOFF_LANDMARK\": parentData[index].dropoffPointLandMark\r\n }\r\n this.regService.saveReactivateRequest(formData, this.defaultToken).subscribe((res: any) => {\r\n if (res?.data != '') {\r\n this.referenceNumber=res?.data\r\n this.successPopup(template);\r\n }\r\n else {\r\n this.openMessageDialog(\"Data saved failed.\", true, \"\");\r\n }\r\n })\r\n }else{\r\n this.save(template);\r\n }\r\n }\r\n\r\n save(template: any) {\r\n this.disableSave = true;\r\n let parentData = JSON.parse(localStorage.getItem(\"parentDetails\"));\r\n let studentData = JSON.parse(localStorage.getItem(\"studentDetails\"));\r\n let acdId = localStorage.getItem(\"currentAcademicYearId\")\r\n let bsuId = localStorage.getItem(\"bsU_ID\");\r\n let schoolName = localStorage.getItem(\"schoolName\");\r\n let mobile = localStorage.getItem(\"primaryMobileNo\");\r\n let index= parentData?.length == 1 ? 0 : parentData.findIndex((x:any)=>x.disableRegistration == 0)\r\n index = index == -1? 0:index;\r\n let formData = {\r\n \"BSU_ID\": bsuId,\r\n \"ACD_ID\": acdId,\r\n \"GRM_ID\": studentData.stU_GRD_ID,\r\n \"STU_FIRSTNAME\": studentData.stU_FIRSTNAME,\r\n \"STU_MIDNAME\": studentData.stU_MIDNAME,\r\n \"STU_LASTNAME\": studentData.stU_LASTNAME,\r\n \"STU_DOB\": studentData.stU_DOB,\r\n \"STU_GENDER\": studentData.stU_GENDER,\r\n \"STS_MED\": studentData.STS_MED,\r\n \"STU_MED_CONDITION\": studentData.STU_MED_CONDITION,\r\n \"STS_MED_STAFF_REQUIRED\": studentData.STS_MED_STAFF_REQUIRED,\r\n \"STS_MED_STAFF_REQUIRED_DESC\": studentData.STS_MED_STAFF_REQUIRED_DESC,\r\n \"STARTDATE\": studentData.busServiceRequestedDate,\r\n \"SBL_ID\": parentData[index].pickupArea == \"\" ? 0 : parentData[index].pickupArea,\r\n \"PNT_ID\": parentData[index].pickupPoint == \"\" ? 0 : parentData[index].pickupPoint,\r\n \"SBL_ID_DROPOFF\": parentData[index].SBL_ID_DROPOFF == \"\" ? 0 : parentData[index].SBL_ID_DROPOFF,\r\n \"PNT_ID_DROPOFFPOINT\": parentData[index].PNT_ID_DROPOFFPOINT == \"\" ? 0 : parentData[index].PNT_ID_DROPOFFPOINT,\r\n \"PRIMARYCONTACT\": parentData[index].stU_PRIMARYCONTACT,\r\n \"STU_SECONDARY_CONTACT\": parentData[index].stU_SECONDARY_CONTACT,\r\n \"TITLE\": null,\r\n \"PFIRSTNAME\": parentData[index].stS_FFIRSTNAME,\r\n \"PMIDNAME\": parentData[index].stS_FMIDNAME,\r\n \"PLASTNAME\": parentData[index].stS_FLASTNAME,\r\n \"POBOX\": null,\r\n \"EMIRATE\": parentData[index].city,\r\n \"HOUSE_NO\": parentData[index].house,\r\n \"ADDRESS\": parentData[index].street,\r\n \"OFFPHONE\": null,\r\n \"RESPHONE\": null,\r\n \"MOBILEPHONE\": parentData[index].stS_FMOBILE,\r\n \"MFIRSTNAME\": parentData[index].stS_MFIRSTNAME,\r\n \"MMIDNAME\": parentData[index].stS_MMIDNAME,\r\n \"MLASTNAME\": parentData[index].stS_MLASTNAME,\r\n \"BBT_MOTHER_MOBILE\": parentData[index].stS_MMOBILE,\r\n \"EMERGENCY_MOBILE\": parentData[index].stU_SECONDARY_CONTACT==\"F\"?parentData[index].stS_FMOBILE:parentData[index].stU_SECONDARY_CONTACT==\"M\"?parentData[index].stS_MMOBILE : parentData[index].stS_GMOBILE,\r\n \"EMAIL\": parentData[index].stU_PRIMARYCONTACT==\"F\"?parentData[index].stS_FEMAIL: parentData[index].stU_PRIMARYCONTACT==\"M\"?parentData[index].stS_MEMAIL:parentData[index].stS_GEMAIL,\r\n \"ALTEMAIL\": null,\r\n \"GFULLNAME\": parentData[index].stS_GFULLNAME,\r\n \"GMOBILE\": parentData[index].stS_GMOBILE,\r\n \"bSENDEMAIL\": 0,\r\n \"bSMS\": 0,\r\n \"PICKUPLOCATION\": \"\",\r\n \"DROPOFFLOCATION\": \"\",\r\n \"REGFROM\": \"\",\r\n \"OTHERPICKUP\": parentData[index].pickupPointLandMark,\r\n \"OTHERDROPOFF\": parentData[index].dropoffPointLandMark,\r\n \"IMAGE_LOC\": studentData.stU_PHOTOPATH,\r\n \"LAT\": parentData[index].picklat + '||' + parentData[index].droplat,\r\n \"LONG\": parentData[index].picklog + '||' + parentData[index].droplog,\r\n \"TPT_PROMO_ID\": 0,\r\n \"STU_SCHOOL_ID\": studentData.stU_SCHOOL_ID,\r\n \"TPT_TYPE\": parentData[index].transportType,\r\n \"STUTYPE\": \"\",\r\n \"SchoolName\": schoolName,\r\n \"PICKUPAREA\": parentData[index].pickupArea,\r\n \"PICKUPPOINT\": parentData[index].pickupPoint,\r\n \"DROPOFFAREA\": parentData[index].dropoffArea,\r\n \"DROPOFFPOINT\": parentData[index].dropoffPoint,\r\n \"Source\":'STS_WEB',\r\n \"BBT_LOGIN_USER\":localStorage.getItem(\"loginuser\")?localStorage.getItem(\"loginuser\"):''\r\n }\r\n this.regService.save(formData, this.defaultToken).subscribe((res: any) => {\r\n this.disableSave = false;\r\n if (res != '0' && !isNaN(res)) {\r\n // this.regService.getParentsList(mobile, this.defaultToken).subscribe(res=>{\r\n // let parentDetails= res?.data;\r\n // localStorage.setItem('parentDetails',JSON.stringify(parentDetails));\r\n // localStorage.setItem('studParentDetails',JSON.stringify(parentDetails));\r\n // this.regService.sendStudentDetails.next(parentDetails);\r\n // this.successPopup(template);\r\n // })\r\n this.referenceNumber=res\r\n let parentInfo = {\r\n \"stU_ID\": 0,\r\n \"stU_FIRSTNAME\": '',\r\n \"stU_MIDNAME\": '',\r\n \"stU_LASTNAME\": '',\r\n \"stU_GENDER\": '',\r\n \"stU_GRD_ID\": '',\r\n \"stU_DOB\": '',\r\n \"stU_SCHOOL_ID\": '',\r\n \"stU_PHOTOPATH\": '',\r\n \"stS_MED\": 0,\r\n \"stU_MED_CONDITION\": '',\r\n \"stS_MED_STAFF_REQUIRED\": 0,\r\n \"stS_MED_STAFF_REQUIRED_DESC\": '',\r\n \"stU_PRIMARYCONTACT\": parentData[index].stU_PRIMARYCONTACT,\r\n \"stS_FFIRSTNAME\": parentData[index].stS_FFIRSTNAME,\r\n \"stS_FMIDNAME\": parentData[index].stS_FMIDNAME,\r\n \"stS_FLASTNAME\": parentData[index].stS_FLASTNAME,\r\n \"stS_FMOBILE\": parentData[index].stS_FMOBILE,\r\n \"stS_FEMAIL\": parentData[index].stS_FEMAIL,\r\n \"stS_MFIRSTNAME\": parentData[index].stS_MFIRSTNAME,\r\n \"stS_MMIDNAME\": parentData[index].stS_MMIDNAME,\r\n \"stS_MLASTNAME\": parentData[index].stS_MLASTNAME,\r\n \"stS_MMOBILE\": parentData[index].stS_MMOBILE,\r\n \"stS_MEMAIL\": parentData[index].stS_MEMAIL,\r\n \"stS_GFULLNAME\": parentData[index].stS_GFULLNAME,\r\n \"stS_GMOBILE\": parentData[index].stS_GMOBILE,\r\n \"stS_GEMAIL\": parentData[index].stS_GEMAIL,\r\n \"stU_SECONDARY_CONTACT\":parentData[index]?.stU_SECONDARY_CONTACT,\r\n \"disableRegistration\": 0,\r\n \"city\": parentData[index]?.city ?? '',\r\n \"house\": parentData[index]?.house ?? '',\r\n \"street\": parentData[index]?.street ?? '',\r\n \"transportType\": parentData[index]?.transportType ?? '',\r\n \"pickupArea\": parentData[index]?.pickupArea ?? '',\r\n \"pickupPoint\": parentData[index]?.pickupPoint ?? '',\r\n \"pickupPointLandMark\": parentData[index]?.pickupPointLandMark ?? '',\r\n \"dropoffArea\": parentData[index]?.dropoffArea ?? '',\r\n \"dropoffPoint\": parentData[index]?.dropoffPoint ?? '',\r\n \"dropoffPointLandMark\": parentData[index]?.dropoffPointLandMark ?? '',\r\n \"busServiceRequestedDate\": 0,\r\n \"picklat\":parentData[index]?.picklat ?? 0,\r\n \"picklog\":parentData[index]?.picklog ?? 0,\r\n \"droplat\":parentData[index]?.droplog ?? 0,\r\n \"droplog\":parentData[index]?.droplog ?? 0,\r\n \"stU_BSU_ID\":bsuId,\r\n \"SBL_ID_DROPOFF\":parentData[index]?.DROPOFFAREA ?? 0,\r\n \"PNT_ID_DROPOFFPOINT\":parentData[index]?.DROPOFFPOINT?? 0,\r\n }\r\n localStorage.setItem('parentDetails', JSON.stringify([parentInfo]));\r\n localStorage.setItem('studParentDetails', JSON.stringify([parentInfo]));\r\n localStorage.removeItem('studentDetails');\r\n localStorage.removeItem(\"addSiblingFromParent\")\r\n this.regService.sendStudentDetails.next([parentInfo]);\r\n this.successPopup(template);\r\n // this.regService.sendStudentDetails.next(parentData) // this line wil be replaced once after getting save details\r\n\r\n }\r\n else {\r\n if(res==\"\" || res==\"0\")\r\n {\r\n this.openMessageDialog(\"Data saved failed.\", true, \"\");\r\n }\r\n else{\r\n this.openMessageDialog(res, true, \"\");\r\n }\r\n }\r\n //localStorage.clear();\r\n },(err:HttpErrorResponse) => {\r\n this.disableSave = false;\r\n this.openMessageDialog(\"Data saved failed.\", true, \"\");\r\n })\r\n }\r\n signinwithuaepass()\r\n {\r\n \r\n window.location.href=this.configServe.uaepass_authorize_uri;\r\n }\r\n downloadsigneddocuments()\r\n {\r\n window.location.href=this.docdownloadurl;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { MessageComponent } from 'src/app/message/message.component';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\n\r\nimport { UaepassService } from 'src/app/service/uaepass.service';\r\nimport * as html2pdf from 'html2pdf.js';\r\n@Component({\r\n selector: 'app-uaepass-callback',\r\n templateUrl: './uaepass-callback.component.html',\r\n styleUrls: ['./uaepass-callback.component.scss']\r\n})\r\nexport class UaepassCallbackComponent implements OnInit {\r\n\r\n constructor(private uaepasservice: UaepassService, private dialog: MatDialog, public router: Router,\r\n private tokenService: TokenService, public regService: RegistrationService) { }\r\n defaultToken: any;\r\n pdfs: any[] = [];\r\n tandcfilteredDatapdf: any;\r\n BusBehaviourCodedatapdf: any;\r\n Parentundertakingapdf: any;\r\n files: File[] = []; //\r\n\r\n ngOnInit(): void {\r\n\r\n const queryString = window.location.search;\r\n\r\n // Create a new URLSearchParams object with the query string\r\n const urlParams = new URLSearchParams(queryString);\r\n\r\n // Get the value of the 'code' parameter\r\n const code = urlParams.get('code');\r\n\r\n const tokenURL = urlParams.get('tokenURL');\r\n const state1=urlParams.get('state');\r\n if(localStorage.processdocument==\"success\")\r\n {\r\n let ret_signed_url=tokenURL+\"&code=\"+code;\r\n let signIdentityId=localStorage.signingIdentity;\r\n let txId=localStorage.txId;\r\n this.uaepasservice.DownloadSignedDoc(ret_signed_url,signIdentityId,txId,'13100112345680','131001','0508262556').subscribe\r\n (downloadres=>\r\n {\r\n // alert(JSON.stringify(downloadres));\r\n const downloadresResponse: ApiResponse = JSON.parse(JSON.stringify(downloadres));\r\n if(downloadresResponse.success==\"true\")\r\n {\r\n const downloadresisSuccess = downloadresResponse.data.isSuccess;\r\n\r\n if(downloadresisSuccess)\r\n {\r\n localStorage.setItem(\"docdownloadurl\",downloadresResponse.data.downloadUrl);\r\n this.openMessageDialog(\"Thank you for signing your document with UAE Pass. Your signed document is now being processed. This may take a moment. Please wait while we finalize the process.\",false,\"\");\r\n }\r\n }\r\n else\r\n {\r\n this.openMessageDialog(downloadresResponse.message, true, \"DownloadSignedDoc: \" + downloadresResponse.message);\r\n }\r\n\r\n })\r\n localStorage.removeItem(\"processdocument\");\r\n }\r\n\r\n \r\n else if (tokenURL) {\r\n this.getToken(tokenURL, code);\r\n }\r\n else {\r\n this.uaepasservice.getUserDetails(code).subscribe(res => {\r\n // alert(JSON.parse(JSON.stringify(res)));\r\n const apiResponse: ApiResponse = JSON.parse(JSON.stringify(res));\r\n // alert(apiResponse.data.isSuccess);\r\n const isSuccess = apiResponse.data.isSuccess;\r\n if (isSuccess) {\r\n\r\n if (apiResponse.data.uaepassUserDetails.userType == \"SOP3\" || apiResponse.data.uaepassUserDetails.userType == \"SOP2\") {\r\n\r\n this.uaepasservice.initateSigning().subscribe(signingresult => {\r\n const signingresultapiResponse: ApiResponse = JSON.parse(JSON.stringify(signingresult));\r\n const signingresultisSuccess = signingresultapiResponse.data.isSuccess;\r\n if (signingresultisSuccess) {\r\n // alert(signingresultapiResponse.data.insitiateSigningURL);\r\n window.location.href = signingresultapiResponse.data.insitiateSigningURL;\r\n\r\n }\r\n else {\r\n this.openMessageDialog(signingresultapiResponse.data.uaepassErrorMessage.error, true, \"INITIATE_SIGNING: \" + apiResponse.data.uaepassErrorMessage.error_description);\r\n }\r\n\r\n })\r\n\r\n }\r\n else {\r\n this.openMessageDialog(\"This user type sould not support the signed documents\", true, \"This user type sould not support the signed documents\");\r\n\r\n }\r\n }\r\n else {\r\n //alert(JSON.stringify( apiResponse.data.uaepassErrorMessage));\r\n this.openMessageDialog(apiResponse.data.uaepassErrorMessage.error, true, apiResponse.data.uaepassErrorMessage.error_description);\r\n\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n getToken(tokenURL: any, code: any) {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getTermsConditions(tokenURL, code);\r\n }\r\n )\r\n }\r\n\r\n getTermsConditions(tokenURL: any, code: any) {\r\n\r\n this.regService.getTermsandConditions(this.defaultToken).subscribe(res => {\r\n\r\n this.pdfs = res?.data\r\n // alert(JSON.stringify(this.pdfs));\r\n this.pdfs.forEach(x => x.isAgree = false);\r\n // Specify the value to filter by\r\n\r\n\r\n // Filter the array based on the specified property and value\r\n var vtermsac = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"TNC\");\r\n // alert(vtermsac.length);\r\n if (vtermsac.length > 0) {\r\n this.tandcfilteredDatapdf = vtermsac.map(item => item.ttcuL_PDF_HTML);\r\n\r\n this.convertHtmlToPdf(this.tandcfilteredDatapdf, \"TnC.pdf\");\r\n\r\n // const tncBlob = new Blob(this.BusBehaviourCodedatapdf, { type: 'application/pdf' });\r\n // const tncFile = this.convertBlobToFile(tncBlob, 'TnC.pdf');\r\n // this.files.push(tncFile);\r\n // alert(this.tandcfilteredDatapdf);\r\n }\r\n\r\n var vbusb = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"BBC\");\r\n if (vbusb.length > 0) {\r\n this.BusBehaviourCodedatapdf = vbusb.map(item => item.ttcuL_PDF_HTML);\r\n this.convertHtmlToPdf(this.BusBehaviourCodedatapdf, \"BBC.pdf\");\r\n // const bbcBlob = new Blob(this.BusBehaviourCodedatapdf, { type: 'application/pdf' });\r\n // const bbcfile = this.convertBlobToFile(bbcBlob, 'BBC.pdf');\r\n\r\n // this.files.push(bbcfile);\r\n }\r\n\r\n var parentUndertaking = this.pdfs.filter(item => item.ttcuL_DOC_TYPE === \"PUT\");\r\n if (parentUndertaking.length > 0) {\r\n this.Parentundertakingapdf = parentUndertaking.map(item => item.ttcuL_PDF_HTML);\r\n //const putBlob = new Blob(this.BusBehaviourCodedatapdf, { type: 'application/pdf' });\r\n this.convertHtmlToPdf(this.Parentundertakingapdf, \"PUT_1223344.pdf\");\r\n // const putFile = this.convertBlobToFile(putBlob, 'PUT_.pdf');\r\n //this.files.push(putFile);\r\n }\r\n setTimeout(() => {\r\n \r\n if (this.files.length > 0) {\r\n let signingurl: any = tokenURL + \"&code=\" + code;\r\n this.uaepasservice.processDocumnetSigning(signingurl, this.files).subscribe(\r\n signres => {\r\n const signresapiResponse: ApiResponse = JSON.parse(JSON.stringify(signres));\r\n // alert(JSON.stringify(signres));\r\n if( signresapiResponse.success==\"false\")\r\n {\r\n this.openMessageDialog(signresapiResponse.message, true, signresapiResponse.message);\r\n\r\n }\r\n else\r\n {\r\n\r\n const signresSuccess = signresapiResponse.data.isSuccess;\r\n if(signresSuccess)\r\n {\r\n let signingIdentity=signresapiResponse.data.signingIdentity;\r\n let txId=signresapiResponse.data.txId;\r\n localStorage.setItem(\"txId\",txId);\r\n localStorage.setItem(\"signingIdentity\",signingIdentity);\r\n // alert(signresapiResponse.data.processSigningURL);\r\n window.location.href=signresapiResponse.data.processSigningURL+\"&fromdoc=docs\";\r\n localStorage.setItem(\"processdocument\",\"success\");\r\n }\r\n else\r\n {\r\n this.openMessageDialog(signresapiResponse.message, true, signresapiResponse.message);\r\n }\r\n }\r\n\r\n }\r\n );\r\n }\r\n else {\r\n this.openMessageDialog(\"No files found\", true, \"No files found\");\r\n }\r\n \r\n }, 3000);\r\n \r\n });\r\n }\r\n convertHtmlToPdf(htmlContent: string, filename: string) {\r\n // Create a new element to hold the HTML content\r\n const element = document.createElement('div');\r\n element.innerHTML = htmlContent;\r\n\r\n // Append the element to the document body\r\n document.body.appendChild(element);\r\n\r\n // Define options for html2pdf\r\n const options = {\r\n margin: [0.5, 0.5, 0.5, 0.5], // margins: top, right, bottom, left\r\n filename: 'document.pdf',\r\n image: { type: 'jpeg', quality: 0.98 },\r\n html2canvas: { scale: 2 },\r\n jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }\r\n };\r\n\r\n // Convert HTML to PDF\r\n html2pdf().from(element).set(options).outputPdf('blob').then((blob: Blob) => {\r\n // Remove the element from the document\r\n document.body.removeChild(element);\r\n\r\n // Handle the Blob, for example, save it or upload it\r\n // Save the Blob as a file\r\n const bbcfile = this.convertBlobToFile(blob, filename);\r\n this.files.push(bbcfile);\r\n // const url = URL.createObjectURL(blob);\r\n // const a = document.createElement('a');\r\n // a.href = url;\r\n // a.download = 'document.pdf';\r\n // a.click();\r\n // URL.revokeObjectURL(url); // Clean up\r\n });\r\n }\r\n private convertBlobToFile(blob: Blob, fileName: string): File {\r\n return new File([blob], fileName, { type: 'application/pdf' });\r\n }\r\n\r\n downloadBlob(blob: Blob, filename: string): void {\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = filename;\r\n a.click();\r\n URL.revokeObjectURL(url); // Clean up\r\n }\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n width: '500px',\r\n panelClass: 'custom-modalbox',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n debugger;\r\n \r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:3,isReactivate:false,isAgreed:true}});\r\n });\r\n }\r\n\r\n\r\n}\r\n// Define interfaces to match the JSON structure\r\ninterface UaepassUserDetails {\r\n sub: string;\r\n fullnameAR: string;\r\n idType: string;\r\n gender: string;\r\n mobile: string;\r\n lastnameEN: string;\r\n fullnameEN: string;\r\n uuid: string;\r\n lastnameAR: string;\r\n idn: string;\r\n nationalityEN: string;\r\n firstnameEN: string;\r\n userType: string;\r\n nationalityAR: string;\r\n firstnameAR: string;\r\n email: string;\r\n\r\n}\r\n\r\ninterface UaepassResponse {\r\n uaepassUserDetails: UaepassUserDetails;\r\n uaepassErrorMessage: Errorresponse | null;\r\n isSuccess: boolean;\r\n insitiateSigningURL: string;\r\n processSigningURL:string;\r\n signingIdentity:string;\r\n txId:string;\r\n downloadUrl:string;\r\n}\r\n\r\ninterface ApiResponse {\r\n cmd: string;\r\n success: string;\r\n responseCode: string;\r\n message: string;\r\n data: UaepassResponse;\r\n}\r\ninterface Errorresponse {\r\n error_description: string;\r\n error: string\r\n}\r\n\r\n\r\n","import { Component, ElementRef, EventEmitter, OnInit, Output, TemplateRef, ViewChild,Inject,Renderer2 } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport html2canvas from 'html2canvas';\r\nimport * as html2pdf from 'html2pdf.js';\r\nimport jsPDF from 'jspdf';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { map } from 'rxjs/operators';\r\nimport { PdfserviceService } from 'src/app/service/pdfservice.service';\r\nimport { saveAs } from 'file-saver';\r\nimport htmlToPdfmake from 'html-to-pdfmake';\r\nimport pdfMake from 'pdfmake/build/pdfmake';\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\n@Component({\r\n selector: 'app-view-terms-and-conditions',\r\n templateUrl: './view-terms-and-conditions.component.html',\r\n styleUrls: ['./view-terms-and-conditions.component.scss']\r\n})\r\nexport class ViewTermsAndConditionsComponent implements OnInit {\r\n pdfName: string=\"Terms and Conditions.pdf\";\r\n defaultToken: any;\r\n index: number;\r\n pdfContent: any;\r\n textPdf: any='';\r\n textPdf2: any='';\r\n textPdf3: any='';\r\n textPdf4: any='';\r\n textPdf5: any='';\r\n textPdf6: any='';\r\n textPdf7:any='';\r\n textPdf8:any='';\r\n textPdf9: any='';\r\n sign: any='';\r\n sign2: any='';\r\n sign3: any='';\r\n sign4: any='';\r\n sign5: any='';\r\n checkbox1:boolean=false;\r\n checkbox2:boolean=false;\r\n city: any;\r\n isGrade: any;\r\n parentData: any;\r\n parentIndex: any;\r\n studentData: any;\r\n studentGrade: string;\r\n academicYr: any;\r\n agreeDisable: boolean=true;\r\n schoolName: any;\r\n pdfType: any;\r\n paramType: any;\r\n showloader:boolean=true;\r\n base64String: string | ArrayBuffer;\r\n isReactivate: boolean = false;\r\n constructor(private dialog: MatDialog,private router: Router,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,private http: HttpClient,\r\n public regservice:RegistrationService,private tokenService: TokenService,private httpClient: HttpClient,\r\n private sanitizer: DomSanitizer,private pdfService: PdfserviceService,public activatedRoute:ActivatedRoute) { }\r\n pdfs:any[]=[];\r\n @ViewChild('downloadContent') downloadContent: ElementRef;\r\n pdfSrc='';\r\n pdfSrc_s='';\r\n @ViewChild('pdfFrame') pdfFrame: ElementRef;\r\n dffSrc_d:SafeResourceUrl;\r\n pdfHtml:any;\r\n @ViewChild('pdf') pdf: ElementRef;\r\n @ViewChild('header') header: ElementRef;\r\n @ViewChild('headerLogo') headerLogo: ElementRef;\r\n @ViewChild('signature') signature: ElementRef;\r\n ngOnInit(): void {\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n this.paramType=params?.type\r\n this.isReactivate = params?.isReactivate;\r\n })\r\n this.getToken();\r\n this.city = JSON.parse(localStorage.getItem(\"schoolDetails\"))?.city;\r\n this.studentGrade=localStorage.getItem(\"studentGrade\");\r\n this.parentData = JSON.parse(localStorage.getItem(\"parentDetails\"));\r\n this.parentIndex= this.parentData?.length == 1 ? 0 : this.parentData.findIndex((x:any)=>x.disableRegistration == 0)\r\n this.parentIndex = this.parentIndex == -1? 0:this.parentIndex;\r\n this.studentData = JSON.parse(localStorage.getItem(\"studentDetails\"));\r\n this.academicYr = localStorage.getItem(\"currentAcademicYear\");\r\n this.schoolName = localStorage.getItem(\"schoolName\")\r\n // this.isGrade= (this.studentGrade.includes('1') && !this.studentGrade.includes('10') && !this.studentGrade.includes('11') && !this.studentGrade.includes('12') ) || (this.studentGrade.includes('2') && !this.studentGrade.includes('12')) || this.studentGrade.includes('3') || this.studentGrade.includes('KG') ? true : false\r\n //this.isGrade= this.studentGrade.includes('01')||this.studentGrade.includes('02') ||this.studentGrade.includes('03') || this.studentGrade.includes('KG') ? true : false;\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getTermsConditions();\r\n }\r\n )\r\n }\r\n getTermsConditions()\r\n {\r\n this.regservice.getTermsandConditions(this.defaultToken).subscribe(res=>{\r\n let pdfData = [];\r\n let parentPdfCount= res?.data.filter(y=>y.ttcuL_DOC_TYPE == 'PUT')?.length;\r\n res?.data.forEach(x=>{\r\n if(this.paramType == \"PUT\")\r\n {\r\n this.isGrade=x?.ttcuL_bShowSiblingInput;\r\n if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount > 1)\r\n { \r\n // let gradeCheck= (x?.ttcuL_TYPE?.includes('1') && !x?.ttcuL_TYPE?.includes('10') && !x?.ttcuL_TYPE?.includes('11') && !x?.ttcuL_TYPE?.includes('12')) || (x?.ttcuL_TYPE?.includes('2') && !x?.ttcuL_TYPE?.includes('12')) || x?.ttcuL_TYPE?.includes('3') || x?.ttcuL_TYPE?.includes('KG') ? true : false;\r\n let gradeCheck= x?.ttcuL_GRD_IDS?.includes('01') || x?.ttcuL_GRD_IDS?.includes('02') || x?.ttcuL_GRD_IDS?.includes('03') || x?.ttcuL_GRD_IDS?.includes('KG') ? true : false;\r\n if((gradeCheck && this.isGrade) || (!gradeCheck && !this.isGrade)) \r\n pdfData.push(x)\r\n }else if(x.ttcuL_DOC_TYPE == 'PUT' && parentPdfCount == 1) pdfData.push(x)\r\n }else{\r\n if(x.ttcuL_DOC_TYPE != 'PUT')\r\n pdfData.push(x)\r\n }\r\n })\r\n \r\n this.pdfs = pdfData\r\n this.pdfs.forEach(x=>x.isAgree=false);\r\n let primaryContactName = this.parentData[this.parentIndex].stU_PRIMARYCONTACT==\"F\" ? this.parentData[this.parentIndex].stS_FFIRSTNAME : (this.parentData[this.parentIndex].stU_PRIMARYCONTACT==\"M\" ? this.parentData[this.parentIndex].stS_MFIRSTNAME : this.parentData[this.parentIndex].stS_GFULLNAME);\r\n\r\n if(this.parentData[this.parentIndex].stU_PRIMARYCONTACT==\"G\"){\r\n let guardianName = this.parentData[this.parentIndex].stS_GFULLNAME?.split(' ')\r\n primaryContactName= guardianName[0];\r\n }\r\n\r\n let payload={\r\n stuNo:this.studentData.stU_SCHOOL_ID,\r\n oluName:primaryContactName\r\n }\r\n this.regservice.getParentUndertakingData(this.defaultToken,payload).subscribe((content:any)=>{\r\n let data:any\r\n if(content.data?.ttcD_DATA)\r\n {\r\n data = JSON.parse(content.data?.ttcD_DATA);\r\n }\r\n this.textPdf= data?.input1 ? data?.input1:primaryContactName;\r\n this.textPdf2 = data?.input2 ? data?.input2:this.studentData.stU_FIRSTNAME;\r\n this.textPdf3 = data?.input3 ? data?.input3: (this.studentData.stU_SCHOOL_ID != \"\" ? this.studentData.stU_SCHOOL_ID : \"N/A\");\r\n this.textPdf4 = this.studentGrade ? this.studentGrade : data?.input4;\r\n this.textPdf5 = data?.input5 ? data?.input5:this.schoolName;\r\n this.textPdf6 = data?.input6 ? data?.input6:'';\r\n this.textPdf7 = data?.input7 ? data?.input7:'';\r\n this.textPdf6 =localStorage.getItem(\"regselecteddroparea\");\r\n // this.textPdf7=localStorage.getItem(\"regselecteddroparea\");\r\n this.textPdf8 = data?.input8 ? data?.input8:'';\r\n this.textPdf9 = data?.input9 ? data?.input9:'';\r\n this.sign = data?.sign1 ? data?.sign1:'';\r\n this.sign2 = data?.sign2 ? data?.sign2:'';\r\n this.sign3 = data?.sign3 ? data?.sign3:'';\r\n this.sign4 = data?.sign4 ? data?.sign4:'';\r\n this.sign5 = data?.sign5 ? data?.sign5:'';\r\n this.checkbox1=data?.checkbox1 ? data?.checkbox1:false;\r\n this.checkbox2=data?.checkbox2 ? data?.checkbox2:false;\r\n this.pdftext();\r\n this.loadPdf(0);\r\n this.showloader=false;\r\n })\r\n })\r\n }\r\n loadPdf(index:number)\r\n {\r\n this.pdfSrc=this.pdfs[index].ttcul_Url_Path\r\n this.pdfSrc_s=this.pdfSrc.replace(\"http://\",\"https://\");\r\n this.dffSrc_d = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfSrc);\r\n this.pdfHtml=this.pdfs[index].ttcuL_PDF_HTML;\r\n // let pTag = document.createElement('p');\r\n // pTag.innerHTML=this.pdfHtml;\r\n // this.pdfContent=pTag.innerText;\r\n this.pdfName=this.pdfs[index].ttcul_Url_Text\r\n this.pdfType=this.pdfs[index].ttcuL_DOC_TYPE\r\n this.index=index;\r\n }\r\n get sanitizedPdfHtml(): SafeHtml { \r\n this.pdfContent=this.sanitizer.bypassSecurityTrustHtml(this.pdfHtml ?? '');\r\n return this.pdfContent }\r\n\r\n pdftext()\r\n {\r\n if((this.city == 'Dubai' && !this.isGrade) || (this.city == 'Qatar' && !this.isGrade) || (this.city == 'Sharjah' && !this.isGrade))\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6)\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }\r\n else if((this.city == 'Sharjah' && this.isGrade) || (this.city == 'Dubai' && this.isGrade))\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6 || !this.textPdf7 || !this.textPdf8 )\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }\r\n else if(this.city == 'Qatar' && this.isGrade)\r\n {\r\n if(!this.textPdf || !this.textPdf2 || !this.textPdf3 || !this.textPdf4 || !this.textPdf5 || !this.textPdf6 || (!this.textPdf7 && this.checkbox1) || (!this.textPdf8 && this.checkbox1) || (!this.textPdf9 && this.checkbox2))\r\n this.agreeDisable=true;\r\n else this.agreeDisable=false;\r\n }else this.agreeDisable=false;\r\n }\r\n agree()\r\n {\r\n this.pdfs[this.index].isAgree =true;\r\n this.index++;\r\n if(this.index <= (this.pdfs.length - 1))\r\n {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth' \r\n });\r\n this.loadPdf(this.index)\r\n }\r\n else{\r\n if(this.paramType == \"PUT\")\r\n {\r\n let jsonstring=JSON.stringify({\r\n \"input1\":this.textPdf,\r\n \"input2\":this.textPdf2,\r\n \"input3\":this.textPdf3,\r\n \"input4\":this.textPdf4,\r\n \"input5\":this.textPdf5,\r\n \"input6\":this.textPdf6,\r\n \"input7\":this.textPdf7,\r\n \"input8\":this.textPdf8,\r\n \"input9\":this.textPdf9,\r\n \"sign1\":this.sign,\r\n \"sign2\":this.sign2,\r\n \"sign3\":this.sign3,\r\n \"sign4\":this.sign4,\r\n \"sign5\":this.sign5,\r\n \"checkbox1\":this.checkbox1,\r\n \"checkbox2\":this.checkbox2\r\n })\r\n let data={\r\n \"TTCUL_ID\":0,\r\n \"OLU_NAME\":this.parentData[this.parentIndex].stU_PRIMARYCONTACT==\"F\" ? this.parentData[this.parentIndex].stS_FFIRSTNAME : this.parentData[this.parentIndex].stS_MFIRSTNAME,\r\n \"STU_NO\":this.studentData.stU_SCHOOL_ID.toString(),\r\n \"TTCD_DATA\":jsonstring,\r\n \"TTCD_MOBILE\": localStorage.getItem(\"primaryMobileNo\"),\r\n \"TTCD_ACD_ID\": localStorage.getItem(\"currentAcademicYearId\"),\r\n \"TTCD_SUBMIT_FROM\": \"Registration\",\r\n \"TTCD_SOURCE\": \"STS_WEB\"\r\n }\r\n this.regservice.saveParentUndertakingData(this.defaultToken,data).subscribe(res=>{ \r\n // let falseIndex = this.pdfs.findIndex(x=>x.isAgree == false)\r\n // if(falseIndex == -1)\r\n // this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:3,isAgreed:true}});\r\n // else \r\n let checksData = JSON.parse(localStorage.getItem(\"termsConditions\"));\r\n let agree:any\r\n if( checksData) \r\n {\r\n agree=checksData?.isAgree ?true:false\r\n } else agree =false;\r\n localStorage.removeItem(\"regselecteddroparea\");\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:3,isAgreed:agree,isReactivate:this.isReactivate}});\r\n })\r\n }else{\r\n let falseIndex = this.pdfs.findIndex(x=>x.isAgree == false)\r\n if(falseIndex == -1)\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:3,isAgreed:true,isReactivate:this.isReactivate}});\r\n else this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:3,isAgreed:false,isReactivate:this.isReactivate}});\r\n }\r\n }\r\n }\r\n \r\n goToPage()\r\n {\r\n if(this.paramType != \"PUT\")\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:0,isAgreed:false,isReactivate:this.isReactivate}})\r\n else{\r\n let checksData = JSON.parse(localStorage.getItem(\"termsConditions\"));\r\n let agree:any\r\n if( checksData) \r\n {\r\n agree=checksData?.isAgree ==\"true\"?true:false\r\n checksData.checkFour=false\r\n localStorage.setItem(\"termsConditions\", JSON.stringify(checksData))\r\n } else agree =false;\r\n this.router.navigate(['/schoolbus-registration'],{queryParams:{tab:0,isAgreed:agree,isReactivate:this.isReactivate}})\r\n }\r\n }\r\n // downloadPdf()\r\n // {\r\n // //this.http.get(this.pdfSrc, { responseType: 'blob' }).subscribe((blob: Blob) => {\r\n // const blob = new Blob([this.pdfSrc], { type: 'application/pdf' });\r\n // const link = document.createElement('a');\r\n // link.href = window.URL.createObjectURL(blob);\r\n // link.download = this.pdfName;\r\n // link.click();\r\n // // });\r\n\r\n // }\r\n convertToBase64(filePath: string) {\r\n fetch(filePath)\r\n .then(response => response.blob())\r\n .then(blob => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this.base64String = reader.result;\r\n };\r\n reader.readAsDataURL(blob);\r\n })\r\n }\r\n\r\n pdfDownload()\r\n {\r\n \r\n // const file = new jsPDF('p', 'mm', 'a4');\r\n // file.text(this.pdf.nativeElement.innerText, 0, 0); \r\n // file.save(this.pdfName + '.pdf');\r\n\r\n\r\n\r\n // const width = this.pdf.nativeElement.clientWidth;\r\n // const height = this.pdf.nativeElement.clientHeight + 40;\r\n \r\n // let jsPdfOptions = {\r\n // format: [width + 50, height + 220]\r\n // };\r\n // const file = new jsPDF(jsPdfOptions);\r\n // file.setFontSize(48);\r\n // file.text(this.pdf.nativeElement.innerText, 25, 100);\r\n // // console.log(this.pdf.nativeElement.innerText)\r\n // file.addPage();\r\n // file.text(this.pdf.nativeElement.innerText, 25, 100);\r\n // file.save(this.pdfName + '.pdf');\r\n var domain=this.regservice.appUrl\r\n var pdfLogo = (this.city == \"Dubai\" || this.city == \"Qatar\")? domain+\"/assets/images/sts-logo.png\": domain+\"/assets/images/bbt-logo.png\";\r\n //this.convertToBase64(pdfLogo);\r\n var content:any;\r\n var headerOption= {\r\n tableAutoSize:true,\r\n imagesByReference:true\r\n }\r\n var pdftitle = (this.city == \"Dubai\" || this.city == \"Qatar\") ? \"School Transport Services LLC\":\"Bright Bus Transport\"\r\n var headerContent= `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
${pdftitle}
${this.pdfName}
`\r\n if(this.header && this.header.nativeElement && this.pdfType=='PUT')\r\n {\r\n content =headerContent+this.removeMetadata(this.header.nativeElement.innerHTML)+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n \r\n }\r\n else\r\n {\r\n content =headerContent+this.removeMetadata(this.pdf.nativeElement.innerHTML);\r\n }\r\n \r\n var html = htmlToPdfmake(content,headerOption); \r\n // else var html = htmlToPdfmake(this.pdf.nativeElement.innerHTML); \r\n const documentDefinition = { content:html.content,images:html.images };\r\n pdfMake.createPdf(documentDefinition).download(this.pdfName); \r\n }\r\n\r\n removeMetadata(html: string): string {\r\n const metadataRegex = /<\\s*(meta|title|link|style|script)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n const nonContentRegex = /<\\s*(head|script|style)[^>]*>.*?<\\/\\s*\\1\\s*>/gi;\r\n\r\n html = html.replace(metadataRegex, '');\r\n html = html.replace(nonContentRegex, '');\r\n return html;\r\n }\r\n\r\n downloadPdf() {\r\n this.regservice.DownloadPDF(this.defaultToken, this.pdfSrc).subscribe(\r\n (res: any) => {\r\n this.saveFile(res);\r\n },\r\n (error) => {\r\n console.error('Error downloading PDF:', error);\r\n }\r\n );\r\n }\r\n\r\n private saveFile(response: any): void {\r\n const blob = new Blob([response], { type: 'application/pdf' });\r\n saveAs(blob, this.pdfName);\r\n }\r\n}\r\n\r\n\r\n","import { Component, OnInit, TemplateRef, Renderer2,Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { RegistrationService } from 'src/app/service/registration.service';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { encryptionService } from 'src/app/service/encryptionService.service';\r\n\r\n@Component({\r\n selector: 'app-schools-list',\r\n templateUrl: './schools-list.component.html',\r\n styleUrls: ['./schools-list.component.scss']\r\n})\r\nexport class SchoolsListComponent implements OnInit {\r\n searchText: any;\r\n digopen: any;\r\n display: any;\r\n center: google.maps.LatLngLiteral = {\r\n lat: 25.276987,\r\n lng: 55.296249\r\n };\r\n zoom = 17;\r\n schoolList:any[]=[];\r\n dialogBox:any\r\n markerOptions: google.maps.MarkerOptions = {\r\n draggable: false\r\n };\r\n mapOption={\r\n disableDefaultUI: true\r\n }\r\n defaultToken: any;\r\n tempSchoolList:any[]=[];\r\n selectedSchool:any;\r\n isEmpty:boolean=false;\r\n filterSchoolId:any;\r\n filterCity:any;\r\n openchatBot: boolean=false;\r\n constructor(private dialog: MatDialog, private router: Router, public registerService: RegistrationService,private renderer: Renderer2, @Inject(DOCUMENT) private document: Document,private tokenService: TokenService,private activatedRoute:ActivatedRoute, private encryptionService: encryptionService) { }\r\n\r\n ngOnInit(): void {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: 'smooth' \r\n });\r\n this.renderer.addClass(this.document.body, 'rm-body-height');\r\n var root = document.getElementsByTagName( 'html' )[0];\r\n this.renderer.addClass(root, 'rm-body-height');\r\n localStorage.removeItem('parentDetails');\r\n localStorage.removeItem('bsU_ID');\r\n localStorage.removeItem('studParentDetails');\r\n localStorage.removeItem('studentDetails');\r\n localStorage.removeItem('disableIds');\r\n localStorage.removeItem('termsConditions');\r\n \r\n this.activatedRoute.queryParams.subscribe(params=>{\r\n if(Object.keys(params).length == 0){\r\n this.getToken();\r\n }else{\r\n if(params?.schoolid || params?.city)\r\n {\r\n if(params?.schoolid){\r\n let schoolId = params.schoolid;\r\n if(schoolId.includes(' ')){\r\n schoolId = schoolId.replace(' ', '+');\r\n }\r\n this.filterSchoolId = this.encryptionService.decryptDES(schoolId);\r\n }else {\r\n this.filterCity = this.encryptionService.decryptDES(params.city);\r\n }\r\n this.getToken();\r\n }else {\r\n this.schoolList = [];\r\n this.tempSchoolList = [];\r\n this.isEmpty = true;\r\n }\r\n }\r\n })\r\n }\r\n\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getSchoolList();\r\n }\r\n )\r\n }\r\n\r\n getSchoolList()\r\n {\r\n this.registerService.getSchoolList(this.defaultToken).subscribe(res=>{\r\n this.schoolList=res;\r\n \r\n if(this.filterSchoolId != null){\r\n this.schoolList = this.schoolList.filter((x:any) => x.bsU_ID == this.filterSchoolId);\r\n }else if(this.filterCity != null){\r\n this.schoolList = this.schoolList.filter((x:any) => x.city?.toLowerCase() == this.filterCity.toLowerCase());\r\n }\r\n\r\n this.isEmpty= this.schoolList.length==0?true:false;\r\n this.tempSchoolList = [...this.schoolList];\r\n localStorage.setItem('schoolList',JSON.stringify(this.tempSchoolList));\r\n localStorage.setItem(\"proceed\",\"false\");\r\n localStorage.setItem(\"showSchool\",\"false\")\r\n this.schoolList.forEach(x=>{\r\n this.markerPositions.push({lat:x?.latitude,lng:x?.longitude})\r\n })\r\n })\r\n }\r\n\r\n searchSchools(search:any)\r\n {\r\n if(search?.value.length >1 || search?.value.length ==0)\r\n {\r\n if(search?.value.length >1)\r\n {\r\n this.schoolList=this.tempSchoolList.filter(x=>x.schoolName.toLowerCase().includes(search?.value.toLowerCase()))\r\n }else{\r\n this.schoolList=this.tempSchoolList;\r\n }\r\n }else{\r\n this.schoolList=this.tempSchoolList;\r\n }\r\n this.isEmpty= this.schoolList.length==0?true:false;\r\n}\r\n\r\nmarkerPositions: google.maps.LatLngLiteral[] = [];\r\n// addMarker(event: google.maps.MapMouseEvent) {\r\n// if (event.latLng != null) this.markerPositions.push(event.latLng.toJSON());\r\n// }\r\n Later(type:any) {\r\n this.dialogBox.close();\r\n if(type == 'registerDialog')\r\n this.router.navigate(['/']);\r\n }\r\n continue(type:any,template?: TemplateRef)\r\n {\r\n this.dialogBox.close();\r\n // if(type=='selectedDialog')\r\n // {\r\n // this.resiterDialog(template);\r\n // }\r\n //else\r\n this.router.navigate(['/schoolbus-registration']);\r\n }\r\n\r\n resiterDialog(template: TemplateRef) {\r\n this.dialogBox= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '700px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n selectedSchoolDialog(template: TemplateRef,selectedSchool:any){\r\n localStorage.setItem('bsU_ID', selectedSchool.bsU_ID);\r\n localStorage.setItem('schoolName', selectedSchool.schoolName);\r\n localStorage.setItem('ishybrid',selectedSchool.ishybrid);\r\n localStorage.setItem('isLeased',selectedSchool.isLeasedSchool);\r\n let schoolDetails ={\r\n city:selectedSchool.city,\r\n bsu_city:selectedSchool.citycode,\r\n provider:selectedSchool.provider,\r\n country:selectedSchool.country,\r\n currency:selectedSchool?.bsU_CURRENCY\r\n }\r\n localStorage.setItem('schoolDetails', JSON.stringify(schoolDetails));\r\n this.selectedSchool=selectedSchool;\r\n this.dialogBox= this.dialog.open(template, {\r\n disableClose: true,\r\n width: '700px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n goToLanding(){\r\n this.router.navigate(['/login']);\r\n }\r\n openDialog(template: TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '380px',\r\n panelClass: ['custom-modalbox', 'searchPopup']\r\n });\r\n if (this.digopen['_overlayRef'].overlayElement) {\r\n this.digopen['_overlayRef'].overlayElement.parentElement.className += ' search-wrapper';\r\n }\r\n }\r\n\r\n openChatBot(){\r\n this.openchatBot = !this.openchatBot;\r\n }\r\n}\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ServiceinfoModule } from './serviceinfo.module';\r\nimport {\r\n AuthenticationService,\r\n CommonService,\r\n ServiceinfoService\r\n} from 'src/app/service';\r\n\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n@Component({\r\n selector: 'app-serviceinfo',\r\n templateUrl: './serviceinfo.component.html',\r\n styleUrls: ['./serviceinfo.component.scss']\r\n})\r\nexport class ServiceinfoComponent implements OnInit {\r\n digopen: any;\r\n school: string = \"\";\r\n childerns: any[] = [];\r\n pickuppoints: [];\r\n selectedchild: any[];\r\n otherDropoffArea: boolean = false;\r\n otherPickupArea: boolean = false;\r\n @ViewChild('tptRequest', { static: false }) tptRequest: TemplateRef;\r\n constructor(\r\n private serviceinfoservice: ServiceinfoService, private dialog: MatDialog\r\n ) { }\r\n public ServiceInfo$ = new Observable(null);\r\n ngOnInit(): void {\r\n this.ServiceInfo$ = this.serviceinfoservice.getServiceInfo().pipe(map((x) =>\r\n\r\n x.data));\r\n\r\n }\r\n OpenTransportRequest(item) {\r\n this.childerns = JSON.parse(localStorage.parentChildrens);\r\n this.selectedchild = this.childerns.filter(function (child) {\r\n return child.studentId == item.studentNo;\r\n });\r\n this.school = this.selectedchild[0].school;\r\n this.getMasers();\r\n this.openDialog(this.tptRequest);\r\n }\r\n openDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n disableClose: true,\r\n width: '800px'\r\n });\r\n\r\n }\r\n closedialog() {\r\n this.digopen.close();\r\n }\r\n getMasers() {\r\n let obj: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT\",\r\n \"param1\": this.selectedchild[0].acdId.toString(),\r\n \"acdid\":localStorage.getItem(\"currentAcademicYearId\"),\r\n \"bsuid\": this.selectedchild[0].bsuId,\r\n\r\n\r\n }\r\n\r\n }\r\n this.serviceinfoservice.getMaster(obj).subscribe(res => {\r\n this.pickuppoints = res[\"data\"];\r\n });\r\n }\r\n PickupAreaChange(val) {\r\n\r\n if (val.value == \"0\") {\r\n this.otherPickupArea = true;\r\n }\r\n else {\r\n this.otherPickupArea = false;\r\n }\r\n }\r\n DropoffAreaChange(val) {\r\n\r\n if (val.value == \"0\") {\r\n this.otherDropoffArea = true;\r\n }\r\n else {\r\n this.otherDropoffArea = false;\r\n }\r\n }\r\n\r\n SaveTransportRequest() {\r\n // let obj: {\r\n // \"ServiceStartDate\": \"2022/09/04\",\r\n // \"AcdId\": this.\r\n\r\n\r\n // };\r\n let obj: any = {\r\n\r\n \"StudentNo\": this.selectedchild[0].studentId.toString(),\r\n \"ServiceStartDate\": \"2022/09/04\",\r\n \"AcdId\": this.selectedchild[0].acdId.toString(),\r\n \"TripTypeId\": \"1\"\r\n\r\n }\r\n\r\n\r\n this.serviceinfoservice.SaveTransportRequest(obj).subscribe(res => {\r\n let r = res;\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-smartbus',\r\n templateUrl: './smartbus.component.html',\r\n styleUrls: ['./smartbus.component.scss']\r\n})\r\nexport class SmartbusComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { TransportserviceService } from 'src/app/transportservice.service';\r\n\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { DatePipe } from '@angular/common';\r\nimport {\r\n AuthenticationService,\r\n CommonService,\r\n ServiceinfoService\r\n} from 'src/app/service';\r\nimport { GoogleMap, MapInfoWindow, MapMarker } from '@angular/google-maps';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n@Component({\r\n selector: 'app-onlineregistration',\r\n templateUrl: './onlineregistration.component.html',\r\n styleUrls: ['./onlineregistration.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class OnlineregistrationComponent implements OnInit {\r\n portalShortCode:string =this.configService.portalShortCode;\r\n logoimage:string=this.configService.logoimageUrl;\r\n @ViewChild('myGoogleMap', { static: false })\r\n map!: GoogleMap;\r\n @ViewChild(MapInfoWindow, { static: false })\r\n info!: MapInfoWindow;\r\n zoom = 12;\r\n maxZoom = 15;\r\n minZoom = 8;\r\n latitude:number;\r\n longitude:number\r\n center!: google.maps.LatLngLiteral;\r\n options: google.maps.MapOptions = {\r\n zoomControl: false,\r\n scrollwheel: false,\r\n disableDoubleClickZoom: true,\r\n mapTypeId: 'hybrid',\r\n maxZoom:this.maxZoom,\r\n minZoom:this.minZoom,\r\n }\r\n markers = [] as any;\r\n infoContent = ''\r\n schools: any;\r\n city: string = \"\"\r\n digopen: any;\r\n school: string = \"\";\r\n childerns: any[] = [];\r\n pickuppoints: [];\r\n transportTypes: [];\r\n emirates: [];\r\n acyear: [];\r\n sGrades: [];\r\n selectedchild: any[];\r\n otherDropoffArea: boolean = false;\r\n otherPickupArea: boolean = false;\r\n fName: string = \"\";\r\n middleName: string = \"\";\r\n lastName: string = \"\";\r\n PoBoxNo: string = \"\";\r\n HBVNo: string = \"\";\r\n sEmirate: any;\r\n StreetAddress: string = \"\";\r\n OfficeTel: string = \"\";\r\n OfficeTelCountry: string = \"\";\r\n OfficeTelArea: string = \"\";\r\n fatherMobileCountry: string = \"\";\r\n fatherMobilelArea: string = \"\";\r\n fatherTel: string = \"\";\r\n motherMobileCountry: string = \"\"\r\n motherMobilelArea: string = \"\";\r\n motherTel: string = \"123456789\";\r\n acdid: number\r\n acGrade: any;\r\n EmergencyMobileCountry: string = \"\";\r\n EmergencyMobilelArea: string = \"\";\r\n Emailaddress: string = \"\";\r\n AlternateEmailaddress: string = \"\";\r\n EmergencyTel: string = \"\"\r\n sfName: string = \"\";\r\n smiddleName: string = \"\";\r\n slastName: string = \"\";\r\n sSchoolId: string = \"\";\r\n sgender: string = \"Male\";\r\n title: string = \"Mr\";\r\n pContact: string = \"Father\";\r\n transportStartDate: Date;\r\n dateofBirth: Date;\r\n @ViewChild('tptRequest', { static: false }) tptRequest: TemplateRef;\r\n constructor(private datePipe: DatePipe, private trnsrequest: TransportserviceService, private trn: MatListModule, private route: ActivatedRoute,\r\n private tokenService: TokenService, private dialog: MatDialog, private serviceinfoservice: ServiceinfoService,\r\n private configService:ConfigService, private snackBar: MatSnackBar) { }\r\n\r\n ngOnInit(): void {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n this.center = {\r\n lat: 25.104565,//position.coords.latitude,\r\n lng: 55.17231//position.coords.longitude,\r\n }\r\n })\r\n this.school = localStorage.NGSchoolName;\r\n this.getMasers();\r\n\r\n }\r\n OpenTransportRequest(item) {\r\n this.childerns = JSON.parse(localStorage.parentChildrens);\r\n this.selectedchild = this.childerns.filter(function (child) {\r\n return child.studentId == item.studentNo;\r\n });\r\n this.school = this.selectedchild[0].school;\r\n // this.getMasers();\r\n // this.openDialog(this.tptRequest);\r\n }\r\n openDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n disableClose: true,\r\n width: '800px'\r\n });\r\n\r\n }\r\n closedialog() {\r\n this.digopen.close();\r\n }\r\n getMasers() {\r\n let tkn = \"\";\r\n this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n\r\n tkn = tknresult.access_token;\r\n let obj: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT\",\r\n \"param1\": \"172\",\r\n \"bsuid\": localStorage.NGSBsuid,\r\n \"acdid\":localStorage.getItem(\"currentAcademicYearId\"),\r\n \"Authorization\": \"Bearer \" + tkn\r\n\r\n }\r\n\r\n }\r\n\r\n let obj1: any = {\r\n headers: {\r\n \"master\": \"TPT_TYPE\",\r\n \"bsuid\": localStorage.NGSBsuid,\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let obj2: any = {\r\n headers: {\r\n \"master\": \"CITY_M\",\r\n \"param1\": \"172\",\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let obj3: any = {\r\n headers: {\r\n \"master\": \"TPT_SERVICE_ACADEMIC_YEAR\",\r\n \"bsuid\": localStorage.NGSBsuid,\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let obj4: any = {\r\n headers: {\r\n \"master\": \"GRADE_M\",\r\n \"acdid\": \"1993\",\r\n \"bsuid\": localStorage.NGSBsuid,\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n }\r\n let otherpoint = {\r\n \"descr\": \"Other\",\r\n \"id\": 0\r\n };\r\n this.serviceinfoservice.getMaster(obj1).subscribe(res => {\r\n this.transportTypes = res[\"data\"];\r\n });\r\n this.serviceinfoservice.getMaster(obj).subscribe(res => {\r\n\r\n res[\"data\"].push(otherpoint);\r\n this.pickuppoints = res[\"data\"];\r\n });\r\n this.serviceinfoservice.getMaster(obj2).subscribe(res => {\r\n this.emirates = res[\"data\"];\r\n });\r\n this.serviceinfoservice.getMaster(obj3).subscribe(res => {\r\n this.acyear = res[\"data\"];\r\n });\r\n this.serviceinfoservice.getMaster(obj4).subscribe(res => {\r\n this.sGrades = res[\"data\"];\r\n });\r\n });\r\n\r\n\r\n }\r\n PickupAreaChange(val) {\r\n\r\n if (val.value == \"0\") {\r\n this.otherPickupArea = true;\r\n }\r\n else {\r\n this.otherPickupArea = false;\r\n }\r\n }\r\n DropoffAreaChange(val) {\r\n\r\n if (val.value == \"0\") {\r\n this.otherDropoffArea = true;\r\n }\r\n else {\r\n this.otherDropoffArea = false;\r\n }\r\n }\r\n\r\n SaveTransportRequest() {\r\n let tkn = \"\";\r\n this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n\r\n tkn = tknresult.access_token;\r\n let objtkn: any = {\r\n headers: {\r\n\r\n \"Authorization\": \"Bearer \" + tkn\r\n\r\n }\r\n\r\n }\r\n let obj: any = {\r\n\r\n \"bsuId\": localStorage.NGSBsuid,\r\n \"startDate\": this.datePipe.transform(this.transportStartDate, \"yyyy-MM-dd\"),// \"2022/09/06\",\r\n \"AcdId\": this.acdid,\r\n \"stuFirstName\": this.sfName,\r\n \"stuMidName\": this.smiddleName,\r\n \"stuLastname\": this.slastName,\r\n \"stuDOB\": this.datePipe.transform(this.dateofBirth, \"yyyy-MM-dd\"),\r\n \"stuGender\": this.sgender,\r\n \"medCondition\": \"\",\r\n \"sblID\": 548,\r\n \"pntID\": 0,\r\n \"sblIDDropOff\": 0,\r\n \"pntIdDropOffPO\": 0,\r\n \"primaryContact\": this.pContact,\r\n \"title\": this.title,\r\n \"pFirstName\": this.fName,\r\n \"pMidName\": this.middleName,\r\n \"pLastName\": this.lastName,\r\n \"poBox\": this.PoBoxNo,\r\n \"emirate\": this.sEmirate,\r\n \"houseNo\": this.HBVNo,\r\n \"address\": this.StreetAddress,\r\n \"offPhone\": this.OfficeTelCountry + this.OfficeTelArea + this.OfficeTel,\r\n \"resPhone\": this.EmergencyMobileCountry + this.EmergencyMobilelArea + this.EmergencyTel,\r\n \"mobilePhone\": this.fatherMobileCountry + this.fatherMobilelArea + this.fatherTel,\r\n \"motherMobile\": this.motherMobileCountry + this.motherMobilelArea + this.motherTel,\r\n \"emergencyMobile\": this.EmergencyMobileCountry + this.EmergencyMobilelArea + this.EmergencyTel,\r\n \"email\": this.Emailaddress,\r\n \"altEmail\": this.AlternateEmailaddress,\r\n \"bSendEmail\": true,\r\n \"bSMS\": true,\r\n \"pickUpLocation\": \"\",\r\n \"regFrom\": \"\",\r\n \"otherPickUp\": this.otherPickupArea,\r\n \"otherDropOff\": this.otherDropoffArea,\r\n \"imageLoc\": \"\",\r\n \"id\": \"\",\r\n \"mtitle\": \"test\",\r\n \"mfirstname\": this.fName,\r\n \"mmidname\": this.middleName,\r\n \"mlastname\": this.lastName,\r\n \"mresphone\": this.motherTel,\r\n \"memail\": this.Emailaddress,\r\n \"gfullname\": \"test\",\r\n \"makani\": \"test\"\r\n\r\n }\r\n\r\n\r\n\r\n this.serviceinfoservice.SaveNonGemsTransportRequest(obj, objtkn).subscribe(res => {\r\n let r = res;\r\n this.snackBar.open('Your Transport request successfully registered, Thank you for using '+this.portalShortCode+' Transport System. ', 'Ok', {\r\n\r\n panelClass: ['nt', 'nt_success'],\r\n horizontalPosition: \"center\",\r\n verticalPosition: \"top\",\r\n\r\n });\r\n });\r\n })\r\n }\r\n eventHandler(event: any ,name:string){\r\n console.log(event,name);\r\n \r\n // Add marker on double click event\r\n if(name === 'mapDblclick' || name==='mapClick'){\r\n this.dropMarker(event)\r\n }\r\n }\r\n dropMarker(event:any) {\r\n this.latitude=event.latLng.lat();\r\n this.longitude=event.latLng.lng();\r\n this.markers=[];\r\n this.markers.push({\r\n position: {\r\n lat: event.latLng.lat(),\r\n lng: event.latLng.lng(),\r\n },\r\n label: {\r\n color: 'blue',\r\n text: 'Marker label ' + (this.markers.length + 1),\r\n },\r\n title: 'Marker title ' + (this.markers.length + 1),\r\n info: 'Marker info ' + (this.markers.length + 1),\r\n options: {\r\n animation: google.maps.Animation.DROP,\r\n },\r\n })\r\n }\r\n openInfo(marker: MapMarker, content: string) {\r\n this.infoContent = content;\r\n this.info.open(marker)\r\n }\r\n zoomIn() {\r\n if (this.zoom < this.maxZoom) this.zoom++;\r\n console.log('Get Zoom',this.map.getZoom());\r\n }\r\n\r\n zoomOut() {\r\n if (this.zoom > this.minZoom) this.zoom--;\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { TransportserviceService } from '../../transportservice.service'\r\nimport { TransportrequestModule } from './transportrequest.module'\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TokenService } from 'src/app/service/token.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar';\r\nimport { environment } from '../../../environments/environment';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n@Component({\r\n selector: 'app-transportrequest',\r\n templateUrl: './transportrequest.component.html',\r\n styleUrls: ['./transportrequest.component.scss']\r\n})\r\n\r\n\r\nexport class TransportrequestComponent implements OnInit {\r\n portalShortCode:string =this.configService.portalShortCode;\r\n logoimage:string=this.configService.logoimageUrl;\r\n schools: any;\r\n city: string = \"\"\r\n digopen: any;\r\n messagetext: string = \"Do you currently use our school bus services?\";\r\n constructor(private trnsrequest: TransportserviceService, private trn: MatListModule, private route: ActivatedRoute,\r\n private tokenService: TokenService, private router: Router, private dialog: MatDialog\r\n , private snackBar: MatSnackBar,private configService:ConfigService) { }\r\n @ViewChild('confirmtemplet', { static: false }) confirmtemplet: TemplateRef;\r\n ngOnInit(): void {\r\n this.route.queryParams\r\n .subscribe(params => {\r\n\r\n this.city = params.city;\r\n\r\n }\r\n );\r\n let tkn = \"\";\r\n this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n\r\n tkn = tknresult.access_token;\r\n let obj: any = {\r\n headers: {\r\n \"city\": this.city == undefined ? \"\" : this.city,\r\n \"Language\": \"En\",\r\n \"Authorization\": \"Bearer \" + tkn\r\n }\r\n\r\n }\r\n this.trnsrequest.GetNonGemsSchoolsListByCity(obj).subscribe(bsulist => {\r\n this.schools = bsulist['data'];\r\n });\r\n }\r\n\r\n );\r\n\r\n }\r\n OpenTransportRequest(sName: string, bsuid: string) {\r\n\r\n localStorage.setItem(\"NGSBsuid\", bsuid);\r\n localStorage.setItem(\"NGSchoolName\", sName);\r\n this.openDialog(this.confirmtemplet);\r\n //this.router.navigate(['/onlineregistration']);\r\n }\r\n openDialog(templateRef: TemplateRef) {\r\n this.digopen = this.dialog.open(templateRef, {\r\n disableClose: true,\r\n width: '800px'\r\n });\r\n\r\n }\r\n OpenRegForm() {\r\n this.closedialog();\r\n this.router.navigate(['/onlineregistration']);\r\n }\r\n closedialog() {\r\n this.digopen.close();\r\n }\r\n confirmclosedialog() {\r\n this.closedialog();\r\n this.snackBar.open('Thank you for using ' + this.portalShortCode+ ' Transport System! Re-registration is not required', 'Ok', {\r\n\r\n panelClass: ['nt', 'nt_success'],\r\n horizontalPosition: \"center\",\r\n verticalPosition: \"top\",\r\n\r\n });\r\n }\r\n}\r\n","export class UrlRedirect{\r\n\r\n getRedirectUrl(key:string){\r\n var redirectUrl =RedirectUrls[key];\r\n return redirectUrl;\r\n }\r\n\r\n}\r\n\r\nexport const RedirectUrls:{[key:string]:{redirectUrl:string,redirectTitle:string,redirectType:string}}={\r\n \"REGISTRATION_LOGIN_HOME\":{redirectUrl:\"login\",redirectTitle:\"Click here to login\",redirectType:\"redirect\"},\r\n \"REGISTRATION_LOGIN\":{redirectUrl:\"login\",redirectTitle:\"Click here to login\",redirectType:\"redirect\"},\r\n \"REGISTRATION_REGISTER_HOME\":{redirectUrl:\"schools-list\",redirectTitle:\"Click here to register\",redirectType:\"redirect\"},\r\n \"REGISTRATION_REGISTER\":{redirectUrl:\"schools-list\",redirectTitle:\"Click here to register\",redirectType:\"redirect\"},\r\n \"REQUEST_CALLBACK_HOME\":{redirectUrl:\"requestCallback\",redirectTitle:\"Click here to proceed\",redirectType:\"open-modal\"},\r\n \"REQUEST_CALLBACK\":{redirectUrl:\"/?type=requestCallback\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"REDIRECT_OFFERS_HOME\":{redirectUrl:\"new-offers\",redirectTitle:\"Click here to proceed\",redirectType:\"scroll\"},\r\n \"REDIRECT_OFFERS\":{redirectUrl:\"/?type=new-offers\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"PAYMENT_HISTORY\":{redirectUrl:\"payment-history?id=\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"LAST_PAYMENT\":{redirectUrl:\"payment-history?id=\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"CONTACT_SDE\":{redirectUrl:\"contact-sde\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"SERVICE_REQUEST\":{redirectUrl:\"service-request\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"RE_ACTIVATE\":{redirectUrl:\"transport-information\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"AREA_CHANGE\":{redirectUrl:\"request-area-change\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"REGISTER_SIBLING\":{redirectUrl:\"registerNow\",redirectTitle:\"Click here to proceed\",redirectType:\"method\"},\r\n \"REQUEST_SCHEDULE_CHANGE\":{redirectUrl:\"schedule-change\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"RE_REGISTER\":{redirectUrl:\"transport-information?showReRegister=true\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"DISCONTINUE_SERVICE\":{redirectUrl:\"transport-discontinuation\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"},\r\n \"RECOVER_PASSWORD_HOME\":{redirectUrl:\"forgot\",redirectTitle:\"Proceed to Trouble Signing In\",redirectType:\"redirect\"},\r\n \"RECOVER_PASSWORD\":{redirectUrl:\"forgot\",redirectTitle:\"Proceed to Trouble Signing In\",redirectType:\"redirect\"},\r\n \"CONTACT_CHANGE\":{redirectUrl:\"request-for-contact-change\",redirectTitle:\"Click here to proceed\",redirectType:\"redirect\"}\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { LandingPageComponent } from './landing-page.component';\r\n\r\n// const routes: Routes = [\r\n// {\r\n// path: '',\r\n// component: LandingPageComponent\r\n// }\r\n// ];\r\n\r\n// @NgModule({\r\n// imports: [RouterModule.forChild(routes)],\r\n// exports: [RouterModule]\r\n// })\r\nexport class LandingRoutingModule { }\r\n","import { Component, OnInit, HostListener, TemplateRef, ViewChild, ElementRef, Pipe, Renderer2, ViewChildren, QueryList } from '@angular/core';\r\nimport { CarouselComponent, OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HomeService } from '../service/home.service';\r\nimport { Observable, ReplaySubject } from 'rxjs';\r\nimport { TokenService } from '../service/token.service';\r\nimport { ErrorSupportForm, PreLoginSupport } from '../models/landing.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport {\r\n MatSnackBar,\r\n MatSnackBarHorizontalPosition,\r\n MatSnackBarVerticalPosition,\r\n} from '@angular/material/snack-bar';\r\nimport {\r\n MatDialog, MatDialogRef,\r\n MatDialogTitle,\r\n MatDialogContent,\r\n MatDialogActions,\r\n MatDialogClose,\r\n} from '@angular/material/dialog';\r\nimport { TransportScheduleChangeWidgetComponent } from '../features/home/dashboard-widgets/transport-schedule-change-widget/transport-schedule-change-widget.component';\r\nimport { FormControl, FormGroup } from 'ngx-typesafe-forms';\r\nimport { requestCallback } from '../models/requestCallback.model';\r\nimport { Validators } from '@angular/forms';\r\nimport { MessageComponent } from '../message/message.component';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\nimport parsePhoneNumberFromString from 'libphonenumber-js';\r\nimport { RegistrationService } from '../service/registration.service';\r\nimport { ServiceinfoService } from '../service';\r\nimport { ConfigService } from '../service/config.service';\r\nimport { ChatMessage } from '../models/chatbot.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-landing-page',\r\n templateUrl: './landing-page.component.html',\r\n styleUrls: ['./landing-page.component.scss'],\r\n providers: [DatePipe]\r\n})\r\n@Pipe({\r\n name: 'safeHtml'\r\n})\r\nexport class LandingPageComponent implements OnInit {\r\n @ViewChild('requestCallback', { static: false }) requestCallback: TemplateRef;\r\n name = 'Angular 6';\r\n public selected = false;\r\n openchatBot: any;\r\n public sections = 4;\r\n\r\n public scroll;\r\n\r\n digopen: any;\r\n digSucessopen: any;\r\n mailErr: boolean = false;\r\n carouselOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n autoWidth: true,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 400,\r\n nav: true,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 2.50,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 2.50,\r\n },\r\n 992: {\r\n items: 2.50\r\n },\r\n 1200: {\r\n items: 2.50\r\n },\r\n }\r\n };\r\n carouselNewsOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n autoWidth: true,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 400,\r\n nav: true,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 2.50,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 2.50,\r\n },\r\n 992: {\r\n items: 2.50\r\n },\r\n 1200: {\r\n items: 2.50\r\n },\r\n }\r\n };\r\n carouselOffersOptions: OwlOptions = {\r\n loop: false,\r\n autoplay: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n autoWidth: true,\r\n dots: false,\r\n navSpeed: 400,\r\n nav: true,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 2.50,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 768: {\r\n items: 2.50,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 992: {\r\n items: 2.50,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1024: {\r\n items: 2.50,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1200: {\r\n items: 2.50,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n }\r\n };\r\n\r\n carouselserviceOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n autoWidth: true,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: true,\r\n navSpeed: 400,\r\n nav: false,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 2.50,\r\n stagePadding: 150,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n mouseDrag: true,\r\n autoWidth: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 768: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n autoWidth: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 992: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n autoWidth: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1024: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n autoWidth: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1200: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n autoWidth: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1400: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n autoWidth: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n }\r\n };\r\n\r\n carouselLocationOptions: OwlOptions;\r\n\r\n carouselServiceOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 400,\r\n autoWidth: true,\r\n nav: false,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 1,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 1\r\n },\r\n 992: {\r\n items: 1\r\n },\r\n 1024: {\r\n items: 1\r\n },\r\n 1200: {\r\n items: 1\r\n },\r\n }\r\n };\r\n products: any[] = [\r\n { class: 'red' },\r\n { class: 'green' },\r\n { class: 'blue' },\r\n { class: 'pink' },\r\n { class: 'gray' },\r\n { class: 'violet' },\r\n { class: 'brown' },\r\n ];\r\n offersImage: any[] = [];\r\n latestNews: any[] = [];\r\n defaultToken: any = '';\r\n postSupportData: PreLoginSupport = new PreLoginSupport();\r\n errorModel: ErrorSupportForm = new ErrorSupportForm()\r\n categoryList: any[] = [];\r\n date: any = new Date();\r\n imageName: any = '';\r\n pattern = '^[a-zA-Z]{1}[a-zA-Z0-9.\\-_]*@[a-zA-Z]{1}[a-zA-Z.-]*[a-zA-Z]{1}[.][a-zA-Z]{2,}$';\r\n horizontalPosition: MatSnackBarHorizontalPosition = 'start';\r\n verticalPosition: MatSnackBarVerticalPosition = 'top';\r\n awards: any[] = [];\r\n accreditation: any[] = [];\r\n partnership: any[] = [];\r\n location: any[] = [];\r\n isPrev: boolean = true; //set to false for disable/enable function\r\n isNext: boolean = true;\r\n isNewsPrev: boolean = true; //set to false for disable/enable function\r\n isNewsNext: boolean = true;\r\n isAccPrev: boolean = true; //set to false for disable/enable function\r\n isAccNext: boolean = true;\r\n isPartnerPrev: boolean = true; //set to false for disable/enable function\r\n isPartnerNext: boolean = true;\r\n isAccreditation: boolean = false;\r\n isAwards: boolean = true;\r\n isPartnership: boolean = false;\r\n partnershipLoop: boolean = true;\r\n accLoop: boolean = true;\r\n awardLoop: boolean = true;\r\n callBackForm = new FormGroup({\r\n name: new FormControl('', [Validators.required]),\r\n city: new FormControl('', [Validators.required]),\r\n description: new FormControl('', [Validators.required]),\r\n phone: new FormControl('', [Validators.required]),\r\n captcha: new FormControl('', [Validators.required]),\r\n })\r\n count: number = 0;\r\n city: any[] = [];\r\n @ViewChild('carousel') carousel: CarouselComponent;\r\n @ViewChild('newsCarousel') newsCarousel: CarouselComponent;\r\n @ViewChild('Accreditcarousel') Accreditcarousel: CarouselComponent;\r\n @ViewChild('partnershipcarousel') partnershipcarousel: CarouselComponent;\r\n @ViewChild('sectionContainer') sectionContainer: ElementRef;\r\n msg: string = \"\";\r\n isError: boolean = false;\r\n invalidFile: boolean = false;\r\n invalidFileSize: boolean = false;\r\n mdsimage: string;\r\n mdsdescription: string;\r\n mdstitle: string;\r\n disableSubscribe: boolean = true;\r\n mail: any;\r\n emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\r\n offersForm = new FormGroup({\r\n school: new FormControl('', [Validators.required]),\r\n name: new FormControl('', [Validators.required]),\r\n startDate: new FormControl('', [Validators.required]),\r\n grade: new FormControl('', [Validators.required]),\r\n dob: new FormControl('', [Validators.required]),\r\n schoolId: new FormControl('', [Validators.required]),\r\n phone: new FormControl('', [Validators.required]),\r\n parentName: new FormControl('', [Validators.required]),\r\n area: new FormControl('', [Validators.required]),\r\n emailId: new FormControl('', [Validators.required])\r\n })\r\n nationalnumber: any;\r\n schoolList: any[] = [];\r\n gradeList: any[] = [];\r\n countries = ['ae', 'qa'];\r\n selectedCountries: string = 'ae';\r\n pickUpPoints: any[] = [];\r\n bsuId: any;\r\n academicYrList: any[] = [];\r\n startDate: any;\r\n acdId: any;\r\n maxDate: Date = new Date();\r\n maxDobDate:Date=new Date(new Date().getFullYear()-1, null,null);\r\n emailErr: boolean = false;\r\n schoolDropdownList: any[] = [];\r\n selectedOffer: any;\r\n isUAENoValid: boolean = false;\r\n isUAENoValidCallback: boolean = false;\r\n token: any\r\n dubaiCountryId = '172';\r\n qatarCountryId = '97';\r\n siteKey: any;\r\n templateMap: { [key: string]: TemplateRef } = {};\r\n\r\n constructor(private homeService: HomeService, private router: Router, private tokenService: TokenService, private datePipe: DatePipe, private _snackBar: MatSnackBar,\r\n private dialog: MatDialog, public registerService: RegistrationService, private serviceinfoService: ServiceinfoService\r\n , private sanitizer: DomSanitizer, private renderer: Renderer2, private configService: ConfigService,private route:ActivatedRoute) {\r\n this.getToken();\r\n }\r\n transform(value: string): SafeHtml {\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n ngOnInit() {\r\n\r\n localStorage.clear();\r\n this.postSupportData.dtime = this.datePipe.transform(this.date, 'yyyy-MM-dd');\r\n this.renderer.listen(window, 'scroll', ($event) => {\r\n this.scroll = (window.scrollY / this.sections);\r\n console.log(this.scroll)\r\n })\r\n this.siteKey = this.configService.captchaAPIKey;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.templateMap['requestCallback'] = this.requestCallback;\r\n this.route.queryParams.subscribe(param=>{\r\n if(param['type']){\r\n let type=param['type'];\r\n let message={redirectUrl:type,redirectType:\"\"};;\r\n if(type=='requestCallback'){\r\n message.redirectType='open-modal';\r\n }\r\n else if(type=='new-offers'){\r\n message.redirectType='scroll';\r\n }\r\n this.redirectEvent(message);\r\n }\r\n });\r\n }\r\n \r\n public navigateToSection(section: string) {\r\n window.location.hash = '';\r\n window.location.hash = section;\r\n }\r\n\r\n\r\n\r\n openDialog(template: TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '550px',\r\n panelClass: ['custom-modalbox', 'rm-padding-matcontainer']\r\n });\r\n }\r\n successMsgPopup(template: TemplateRef) {\r\n this.digSucessopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '500px',\r\n panelClass: 'custom-modalbox'\r\n });\r\n }\r\n scrolled: boolean = false;\r\n @HostListener(\"window:scroll\", [])\r\n onWindowScroll() {\r\n this.scrolled = window.scrollY > 0;\r\n }\r\n getLatestNews() {\r\n this.homeService.getNews(this.defaultToken).subscribe(\r\n res => {\r\n this.latestNews = res\r\n // this.latestNews = [\r\n // { class: 'red', title:'red' },\r\n // { class: 'green',title:'green' },\r\n // { class: 'blue',title:'blue' },\r\n // { class: 'pink',title:'pink' },\r\n // { class: 'gray',title:'pink' },\r\n // { class: 'violet',title:'pink' },\r\n // { class: 'brown',title:'pink' },\r\n // ]\r\n },\r\n (error) => {\r\n\r\n }\r\n )\r\n }\r\n goToLogin() {\r\n this.router.navigate(['/login']);\r\n }\r\n goToLanding() {\r\n this.router.navigate(['/']);\r\n }\r\n getToken() {\r\n this.tokenService.GetToken(null).subscribe(\r\n res => {\r\n this.defaultToken = res?.access_token;\r\n this.getAwards();\r\n this.getAccreditation();\r\n this.getPartnership();\r\n this.getLocation();\r\n this.getMdsMessage();\r\n this.getLatestNews();\r\n this.getCategoriesData();\r\n this.getCity(this.dubaiCountryId);\r\n this.getOffers()\r\n }\r\n )\r\n }\r\n handleFileInputChange(files: any) {\r\n //alert(files.target.files[0]);\r\n console.log(files.target.files[0]);\r\n\r\n let fileData: any;\r\n\r\n fileData = files.target.files[0];\r\n let type: any = '';\r\n type = fileData?.type.split('/')[1];\r\n let extName: any = '';\r\n extName = fileData?.name.split('.')[1];\r\n let filesize: any = '';\r\n filesize = fileData?.size;\r\n //alert(filesize);\r\n if ((type == 'png' || type == 'jpg' || type == 'jpeg') || (extName == 'doc' || extName == 'docx' || extName == 'pdf')) {\r\n this.invalidFile = false;\r\n\r\n }\r\n else {\r\n this.invalidFile = true;\r\n this.imageName = '';\r\n this.postSupportData.imgname = '';\r\n this.postSupportData.imgtype = '';\r\n }\r\n if (filesize <= 5242880) {\r\n this.invalidFileSize = false;\r\n } else {\r\n this.invalidFileSize = true;\r\n this.imageName = '';\r\n this.postSupportData.imgname = '';\r\n this.postSupportData.imgtype = '';\r\n }\r\n if (!this.invalidFile && !this.invalidFileSize) {\r\n this.imageName = fileData?.name;\r\n this.postSupportData.imgname = fileData?.name;\r\n this.postSupportData.imgtype = fileData?.type;\r\n\r\n this.convertFile(files.target.files[0]).subscribe(base64 => {\r\n this.postSupportData.imgdata = base64;\r\n });\r\n }\r\n\r\n }\r\n convertFile(file: File): Observable {\r\n const result = new ReplaySubject(1);\r\n const reader = new FileReader();\r\n reader.readAsBinaryString(file);\r\n reader.onload = (event) => result.next(btoa(event.target.result.toString()));\r\n return result;\r\n }\r\n\r\n getCategoriesData() {\r\n this.homeService.getCategoriesData(this.defaultToken).subscribe(\r\n res => {\r\n this.categoryList = res?.data[0]?.appSubDetails\r\n }\r\n )\r\n }\r\n\r\n getAwards() {\r\n this.homeService.getAwards(this.defaultToken).subscribe(\r\n res => {\r\n this.awards = res;\r\n this.awardLoop = this.awards.length == 1 ? false : true;\r\n this.carouselOptions2 = {\r\n loop: false,\r\n autoplay: false,\r\n //autoWidth:this.awardLoop,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n nav: true,\r\n navText: ['
', '
'],\r\n dots: false,\r\n items: 2.5,\r\n stagePadding: 150,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n nav: true,\r\n stagePadding: 0,\r\n autoWidth: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 600: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1000: {\r\n items: 2,\r\n stagePadding: 150,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n }\r\n }\r\n };\r\n\r\n })\r\n }\r\n getAccreditation() {\r\n this.homeService.getAccreditation(this.defaultToken).subscribe(\r\n res => {\r\n this.accreditation = res;\r\n this.accLoop = this.accreditation.length == 1 ? false : true\r\n this.carouselOptions21 = {\r\n loop: false,\r\n autoplay: false,\r\n // autoWidth:this.accLoop,\r\n nav: true,\r\n navText: ['
', '
'],\r\n dots: false,\r\n items: 2.5,\r\n stagePadding: 150,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n loop: false,\r\n stagePadding: 0,\r\n nav: true,\r\n },\r\n 600: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false\r\n },\r\n 1000: {\r\n items: 2,\r\n stagePadding: 150,\r\n loop: false\r\n }\r\n }\r\n };\r\n })\r\n }\r\n getPartnership() {\r\n this.homeService.getPartnership(this.defaultToken).subscribe(\r\n res => {\r\n this.partnership = res;\r\n this.partnershipLoop = this.partnership.length == 1 ? false : true\r\n this.carouselOptions22 = {\r\n loop: false,\r\n autoplay: false,\r\n // autoWidth:this.partnershipLoop,\r\n nav: true,\r\n navText: ['
', '
'],\r\n dots: false,\r\n items: 2.5,\r\n stagePadding: 150,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n loop: false,\r\n stagePadding: 0,\r\n nav: true,\r\n },\r\n 600: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false\r\n },\r\n 1000: {\r\n items: 2,\r\n stagePadding: 150,\r\n loop: false\r\n }\r\n }\r\n };\r\n })\r\n }\r\n\r\n // news carousel option setting\r\n carouselOptions1: OwlOptions = {\r\n loop: false,\r\n autoplay: false,\r\n nav: true,\r\n navText: ['
', '
'],\r\n dots: false,\r\n items: 2.5,\r\n stagePadding: 150,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n stagePadding: 30,\r\n nav: false,\r\n dots: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 600: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1000: {\r\n items: 2,\r\n stagePadding: 150,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n }\r\n }\r\n };\r\n\r\n // Location\r\n carouselOptionsLoc: OwlOptions = {\r\n loop: false,\r\n mouseDrag: false,\r\n touchDrag: false,\r\n pullDrag: false,\r\n autoplay: false,\r\n nav: false,\r\n dots: true,\r\n items: 2.5,\r\n stagePadding: 150,\r\n responsive: {\r\n 0: {\r\n items: 1,\r\n stagePadding: 30,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 600: {\r\n items: 2,\r\n stagePadding: 0,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n },\r\n 1000: {\r\n items: 2,\r\n stagePadding: 150,\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n }\r\n }\r\n // loop: false,\r\n // mouseDrag: false,\r\n // touchDrag: false,\r\n // pullDrag: false,\r\n // dots: true,\r\n // navSpeed: 400,\r\n // nav: false,\r\n // center: false,\r\n // startPosition: 0,\r\n // items: 2.50,\r\n // responsive: {\r\n // 0: {\r\n // items: 1.25\r\n // },\r\n // 768: {\r\n // items: 2.50\r\n // },\r\n // 992: {\r\n // items: 2.50\r\n // },\r\n // 1200: {\r\n // items: 2.50\r\n // },\r\n // }\r\n };\r\n\r\n // For News\r\n newsCaruoselSlide(button: any) {\r\n if (button == 'prev' && this.isNewsPrev) {\r\n this.newsCarousel.prev();\r\n }\r\n else if (button == 'next' && this.isNewsNext) {\r\n this.newsCarousel.next();\r\n }\r\n }\r\n\r\n // For Awards\r\n caruoselSlide(button: any) {\r\n if (button == 'prev' && this.isPrev) {\r\n this.carousel.prev();\r\n }\r\n else if (button == 'next' && this.isNext) {\r\n this.carousel.next();\r\n }\r\n // setTimeout(()=>{\r\n // this.caruoselEvent();\r\n // },100)\r\n }\r\n\r\n // For Accreditation\r\n accreditCaruoselSlide(button: any) {\r\n if (button == 'prev' && this.isAccPrev) {\r\n this.Accreditcarousel.prev();\r\n }\r\n else if (button == 'next' && this.isAccNext) {\r\n this.Accreditcarousel.next();\r\n }\r\n }\r\n\r\n // For Partnership\r\n partnerCaruoselSlide(button: any) {\r\n if (button == 'prev' && this.isPartnerPrev) {\r\n this.partnershipcarousel.prev();\r\n }\r\n else if (button == 'next' && this.isPartnerNext) {\r\n this.partnershipcarousel.next();\r\n }\r\n }\r\n\r\n tabChanges(type: any) {\r\n if (type?.index == 0) {\r\n this.isAwards = true;\r\n this.isAccreditation = false;\r\n this.isPartnership = false;\r\n }\r\n else if (type?.index == 1) {\r\n this.isAwards = false;\r\n this.isAccreditation = true;\r\n this.isPartnership = false;\r\n }\r\n else if (type?.index == 2) {\r\n this.isAwards = false;\r\n this.isAccreditation = false;\r\n this.isPartnership = true;\r\n }\r\n }\r\n\r\n //For disable/enable carousel -> Awards\r\n caruoselEvent() {\r\n if (!this.carousel.slidesData[0].isActive && !this.carousel.slidesData[this.carousel.slidesData.length - 1].isActive) {\r\n this.isPrev = true;\r\n this.isNext = true;\r\n }\r\n else if (this.carousel.slidesData[0].isActive && this.carousel.slidesData[this.carousel.slidesData.length - 1].isActive) {\r\n this.isPrev = false;\r\n this.isNext = false;\r\n }\r\n else if (!this.carousel.slidesData[0].isActive && this.carousel.slidesData[this.carousel.slidesData.length - 1].isActive) {\r\n this.isPrev = true;\r\n this.isNext = false;\r\n }\r\n else if (this.carousel.slidesData[0].isActive && !this.carousel.slidesData[this.carousel.slidesData.length - 1].isActive) {\r\n this.isPrev = false;\r\n this.isNext = true;\r\n }\r\n }\r\n // awards carousel option setting\r\n carouselOptions2: OwlOptions\r\n carouselOptions21: OwlOptions\r\n\r\n carouselOptions22: OwlOptions\r\n\r\n getLocation() {\r\n this.homeService.getLocation(this.defaultToken).subscribe(\r\n res => {\r\n this.location = res;\r\n this.location.forEach(loc => {\r\n let address = loc.address.split('||')\r\n loc.splitAddress = address;\r\n })\r\n this.carouselLocationOptions = {\r\n loop: false,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: true,\r\n dots: false,\r\n navSpeed: 400,\r\n nav: false,\r\n navText: ['
', '
'],\r\n center: false,\r\n startPosition: 0,\r\n items: 2.50,\r\n responsive: {\r\n 0: {\r\n items: 1\r\n },\r\n 768: {\r\n items: 2.50\r\n },\r\n 992: {\r\n items: 2.50\r\n },\r\n 1024: {\r\n items: 2.50\r\n },\r\n 1200: {\r\n items: 2.50\r\n },\r\n }\r\n };\r\n })\r\n }\r\n\r\n getOffers() {\r\n this.homeService.getOffers(this.defaultToken, \"PRELOGIN\", 0).subscribe(res => {\r\n this.offersImage = res?.data;\r\n })\r\n }\r\n\r\n submitSupport() {\r\n if (this.postSupportData.titleID == null || this.postSupportData.titleID == '') {\r\n this.errorModel.IsTitleID = true\r\n } else {\r\n this.errorModel.IsTitleID = false\r\n if (this.postSupportData.details == null || this.postSupportData.details == '') {\r\n this.errorModel.IsDescription = true\r\n } else {\r\n this.errorModel.IsDescription = false\r\n\r\n }\r\n if (this.postSupportData.email == null || this.postSupportData.email == '') {\r\n this.errorModel.IsEmail = true\r\n } else {\r\n this.errorModel.IsEmail = false\r\n\r\n }\r\n this.postSupportData.dtime = this.datePipe.transform(this.date, 'yyyy-MM-dd');\r\n if (!this.errorModel.IsTitleID && !this.errorModel.IsDescription && !this.errorModel.IsEmail) {\r\n this.homeService.postComplaint(this.postSupportData, this.defaultToken).subscribe(\r\n res => {\r\n if (res.Success == \"true\") {\r\n // this._snackBar.open('Request send successfully.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.postSupportData = new PreLoginSupport();\r\n this.imageName = '';\r\n this.invalidFile = false;\r\n this.invalidFileSize = false;\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n } else {\r\n // this._snackBar.open('Something went wrong.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.openMessageDialog(res?.Message, false, \"\");\r\n\r\n }\r\n\r\n }\r\n )\r\n }\r\n\r\n }\r\n }\r\n trackedValue(index, item) {\r\n return item.id;\r\n }\r\n\r\n openMessageDialog(msg: string, iseror: boolean, errormessage: string): void {\r\n const dialogRef = this.dialog.open(MessageComponent, {\r\n // minWidth: '500px',\r\n panelClass: 'custom-modalbox',\r\n width: '550px',\r\n data: {\r\n msg: msg,\r\n isError: iseror,\r\n errmessage: errormessage,\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n // this.goToLogin()\r\n this.cancel();\r\n });\r\n }\r\n cancelComplaint() {\r\n this.postSupportData = new PreLoginSupport();\r\n this.imageName = '';\r\n this.invalidFile = false;\r\n this.invalidFileSize = false;\r\n }\r\n\r\n //Request callback\r\n\r\n getCity(cityId:any) {\r\n this.homeService.getCity('preLogin', this.defaultToken, cityId).subscribe(\r\n res => {\r\n this.city = res?.data;\r\n })\r\n\r\n\r\n }\r\n\r\n checkName() {\r\n if (this.callBackForm.controls.name?.value?.trim() == \"\") {\r\n this.callBackForm.patchValue({ name: '' })\r\n }\r\n }\r\n onDescChange() {\r\n if (this.callBackForm.controls.description.value && this.callBackForm.controls.description.value.trim() != \"\") {\r\n this.count = this.callBackForm.controls.description.value.length;\r\n }\r\n else {\r\n this.count = 0\r\n this.callBackForm.patchValue({ description: this.callBackForm.controls.description.value.trim() == \"\" ? \"\" : this.callBackForm.controls.description.value })\r\n }\r\n }\r\n\r\n cancel() {\r\n this.digopen?.close();\r\n this.callBackForm.reset();\r\n this.callBackForm.controls.captcha.markAsUntouched();\r\n this.count = 0;\r\n this.isUAENoValidCallback = false;\r\n }\r\n\r\n navigateToTargetPage(pagelink: string) {\r\n this.router.navigate([pagelink]);\r\n }\r\n onSubmit(template: any) {\r\n this.callBackForm.markAllAsTouched();\r\n if (this.callBackForm.valid) {\r\n let formData = {\r\n name: this.callBackForm.controls.name.value,\r\n city: this.callBackForm.controls.city.value,\r\n description: this.callBackForm.controls.description.value,\r\n phone: this.callBackForm.controls.phone.value\r\n }\r\n this.homeService.postCallback(formData, 'preLogin', this.defaultToken).subscribe(res => {\r\n console.log(res)\r\n if (res.Success == \"true\") {\r\n // this._snackBar.open('Request send successfully.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n this.cancel();\r\n this.isError = false;\r\n this.msg = \"Request submitted successfully.\";\r\n this.successMsgPopup(template)\r\n\r\n }\r\n else {\r\n this.cancel();\r\n this.isError = true;\r\n this.msg = \"Something went wrong.\";\r\n this.successMsgPopup(template)\r\n // this._snackBar.open('Something went wrong.', '', {\r\n // horizontalPosition: this.horizontalPosition,\r\n // verticalPosition: this.verticalPosition,\r\n // duration: 2000\r\n // });\r\n\r\n }\r\n })\r\n }\r\n }\r\n currentSection = 'homesection';\r\n scrollToSection(sectionId: string) {\r\n\r\n const sectionElement = this.sectionContainer.nativeElement.querySelector(`#${sectionId}`);\r\n\r\n if (sectionElement) {\r\n sectionElement.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n this.currentSection = sectionId;\r\n }\r\n }\r\n\r\n getMdsMessage() {\r\n this.homeService.getMdsMessage(this.defaultToken).subscribe(\r\n res => {\r\n\r\n this.mdsimage = res[0].imageURL;\r\n this.mdsdescription = res[0].descriprtion;\r\n this.mdstitle = res[0].title;\r\n // this.latestNews = [\r\n // { class: 'red', title:'red' },\r\n // { class: 'green',title:'green' },\r\n // { class: 'blue',title:'blue' },\r\n // { class: 'pink',title:'pink' },\r\n // { class: 'gray',title:'pink' },\r\n // { class: 'violet',title:'pink' },\r\n // { class: 'brown',title:'pink' },\r\n // ]\r\n },\r\n (error) => {\r\n\r\n }\r\n )\r\n }\r\n\r\n clearErr() {\r\n if (this.mail == \"\") {\r\n this.mailErr = false;\r\n } else {\r\n let isValid = this.emailRegex.test(this.mail);\r\n if (isValid)\r\n this.mailErr = false;\r\n }\r\n }\r\n\r\n checkMail(): boolean {\r\n\r\n if (this.mail) {\r\n\r\n let isValid = this.emailRegex.test(this.mail);\r\n if (isValid) {\r\n this.mailErr = false;\r\n // this.disableSubscribe=false;\r\n } else {\r\n this.mailErr = true;\r\n //this.disableSubscribe=true;\r\n }\r\n }\r\n else this.mailErr = true;\r\n return this.mailErr;\r\n }\r\n\r\n subscribeNews() {\r\n if (!this.checkMail()) {\r\n this.homeService.subscribeNewsLetter(this.mail, this.defaultToken).subscribe(res => {\r\n if (res) {\r\n this.openMessageDialog(\"Subscribed successfully.\", false, '')\r\n }\r\n else {\r\n this.openMessageDialog(\"Given mail id Already Subscribed.\", true, '')\r\n }\r\n this.mail = \"\";\r\n this.mailErr = false;\r\n // this.disableSubscribe=true;\r\n })\r\n }\r\n }\r\n\r\n showOffers: boolean = false;\r\n slidePopup(offer: any) {\r\n this.selectedOffer = offer;\r\n this.getSchoolList();\r\n }\r\n\r\n getSchoolList() {\r\n this.registerService.getSchoolList(this.defaultToken).subscribe(res => {\r\n this.schoolList = res;\r\n this.schoolDropdownList = [];\r\n this.homeService.getOffers(this.defaultToken, \"PRELOGIN\", this.selectedOffer?.id).subscribe(res => {\r\n res?.data.forEach(y => {\r\n this.schoolDropdownList.push(this.schoolList.find(x => x.bsU_ID == y.bsU_ID));\r\n })\r\n this.schoolDropdownList = this.schoolDropdownList.filter(z => z != null);\r\n this.showOffers = !this.showOffers;\r\n this.offersForm.reset();\r\n this.selectedCountries = 'ae'\r\n this.gradeList=[];\r\n this.pickUpPoints=[];\r\n })\r\n })\r\n }\r\n closeOffersPopup() {\r\n this.showOffers = !this.showOffers;\r\n this.offersForm.reset();\r\n this.selectedCountries = 'ae'\r\n this.schoolDropdownList = [];\r\n this.gradeList=[];\r\n this.pickUpPoints=[];\r\n }\r\n\r\n changeSchoolName() {\r\n let data = this.schoolList.find(x => x.schoolName.toLowerCase() == this.offersForm.value.school.toLowerCase());\r\n if (data) {\r\n this.bsuId = data.bsU_ID;\r\n if (data?.country == \"UAE\") {\r\n this.selectedCountries = this.countries[0]\r\n } else {\r\n this.selectedCountries = this.countries[1]\r\n }\r\n this.offersForm.patchValue({ phone: '' })\r\n if (this.startDate)\r\n this.getAcademicYrs();\r\n }\r\n }\r\n\r\n changeStartDate(event: any) {\r\n let startDate = event.value._d;\r\n this.offersForm.controls['startDate'].setValue(this.datePipe.transform(startDate, 'yyyy-MM-dd'));\r\n this.startDate = this.offersForm.get('startDate').value\r\n this.getAcademicYrs();\r\n }\r\n\r\n getAcademicYrs() {\r\n\r\n if (this.startDate) {\r\n this.registerService.getAcademicYrs(this.defaultToken, this.startDate, this.bsuId).subscribe(res => {\r\n this.academicYrList = res?.data;\r\n this.acdId = this.academicYrList[0].id;\r\n this.getGrades();\r\n this.getPickupPoints();\r\n });\r\n }\r\n }\r\n\r\n checkEmail() {\r\n\r\n if (this.offersForm.get('emailId').value) {\r\n\r\n let isValid = this.emailRegex.test(this.offersForm.get('emailId').value);\r\n if (isValid)\r\n this.emailErr = false\r\n else this.emailErr = true\r\n } else this.emailErr = false\r\n }\r\n getGrades() {\r\n let data = {\r\n bsuId: this.bsuId,\r\n acdyr: this.acdId.toString()\r\n }\r\n this.registerService.getGrades(this.defaultToken, data).subscribe(res => {\r\n this.gradeList = res?.data;\r\n })\r\n }\r\n getPickupPoints() {\r\n\r\n let data: any = {\r\n headers: {\r\n \"master\": \"AREA_M_TPT_R\",\r\n \"param1\": \"172\",\r\n \"bsuid\": this.bsuId,\r\n \"acdid\": this.acdId.toString(),\r\n \"Authorization\": \"Bearer \" + this.defaultToken\r\n }\r\n }\r\n this.serviceinfoService.getMaster(data).subscribe((res: any) => {\r\n this.pickUpPoints = res?.data;\r\n })\r\n }\r\n formatPhoneNumber($event, currentCtrl, type: any) {\r\n let phoneNumber: any = parsePhoneNumberFromString('+' + currentCtrl.selectedCountry.dialCode + $event.srcElement.value);\r\n if (phoneNumber && phoneNumber.isValid()) {\r\n var string = phoneNumber;\r\n let phone = ''\r\n if (type == \"offer\") {\r\n if (string.country == 'AE') {\r\n phone = [string.nationalNumber.slice(0, 2) + \"-\" + string.nationalNumber.slice(2, 9)].join('');\r\n // let firstIndex=Number(phone.charAt(0));\r\n this.isUAENoValid = phone.startsWith('5') ? false : true;\r\n } else {\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValid = false;\r\n }\r\n } else {\r\n\r\n if (string.country == 'AE') {\r\n phone = [string.nationalNumber.slice(0, 2) + \"-\" + string.nationalNumber.slice(2, 9)].join('');\r\n // let firstIndex=Number(phone.charAt(0));\r\n this.isUAENoValidCallback = phone.startsWith('5') ? false : true;\r\n } else {\r\n phone = phoneNumber.nationalNumber\r\n this.isUAENoValidCallback = false;\r\n }\r\n }\r\n this.nationalnumber = phoneNumber.number\r\n $event.srcElement.value = phone\r\n }\r\n }\r\n\r\n loadCityBasedOnCountry(currentCtrl){\r\n this.city = [];\r\n this.callBackForm.controls.city.setValue('');\r\n if(currentCtrl.selectedCountry.dialCode == '974'){\r\n this.getCity(this.qatarCountryId);\r\n }else{\r\n this.getCity(this.dubaiCountryId);\r\n }\r\n }\r\n\r\n submitOffers() {\r\n let formData = {\r\n \"STU_NAME\": this.offersForm.controls.name.value,\r\n \"BSU_ID\": this.bsuId,\r\n \"SERVICE_START_DATE\": this.datePipe.transform(this.offersForm.controls.startDate.value, 'yyyy-MM-dd') + \"T00:00:00\",\r\n \"STU_GRADE\": this.offersForm.controls.grade.value,\r\n \"STU_DOB\": this.datePipe.transform(this.offersForm.controls.dob.value, 'yyyy-MM-dd') + \"T00:00:00\",\r\n \"PRIMARY_CONTACT\": this.offersForm.controls.parentName.value,\r\n \"PICKUP_POINT\": this.offersForm.controls.area.value,\r\n \"CONTACT_NUMBER\": this.offersForm.controls.phone.value,\r\n \"EMAIL_ID\": this.offersForm.controls.emailId.value,\r\n \"STU_SCHOOL_ID\": this.offersForm.controls.schoolId.value,\r\n \"SOURCE\": \"WEB\"\r\n }\r\n this.homeService.postOffers(formData, this.defaultToken).subscribe(res => {\r\n if (res.success == \"true\") {\r\n this.openMessageDialog(\"Request submitted successfully.\", false, \"\");\r\n this.closeOffersPopup();\r\n }\r\n else {\r\n this.openMessageDialog(res?.message, false, \"\");\r\n this.closeOffersPopup();\r\n }\r\n })\r\n }\r\n redirectUrl(url:any)\r\n{\r\n if(url)\r\n window.open(url, '_blank')\r\n}\r\n\r\nopenPdf(type:any)\r\n{\r\n this.homeService.getTermsAndPolicy(type, this.defaultToken).subscribe((res:any)=>{\r\n window.open(res?.data, '_blank');\r\n })\r\n}\r\n\r\nopenChatBot(){\r\n this.openchatBot = !this.openchatBot;\r\n}\r\n\r\nredirectEvent(message:any){\r\n if(message.redirectType=='scroll'){\r\n const classElement = document.getElementById(message.redirectUrl);\r\n if(classElement){\r\n classElement.scrollIntoView();\r\n }\r\n }\r\n else if(message.redirectType=='open-modal'){\r\n const template = this.templateMap[message.redirectUrl];\r\n if (template) {\r\n this.openDialog(template);\r\n }\r\n }\r\n}\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LandingRoutingModule } from './landing-page-routing.module';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport {MatInputModule} from '@angular/material/input';\r\nimport {MatButtonModule} from '@angular/material/button';\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport {MatSnackBarModule} from '@angular/material/snack-bar';\r\nimport { Ng2TelInputModule } from 'ng2-tel-input';\r\nimport { NgxMatIntlTelInputModule } from 'ngx-mat-intl-tel-input';\r\n// import function to register Swiper custom elements\r\nimport { register } from 'swiper/element/bundle';\r\n// import { ChatModule } from '@progress/kendo-angular-conversational-ui';\r\n// register Swiper custom elements\r\nregister();\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [LandingRoutingModule],\r\n imports: [\r\n CommonModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n CarouselModule,\r\n MatSnackBarModule,\r\n Ng2TelInputModule,\r\n NgxMatIntlTelInputModule,\r\n // ChatModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class LandingModule { }\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-message',\r\n templateUrl: './message.component.html',\r\n styleUrls: ['./message.component.scss']\r\n})\r\nexport class MessageComponent implements OnInit {\r\n isError:boolean=false;\r\n constructor(private router: Router,@Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n if(this.data.buttonName==undefined || this.data.buttonName==null){\r\n this.data.buttonName='OK'\r\n }\r\n }\r\n dilogclose()\r\n {\r\n \r\n this.router.navigate([this.data.redirectpage]);\r\n }\r\n}\r\n","export abstract class AppConfig {\r\n\r\n AppId: number;\r\n grantType: string;\r\n baseUrl: string;\r\n localapi: string;\r\n client: string;\r\n key: string;\r\n source: string;\r\n deviceId: string;\r\n applicationId: string;\r\n applicationSource: string;\r\n language: string;\r\n receiptHeaderImage: string;\r\n logoimageUrl: string;\r\n paymentTo: string;\r\n paymentOrigin: string;\r\n paymentredirectURL: string;\r\n portalTitle: string;\r\n portalShortCode: string;\r\n paymentReceptHeader: string;\r\n idleTimeout: number;\r\n timeoutPeriod: number;\r\n redirectionURL:string;\r\n appUrl:any;\r\n captchaAPIKey: string;\r\n otpTimerExpiry: number;\r\n forgotPasswordOTPExpiry: number;\r\n paymentreenrollOrigin:string;\r\n chatbotSetting:Chatbot;\r\n baseUIUrl:string;\r\n IDCardSourcePortal: string;\r\n uaepasscallbackurl:string;\r\n uaepass_source:string;\r\n uaepass_signIdentityId:string;\r\n uaepass_authorize_uri:string;\r\n}\r\n\r\nexport class Chatbot{\r\n tokenUrl:string;\r\n apiUrl:string;\r\n key:string;\r\n name:string;\r\n secret:string;\r\n grantType:string;\r\n appName:string;\r\n channel:string;\r\n environmentCode:string;\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dateFormat'\r\n})\r\nexport class DateFormatPipe implements PipeTransform {\r\n transform(value: string): string {\r\n if (!value) return '';\r\n const parts = value.split('/');\r\n const transformedDate = `${parts[2]}-${parts[1]}-${parts[0]}`;\r\n return transformedDate;\r\n }\r\n}","export class PreLoginSupport {\r\n constructor(\r\n public dtime: string = '',\r\n public details: string = '',\r\n public imgdata: any = '',\r\n public imgname: any = '',\r\n public imgtype: any = '',\r\n public email: string = '',\r\n \r\n public titleID: any = null,\r\n public studentNo: string = \"0\",\r\n\r\n public refID: any = 1,\r\n public comments: any = null,\r\n public contactID: any = 2,\r\n public feedbackID: any = null,\r\n public smiley: any = null\r\n ) { }\r\n} \r\n\r\nexport class ErrorSupportForm{\r\n constructor(\r\n public IsDescription :boolean=false,\r\n public IsTitleID:boolean=false,\r\n public IsEmail:boolean=false\r\n ){}\r\n}","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[restrictArabic]'\r\n})\r\nexport class PreventArabicDirective {\r\n\r\n // Define a regular expression to match allowed characters including English letters, numerics, space, and special characters\r\n private allowedRange = /^[a-zA-Z0-9\\s<,.'\";@~!#%^&()*\\-_\\|[\\]=+{}]*$/;\r\n\r\n @HostListener('input', ['$event'])\r\n onInput(event: Event) {\r\n const input = event.target as HTMLInputElement | HTMLTextAreaElement;\r\n // Remove disallowed characters\r\n if (!this.allowedRange.test(input.value)) {\r\n input.value = input.value.replace(/[^a-zA-Z0-9\\s<,.'\";@~!#%^&()*\\-_\\|[\\]=+{}]/g, '');\r\n (input as any).dispatchEvent(new Event('input'));\r\n }\r\n // Check if the input value is only spaces\r\n if (/^\\s*$/.test(input.value)) {\r\n // If input is only spaces, clear it\r\n input.value = '';\r\n (input as any).dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n // Allow backspace, delete, arrow keys, etc.\r\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', 'Enter'];\r\n if (allowedKeys.includes(event.key) || this.allowedRange.test(event.key)) {\r\n return; // Allow these keys\r\n }\r\n event.preventDefault(); // Block other keys\r\n }\r\n}\r\n","export class ParentRegistration {\r\n constructor(\r\n public STU_ID: number = 0,\r\n public STU_FIRSTNAME: string = '',\r\n public STU_MIDNAME: string = '',\r\n public STU_LASTNAME: string = '',\r\n public STU_GENDER: string = '',\r\n public STU_GRD_ID: string = '',\r\n public STU_DOB: string = '',\r\n public STU_SCHOOL_ID: string = '',\r\n public STU_PHOTOPATH: string = '',\r\n public STU_PRIMARYCONTACT: string = '',\r\n public STS_FFIRSTNAME: string = '',\r\n public STS_FMIDNAME: string = '',\r\n public STS_FLASTNAME: string = '',\r\n public STS_FMOBILE: string = '',\r\n public STS_FEMAIL: string = '',\r\n public STS_MFIRSTNAME: string = '',\r\n public STS_MMIDNAME: string = '',\r\n public STS_MLASTNAME: string = '',\r\n public STS_MMOBILE: string = '',\r\n public STS_MEMAIL: string = '',\r\n public STS_GFULLNAME: string = '', \r\n public STS_GMOBILE: string = '',\r\n public STS_GEMAIL: string = '',\r\n public DisableRegistration: number = 0,\r\n public City: string = '',\r\n public House: string = '',\r\n public Street: string = '',\r\n public TransportType: string = '',\r\n public PickupArea: string = '',\r\n public PickupPoint: string = '',\r\n public PickupPointLandMark: string = '',\r\n public DoopoffArea: string = '',\r\n public DropoffPoint: string = '',\r\n public DropoffPointLandMark: string = '',\r\n public BusServiceRequestedDate: string = '',\r\n ) { }\r\n}\r\n\r\nexport class PrimaryDetails{\r\n constructor(\r\n public primaryRelationShip:any='',\r\n public primaryFname:string='',\r\n public primaryMname:string='',\r\n public primaryLname:string='',\r\n public primaryMobile:string='',\r\n public primaryEmail:string='',\r\n public primaryReEmail:string='',\r\n public secondaryRelationShip:any='',\r\n public secondaryFname:string='',\r\n public secondaryMname:string='',\r\n public secondaryLname:string='',\r\n public secondaryMobile:string='',\r\n public otherRelationShip:any='',\r\n public otherFullName:string='',\r\n public otherMobile:string='',\r\n ){}\r\n}\r\n\r\nexport class SecondaryDetails{\r\n constructor(\r\n public secondaryRelationShip:any='',\r\n public secondaryFname:string='',\r\n public secondaryMname:string='',\r\n public secondaryLname:string='',\r\n public secondaryMobile:string='',\r\n public otherRelationShip:any='',\r\n public otherFullName:string='',\r\n public otherMobile:string='',\r\n ){}\r\n}\r\n\r\n\r\nexport class OtherDetails{\r\n constructor(\r\n public otherRelationShip:any='',\r\n public otherFullName:string='',\r\n public otherMobile:string='',\r\n ){}\r\n}\r\n\r\n\r\nexport class studentDetail\r\n{\r\n public firstName:string;\r\n public lastName:string;\r\n public middleName:string;\r\n public gender:string;\r\n public grade:string;\r\n public dob:string;\r\n public photopath:string;\r\n public medicalRadiobtn:boolean;\r\n public medicalDesc:string;\r\n public medicalRadiobtn2:boolean;\r\n public medicalDesc2:string;\r\n public schoolId:string;\r\n public studentId:string;\r\n public academicYr:string;\r\n public serviceDate:string\r\n}\r\n\r\nexport class termsAgreed {\r\n constructor(\r\n public checkboxOne: boolean = false,\r\n public checkboxTwo: boolean = false,\r\n public checkboxThree: boolean = false\r\n ) { }\r\n}","import { Directive, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[reRegRestrictArabic]'\r\n})\r\nexport class ReRegPreventArabicDirective {\r\n\r\n // Define a regular expression to match allowed characters including English letters, numerics, space, and special characters\r\n private allowedRange = /^[a-zA-Z0-9\\s<,.'\";@~!#%^&()*\\-_\\|[\\]=+{}]*$/;\r\n\r\n @HostListener('input', ['$event'])\r\n onInput(event: Event) {\r\n const input = event.target as HTMLInputElement | HTMLTextAreaElement;\r\n // Remove disallowed characters\r\n if (!this.allowedRange.test(input.value)) {\r\n input.value = input.value.replace(/[^a-zA-Z0-9\\s<,.'\";@~!#%^&()*\\-_\\|[\\]=+{}]/g, '');\r\n (input as any).dispatchEvent(new Event('input'));\r\n }\r\n // Check if the input value is only spaces\r\n if (/^\\s*$/.test(input.value)) {\r\n // If input is only spaces, clear it\r\n input.value = '';\r\n (input as any).dispatchEvent(new Event('input'));\r\n }\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n // Allow backspace, delete, arrow keys, etc.\r\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', 'Enter'];\r\n if (allowedKeys.includes(event.key) || this.allowedRange.test(event.key)) {\r\n return; // Allow these keys\r\n }\r\n event.preventDefault(); // Block other keys\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from './config.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class areaChangeService {\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n\r\n getAreaChange(token:any)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${token}`,\r\n STUNO: localStorage.getItem(\"selectedstudentid\")\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GetStudentRequestAreaChange`,{ headers: Header })\r\n }\r\n\r\n postAreaChange(body:any,token:any)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveStudentRequestAreaChange`,body,{ headers: Header })\r\n }\r\n deleteAreaChange(body:any,token:any)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${token}`,\r\n TCHID:body.toString()\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/CancelChangeAreaRequest`,'',{ headers: Header })\r\n }\r\n\r\n public getFeeAmounts(token, data: any): Observable {\r\n let bsuId = localStorage.getItem(\"bsU_ID\");\r\n const header = {\r\n \"Authorization\": `Bearer ${token}`,\r\n \"BSU_ID\": bsuId.toString(),\r\n \"ACD_ID\": data[0].ACD_ID.toString(),\r\n \"TRIPTYPE\": data[0].TRIPTYPE.toString(),\r\n \"SBL_ID\": data[0].SBLID.toString(),\r\n \"DSBLID\": data[0].DSBLID.toString(),\r\n \"STU_ID\": data[0].STU_ID.toString(),\r\n \"PROVIDER_BSU_ID\": data[0].PROVIDER_BSU_ID.toString(),\r\n \"TRM_STARTDT\": data[0].TRM_STARTDT,\r\n \"SSV_STARTDT\": data[0].SSV_STARTDT\r\n }\r\n\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSTSFeeAmounts`, { headers: header });\r\n }\r\n \r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { User } from '../models/User';\r\nimport { Token } from '../models/token';\r\nimport { TokenService } from './token.service';\r\nimport { CommonService } from '.';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { ConfigService } from './config.service';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n private username = new BehaviorSubject(\"\");\r\n private password = new BehaviorSubject(\"\");\r\n private currentUserSubject = new BehaviorSubject(undefined);\r\n private currentTokenSubject = new BehaviorSubject(undefined);\r\n public isLoginSuccess:boolean=true;\r\n\r\n constructor(private http: HttpClient,private router:Router, private tokenService: TokenService,private common: CommonService,\r\n private configService:ConfigService,\r\n public date:DatePipe) {\r\n }\r\n\r\n public get currentUser(): User {\r\n return JSON.parse(localStorage.getItem('currentUser'));\r\n }\r\n\r\n public get currentToken() {\r\n return JSON.parse(localStorage.getItem('currentToken'));\r\n }\r\n private get encryptedPassword() {\r\n return CryptoJS.SHA512(this.password.value.trim()).toString();\r\n }\r\n\r\n private get loginHeader() {\r\n return {\r\n headers: {\r\n \"username\": this.username.value,\r\n \"password\": this.encryptedPassword,\r\n \"source\": this.configService.source,\r\n \"deviceid\": this.configService.deviceId,\r\n \"Authorization\":'Bearer '+this.currentToken?.access_token\r\n }\r\n }\r\n }\r\n\r\n public login(username: string, password: string) {\r\n this.username.next(username);\r\n this.password.next(password);\r\n return this.tokenService.GetToken(username)\r\n .pipe(\r\n tap((token: Token) => {\r\n this.currentTokenSubject.next(token);\r\n localStorage.setItem('currentToken', JSON.stringify(token));\r\n }),\r\n switchMap(() => this.http.get(`${this.configService.baseUrl}/${environment.api.login}`, this.loginHeader)),\r\n tap((user: User) => {\r\n if (!user.errorCode) {\r\n this.isLoginSuccess=true;\r\n this.currentUserSubject.next(user);\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n }\r\n else{\r\n this.isLoginSuccess=false;\r\n }\r\n })\r\n )\r\n }\r\n\r\n public logout() {\r\n let username = localStorage.getItem('parent')\r\n let currentDate = new Date();\r\n let date = this.date.transform(currentDate, 'yyyy-MM-ddTHH:mm:ss');\r\n this.common.auditLogout(username,date).subscribe(res=>{\r\n this.currentTokenSubject.next(null);\r\n this.currentUserSubject.next(null);\r\n localStorage.clear();\r\n localStorage.removeItem(\"currentUser\");\r\n this.router.navigate(['/login']);\r\n })\r\n // this.currentTokenSubject.next(null);\r\n // this.currentUserSubject.next(null);\r\n // localStorage.clear();\r\n // localStorage.removeItem(\"currentUser\");\r\n }\r\n\r\n public getAttemptCount(username:string)\r\n {\r\n let headers = new HttpHeaders();\r\n headers = headers.set('Authorization', 'Bearer '+this.currentToken?.access_token);\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.loginAttempts}?userid=${username}`,{headers:headers})\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Chatbot } from \"../models/app-config\";\r\nimport { ConfigService } from \"./config.service\";\r\nimport { Observable, of } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ChatService {\r\n \r\n chatbotSettings:Chatbot;\r\n constructor(private http: HttpClient,private configService:ConfigService) { \r\n this.chatbotSettings=this.configService.chatbotSetting;\r\n if(this.token==''){\r\n this.getToken();\r\n }\r\n }\r\n public token:any='';\r\n public phoenixToken:any='';\r\n public phoenixTokenExpired=false;\r\n \r\n setPhoenixToken(data:any){\r\n this.phoenixToken=data.access_token;\r\n //call timeout 2 mins before token expiry\r\n let timeout= (data.expires_in * 1000) - (120*1000);\r\n setTimeout(() => {\r\n this.phoenixTokenExpired=false\r\n }, timeout);\r\n }\r\n private tokenRequestBody() {\r\n let formData:FormData=new FormData();\r\n formData.append('username',this.chatbotSettings.name);\r\n formData.append('password',this.chatbotSettings.secret);\r\n formData.append('grant_type',this.chatbotSettings.grantType);\r\n formData.append('app_name',this.chatbotSettings.appName);\r\n\r\n return formData;\r\n }\r\n\r\n private get tokenRequestHeader() {\r\n return {\r\n headers: {\r\n \"Authorization\": `Basic ${this.chatbotSettings.key}`\r\n }\r\n };\r\n }\r\n\r\n getToken(){\r\n return new Promise((resolve, reject) => {\r\n this.http.post(`${this.chatbotSettings.tokenUrl}/o/token/`, this.tokenRequestBody(), this.tokenRequestHeader).subscribe(res=>{\r\n this.token=res?.access_token;\r\n resolve(true);\r\n },err=>{\r\n resolve(false);\r\n }); \r\n })\r\n }\r\n\r\n postChat(data:any){\r\n let options={\r\n headers: {\r\n \"Authorization\": `Basic ${this.token}`\r\n }\r\n }\r\n return this.http.post(`${this.chatbotSettings.apiUrl}/StsBot/`,data,options);\r\n }\r\n \r\n getServerSentEvent(sessionId: string): Observable {\r\n return new Observable((observer:any) => {\r\n let url=`${this.chatbotSettings.apiUrl}/StsBot/chatbot/?session_id=${sessionId}&stream=true`\r\n \r\n const eventSource = new EventSource(url);\r\n eventSource.onmessage = event => {\r\n observer.next(event);\r\n var data=JSON.parse(event.data);\r\n if(data?.end_stream){\r\n eventSource.close();\r\n }\r\n };\r\n eventSource.onerror = error => {\r\n observer.error(error);\r\n eventSource.close();\r\n };\r\n });\r\n }\r\n\r\n getChatHistory(userName:any): Observable {\r\n const header = {USER_NAME:userName,HideSpinner:\"true\"};\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GET_CHATBOT_HISTORY`,{headers:header});\r\n }\r\n\r\n postChatHistory(data:any): Observable {\r\n const header = {HideSpinner:\"true\"};\r\n return this.http.post(`${this.configService.baseUrl}/api/transport/SAVE_CHATBOT_HISTORY`,data,{headers:header});\r\n }\r\n}","import { Injectable, OnInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { ConfigService } from './config.service';\r\nconst key = 'TUc0emRqRXpkdw==';\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class CommonService {\r\n reloadNotificationCount:BehaviorSubject=new BehaviorSubject(false)\r\n public responseCache = new Map();\r\n\r\n constructor(private http: HttpClient, private configService:ConfigService) { }\r\n\r\n private get parentId() {\r\n return localStorage.getItem('parent');\r\n }\r\n\r\n private get GetCommonHeader() {\r\n return {\r\n headers: {\r\n \"schoolid\": localStorage.parentChildrens? JSON.parse(localStorage.parentChildrens)[0].studentId:\"\",\r\n \"source\": this.configService.source,\r\n \"language\": this.configService.language,\r\n \"parentID\": this.parentId,\r\n }\r\n }\r\n }\r\n private get GetCommonHeader1() {\r\n return {\r\n headers: {\r\n \"StudentNo\": localStorage.parentChildrens? JSON.parse(localStorage.parentChildrens)[0].studentId:\"\",\r\n \"source\": this.configService.source,\r\n \"language\": this.configService.language,\r\n \"pathbase\":''\r\n }\r\n }\r\n }\r\n private get GetNotificationCountHeader() {\r\n return {\r\n headers: {\r\n \"ParentID\": this.parentId,\r\n \"source\": this.configService.source,\r\n \"type\":''\r\n }\r\n }\r\n }\r\n private get GetNotificationDeatilHeader() {\r\n return {\r\n headers: {\r\n \"ParentID\": this.parentId,\r\n \"source\": this.configService.source \r\n }\r\n }\r\n }\r\n private get GetHeaderforChildern() {\r\n return {\r\n headers: {\r\n \"ParentID\": this.parentId,\r\n \"source\": this.configService.source \r\n }\r\n }\r\n }\r\n\r\n private getFromCache(url: string, headers: any): Observable {\r\n const fromCache = this.responseCache.get(url);\r\n if (fromCache) {\r\n console.log('cache:', fromCache);\r\n return of(fromCache);\r\n }\r\n const response = this.http.get(url, headers);\r\n response.subscribe(data => this.responseCache.set(url, data));\r\n return response;\r\n }\r\n\r\n public getMenusforParentPortal(): Observable {\r\n return this.getFromCache(`${this.configService.baseUrl}/${environment.api.GetMenusforWebPortalSTS}`, this.GetCommonHeader1);\r\n }\r\n\r\n public getChildrenByParent(): Observable {\r\n return this.getFromCache(`${this.configService.baseUrl}/${environment.api.CHILDREN_BY_PARENT_URL}`, this.GetCommonHeader);\r\n }\r\n\r\n public getMenusforParentPortal2() {\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.GetMenusforParentPortal}`, this.GetCommonHeader);\r\n }\r\n\r\n public getChildrenByParent2() {\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.GetChildren}`, this.GetCommonHeader);\r\n }\r\n public getChildrenByParentId() {\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.GetChildren}`, this.GetHeaderforChildern);\r\n }\r\n public encryptVal(val:any)\r\n {\r\n return CryptoJS.AES.encrypt(val, key).toString();\r\n }\r\n public decryptVal(val:any)\r\n {\r\n \r\n let decrypted= CryptoJS.AES.decrypt(val, key).toString();\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n public getNotificationCount(): Observable {\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getNotificationcount}`, this.GetNotificationCountHeader);\r\n }\r\n public getNotificationDetails(): Observable {\r\n \r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getNotificationDetails}`, this.GetNotificationDeatilHeader);\r\n // return this.getFromCache(\"http://localhost:27802/api/Notification/PARENT_NOTIFICATION_DETAILS\", this.GetNotificationDeatilHeader);\r\n }\r\n public notificationUpdate(obj):Observable\r\n {\r\n let res = this.http.post(`${this.configService.baseUrl}/${environment.api.notificationUpdate}`, obj, { 'headers': {} });\r\n return res;\r\n //return this.http.post(`${this.configService.localapi}/${this.configService.api.notificationUpdate}`, obj,obj);\r\n }\r\n public postLogInfo(obj):Observable\r\n {\r\n let res = this.http.post(`${this.configService.baseUrl}/${environment.api.logErrorDetails}`, obj, { 'headers': {} });\r\n return res;\r\n }\r\n getIPAddress()\r\n {\r\n return this.http.get(\"https://api.ipify.org/?format=json\")\r\n }\r\n validateUserName(username, token):Observable{\r\n const usernameHeader = { username:username,source:this.configService.source,deviceid:this.configService.deviceId, Authorization:`Bearer ${token}` };\r\n return this.http.get(`${this.configService.baseUrl}/api/User/GetValidateUserName`, { 'headers': usernameHeader })\r\n }\r\n \r\n sendOTPToUser(data, token){\r\n const usernameHeader = {Username:data,\r\n source:this.configService.source,\r\n deviceid:this.configService.deviceId, Authorization:`Bearer ${token}` };\r\n return this.http.post(`${this.configService.baseUrl}/api/user/SendOTPChangePassword`, data,{ 'headers': usernameHeader }) }\r\n\r\n validateOTP(data, token){\r\n const usernameHeader = {Authorization:`Bearer ${token}`,username: data.username,\r\n otp: data.otp,\r\n source:this.configService.source,\r\n deviceid:this.configService.deviceId };\r\n return this.http.get(`${this.configService.baseUrl}/api/user`, { 'headers': usernameHeader} )\r\n }\r\n\r\n resetPassword(data, token){\r\n const usernameHeader = {username:data.username,\r\n source:this.configService.source,\r\n deviceid:this.configService.deviceId,\r\n OldPassword:data.OldPassword,\r\n NewPassword:data.NewPassword, Authorization:`Bearer ${token}` };\r\n \r\n return this.http.post(`${this.configService.baseUrl}/api/password/forgot`,data, { 'headers': usernameHeader })\r\n }\r\n auditLog(name:any,date:any,ip:any):Observable{\r\n let token = JSON.parse(localStorage.getItem('currentToken'));\r\n const Header = { Authorization:`Bearer ${token?.access_token}` };\r\n //let body={userName:name,LoginDate:date,IpAddress:ip,\"Source\":\"sts\"}\r\n return this.http.post(`${this.configService.baseUrl}/api/Audit/SaveLogInAudit`,{userName:name,LoginDate:date,IpAddress:ip,\"Source\":\"sts\"}, { 'headers': Header })\r\n }\r\n auditLogout(name:any,date:any):Observable{\r\n let token = JSON.parse(localStorage.getItem('currentToken'));\r\n const Header = { Authorization:`Bearer ${token?.access_token}` };\r\n // let body={userName:name,LogoutDate:date}\r\n return this.http.post(`${this.configService.baseUrl}/api/Audit/SaveLogOutAudit`,{userName:name,LogoutDate:date}, { 'headers': Header })\r\n }\r\n getToken()\r\n {\r\n let token: any;\r\n token = JSON.parse(localStorage.getItem('currentToken'))\r\n return token?.access_token;\r\n }\r\n getTransportFeeDetails(data):Observable{\r\n const usernameHeader = { type:data.type,PaymentRefNo:data.PaymentRefNo,paymentTo:this.configService.source,Language:this.configService.language, Authorization:`Bearer ${this.getToken()}` };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GetTransportFeePaymentResult`, { 'headers': usernameHeader })\r\n }\r\n\r\n updateIdCardPayment(data:any):Observable{\r\n let token = JSON.parse(localStorage.getItem('currentToken'));\r\n const Header = { Authorization:`Bearer ${token?.access_token}` };\r\n return this.http.post(`${this.configService.baseUrl}/api/StudentInfo/UpdateStudentIdPaymentStatus`,data, { 'headers': Header })\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { AppConfig } from '../models/app-config';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigService extends AppConfig {\r\n\r\n constructor(private http: HttpClient) { super(); }\r\n\r\n loadConfig() {\r\n \r\n return this.http.get('assets/environmentValues/environmentValues.json?v='+new Date().getMilliseconds())\r\n .pipe(map(\r\n (config: any) => {\r\n \r\n //console.log(config);\r\n this.AppId = config.AppId;\r\n this.grantType = config.grantType;\r\n this.baseUrl = config.baseUrl;\r\n this.localapi = config.localapi;\r\n this.client = config.client;\r\n this.key = config.key;\r\n this.source = config.source;\r\n this.deviceId = config.deviceId;\r\n this.applicationId = config.applicationId;\r\n this.applicationSource = config.applicationSource;\r\n this.language = config.language;\r\n this.receiptHeaderImage = config.receiptHeaderImage;\r\n this.logoimageUrl = config.logoimageUrl;\r\n this.paymentTo = config.paymentTo;\r\n this.paymentOrigin = config.paymentOrigin;\r\n this.paymentredirectURL = config.paymentredirectURL;\r\n this.portalTitle = config.portalTitle;\r\n this.portalShortCode = config.portalShortCode;\r\n this.paymentReceptHeader = config.paymentReceptHeader;\r\n this.idleTimeout = config.idleTimeout;\r\n this.timeoutPeriod = config.timeoutPeriod;\r\n this.redirectionURL=config.redirectionURL;\r\n this.appUrl=config.applicationUrl;\r\n this.captchaAPIKey = config.captchaAPIKey;\r\n this.otpTimerExpiry = config.otpTimerExpiry;\r\n this.forgotPasswordOTPExpiry = config.forgotPasswordOTPExpiry;\r\n this.paymentreenrollOrigin=config.paymentreenrollOrigin;\r\n this.chatbotSetting=config.chatbotSettings;\r\n this.baseUIUrl=config.baseUIUrl;\r\n this.IDCardSourcePortal = config.IDCardSourcePortal,\r\n this.uaepasscallbackurl=config.uaepasscallbackurl;\r\n this.uaepass_source=config.uaepass_source;\r\n this.uaepass_authorize_uri=config.uaepass_authorize_uri;\r\n\r\n }\r\n ));\r\n\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class contactChangeService {\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n\r\n postContactChange(body:any,token:any)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/ContactChangeRequest`,body,{ headers: Header })\r\n }\r\n}","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\nimport { FileService } from './file.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n// studentId:any = localStorage.getItem('selectedstudentid');\r\n// public allchild:any = JSON.parse(localStorage.getItem('allChildren'))\r\n\r\n \r\n // private photoUrl = new BehaviorSubject('');\r\n // console.log(this.photoUrl);\r\n \r\n // currentPhotoUrl = this.photoUrl.asObservable();\r\n public isPaymentMessage = new BehaviorSubject(null);\r\n public fileErrMessage = new BehaviorSubject(null);\r\n public isPaymentContent = new BehaviorSubject(true);\r\n public contactDetails = new BehaviorSubject(null);\r\n constructor(private http: HttpClient, private configService:ConfigService, private fileService:FileService) {\r\n //let data = this.allchild.filter(x=>x.studentId == this.studentId);\r\n\r\n }\r\n getToken()\r\n {\r\n let token: any;\r\n token = JSON.parse(localStorage.getItem('currentToken'))\r\n return token?.access_token;\r\n }\r\n getUsername()\r\n {\r\n let username:any;\r\n username=localStorage.getItem('parent')\r\n return username;\r\n }\r\n\r\n getIpAddress()\r\n {\r\n let ip:any;\r\n ip=localStorage.getItem('IPAddress')\r\n return ip;\r\n }\r\n getContactDetails(name: any) {\r\n let token: any;\r\n token = localStorage.getItem('currentToken')\r\n name=this.getUsername();\r\n const Header = { username: name, Authorization: `Bearer ${token.access_token}` };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportContactInfo`, { headers: Header })\r\n }\r\n getPaymentStatusDetails(data: any) {\r\n let token: any;\r\n token = localStorage.getItem('currentToken')\r\n const Header = {\r\n StudentNo: data?.StudentNo,\r\n SchoolId: data?.SchoolId.toString(), Authorization: `Bearer ${token.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Payment/GetSTSPaymentStatus`, { headers: Header })\r\n }\r\n getQuickLinks() {\r\n let token: any;\r\n token = localStorage.getItem('currentToken')\r\n const Header = {\r\n Authorization: `Bearer ${token.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSTSQuickLinks`, { headers: Header })\r\n }\r\n getAccountDetails()\r\n {\r\n\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n username:this.getUsername()\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportContactInfo`, { headers: Header })\r\n }\r\n\r\n getTermsAndPolicy(type:any)\r\n {\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n bsuid :child[0]?.bsuId,\r\n type :type,\r\n city :\"na\"\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetAppTermsandPrivacyPolicy`, { headers: Header })\r\n }\r\n\r\n changePassword(value:any)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n };\r\n let body={\r\n UserName:this.getUsername(),\r\n OldPassword:value?.old,\r\n NewPassword:value?.new,\r\n DeviceId:this.configService.deviceId,\r\n Source:this.configService.source\r\n }\r\n return this.http.post(`${this.configService.baseUrl}/api/password/change`,body,{ headers: Header })\r\n }\r\n\r\n getMessageAlerts()\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n username: this.getUsername()\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetMessageAlerts`, { headers: Header })\r\n }\r\n\r\n getuserProfileImg()\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n parentID: this.getUsername(),\r\n source:this.configService.source,\r\n appName:\"web\"\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Parent/GetParentProfile`, { headers: Header })\r\n }\r\n updateMessageAlert(value:any)\r\n {\r\n let body=\r\n {\r\n username: this.getUsername(),\r\n allowalerts: value\r\n }\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/UpdateMessageAlerts`,body, { headers: Header })\r\n }\r\n\r\n updateProfilePhoto(value:any)\r\n {\r\n let body={\r\n ParentID:this.getUsername(),\r\n DeviceID:this.configService.deviceId,\r\n DeviceIP:this.getIpAddress(),\r\n ImageFormat:value.imageFormat,\r\n ImageBase64:value.imageBase64,\r\n Source:this.configService.source,\r\n IsUpdate:1,\r\n IsDeleted:0\r\n }\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Parent/POST_PARENT_PROFILE`,body, { headers: Header })\r\n }\r\ngetCO2Emission()\r\n{\r\n const Header = {\r\n Authorization: `Bearer ${this.getToken()}`,\r\n apiId:\"4\",\r\n StuNo: JSON.parse(localStorage.parentChildrens)[0].studentId,\r\n Minutes:''\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GETSTUDENTETAMAPDETAILS`, { headers: Header });\r\n}\r\nupdateProfile(data){\r\n let token:any;\r\n token=JSON.parse(localStorage.getItem('currentToken'));\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${token.access_token}`,\r\n source: this.configService.source,\r\n StudentId:data.StudentId,\r\n BsuId:data.BsuId\r\n });\r\n const storedFile = this.fileService.getFile();\r\n const formData = new FormData();\r\n formData.append('file', storedFile);\r\n const requestOptions = {\r\n headers: headers,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/StudentInfo/UpdateStudentPhotos`,formData, requestOptions)\r\n}\r\n// changeMemberPhoto(photoUrl: string) {\r\n// this.photoUrl.next(photoUrl);\r\n// }\r\n\r\ngetAutoPromotionDetails() {\r\n let token: any;\r\n token = localStorage.getItem('currentToken')\r\n let name=this.getUsername();\r\n const Header = { OLU_NAME: name, Source: 'STS_WEB', Authorization: `Bearer ${token.access_token}` };\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GET_USER_TERMS`, { headers: Header })\r\n}\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class encryptionService {\r\n private IV = CryptoJS.enc.Hex.parse('1234567890ABCDEF');\r\n private SALT = CryptoJS.enc.Hex.parse('4976616E204D65647665646576');\r\n private SHA256_key = '12341544566467678798791237868947';\r\n\r\n constructor() { }\r\n\r\n // DES Encryption\r\n encryptDES(message: string, key: string = '!#$a54?W'): string {\r\n const keyHex = CryptoJS.enc.Utf8.parse(key.substring(0, 8));\r\n const encrypted = CryptoJS.DES.encrypt(message, keyHex, { iv: this.IV });\r\n return encrypted.toString();\r\n }\r\n\r\n // DES Decryption\r\n decryptDES(ciphertext: string, key: string = '!#$a54?W'): string {\r\n const keyHex = CryptoJS.enc.Utf8.parse(key.substring(0, 8));\r\n const decrypted = CryptoJS.DES.decrypt(ciphertext, keyHex, { iv: this.IV });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n // SHA-512 Hashing\r\n hashSHA512(message: string): string {\r\n return CryptoJS.SHA512(message).toString(CryptoJS.enc.Hex);\r\n }\r\n\r\n // AES Encryption\r\n encryptAES(textToEncrypt: string): string {\r\n const keyBytes = CryptoJS.enc.Hex.parse(this.SHA256_key);\r\n const dataBytes = CryptoJS.enc.Utf8.parse(textToEncrypt);\r\n const encrypted = CryptoJS.AES.encrypt(dataBytes, keyBytes, { iv: this.deriveKey(), mode: CryptoJS.mode.CBC });\r\n const resultBytes = this.IV.concat(encrypted.ciphertext);\r\n return CryptoJS.enc.Base64.stringify(resultBytes);\r\n }\r\n\r\n // AES Decryption\r\n decryptAES(cipherText: string): string {\r\n const keyBytes = CryptoJS.enc.Hex.parse(this.SHA256_key);\r\n const cipherBytes = CryptoJS.enc.Base64.parse(cipherText);\r\n const initVector = CryptoJS.lib.WordArray.create(cipherBytes.words.slice(0, 4));\r\n const encryptedData = CryptoJS.lib.WordArray.create(cipherBytes.words.slice(4));\r\n const decrypted = CryptoJS.AES.decrypt({ ciphertext: encryptedData }, keyBytes, { iv: initVector, mode: CryptoJS.mode.CBC });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n private deriveKey(): CryptoJS.lib.WordArray {\r\n const keyBytes = CryptoJS.enc.Hex.parse(this.SHA256_key);\r\n const key = CryptoJS.PBKDF2(keyBytes.toString(CryptoJS.enc.Hex), this.SALT, { keySize: 128 / 32, iterations: 10 });\r\n return CryptoJS.lib.WordArray.create(key.words.slice(0, 4));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FileService {\r\n private storedFile: File | null = null;\r\n\r\n setFile(file: File): void {\r\n this.storedFile = file;\r\n }\r\n\r\n getFile(): File | null {\r\n return this.storedFile;\r\n }\r\n\r\n clearFile(): void {\r\n this.storedFile = null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Observer } from 'rxjs';\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GoogleMapsAutocompleteService {\r\n private autocompleteService: google.maps.places.AutocompleteService;\r\n \r\n constructor() {\r\n this.autocompleteService = new google.maps.places.AutocompleteService();\r\n }\r\n \r\n getPlacePredictions(input: string): Observable {\r\n return new Observable((observer: Observer) => {\r\n this.autocompleteService.getPlacePredictions({ input }, (predictions) => {\r\n observer.next(predictions);\r\n observer.complete();\r\n });\r\n });\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomeService {\r\n\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n\r\n public getNews(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=news`, {headers:Header});\r\n }\r\n public getCategoriesData(token): Observable {\r\n const usernameHeader = {Authorization:`Bearer ${token}`, APIID: '3', stuno:'0' };\r\n return this.http.get(`${this.configService.baseUrl}/api/SchoolTransport/GET_STS_APPDATA`, {headers:usernameHeader});\r\n }\r\n public postComplaint(data,token): Observable {\r\n const usernameHeader = {Authorization:`Bearer ${token}` };\r\n\r\n return this.http.post(`${this.configService.baseUrl}/api/SchoolTransport/POST_STS_APPDATA`,data,{headers:usernameHeader});\r\n }\r\n public getAwards(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=awards`, {headers:Header});\r\n }\r\n public getAccreditation(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=accreditations`, {headers:Header});\r\n }\r\n public getPartnership(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=partnerships`, {headers:Header});\r\n }\r\n public getVision(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=Exploring`, {headers:Header});\r\n }\r\n\r\n public getLocation(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=locations`, {headers:Header});\r\n }\r\n\r\n public getCity(type:any,defaultToken?:any,cityId?:any): Observable\r\n {\r\n let token=JSON.parse(localStorage.getItem('currentToken'));\r\n \r\n let Header:any;\r\n if(type == 'postLogin')\r\n {\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n Header = {Authorization:`Bearer ${token?.access_token}`, master: 'CITY_M', bsuid:child[0]?.bsuId,param1:'172' };\r\n }\r\n else {\r\n let defToken = defaultToken;\r\n let city = (cityId != null && cityId != '') ? cityId : '172';\r\n Header = {Authorization:`Bearer ${defToken}`, master: 'CITY_M', bsuid:\"\",param1:city };\r\n }\r\n return this.http.get(`${this.configService.baseUrl}/api/masters/GetMaster`, {headers:Header});\r\n }\r\n\r\n public postCallback(formData:any,type:any,defaultToken?:any)\r\n {\r\n let token=JSON.parse(localStorage.getItem('currentToken'));\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n let Header:any;\r\n if(type == 'postLogin')\r\n {\r\n Header = {\r\n contactName:formData.name,\r\n contactMobile:formData.phone,\r\n subject:\"Request Callback\",\r\n message:formData.description,\r\n city:formData.city,\r\n school:child[0]?.bsuId,\r\n Authorization:`Bearer ${token?.access_token}`,\r\n };\r\n }\r\n else{\r\n let defToken = defaultToken;\r\n Header = {\r\n contactName:formData.name,\r\n contactMobile:formData.phone,\r\n subject:\"Request Callback\",\r\n message:formData.description,\r\n city:formData.city,\r\n school:\"\",\r\n Authorization:`Bearer ${defToken}`,\r\n };\r\n } \r\n return this.http.post(`${this.configService.baseUrl}/api/transport/POST_TRANSPORT_CALLBACK`,{},{headers:Header});\r\n }\r\n public getMdsMessage(token:any): Observable {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/cms/cmsdetails?source=STS_WEB&type=mdmessage`, {headers:Header});\r\n }\r\n public subscribeNewsLetter(data:any,token): Observable\r\n {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n let body={\r\n Source:this.configService.source,\r\n Email:data,\r\n LanguageId:'En'\r\n }\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SubscribeToNewsLetter`,body,{headers:Header});\r\n }\r\n\r\n public postOffers(data:any,token): Observable\r\n {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveOfferDetails`,data,{headers:Header});\r\n }\r\n\r\n public getOffers(token,logintype:any,offerId:any): Observable\r\n {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n LOGINTYPE:logintype,\r\n OFFER_ID:offerId.toString()\r\n }\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSchoolOffers`,{headers:Header});\r\n }\r\n\r\n getTermsAndPolicy(type:any, token)\r\n {\r\n const Header = {\r\n Authorization: `Bearer ${token}`,\r\n bsuid :\"na\",\r\n type :type,\r\n city :\"na\"\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetAppTermsandPrivacyPolicy`, { headers: Header })\r\n }\r\n}\r\n","export * from './authentication.service';\r\nexport * from './common.service';\r\nexport * from './user.service';\r\nexport * from './serviceinfo.service'\r\nexport * from './logger.service';","import { Injectable } from '@angular/core';\r\nimport { CommonService } from './common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggerService {\r\n logLevel: LogLevel = new LogLevel();\r\n msg: any;\r\n constructor(private commonService: CommonService) { }\r\n info(msg: string): void {\r\n this.logWith(this.logLevel.Info, msg);\r\n }\r\n warn(msg: any): void {\r\n this.logWith(this.logLevel.Warn, msg);\r\n }\r\n error(msg: any): void {\r\n this.msg = msg;\r\n this.postDetails()\r\n this.logWith(this.logLevel.Error, msg);\r\n }\r\n private logWith(level: any, msg: any): void {\r\n if (level <= this.logLevel.Error) {\r\n switch (level) {\r\n case this.logLevel.None:\r\n return console.log(msg);\r\n case this.logLevel.Info:\r\n return console.info('%c' + msg, 'color: #6495ED');\r\n case this.logLevel.Warn:\r\n return console.warn('%c' + msg, 'color: #FF8C00');\r\n case this.logLevel.Error:\r\n return console.log(msg);\r\n\r\n default:\r\n console.debug(msg);\r\n }\r\n }\r\n }\r\n postDetails() {\r\n let data: any = {};\r\n data = {\r\n \"Message\": this.msg?.error.message, \"RequestUri\": this.msg.url, \"LogType\": \"Error\",\r\n \"IpAddress\": localStorage.getItem('IPAddress')\r\n }\r\n console.log(data);\r\n // this.commonService.postLogInfo(data).subscribe(\r\n // res => {\r\n // console.log(res);\r\n\r\n // }\r\n // )\r\n }\r\n}\r\nexport class LogLevel {\r\n None = 0;\r\n Info = 1;\r\n Verbose = 2;\r\n Warn = 3;\r\n Error = 4;\r\n constructor() { }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { ConfigService } from './config.service';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n constructor(private http: HttpClient, private configService:ConfigService) { }\r\n isNotifications:Subject=new Subject()\r\n getToken()\r\n {\r\n let token: any;\r\n token = JSON.parse(localStorage.getItem('currentToken'))\r\n return token?.access_token;\r\n }\r\n getUsername()\r\n {\r\n let username:any;\r\n username=localStorage.getItem('parent')\r\n return username;\r\n }\r\n getNotifications()\r\n {\r\n const header = {Authorization:`Bearer ${this.getToken()}`,Parentid:this.getUsername(),Source: this.configService.source,language:\"en\"};\r\n return this.http.get(`${this.configService.baseUrl}/api/Notification/PARENT_NOTIFICATIONS`,{headers:header});\r\n }\r\n postNotifications(data)\r\n {\r\n const header = {Authorization:`Bearer ${this.getToken()}`,language:\"en\",source:this.configService.source};\r\n return this.http.post(`${this.configService.baseUrl}/api/Notification/NOTIFICATION_UPDATE`,data,{headers:header});\r\n }\r\n getCount(){\r\n const header = {Authorization:`Bearer ${this.getToken()}`,Parentid:this.getUsername(),Source: this.configService.source, type:''};\r\n return this.http.get(`${this.configService.baseUrl}/api/Notification/GetNotificationCount`,{headers:header});\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PaymentService {\r\n\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n token: any = localStorage.getItem('currentToken');\r\n excessAmt:BehaviorSubject=new BehaviorSubject(null);\r\n\r\n downloadSummaryPDF:BehaviorSubject=new BehaviorSubject(null);\r\n downloadDetailsPDF:BehaviorSubject=new BehaviorSubject(null);\r\n\r\n getPaymentType(stuid: any): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: stuid, SOURCE: this.configService.source };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_PAYMENT_TYPE`, { headers: header })\r\n }\r\n\r\n getFeeDetails(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, stuid: data.stuid, Paymentto: this.configService.source, isPaySibling: data.isPaySibling, providerTypeID: data.providerTypeID };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_FEE_DETAILS`, { headers: header })\r\n }\r\n\r\n getPaymentHistory(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_PAYMENT_HISTORY`, { headers: header })\r\n }\r\n\r\n getPaymentSummary(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_STS_STATEMENT_OF_ACCOUNTS`, { headers: header })\r\n }\r\n getEmailSummary(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, stuid: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate, statementType:'SUMMARY' };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/SEND_EMAIL_STATEMENT_OF_ACCOUNTS`, { headers: header })\r\n }\r\n\r\n getPaymentSummaryDetails(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_STATEMENT_OF_ACCOUNTS_DETAILS`, { headers: header })\r\n }\r\n\r\n postFeeDetails(data) {\r\n const header = {\r\n language: this.configService.language, paymentTo: this.configService.source,\r\n apdId: this.configService.AppId.toString(),\r\n activityFeeCollType: this.configService.client,\r\n redirectURL: this.configService.redirectionURL,\r\n paymentOrigin: \"TRANSPORT_CONNECT_WEB\"\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Payment/POST_FEE_DETAILS`, data, { headers: header });\r\n\r\n }\r\n\r\n getRefundDetails(): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`,StuNo: localStorage.getItem('selectedstudentid')};\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetRefundsData `, { headers: header })\r\n }\r\n\r\n getReceipt(data:any): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`,StudentNo: data.studNo,ReceiptNo:data.receiptNo};\r\n return this.http.get(`${this.configService.baseUrl}/api/Payment/GetFeeReceiptTemplate`, { headers: header })\r\n }\r\n\r\n saveRefund(data)\r\n {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`}\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveRefunds`, data, { headers: header });\r\n }\r\n\r\n downloadStatementOfAccountsDetailsPdf(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate, name: data.studentName, schoolName: data.schoolName, grade: data.studentGrade };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_STATEMENT_OF_ACCOUNTS_DETAILS_PDF`, { headers: header, responseType: 'blob' })\r\n }\r\n\r\n downloadStatementOfAccountsSummaryPdf(data): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, STUID: data.stuid, SOURCE: this.configService.source, fromDate: data.fromDate, toDate: data.toDate, name: data.studentName, schoolName: data.schoolName, grade: data.studentGrade };\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GET_STATEMENT_OF_ACCOUNTS_SUMMARY_PDF`, { headers: header, responseType: 'blob' })\r\n }\r\n\r\n getRefundsData(studentIds: any): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`, StuType: 'S', mode: 'HEADER', stuId: studentIds, Bsuid: localStorage.getItem('bsU_ID')};\r\n return this.http.get(`${this.configService.baseUrl}/api/TransportRefund/GET_REFUND_DATA`, { headers: header })\r\n }\r\n\r\n saveFeeRefund(data:any, attachment:any)\r\n {\r\n var formData=new FormData();\r\n formData.append(\"refundHeader\",data);\r\n if(attachment!=null){\r\n formData.append(\"RefundAttachment\",attachment);\r\n }\r\n const header = { Authorization: `Bearer ${this.token.access_token}`}\r\n return this.http.post(`${this.configService.baseUrl}/api/TransportRefund/SaveFeeRefund`, formData, { headers: header });\r\n }\r\n\r\n getTaxInvoice(data:any): Observable {\r\n const header = { Authorization: `Bearer ${this.token.access_token}`,ReceiptNo:data.receiptNo};\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GetAdvancetaxinvoice`, { headers: header })\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { RegistrationService } from './registration.service';\r\nimport { saveAs } from 'file-saver';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PdfserviceService {\r\n\r\n constructor(private http: HttpClient,public regservice:RegistrationService) {}\r\n getPdf(url: string): Observable {\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/pdf' });\r\n return this.http.get(url, { responseType: 'arraybuffer', headers });\r\n }\r\n downloadPdf(token:any,pdfscr:string,filename:string) {\r\n this.regservice.DownloadPDF(token, pdfscr).subscribe(\r\n (res: any) => {\r\n this.saveFile(res,filename);\r\n },\r\n (error) => {\r\n console.error('Error downloading PDF:', error);\r\n }\r\n );\r\n }\r\n\r\n private saveFile(response: any,filename:string): void {\r\n const blob = new Blob([response], { type: 'application/pdf' });\r\n saveAs(blob, filename);\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { FileService } from './file.service';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RegistrationService {\r\n sendStudentDetails = new BehaviorSubject(null);\r\n appUrl: any;\r\n constructor(private http: HttpClient,private fileService: FileService,private configService:ConfigService ) {\r\n this.appUrl=this.configService.appUrl;\r\n }\r\n\r\n public getSchoolList(token,location:any=''): Observable {\r\n const header = {Authorization:`Bearer ${token}`,schoolName:'',location:location};\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GET_SCHOOL_TRANSPORTAION_INFO`,{headers:header});\r\n }\r\n public getOTPfromMobile(data,otptype, token): Observable {\r\n\r\n const header = {Authorization:`Bearer ${token}`,mobilenumber:data, source:this.configService.source, deviceid:this.configService.deviceId,otptype:otptype,schoolid:localStorage.getItem(\"bsU_ID\")};\r\n\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SendSTSRegistrationOTP`,{},{headers:header});\r\n }\r\n public getParentsList(data, token): Observable {\r\n const header = {Authorization:`Bearer ${token}`, mobilenumber:data,source:this.configService.source, deviceid:this.configService.deviceId };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSTSRegistrationDetails`,{headers:header});\r\n }\r\n public getGrades(token, preLoginData:any=null): Observable {\r\n let bsuId:any;\r\n let acdId:any;\r\n if(preLoginData == null)\r\n {\r\n bsuId=localStorage.getItem(\"bsU_ID\");\r\n acdId=localStorage.getItem(\"currentAcademicYearId\")\r\n }\r\n else{\r\n bsuId=preLoginData?.bsuId;\r\n acdId=preLoginData?.acdyr;\r\n }\r\n //let bsuId =\"121013\"\r\n const header = {Authorization:`Bearer ${token}`,master: 'GRADE_M',acdid: acdId,bsuid: bsuId};\r\n return this.http.get(`${this.configService.baseUrl}/api/masters/masters`,{headers:header});\r\n }\r\n save(data: any, token: string): Observable {\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${token}`,\r\n source: this.configService.source,\r\n deviceid: this.configService.deviceId,\r\n });\r\n const storedFile = this.fileService.getFile();\r\n const formData = new FormData();\r\n formData.append('StudentProfile', storedFile);\r\n formData.append('data', JSON.stringify(data));\r\n // Append other data as needed\r\n // Object.keys(data).forEach(key => {\r\n // formData.append(key, data[key]);\r\n // });\r\n \r\n const requestOptions = {\r\n headers: headers,\r\n };\r\n if (storedFile) {\r\n // Perform your request or operation using the storedFile\r\n // ...\r\n // Clear the file after use if needed\r\n this.fileService.clearFile();\r\n }\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveTransportRegistration`, formData, requestOptions);\r\n }\r\n \r\n // save(data: any, token: string): Observable {\r\n // const headers = new HttpHeaders({\r\n // Authorization: `Bearer ${token}`,\r\n // source: this.configService.source,\r\n // deviceid: this.configService.deviceId,\r\n // });\r\n\r\n // const formData = new FormData();\r\n // formData.append('StudentProfile', localStorage.getItem('sprofileimg'));\r\n\r\n // // Append other data as needed\r\n // Object.keys(data).forEach(key => {\r\n // formData.append(key, data[key]);\r\n // });\r\n\r\n // const requestOptions = {\r\n // headers: headers,\r\n // };\r\n\r\n // return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveTransportRegistration`, formData, requestOptions);\r\n // }\r\n// public save(data, token){\r\n// //api/Transport/SaveTransportRegistration\r\n// const header = {Authorization:`Bearer ${token}`, source:this.configService.source, deviceid:this.configService.deviceId};\r\n// const formData = new FormData();\r\n// formData.append('StudentProfile', localStorage.getItem[\"sprofileimg\"]);\r\n// const requestOptions = {\r\n// headers: header,\r\n// profile:formData,\r\n// contentType: undefined,\r\n// };\r\n// return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveTransportRegistration`,data,requestOptions);\r\n \r\n// }\r\n public studentSaveAsDraft(data, token, file?: File) {\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${token}`,\r\n source: this.configService.source,\r\n deviceid: this.configService.applicationSource,\r\n });\r\n const storedFile = this.fileService.getFile();\r\n const formData = new FormData();\r\n formData.append('StudentProfile', storedFile);\r\n formData.append('data', JSON.stringify(data));\r\n const requestOptions = {\r\n headers: headers,\r\n };\r\n if (storedFile) {\r\n // Perform your request or operation using the storedFile\r\n // ...\r\n // Clear the file after use if needed\r\n //this.fileService.clearFile();\r\n }\r\n // const formData = new FormData();\r\n // formData.append('StudentProfile', file);\r\n // const headers = {\r\n // Authorization: `Bearer ${token}`,\r\n // source: this.configService.source,\r\n // deviceid: this.configService.deviceId,\r\n // };\r\n // const requestOptions = {\r\n // headers: headers,\r\n // profile:formData,\r\n // contentType: undefined,\r\n // };\r\n return this.http.post(\r\n `${this.configService.baseUrl}/api/Transport/SaveStudentDraftDetails`,\r\n formData,\r\n requestOptions\r\n );\r\n }\r\n public studentAvailabilityCheck(token,id): Observable {\r\n let bsuId=localStorage.getItem(\"bsU_ID\");\r\n const header = {Authorization:`Bearer ${token}`,StudentId:id,bsuid:bsuId};\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetStudentAvailabilityCheck`,{headers:header});\r\n }\r\n\r\n public getAcademicYrs(token,serviceDate:any,bsuIdFromOffers:any=null,hideSpinner=false): Observable {\r\n let bsuId:any\r\n if(!bsuIdFromOffers)\r\n bsuId=localStorage.getItem(\"bsU_ID\");\r\n else bsuId =bsuIdFromOffers;\r\n //let bsuId =\"121013\"\r\n\r\n let header:any = {Authorization:`Bearer ${token}`,master: 'TPT_SERVICE_DATE',bsuid: bsuId,serviceDate:serviceDate};\r\n if(hideSpinner){\r\n header ={...header,HideSpinner:'true'};\r\n }\r\n return this.http.get(`${this.configService.baseUrl}/api/masters/masters`,{headers:header});\r\n }\r\n public getGeoLocation(token, data): Observable {\r\n // localStorage.removeItem('currentAcademicYear')\r\n\r\n let bsuId=localStorage.getItem(\"bsU_ID\");\r\n const header = {\"Authorization\":`Bearer ${token}`,\"BSUID\": bsuId, \r\n \"SBLID\":data[0].SBLID,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetGEOLocations`,{headers:header});\r\n}\r\npublic getFeeAmounts(token, data:any): Observable {\r\n let bsuId=localStorage.getItem(\"bsU_ID\");\r\n let acdid = localStorage.getItem(\"currentAcademicYearId\");\r\n const header = {\r\n \"Authorization\": `Bearer ${token}`,\r\n \"BSU_ID\": bsuId.toString(),\r\n \"ACD_ID\": acdid.toString(),\r\n \"TRIPTYPE\": data[0].TRIPTYPE.toString(),\r\n \"SBL_ID\": data[0].SBLID.toString(),\r\n \"DSBLID\": data[0].DSBLID.toString(),\r\n \"STU_ID\":data[0].STU_ID.toString(),\r\n \"PROVIDER_BSU_ID\":data[0].PROVIDER_BSU_ID.toString(),\r\n \"TRM_STARTDT\":data[0].TRM_STARTDT,\r\n \"SSV_STARTDT\":data[0].SSV_STARTDT\r\n }\r\n \r\n \r\n \r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSTSFeeAmounts`,{headers:header});\r\n}\r\npublic getTermsandConditions(token:any): Observable {\r\n let bsuId=localStorage.getItem(\"bsU_ID\");\r\n let bsu_city=JSON.parse(localStorage.getItem(\"schoolDetails\"))?.bsu_city;\r\n let provider =JSON.parse(localStorage.getItem(\"schoolDetails\"))?.provider;\r\n let GRD_ID=JSON.parse(localStorage.studentDetails).stU_GRD_ID.toString();\r\n const header = {Authorization:`Bearer ${token}`,bsu_city:bsu_city,bsu_id: bsuId,provider:provider,GRD_ID:GRD_ID.toString()};\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportTermsConditions`,{headers:header});\r\n}\r\n// public DownloadPDF(token:any,pdfUrl:string): Observable {\r\n \r\n// const header = {Authorization:`Bearer ${token}`};\r\n// return this.http.get(`${this.configService.baseUrl}/api/Transport/DownloadPdf?pdfUrl=`+pdfUrl,{headers:header});\r\n// }\r\nDownloadPDF(token: any, pdfUrl: string): Observable {\r\n const headers = { Authorization: `Bearer ${token}` };\r\n\r\n let res= this.http.get(`${this.configService.baseUrl}/api/Transport/DownloadPdf?pdfUrl=` + pdfUrl, {\r\n headers,\r\n responseType: 'blob', // Important to specify responseType as blob\r\n });\r\n return res;\r\n}\r\n\r\ngetParentUndertakingData(token:any,data:any)\r\n{\r\nlet oluName = data?.oluName;\r\nlet stuNo=data?.stuNo\r\n const header = {Authorization:`Bearer ${token}`,oluName:oluName,stuNo: stuNo};\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetParentUnderTakingData`,{headers:header});\r\n}\r\n saveParentUndertakingData(token:any,data:any)\r\n {\r\n const header = {Authorization:`Bearer ${token}`};\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveParentUnderTakingData`,data,{headers:header});\r\n }\r\n\r\n saveReactivateRequest(data: any, token: string): Observable {\r\n const headers = new HttpHeaders({\r\n Authorization: `Bearer ${token}`,\r\n source: this.configService.source,\r\n deviceid: this.configService.deviceId,\r\n });\r\n // const formData = new FormData();\r\n // formData.append('data', JSON.stringify(data));\r\n \r\n const requestOptions = {\r\n headers: headers,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SAVE_REACTIVATE_SERVICE_REQUEST`, data, requestOptions);\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReregistrationService {\r\n\r\n appUrl: any;\r\n constructor(private http: HttpClient,private configService:ConfigService) { \r\n this.appUrl=this.configService.appUrl;\r\n }\r\n\r\n public getSiblingDetails(): Observable {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let studentId: any;\r\n studentId = JSON.parse(localStorage.getItem('selectedstudentid'));\r\n console.log(studentId);\r\n\r\n const header = {\r\n Authorization: `Bearer ${token.access_token}`, master: 'SIBLINGDETAIL',\r\n stunumber: studentId.toString(),\r\n IsReEnroll: 'yes', ShowAllSibiling:'1'\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/TPTReEnrollement/GetMaster_ReEnrollment`, { headers: header });\r\n }\r\n public getFeeAmount(data): Observable {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let child = JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n \"BSU_ID\": data[0].stU_BSU_ID,\r\n \"ACD_ID\": data[0].stU_CURR_ACD_ID.toString(),\r\n \"TRIPTYPE\": data[0].TRIPTYPE.toString(),\r\n \"SBL_ID\": data[0].SBLID.toString(),\r\n \"DSBLID\": data[0].DSBLID.toString(),\r\n \"STU_ID\":data[0].STU_ID.toString(),\r\n \"PROVIDER_BSU_ID\":data[0].PROVIDER_BSU_ID.toString(),\r\n \"TRM_STARTDT\":data[0].TRM_STARTDT,\r\n \"SSV_STARTDT\":data[0].SSV_STARTDT,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSTSFeeAmounts`, { headers: header });\r\n }\r\n\r\n getTermsAndConditions() {\r\n let token: any\r\n token = localStorage.getItem('currentToken');\r\n\r\n let studentId: any;\r\n studentId = JSON.parse(localStorage.getItem('selectedstudentid'));\r\n\r\n let allChildrens = JSON.parse(localStorage.getItem(\"allChildren\"));\r\n let child = allChildrens?.find((x:any) => x.studentId == studentId);\r\n\r\n let school = JSON.parse(localStorage.getItem(\"schoolList\"))\r\n\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n 'BSU_ID': child?.bsuId,\r\n 'BSU_CITY': school[0]?.citycode,\r\n 'GRD_ID':child?.gradeID\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportTermsConditions`, { headers: header });\r\n }\r\n\r\n saveReregistration(data) {\r\n\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/TPTReEnrollement/SaveMultiReEnrollmentRegTran`, data, { headers: header });\r\n }\r\n public getSchoolList(location: any = ''): Observable {\r\n let token: any\r\n token = localStorage.getItem('currentToken');\r\n const header = { Authorization: `Bearer ${token.access_token}`, schoolName: '', location: location };\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GET_SCHOOL_TRANSPORTAION_INFO`, { headers: header });\r\n }\r\n\r\n postFeeDetails(data) {\r\n //let data: any = 'https://qa.phoenixsystem.ae/stsconnect';\r\n const header = {\r\n language: this.configService.language, paymentTo: this.configService.source,\r\n apdId: this.configService.AppId.toString(),\r\n activityFeeCollType: this.configService.client,\r\n redirectURL: this.configService.redirectionURL,\r\n paymentOrigin: this.configService.paymentreenrollOrigin\r\n };\r\n console.log(header);\r\n \r\n return this.http.post(`${this.configService.baseUrl}/api/Payment/POST_FEE_DETAILS`, data, { headers: header });\r\n\r\n }\r\n public getFeeDetails(obj: any) {\r\n\r\n\r\n //return\r\n let res = this.http.get(`${this.configService.baseUrl}/${environment.api.getFeeDetails}`, {\r\n headers: {\r\n \"stuid\": obj,\r\n \"isPaySibling\": \"1\",\r\n \"providerTypeID\": \"2\",\r\n \"Paymentto\": this.configService.paymentTo\r\n\r\n }\r\n });\r\n return res;\r\n }\r\n public getPaymentType(obj: any) {\r\n\r\n\r\n let res = this.http.get(`${this.configService.baseUrl}/${environment.api.getPaymentType}`, obj);\r\n return res;\r\n }\r\n updateStatus(data:any)\r\n {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n const header = {Authorization:`Bearer ${token.access_token}`};\r\n return this.http.post(`${this.configService.baseUrl}/api/TPTReEnrollement/UpdateReenrollmentStatus`,data,{headers:header});\r\n }\r\n\r\n getTermsAndConditionsByGrade(gradeId: any, bsuId:any) {\r\n let token: any\r\n token = localStorage.getItem('currentToken');\r\n let school = JSON.parse(localStorage.getItem(\"schoolList\"))\r\n\r\n let bsuCity = school?.find((x:any) => x.bsU_ID == bsuId)?.citycode;\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n 'BSU_ID': bsuId,\r\n 'BSU_CITY': bsuCity,\r\n 'GRD_ID':gradeId\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportTermsConditions`, { headers: header });\r\n }\r\n\r\n agreeAutoPromotion(data) {\r\n\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SAVE_STUDENT_TRANSPORT_TNC_DATA`, data, { headers: header });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\nimport { environment } from '../../environments/environment';\r\nimport { User } from '../models/User';\r\nimport { Token } from '../models/token';\r\nimport { TokenService } from './token.service';\r\nimport { ConfigService } from './config.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServiceinfoService {\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n private get GetCommonHeader() {\r\n return {\r\n headers: {\r\n \"oluName\": localStorage.parent,\r\n \"language\": this.configService.language,\r\n\r\n }\r\n }\r\n }\r\n public getServiceInfo() {\r\n\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.GetServiceInfo}`, this.GetCommonHeader);\r\n }\r\n public getMaster(obj) {\r\n \r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getMasters}`, obj);\r\n }\r\n\r\n public SaveTransportRequest(obj: any): Observable {\r\n // let obj1 = JSON.parse('{\"StudentNo\":\"13100100025426\",\"ServiceStartDate\":\"2022/09/04\",\"AcdId\":\"1876\",\"TripTypeId\":\"1\"}');\r\n let res = this.http.post(`${this.configService.baseUrl}/${environment.api.saveTransportRequest}`, obj);\r\n //let res = this.http.post(\"http://localhost:27802/api/transport/SaveTransportRequest\", '{\"StudentNo\":\"13100100025426\",\"ServiceStartDate\":\"2022/09/04\",\"AcdId\":\"1876\",\"TripTypeId\":\"1\"}', obj)\r\n return res;\r\n }\r\n public SaveNonGemsTransportRequest(obj: any, objtkn: any): Observable {\r\n // let obj1 = JSON.parse('{\"StudentNo\":\"13100100025426\",\"ServiceStartDate\":\"2022/09/04\",\"AcdId\":\"1876\",\"TripTypeId\":\"1\"}');\r\n let res = this.http.post(`${this.configService.baseUrl}/${environment.api.SaveNonGemsTransportRequest}`, obj, objtkn);\r\n //let res = this.http.post(\"http://localhost:27802/api/transport/SaveTransportRequest\", '{\"StudentNo\":\"13100100025426\",\"ServiceStartDate\":\"2022/09/04\",\"AcdId\":\"1876\",\"TripTypeId\":\"1\"}', obj)\r\n return res;\r\n }\r\n}\r\n","import { Injectable, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Keepalive } from '@ng-idle/keepalive';\r\nimport { Router } from '@angular/router';\r\nimport { DEFAULT_INTERRUPTSOURCES, Idle } from '@ng-idle/core';\r\nimport { environment } from '../../environments/environment';\r\nimport { AuthenticationService } from '.';\r\nimport { Subject } from 'rxjs';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class sessionTimeoutService {\r\nidleState = 'Not started.';\r\ntimedOut = false;\r\nlastPing?: Date = null;\r\nisShowButtons:boolean=true;\r\ndataSubject = new Subject();\r\n constructor(private http: HttpClient,private idle: Idle,\r\n private keepalive: Keepalive,private dialog: MatDialog\r\n ,private router:Router,private authenticationService: AuthenticationService,\r\n private configService:ConfigService) { \r\n \r\n }\r\n\r\n checkSessionTimeout()\r\n {\r\n\r\n\t// sets an idle timeout of 5 seconds, for testing purposes.\r\n //alert(this.configService.idleTimeout);\r\n this.idle.setIdle(this.configService.idleTimeout);\r\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\r\n this.idle.setTimeout(this.configService.timeoutPeriod);\r\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\r\n this.idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n this.idle.onIdleEnd.subscribe(() => {\r\n // this.idleState = 'No longer idle.'\r\n //console.log(this.idleState);\r\n this.dialog.closeAll();\r\n this.reset();\r\n });\r\n\r\n this.idle.onTimeout.subscribe(() => {\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n //console.log(this.idleState);\r\n //this.digopen.close();\r\n this.idleState=\"Your session has expired, please login again.\";\r\n this.isShowButtons=false;\r\n // this.router.navigate(['/login']);\r\n });\r\n\r\n this.idle.onIdleStart.subscribe(() => {\r\n this.isShowButtons=true;\r\n this.idleState = 'You\\'ve gone idle!'\r\n // console.log(this.idleState);\r\n //this.childModal.show();\r\n this.dataSubject.next(true);\r\n });\r\n\r\n this.idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'Your session will expire in ' + countdown + ' seconds!'\r\n //console.log(this.idleState);\r\n });\r\n\r\n // sets the ping interval to 15 seconds\r\n this.keepalive.interval(15);\r\n\r\n this.keepalive.onPing.subscribe(() => this.lastPing = new Date());\r\n\r\n\r\n if (localStorage.getItem('currentToken') && this.authenticationService.isLoginSuccess) {\r\n this.idle.watch()\r\n this.timedOut = false;\r\n } else {\r\n this.idle.stop();\r\n }\r\n }\r\n\r\n reset() {\r\n\r\n this.idle.watch();\r\n // this.idleState = 'Started.';\r\n this.timedOut = false;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SupportService {\r\n\r\n constructor(private http: HttpClient,private configService:ConfigService) { }\r\n\r\n getSDEContact() {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let bsuid: any;\r\n bsuid = JSON.parse(localStorage.getItem('parentChildrens'))\r\n const Header = {\r\n bsuid: bsuid[0].bsuId, \r\n Authorization: `Bearer ${token.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetSDEContact`, { headers: Header })\r\n }\r\n\r\n getBusContact() {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let selectedId: any;\r\n selectedId =localStorage.getItem('selectedstudentid')\r\n const Header = {\r\n stuId: selectedId, \r\n Authorization: `Bearer ${token.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GET_TRANSPORT_GPS_SDE_DETAILS`, { headers: Header })\r\n }\r\n\r\n getFAQs() {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n const Header = {\r\n SOURCE: this.configService.source,\r\n DEVICEID: this.configService.deviceId,\r\n Authorization: `Bearer ${token.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetFAQs`, { headers: Header })\r\n }\r\n public getCategoriesData(): Observable {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let stdno:any;\r\n stdno= localStorage.getItem('selectedstudentid')\r\n const usernameHeader = {Authorization:`Bearer ${token}`, APIID: '4', stuno:stdno };\r\n return this.http.get(`${this.configService.baseUrl}/api/SchoolTransport/GET_STS_APPDATA`, {headers:usernameHeader});\r\n }\r\n\r\n getFeedbackList(titleId){\r\n ///api/SchoolTransport/GET_STS_APPDATA_POSTED\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let stdno:any;\r\n stdno= localStorage.getItem('selectedstudentid')\r\n const usernameHeader = {Authorization:`Bearer ${token}`, APIID: '6', stuno:stdno,\r\n TITLEID:titleId,\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/SchoolTransport/GET_MAIN_CONVERSATIONS`, {headers:usernameHeader});\r\n }\r\n public getTermsandConditions(): Observable {\r\n let token: any\r\n token = JSON.parse(localStorage.getItem('currentToken'));\r\n let child = JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n let school = JSON.parse(localStorage.getItem(\"schoolList\"))\r\n\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n 'BSU_ID': child[0]?.bsuId,\r\n 'BSU_CITY': school[0]?.citycode\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportTermsConditions`,{headers:header});\r\n }\r\n public getTermsandConditionsforlinks(ctoken:any): Observable {\r\n let token: any;\r\n token = ctoken;\r\n let data=JSON.parse(localStorage.getItem(\"parentChildrens\"));\r\n let bsuId = data[0]?.bsuId;\r\n let bsu_city=JSON.parse(localStorage.getItem(\"schoolDetails\"))?.bsu_city\r\n let provider =JSON.parse(localStorage.getItem(\"schoolDetails\"))?.provider\r\n const header = {Authorization:`Bearer ${token?.access_token}`,bsu_city:bsu_city,bsu_id: bsuId,provider:provider};\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetTransportTermsConditions`,{headers:header});\r\n }\r\n public getSchoolList(location: any = ''): Observable {\r\n let token: any\r\n token = localStorage.getItem('currentToken');\r\n const header = { Authorization: `Bearer ${token.access_token}`, schoolName: '', location: location };\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GET_SCHOOL_TRANSPORTAION_INFO`, { headers: header });\r\n }\r\n\r\n public getIdCardTypes(): Observable {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let bsuId:any;\r\n bsuId= localStorage.getItem('bsU_ID')\r\n const usernameHeader = {Authorization:`Bearer ${token}`, bsuid:bsuId };\r\n return this.http.get(`${this.configService.baseUrl}/api/StudentInfo/GET_STUDEN_ID_TYPES`, {headers:usernameHeader});\r\n }\r\n\r\n public saveIdCardRequest(data) {\r\n\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n const header =\r\n {\r\n \"Authorization\": `Bearer ${token.access_token}`,\r\n };\r\n return this.http.post(`${this.configService.baseUrl}/api/StudentInfo/SaveStudentIdRequest`, data, { headers: header });\r\n }\r\n\r\n postFeeDetails(data) {\r\n const header = {\r\n language: this.configService.language, paymentTo: this.configService.source,\r\n apdId: this.configService.AppId.toString(),\r\n activityFeeCollType: this.configService.client,\r\n redirectURL: this.configService.redirectionURL,\r\n paymentOrigin: this.configService.IDCardSourcePortal\r\n };\r\n console.log(header);\r\n \r\n return this.http.post(`${this.configService.baseUrl}/api/Payment/POST_FEE_DETAILS`, data, { headers: header });\r\n\r\n }\r\n public getFeeDetails(obj: any) {\r\n\r\n\r\n //return\r\n let res = this.http.get(`${this.configService.baseUrl}/${environment.api.getFeeDetails}`, {\r\n headers: {\r\n \"stuid\": obj,\r\n \"isPaySibling\": \"1\",\r\n \"providerTypeID\": \"2\",\r\n \"Paymentto\": this.configService.paymentTo\r\n\r\n }\r\n });\r\n return res;\r\n }\r\n public getPaymentType(obj: any) {\r\n\r\n\r\n let res = this.http.get(`${this.configService.baseUrl}/${environment.api.getPaymentType}`, obj);\r\n return res;\r\n }\r\n\r\n public getAllServiceRequests(): Observable {\r\n let token: any;\r\n token = localStorage.getItem('currentToken');\r\n let selectedStudentNo:any;\r\n selectedStudentNo= localStorage.getItem('selectedstudentid')\r\n const header = {Authorization:`Bearer ${token}`, STU_NO:selectedStudentNo };\r\n return this.http.get(`${this.configService.baseUrl}/api/transport/GetStudentServiceRequests`, {headers:header});\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfigService } from './config.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TokenService {\r\n constructor(private http: HttpClient,\r\n private configService:ConfigService) { }\r\n\r\n private tokenRequestBody(userName: string) {\r\n return `grant_type=${this.configService.grantType}&username=${this.configService.client}&password=${this.configService.key}&AppId=${this.configService.AppId}&app_user=${userName}`;\r\n }\r\n\r\n private tokenRequestHeader(hideSpinner=false) {\r\n let headers :any={\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }\r\n headers={...headers,HideSpinner:`${hideSpinner}`}\r\n return {\r\n headers: headers\r\n };\r\n }\r\n\r\n public GetToken(userName: string,hideSpinner=false): Observable {\r\n \r\n return this.http.post(`${this.configService.baseUrl}/${environment.api.token}`, this.tokenRequestBody(userName), this.tokenRequestHeader(hideSpinner));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient,HttpHeaders } from '@angular/common/http';\r\n\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfigService } from './config.service';\r\nimport { AuthenticationService } from '.'; \r\n\r\nimport { Token } from '../models';\r\nimport { TokenService } from './token.service';\r\n\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UaepassService {\r\n appUrl: any;\r\n constructor(public tokenservice:TokenService, private http: HttpClient,private configService:ConfigService,public authService:AuthenticationService) { \r\n this.appUrl=this.configService.appUrl;\r\n }\r\n \r\ngetUserDetails(up_access_code: any): Observable {\r\n return this.tokenservice.GetToken(\"\").pipe(\r\n switchMap(tokenResult => {\r\n const token = tokenResult.access_token;\r\n let headers = new HttpHeaders()\r\n .set('up_access_code', up_access_code)\r\n .set('Language', \"En\")\r\n .set('Authorization', 'Bearer ' + token)\r\n .set('redirecturi',this.configService.uaepasscallbackurl)\r\n .set('source',this.configService.uaepass_source);\r\n\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getuaepassuserdetails}`, { headers: headers });\r\n })\r\n );\r\n}\r\n\r\n \r\ninitateSigning(): Observable {\r\n\r\n return this.tokenservice.GetToken(\"\").pipe(\r\n switchMap(tokenResult => {\r\n const token = tokenResult.access_token;\r\n let headers = new HttpHeaders()\r\n \r\n .set('Authorization', 'Bearer ' + token)\r\n \r\n .set('source',this.configService.uaepass_source);\r\n\r\n return this.http.post(`${this.configService.baseUrl}/${environment.api.uaepassinitiatesigning}`,\"\", { headers: headers });\r\n })\r\n );\r\n}\r\n\r\nprocessDocumnetSigning(signingurl:any,files:File[]): Observable {\r\n\r\n return this.tokenservice.GetToken(\"\").pipe(\r\n switchMap(tokenResult => {\r\n const token = tokenResult.access_token;\r\n let headers = new HttpHeaders()\r\n \r\n .set('Authorization', 'Bearer ' + token)\r\n .set('signingurl', signingurl)\r\n .set('source',this.configService.uaepass_source);\r\n const formData: FormData = new FormData();\r\n files.forEach(file => {\r\n formData.append('files', file, file.name);\r\n });\r\n return this.http.post(`${this.configService.baseUrl}/${environment.api.processdocumentsigning}`,formData, { headers: headers });\r\n })\r\n );\r\n}\r\nDownloadSignedDoc(ret_signed_url:any,signIdentityId:any,txId:any,studentNo:any,schoolID:any,parentUniqueIdentifier:any): Observable {\r\n\r\n return this.tokenservice.GetToken(\"\").pipe(\r\n switchMap(tokenResult => {\r\n const token = tokenResult.access_token;\r\n let headers = new HttpHeaders()\r\n \r\n .set('Authorization', 'Bearer ' + token)\r\n .set('ret_signed_url', ret_signed_url)\r\n .set('signIdentityId', signIdentityId)\r\n .set('txId', txId)\r\n .set('studentNo', studentNo)\r\n .set('schoolID', schoolID)\r\n .set('parentUniqueIdentifier', parentUniqueIdentifier)\r\n .set('source',this.configService.uaepass_source);\r\n \r\n \r\n return this.http.post(`${this.configService.baseUrl}/${environment.api.downloadsigneddoc}`,\"\", { headers: headers });\r\n })\r\n );\r\n}\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserService {\r\n constructor(private http: HttpClient) { }\r\n}","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserprofileupdateService {\r\n private userProfileImageSource = new BehaviorSubject('/default-profile-image.jpg');\r\n userProfileImage$ = this.userProfileImageSource.asObservable();\r\n constructor() { }\r\n updateUserProfileImage(imageUrl: string) {\r\n this.userProfileImageSource.next(imageUrl);\r\n }\r\n getProfileImageUrl():Observable\r\n {\r\n return this.userProfileImageSource.asObservable();\r\n }\r\n}\r\n","import { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { LayoutTopNavModule } from './core/layout-top-nav/layout-top-nav.module';\r\nimport { LayoutComponent } from './shared/layout/layout.component';\r\nimport { SchoolBusRegistrationModule } from './features/school-bus-registration/school-bus-registration.module';\r\nimport { PreloginLayoutComponent } from './shared/prelogin-layout/prelogin-layout.component';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\n\r\nconst modules = [\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n LayoutTopNavModule,\r\n TranslateModule,\r\n SchoolBusRegistrationModule\r\n];\r\n\r\n@NgModule({\r\n imports: [...modules,BrowserModule],\r\n exports: [...modules,PreloginLayoutComponent],\r\n declarations: [PreloginLayoutComponent],\r\n})\r\n\r\nexport class SharedModule { }\r\n","import { Component, DoCheck, ElementRef, OnInit, TemplateRef } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService, CommonService } from 'src/app/service';\r\nimport { ConfigService } from 'src/app/service/config.service';\r\n\r\n@Component({\r\n selector: 'app-autoPromoLayout',\r\n templateUrl: './autoPromoLayout.component.html',\r\n styleUrls: ['./autoPromoLayout.component.scss']\r\n})\r\n\r\nexport class AutoPromoLayoutComponent implements OnInit, DoCheck {\r\n digopen:any;\r\n contactDetails: any;\r\n token: any;\r\n logoimage: string = this.configService.logoimageUrl;\r\n public oluName: string;\r\n public selectedstudentid:any;\r\n isLeasedSchool: any;\r\n isHybridSchool: any;\r\n userProfileImage: any;\r\n studentName: any;\r\n constructor(\r\n private configService:ConfigService,\r\n private auth: AuthenticationService,\r\n private router: Router, private dialog: MatDialog) {\r\n this.oluName = this.auth.currentUser.userDisplayName;\r\n }\r\n ngOnDestroy() {\r\n }\r\n ngDoCheck(): void {\r\n let data:any = localStorage.getItem('leasemodelschool')\r\n this.isLeasedSchool = data;\r\n let isHybrid:any = localStorage.getItem('IsHybrid')\r\n this.isHybridSchool = isHybrid;\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getProfileImage();\r\n }\r\n\r\n getProfileImage()\r\n {\r\n let selectedStudent = localStorage.getItem(\"selectedstudentid\");\r\n let transportChildInfo = JSON.parse(localStorage.getItem(\"transportChildInfo\"));\r\n\r\n let childInfo = transportChildInfo.filter((x:any) => x.studentNo == selectedStudent);\r\n\r\n this.userProfileImage = childInfo[0]?.photoPath === '' || childInfo[0]?.photoPath == null ? \"assets/img/no-avatar.svg\" : childInfo[0]?.photoPath;\r\n this.studentName = childInfo[0]?.studentName;\r\n }\r\n ngAfterViewInit(): void {\r\n \r\n }\r\n\r\n goToHome(){\r\n this.router.navigate(['/home']);\r\n }\r\n \r\n public logOut($event): void {\r\n $event.stopPropagation();\r\n this.auth.logout();\r\n localStorage.clear();\r\n setTimeout(() => { //<<<---using ()=> syntax\r\n this.router.navigate(['/login']);\r\n }, 1000);\r\n this.dialog.closeAll()\r\n // this.router.navigate(['/'])\r\n // .then(() => {\r\n // window.location.reload();\r\n // });\r\n }\r\n\r\n public handleMissingImage(event: Event) {\r\n // (event.target as HTMLImageElement).style.display = 'none';\r\n (event.target as HTMLImageElement).src = '../../../assets/img/no-avatar.svg';\r\n }\r\n\r\n onImageError(){\r\n return \"assets/images/social-icons/twitter.svg\"\r\n }\r\n\r\n \r\n moreMenuDialog(template: TemplateRef) {\r\n this.digopen = this.dialog.open(template, {\r\n disableClose: true,\r\n width: '500px',\r\n panelClass: 'mobile-menu-modalbox'\r\n });\r\n if (this.digopen['_overlayRef'].overlayElement) {\r\n this.digopen['_overlayRef'].overlayElement.parentElement.className += ' dialog-wrapper';\r\n }\r\n }\r\n close(){\r\n this.dialog.closeAll()\r\n }\r\n}\r\n","import { AfterViewInit, Component, DoCheck, OnInit, Renderer2 } from '@angular/core';\r\nimport { ChatMessage } from 'src/app/models/chatbot.model';\r\nimport { DashboardService } from 'src/app/service/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-layout',\r\n templateUrl: './layout.component.html',\r\n styleUrls: ['./layout.component.scss']\r\n})\r\nexport class LayoutComponent implements OnInit,DoCheck, AfterViewInit {\r\n quickLinks: any[]=[];\r\n response: any[]=[];\r\n showReRegister:boolean=false;\r\n isReregisterEnable: boolean=false;\r\n isLeasedSchool: any;\r\n openchatBot: any;\r\n greetings:any;\r\n userName:any;\r\n constructor(private dashboardService:DashboardService, private renderer: Renderer2) { }\r\n ngDoCheck(): void {\r\n let bsuId=localStorage.getItem('bsU_ID');\r\n let schoolList = JSON.parse(localStorage.getItem('schoolList'));\r\n this.isLeasedSchool = localStorage.getItem('leasemodelschool');\r\n this.isReregisterEnable=schoolList?.find(x=>x.bsU_ID == bsuId)?.isReregisterEnable;\r\n\r\n if(localStorage.getItem('transportChildInfo') != null){\r\n let studentTransportInfo = JSON.parse(localStorage.getItem('transportChildInfo'));\r\n let selectedStudentId = localStorage.getItem('selectedstudentid');\r\n let selectedStudentData = studentTransportInfo?.filter((x:any) => x.studentNo == selectedStudentId);\r\n let value = selectedStudentData[0]?.reregistered;\r\n this.showReRegister= value == '1' ? false :true;\r\n }else{\r\n let value = localStorage.getItem('isReRegister');\r\n this.showReRegister= value == '1' ? false :true;\r\n }\r\n\r\n this.quickLinks=[];\r\n this.response.forEach(x=>{\r\n if(x.title.toLowerCase() == \"re-registration\" && this.showReRegister && this.isReregisterEnable)\r\n this.quickLinks.push(x)\r\n else if(x.title.toLowerCase() != \"re-registration\")\r\n this.quickLinks.push(x);\r\n })\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getQuickLinks()\r\n }\r\n\r\nngAfterViewInit(): void {\r\n\r\n}\r\n getQuickLinks(){\r\n this.dashboardService.getQuickLinks().subscribe((res:any)=>{\r\n this.response = res?.data\r\n\r\n\r\n })\r\n }\r\n openChatBot(){ \r\n let username=localStorage.getItem(\"primaryContactName\") ?? \"\";\r\n this.userName=localStorage.getItem('parent');\r\n\r\n let currentHour=new Date().getHours();\r\n let greet='';\r\n if(currentHour<12){\r\n greet='Good Morning!';\r\n }\r\n else if(currentHour<18){\r\n greet='Good Afternoon!';\r\n }\r\n else{\r\n greet='Good Evening!';\r\n }\r\n this.greetings = {\r\n author: {\r\n id: 0\r\n },\r\n suggestedActions: [\r\n {\r\n type: 'reply',\r\n value: 'Service Availability and Fees'\r\n },\r\n {\r\n type: 'reply',\r\n value: 'Payment'\r\n }, {\r\n type: 'reply',\r\n value: 'Service Requests'\r\n }, {\r\n type: 'reply',\r\n value: 'Re-activate'\r\n }, {\r\n type: 'show-more',\r\n value: 'More'\r\n }],\r\n timestamp: new Date(),\r\n text: `Hi ${username} ${greet} I\\'m Super Driver, your virtual assistant, what would you like to know?`\r\n };\r\n\r\n this.openchatBot = !this.openchatBot;\r\n }\r\n\r\n redirectEvent(data:any){\r\n\r\n }\r\n\r\n toggleDirection(direction: string) {\r\n document.body.dir = direction;\r\n console.log('Text direction changed to:', direction);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-prelogin-layout',\r\n templateUrl: './prelogin-layout.component.html',\r\n styleUrls: ['./prelogin-layout.component.scss']\r\n})\r\nexport class PreloginLayoutComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { environment } from './../environments/environment';\r\nimport { TokenService } from './service/token.service';\r\nimport { Token } from './models/token';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { AuthenticationService } from './service';\r\nimport { formatDate } from '@angular/common';\r\nimport { ConfigService } from './service/config.service';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TransportserviceService {\r\n private currentTokenSubject = new BehaviorSubject(undefined);\r\n public editSchedule = new BehaviorSubject(null);\r\n constructor(private http: HttpClient, private tokenService: TokenService,public authService:AuthenticationService,\r\n private configService:ConfigService) { }\r\n public GetNonGemsSchoolsListByCity(obj: any) {\r\n\r\n // this.tokenService.GetToken(\"\").subscribe(tknresult => {\r\n // alert(tknresult)\r\n // let tnk = tknresult\r\n // }\r\n\r\n // );\r\n // .pipe(\r\n // tap((token: Token) => {\r\n // this.currentTokenSubject.next(token);\r\n // localStorage.setItem('currentToken', JSON.stringify(token));\r\n // }),\r\n // switchMap(() => this.http.get(`${this.configService.localapi}/${this.configService.api.transportrequest}`, obj)),\r\n // tap((user: User) => {\r\n // if (!user.errorCode) {\r\n // this.currentUserSubject.next(user);\r\n // localStorage.setItem('currentUser', JSON.stringify(user));\r\n // }\r\n // })\r\n // )\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.transportrequest}`, obj);\r\n }\r\n getTransportInfoOfChildren()\r\n {\r\n let user = localStorage.getItem(\"parent\")\r\n let headers = new HttpHeaders();\r\n headers=headers.set('oluName',user)\r\n .set('Language',\"En\")\r\n .set('Authorization','Bearer '+this.authService.currentToken?.access_token)\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.transportInfoOfChildren}`,{headers:headers});\r\n }\r\n\r\n public RequestSchedulechange(fordata:any): Observable {\r\n\r\n // const paymentheaders = { \"rpdID\": fordata.rpdID, \"rpdStuID\": JSON.parse(localStorage.parentChildrens)[0].studentId,\"rpdFromDate\":fordata.rpdFromDate,\"rpdToDate\":fordata.rpdToDate,\"rpdRemarks\":fordata.rpdRemarks,\"editable\":fordata.editable,\"delete\": fordata.deleted,\"rpdJourney\":fordata.rpdJourney};\r\n\r\n let res = this.http.post(`${this.configService.baseUrl}/${environment.api.requestSchedulechange}`,fordata, {});\r\n return res;\r\n }\r\n\r\n public GetScheduleList(token)\r\n {\r\n let Header = {\r\n Authorization:`Bearer ${token}`,\r\n LanguageId:'en',\r\n stuid: JSON.parse(localStorage.parentChildrens)[0].studentId\r\n //stuid:\"50099999000126\"\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GET_PERSONAL_PICKUP_DROP`,{headers:Header});\r\n }\r\n\r\n // public getMaster(obj) {\r\n // return this.http.get(`${this.configService.baseUrl}/${this.configService.api.getMasters}`, obj);\r\n // }\r\n\r\n getMaster():Observable\r\n {\r\n let user = localStorage.getItem(\"parent\")\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n let headers = new HttpHeaders();\r\n headers=headers.set('master',\"TRIP_TYPE\")\r\n .set('bsuid',child[0]?.bsuId)\r\n .set('Authorization','Bearer '+this.authService.currentToken?.access_token)\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getMasters}`,{headers:headers});\r\n }\r\n\r\n getReasonForDiscontinuation()\r\n {\r\n let headers = new HttpHeaders();\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n headers=headers.set('master',\"TRIP_TYPE\")\r\n .set('BSU_ID',child[0]?.bsuId)\r\n .set('Authorization','Bearer '+this.authService.currentToken?.access_token)\r\n .set('MASTER',\"DiscontinuationReason\") \r\n .set('SOURCE',\"WEB\") \r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetMastersDiscontinuation`,{headers:headers});\r\n }\r\n\r\n postDiscontinuation(body:any)\r\n {\r\n let Header = {\r\n Authorization:`Bearer ${this.authService.currentToken?.access_token}`,\r\n };\r\n let reqBody={\r\n StuId: Number(body.StuId),\r\n DiscontinuationTypeId:body.DiscontinuationTypeId,\r\n DiscontinuationReasonId: Number(body.DiscontinuationReasonId),\r\n DiscontinuationReasonRemarks:body.DiscontinuationReasonRemarks,\r\n FromDate: body.FromDate,\r\n Comments: body.Comments,\r\n source:this.configService.applicationSource\r\n }\r\n return this.http.post(`${this.configService.baseUrl}/api/Transport/SaveDiscontinuationRquest`,reqBody,{headers:Header});\r\n }\r\n getStsPaymentDue(){\r\n //\r\n let bsuid:any;\r\n bsuid = JSON.parse(localStorage.getItem('currentUser'))\r\n\r\n const header={\r\n StudentNo: localStorage.getItem('selectedstudentid')?.toString(),\r\n BSUID: bsuid.schooId,\r\n OLUNAME: localStorage.getItem('loginuser')\r\n }\r\n\r\n return this.http.get(`${this.configService.baseUrl}/api/payment/GetSTSPaymentDue`,{headers:header});\r\n\r\n }\r\n getReason()\r\n {\r\n let Header = {\r\n SOURCE: \"RR\",\r\n Authorization:`Bearer ${this.authService.currentToken?.access_token}`\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GetNotReEnrollmentReasons`,{headers:Header});\r\n }\r\n\r\n getTransportTypes():Observable\r\n {\r\n let child =JSON.parse(localStorage.getItem(\"parentChildrens\"))\r\n let headers = new HttpHeaders();\r\n headers=headers.set('master',\"TRASPORT_TYPE\")\r\n .set('bsuid',child[0]?.bsuId)\r\n .set('Authorization','Bearer '+this.authService.currentToken?.access_token)\r\n return this.http.get(`${this.configService.baseUrl}/${environment.api.getMasters}`,{headers:headers});\r\n }\r\n\r\n getDiscontinuationDateRange()\r\n {\r\n let headers = new HttpHeaders();\r\n let studentId =localStorage.getItem(\"selectedstudentid\")\r\n headers=headers.set('STU_NO',studentId)\r\n .set('Authorization','Bearer '+this.authService.currentToken?.access_token)\r\n \r\n return this.http.get(`${this.configService.baseUrl}/api/transport/Get_discontinuation_dates`,{headers:headers});\r\n }\r\n\r\n getBusTrackingDetails()\r\n{\r\n const Header = {\r\n Authorization: `Bearer ${this.authService.currentToken?.access_token}`,\r\n apiId:\"1\",\r\n StuNo: localStorage.getItem(\"selectedstudentid\"),\r\n Minutes:'',\r\n HideSpinner:\"true\"\r\n };\r\n return this.http.get(`${this.configService.baseUrl}/api/Transport/GETSTUDENTETAMAPDETAILS`, { headers: Header });\r\n}\r\n}\r\n","//var envValues=values;\r\nexport const environment = {\r\n production: false,\r\n \r\nphotopath:\"\",\r\napplicationUrl:\"http://localhost:4200\",\r\n//photopath:\"https://qa.phoenixsystem.ae/phoenixphotos/OASIS_HR/Applicantphoto/\",\r\n api: {\r\n token: 'token',\r\n login: 'api/login',\r\n PARENT_PORTAL_URL: 'api/masters/GetMenusforParentPortal',\r\n CHILDREN_BY_PARENT_URL: 'api/parent/GET_CHILDREN',\r\n GetMenusforParentPortal: 'api/masters/GetMenusforParentPortal',\r\n GetChildren: 'api/parent/GET_CHILDREN',\r\n GetServiceInfo: 'api/transport/GetStudentsTransportInfo',\r\n GetPaymentHystory: 'api/payment/GET_PAYMENT_HISTORY',\r\n getStatementofAccounts: 'api/payment/GET_STATEMENT_OF_ACCOUNTS_DETAILS',\r\n getStatementofAccountsSummary: 'api/payment/GET_STATEMENT_OF_ACCOUNTS_SUMMARY1',\r\n getPaymentType: 'api/payment/GET_PAYMENT_TYPE',\r\n getFeeDetails: 'api/payment/GET_FEE_DETAILS',\r\n getOutstandingFeeDetails: 'api/payment/GetTransportFeeOutstanding',\r\n GetTransportFeeReceipt: 'api/payment/GetTransportFeeReceipt',\r\n postfeedetails: 'api/payment/POST_FEE_DETAILS',\r\n getPaymentResult: 'api/payment/GetTransportFeePaymentResult',\r\n getRewardRedemptionDetails: 'api/rewards/GET_REWARD_REDEMPTION_DETAILS',\r\n getRedemptionHistory: 'api/rewards/GET_REDEMPTION_HISTORY',\r\n getParentContact: 'api/StudentInfo/GET_PARENT_CONTACT',\r\n posttRewardRedemptionDetails: 'api/rewards/POST_REWARD_REDEMPTION_DETAILS',\r\n postRewardRedeem: 'api/rewards/POST_REWARD_REDEEM',\r\n transportrequest: 'api/transport/GetNonGemsSchoolsListByCity',\r\n getMasters: 'api/masters/getmaster',\r\n saveTransportRequest: \"api/transport/SaveTransportRequest\",\r\n SaveNonGemsTransportRequest: \"api/transport/SaveNonGemsStudentTransportRequest\",\r\n getNotificationcount:\"api/Notification/GetNotificationCount\",\r\n getNotificationDetails:\"api/Notification/PARENT_NOTIFICATION_DETAILS\",\r\n notificationUpdate:\"api/Notification/NOTIFICATION_UPDATE\",\r\n logErrorDetails:\"api/logs\",\r\n loginAttempts:\"LoginDetails\",\r\n transportInfoOfChildren:\"api/Transport/GetStudentsTransportInfo\",\r\n GetMenusforWebPortalSTS:\"api/masters/GetMenusforWebPortalSTS\",\r\n requestSchedulechange:\"api/Transport/POST_PERSONAL_PICKUP_DROP\",\r\n getuaepassuserdetails:\"api/uaepass/GET_USER_DETAILS\",\r\n uaepassinitiatesigning:\"api/uaepass/INITIATE_SIGNING\",\r\n processdocumentsigning:\"/api/uaepass/PROCESS_DOCUMENTS_SIGNING\",\r\n downloadsigneddoc:\"api/uaepass/DOWNLOAD_SIGN_DOCUMENT\"\r\n }\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":["Component","EventEmitter","Output","SecurityContext","ChangeDetectorRef","NgZone","Input","Renderer2","ChatService","DomSanitizer","UrlRedirect","ConfigService","Guid","Router","marked","DashboardService","RegistrationService","CommonService","ChatbotComponent","constructor","svc","_sanitizer","configService","dashboardService","commonService","cdr","ngZone","registerService","router","config","renderer","id","registerNow","getNewSession","baseUrl","baseUIUrl","sessionId","localStorage","getItem","undefined","create","setItem","ngOnInit","showGreeting","fromLocalStorage","chatMessages","JSON","parse","chatDate","Date","timestamp","currentDate","toDateString","forEach","element","messages","push","showChatbot","userName","res","getChatHistory","toPromise","data","length","chatHistory","scH_DATA","replaceAll","parsedHistory","decodeURIComponent","dateToCheck","setDate","getDate","setHours","setMinutes","setSeconds","setMilliseconds","greetings","removeItem","currentHour","getHours","greet","greeting","author","bot","suggestedActions","preLoginActions","text","ngAfterViewInit","minimizeChat","isMinimized","maximizeChat","isNewMessage","newMessageCount","sendMessage","e","message","trim","setMessage","timeOutRef","clearTimeout","htmlProperty","enableOrDisableInput","chat","initializeChatModel","getAIResponse","run","x","disableForm","detectChanges","urlRedirect","isStart","isEndofStream","postChat","subscribe","getServerSentEvent","session_id","event","parsedJson","end_stream","response","textMessage","redirect_keyword","formName","selectedChild","students","studentDetail","find","studentId","student","studentName","acdId","photoPath","bsuId","actions","stu","type","value","htmlMessage","parentComponent","redirectData","getRedirectUrl","redirect","redirectUrl","replace","messagetext","renderedtext","renderMarkdown","endOfConversation","Convo_complete","setTimeout","getOtherDetailText","postChatHistory","msgGroupElements","document","getElementsByClassName","scrollIntoView","err","handleError","error","status","getToken","then","sendReply","action","requestInProgress","user","moreOptions","sessionID","chatFormData","FormData","append","chatbotSetting","environmentCode","channel","token","access_token","textString","string","sanitize","HTML","escapeHtml","unsafe","isDisable","controls","children","i","disabled","closeChat","chatClosed","emit","removeClass","body","navigateTo","redirectType","currentStudent","modebusEvent","CustomEvent","bubbles","detail","eventType","dispatchEvent","redirectPage","redirectEvent","includes","navigateByUrl","navigate","stringify","encodeURIComponent","SCH_USERNAME","SCH_DATA","SCH_SOURCE","submitEvent","SCHOOL","PROVIDER_ID","PICKUPAREA","DROPOFFAREA","TPT_TYPE","ACD_ID","submitLoginForm","primaryMobile","studentDob","ngOnDestroy","fullscreenChat","isFullScreenChat","addClass","regularscreenChat","md","mark","getContactDetails","contactDetails","getParentsList","primaryContactNumber","parentDetails","sendStudentDetails","next","queryParams","isFromDashboard","tab","selector","template"],"sourceRoot":"webpack:///","x_google_ignoreList":[135]}