{"version":3,"file":"main.js","mappings":"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ACR;AACf;AAC2B;AACrC;AAC8D;AAC5C;AAC6C;AACvC;AACF;AACiB;AACC;AACX;AACuB;AAC7C;AACyB;AACW;AACvC;AACyB;AACZ;AACQ;AACD;AACX;AACE;AACF;AACI;AACQ;AACJ;AACZ;AACK;AACwB;AACuB;AACQ;AACjB;AACG;AAClB;AACG;AACzB;AACe;AACkC;AACM;AACd;AACvB;AACH;AACT;AAC0C;AACR;AAC5B;AACC;AACG;AACE;AACtB;AACC;AACG;AACF;AACV;AACE;AACsB;AACoB;AACS;AACZ;AACZ;AACZ;AACS;AACA;AACY;AACS;AACY;AACG;AACf;AACf;AACkC;AACT;AACA;AACf;AACnB;AACyC;AACG;AACM;AACpC;AACtC;AAC8B;AACP;AACN;AACkC;AACnB;AACnB;AAC0B;AAC5B;AACW;AAC0D;AACA;AAC1D;AACA;AACR;AACiB;AACF;AACoC;AAE3G,oEAAkB,CAAC,mEAAQ,CAAC,CAAC;IAkKhB,SAAS,SAAT,SAAS;;AAAT,SAAS;IAhKrB,wDAAQ,CAAC;QACN,YAAY,EAAE;YACV,sIAAuB;YACvB,sIAAuB;YACvB,sFAAgB;YAChB,wDAAY;YACZ,0GAAuB;YACvB,kHAAyB;YACzB,oFAAgB;YAChB,+FAAmB;YAEnB,OAAO;YACP,6EAAkB;YAClB,uHAAwB;YACxB,4FAAoB;YACpB,gIAA2B;YAC3B,0HAAyB;YACzB,oFAAkB;YAClB,mGAAiB;YACjB,4GAAoB;YACpB,gGAAgB;YAChB,sGAAgB;YAChB,kHAAoB;YACpB,qHAAqB;YACrB,sGAAgB;YAChB,yHAAuB;YACvB,gHAAoB;YACpB,gHAAoB;YACpB,iGAAe;YACf,uFAAiB;YACjB,wEAAY;YACZ,oFAAgB;YAChB,iFAAe;YACf,iFAAe;YACf,8EAAc;YACd,6FAAmB;YACnB,sDAAQ;YAER,QAAQ;YACR,mFAAQ;YACR,iHAAyB;YACzB,qFAAa;YACb,mEAAS;YACT,yEAAS;YACT,kFAAU;YACV,gFAAO;YACP,kFAAY;YACZ,4GAAiB;YACjB,qFAAa;YACb,mFAAS;YACT,oHAAmB;YACnB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,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,yFAAsB,EAAE,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;;;;;;;;;AC9OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/about-pages/histoire/histoire.component.ts","./src/app/components/about-pages/partenaires/partenaires.component.ts","./src/app/components/about-pages/valeurs/valeurs.component.ts","./src/app/components/aboutus-app/aboutus-app.component.ts","./src/app/components/add-card/add-card.component.ts","./src/app/components/client-navigation/client-navigation.component.ts","./src/app/components/contact/contact.component.ts","./src/app/components/faq/faq.component.ts","./src/app/components/footer/footer.component.ts","./src/app/components/legacy/legacy.component.ts","./src/app/components/menu-navigation/menu-navigation.component.ts","./src/app/components/modal-calendar-event/modal-calendar-event.component.ts","./src/app/components/modal-datetime/modal-datetime.component.ts","./src/app/components/modal-dayofweek/modal-dayofweek.component.ts","./src/app/components/modal-payment-card/modal-payment-card.component.ts","./src/app/components/modal-rfe/modal-rfe.component.ts","./src/app/components/modal-time/modal-time.component.ts","./src/app/components/newsletter/newsletter.component.ts","./src/app/components/prestations-pages/ludique/ludique.component.ts","./src/app/components/prestations-pages/occasionnel/occasionnel.component.ts","./src/app/components/prestations-pages/periscolaire/periscolaire.component.ts","./src/app/components/prestations-pages/soutien/soutien.component.ts","./src/app/components/register/register.component.ts","./src/app/components/starter/starter.component.ts","./src/app/components/tatynanny-pages/accompagnement/accompagnement.component.ts","./src/app/components/tatynanny-pages/prestations/prestations.component.ts","./src/app/components/tatynanny-pages/recrutement/recrutement.component.ts","./src/app/components/tatynanny-pages/tarifs/tarifs.component.ts","./src/app/components/terms/terms.component.ts","./src/app/config/app.config.ts","./src/app/config/custom-paginator.ts","./src/app/connected/board/board-routing.module.ts","./src/app/connected/board/board.page.ts","./src/app/connected/board/contract/contract.page.ts","./src/app/connected/board/contract/detail-contrat-ae/detail-contrat-ae.page.ts","./src/app/connected/board/contract/detail-contrat-edu/detail-contrat-edu.page.ts","./src/app/connected/board/contract/detail-contrat-maid/detail-contrat-maid.page.ts","./src/app/connected/board/contract/detail-contrat/detail-contrat.page.ts","./src/app/connected/board/dashboard/dashboard.page.ts","./src/app/connected/board/devis/detail/detail.page.ts","./src/app/connected/board/devis/devis.page.ts","./src/app/connected/board/invoice/invoice-detail-ae/invoice-detail-ae.page.ts","./src/app/connected/board/invoice/invoice-detail/invoice-detail.page.ts","./src/app/connected/board/invoice/invoice.page.ts","./src/app/connected/board/profilePages/estimate/create-estimate/create-estimate.component.ts","./src/app/connected/board/profilePages/estimate/estimate-detail/estimate-detail.component.ts","./src/app/connected/board/profilePages/estimate/estimate.component.ts","./src/app/connected/board/profilePages/info/info.page.ts","./src/app/connected/board/profilePages/rfe/rfe.page.ts","./src/app/connected/board/timesheet/event/event.page.ts","./src/app/connected/board/timesheet/timesheet.page.ts","./src/app/home/ask-proposal/ask-proposal-info/ask-proposal-info.component.ts","./src/app/home/ask-proposal/ask-proposal-needs/ask-proposal-needs.component.ts","./src/app/home/ask-proposal/ask-proposal-service/ask-proposal-service.component.ts","./src/app/home/ask-proposal/ask-proposal.component.ts","./src/app/home/home-routing.module.ts","./src/app/home/home.page.ts","./src/app/home/tatynanny/tatynanny.component.ts","./src/app/loader-provider/loader.provider.ts","./src/app/pipes/bill-status.pipe.ts","./src/app/pipes/civilite.pipe.ts","./src/app/pipes/contract-status.pipe.ts","./src/app/pipes/date-pipe.pipe.ts","./src/app/pipes/day-of-week.pipe.ts","./src/app/pipes/frequency.pipe.ts","./src/app/pipes/hour.pipe.ts","./src/app/pipes/min-age-interval.pipe.ts","./src/app/pipes/month.pipe.ts","./src/app/pipes/product-type-pipe.pipe.ts","./src/app/pipes/proposal-status.pipe.ts","./src/app/pipes/time-schedule-status.pipe.ts","./src/app/services/alert/alert.service.ts","./src/app/services/environment/env.service.provider.ts","./src/app/services/environment/env.service.ts","./src/app/services/error/error.service.ts","./src/app/services/guard/auth-guard.service.ts","./src/app/services/keycloak/interfaces/keycloak-event.ts","./src/app/services/keycloak/keycloak-ionic.service.ts","./src/app/services/keycloak/keycloak-social-login.service.ts","./src/app/services/keycloak/keycloak.initializer.ts","./src/app/services/keycloak/keycloak.interceptor.service.ts","./src/app/services/navigation/navigation.service.ts","./src/app/services/shared/shared.service.ts","./src/app/services/upload/upload.service.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/@ionic/core/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import {NgModule} from '@angular/core';\nimport {PreloadAllModules, RouterModule, Routes} from '@angular/router';\nimport {AuthGuardService} from './services/guard/auth-guard.service';\nimport {HomePage} from './home/home.page';\nimport {HistoireComponent} from './components/about-pages/histoire/histoire.component';\nimport {PartenairesComponent} from './components/about-pages/partenaires/partenaires.component';\nimport {ValeursComponent} from './components/about-pages/valeurs/valeurs.component';\nimport {ContactComponent} from './components/contact/contact.component';\nimport {FaqComponent} from './components/faq/faq.component';\nimport {LegacyComponent} from './components/legacy/legacy.component';\nimport {LudiqueComponent} from './components/prestations-pages/ludique/ludique.component';\nimport {OccasionnelComponent} from './components/prestations-pages/occasionnel/occasionnel.component';\nimport {PeriscolaireComponent} from './components/prestations-pages/periscolaire/periscolaire.component';\nimport {SoutienComponent} from './components/prestations-pages/soutien/soutien.component';\nimport {RegisterComponent} from './components/register/register.component';\nimport {StarterComponent} from './components/starter/starter.component';\nimport {AccompagnementComponent} from './components/tatynanny-pages/accompagnement/accompagnement.component';\nimport {PrestationsComponent} from './components/tatynanny-pages/prestations/prestations.component';\nimport {RecrutementComponent} from './components/tatynanny-pages/recrutement/recrutement.component';\nimport {TarifsComponent} from './components/tatynanny-pages/tarifs/tarifs.component';\nimport {TermsComponent} from './components/terms/terms.component';\nimport {AskProposalComponent} from './home/ask-proposal/ask-proposal.component';\nimport {TatynannyComponent} from './home/tatynanny/tatynanny.component';\nimport {BoardPage} from './connected/board/board.page';\nimport {EstimateComponent} from './connected/board/profilePages/estimate/estimate.component';\nimport {EstimateDetailComponent} from './connected/board/profilePages/estimate/estimate-detail/estimate-detail.component';\nimport {CreateEstimateComponent} from './connected/board/profilePages/estimate/create-estimate/create-estimate.component';\n\nconst routes: Routes = [\n {\n path: 'home',\n component: HomePage,\n children: [\n {path: 'tatynanny', component: TatynannyComponent},\n {path: 'periscolaire', component: PeriscolaireComponent},\n {path: 'occasionnel', component: OccasionnelComponent},\n {path: 'ludique', component: LudiqueComponent},\n {path: 'soutienscolaire', component: SoutienComponent},\n {path: 'prestations', component: PrestationsComponent},\n {path: 'recrutement', component: RecrutementComponent},\n {path: 'accompagnement', component: AccompagnementComponent},\n {path: 'tarifs', component: TarifsComponent},\n {path: 'histoire', component: HistoireComponent},\n {path: 'valeur', component: ValeursComponent},\n {path: 'faq', component: FaqComponent},\n {path: 'partenaires', component: PartenairesComponent},\n {path: 'contact', component: ContactComponent},\n {path: 'legacy', component: LegacyComponent},\n {path: 'register', component: RegisterComponent},\n {path: 'terms', component: TermsComponent},\n {path: 'starter', component: StarterComponent},\n {path: 'demande-de-devis', component: AskProposalComponent},\n ]\n },\n {\n path: 'mon-espace',\n component: BoardPage,\n canActivate: [AuthGuardService],\n children: [\n {\n path: 'tableau-de-bord',\n loadChildren: () => import('./connected/board/dashboard/dashboard.module').then( m => m.DashboardPageModule)\n },\n {\n path: 'profil',\n loadChildren: () => import('./connected/board/profilePages/profile/profile.module').then( m => m.ProfilePageModule)\n },\n {\n path: 'description',\n loadChildren: () => import('./connected/board/profilePages/info/info.module').then( m => m.InfoPageModule)\n },\n {\n path: 'documents',\n loadChildren: () => import('./connected/board/profilePages/docs/docs.module').then( m => m.DocsPageModule)\n },\n {\n path: 'contrats',\n loadChildren: () => import('./connected/board/contract/contract.module').then( m => m.ContractPageModule)\n },\n {\n path: 'feuille-de-temps',\n loadChildren: () => import('./connected/board/timesheet/timesheet.module').then( m => m.TimesheetPageModule)\n },\n {\n path: 'factures',\n loadChildren: () => import('./connected/board/invoice/invoice.module').then( m => m.InvoicePageModule)\n },\n {\n path: 'attestation-fiscale',\n loadChildren: () => import('./connected/board/attestation/attestation.module').then( m => m.AttestationPageModule)\n },\n {\n path: 'banque',\n loadChildren: () => import('./connected/board/payment/payment.module').then( m => m.PaymentPageModule)\n },\n {\n path: 'rfe',\n loadChildren: () => import('./connected/board/profilePages/rfe/rfe.module').then( m => m.RfePageModule)\n },\n { path: 'demandes', component: EstimateComponent},\n { path: 'demandes/:id', component: EstimateDetailComponent},\n { path: 'nouvelle-demande', component: CreateEstimateComponent},\n {\n path: 'devis',\n loadChildren: () => import('./connected/board/devis/devis.module').then( m => m.DevisPageModule)\n },\n ]\n },\n {\n path: 'app-board',\n loadChildren: () => import('./connected/app-board/app-board.module').then(m => m.AppBoardPageModule),\n canActivate: [AuthGuardService],\n },\n {\n path: 'home/register/validate',\n loadChildren: () => import('./components/register/validate/validate.module').then(m => m.ValidatePageModule)\n },\n {\n path: 'home/validate/validate-fin',\n loadChildren: () => import('./components/register/validate-fin/validate-fin.module').then(m => m.ValidateFinModule)\n },\n {\n path: 'register-social',\n loadChildren: () => import('./components/register/register-social/register-social.module').then(m => m.RegisterSocialPageModule)\n },\n {\n path: 'register-social/:id',\n loadChildren: () => import('./components/register/register-social/register-social.module').then(m => m.RegisterSocialPageModule)\n },\n {\n path: '',\n redirectTo: 'home/tatynanny',\n pathMatch: 'full'\n },\n];\n\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, {preloadingStrategy: PreloadAllModules})\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import {HttpClient} from '@angular/common/http';\nimport {Component} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Platform} from '@ionic/angular';\nimport {SecurityService} from '@tatynanny/api';\nimport {AlertService} from './services/alert/alert.service';\nimport {EnvService} from './services/environment/env.service';\nimport {KeycloakIonicService} from './services/keycloak/keycloak-ionic.service';\nimport {SharedService} from './services/shared/shared.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss'],\n})\nexport class AppComponent {\n\n provider: string = '';\n session: string = '';\n code: string = '';\n\n\n\n constructor(\n private platform: Platform,\n private keycloakService: KeycloakIonicService,\n private router: Router,\n private securityService: SecurityService,\n private alertService: AlertService,\n private envService: EnvService,\n private sharedService: SharedService,\n ) {\n this.initializeApp();\n }\n\n initializeApp(): void {\n this.platform.ready().then(() => {\n console.log('InitializeApp');\n })\n }\n}\n","import {APP_INITIALIZER, LOCALE_ID, NgModule} from '@angular/core';\nimport {BrowserModule} from '@angular/platform-browser';\nimport {RouteReuseStrategy} from '@angular/router';\nimport {IonicModule, IonicRouteStrategy} from '@ionic/angular';\nimport {AppComponent} from './app.component';\nimport {AppRoutingModule} from './app-routing.module';\nimport {MenuNavigationComponent} from './components/menu-navigation/menu-navigation.component';\nimport {HttpClientModule, HTTP_INTERCEPTORS} from '@angular/common/http';\nimport {CommonModule, registerLocaleData} from '@angular/common';\nimport localeFr from '@angular/common/locales/fr';\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\nimport {AgmCoreModule} from '@agm/core';\nimport {MatGoogleMapsAutocompleteModule} from '@angular-material-extensions/google-maps-autocomplete';\nimport {AccountType, Configuration} from '@tatynanny/api';\nimport {ModalPaymentCardComponent} from './components/modal-payment-card/modal-payment-card.component';\nimport {FormsModule, ReactiveFormsModule} from \"@angular/forms\";\nimport {EnvService} from './services/environment/env.service';\nimport {EnvServiceProvider} from './services/environment/env.service.provider';\nimport {KeycloakIonicService} from './services/keycloak/keycloak-ionic.service';\nimport {initializer} from './services/keycloak/keycloak.initializer';\nimport {KeycloakInterceptorService} from './services/keycloak/keycloak.interceptor.service';\nimport {APP_CONFIG} from './config/app.config';\nimport {StarterComponent} from './components/starter/starter.component';\nimport {AboutusAppComponent} from './components/aboutus-app/aboutus-app.component';\nimport {SwiperModule} from 'swiper/angular';\nimport {MatMomentDateModule} from '@angular/material-moment-adapter';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatSelectModule} from '@angular/material/select';\nimport {HomePageRoutingModule} from './home/home-routing.module';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {NgCalendarModule} from 'ionic2-calendar';\nimport {Ng2SearchPipeModule} from 'ng2-search-filter';\nimport {BoardPageRoutingModule} from './connected/board/board-routing.module';\nimport {ClientNavigationComponent} from './components/client-navigation/client-navigation.component';\nimport {ModalCalendarEventComponent} from './components/modal-calendar-event/modal-calendar-event.component';\nimport {ModalDatetimeComponent} from './components/modal-datetime/modal-datetime.component';\nimport {ModalDayofweekComponent} from './components/modal-dayofweek/modal-dayofweek.component';\nimport {ModalRfeComponent} from './components/modal-rfe/modal-rfe.component';\nimport {ModalTimeComponent} from './components/modal-time/modal-time.component';\nimport {BoardPage} from './connected/board/board.page';\nimport {ContractPage} from './connected/board/contract/contract.page';\nimport {DetailContratAePage} from './connected/board/contract/detail-contrat-ae/detail-contrat-ae.page';\nimport {DetailContratMaidPage} from './connected/board/contract/detail-contrat-maid/detail-contrat-maid.page';\nimport {DetailContratPage} from './connected/board/contract/detail-contrat/detail-contrat.page';\nimport {DashboardPage} from './connected/board/dashboard/dashboard.page';\nimport {DetailPage} from './connected/board/devis/detail/detail.page';\nimport {DevisPage} from './connected/board/devis/devis.page';\nimport {InvoiceDetailAePage} from './connected/board/invoice/invoice-detail-ae/invoice-detail-ae.page';\nimport {InvoiceDetailPage} from './connected/board/invoice/invoice-detail/invoice-detail.page';\nimport {InvoicePage} from './connected/board/invoice/invoice.page';\nimport {RfePage} from './connected/board/profilePages/rfe/rfe.page';\nimport {EventPage} from './connected/board/timesheet/event/event.page';\nimport {TimesheetPage} from './connected/board/timesheet/timesheet.page';\nimport {CivilitePipe} from './pipes/civilite.pipe';\nimport {DatePipePipe} from './pipes/date-pipe.pipe';\nimport {DayOfWeekPipe} from './pipes/day-of-week.pipe';\nimport {FrequencyPipe} from './pipes/frequency.pipe';\nimport {HourPipe} from './pipes/hour.pipe';\nimport {MonthPipe} from './pipes/month.pipe';\nimport {ProductTypePipePipe} from './pipes/product-type-pipe.pipe';\nimport {HistoireComponent} from './components/about-pages/histoire/histoire.component';\nimport {PartenairesComponent} from './components/about-pages/partenaires/partenaires.component';\nimport {ValeursComponent} from './components/about-pages/valeurs/valeurs.component';\nimport {ContactComponent} from './components/contact/contact.component';\nimport {FaqComponent} from './components/faq/faq.component';\nimport {FooterComponent} from './components/footer/footer.component';\nimport {LegacyComponent} from './components/legacy/legacy.component';\nimport {NewsletterComponent} from './components/newsletter/newsletter.component';\nimport {LudiqueComponent} from './components/prestations-pages/ludique/ludique.component';\nimport {OccasionnelComponent} from './components/prestations-pages/occasionnel/occasionnel.component';\nimport {PeriscolaireComponent} from './components/prestations-pages/periscolaire/periscolaire.component';\nimport {SoutienComponent} from './components/prestations-pages/soutien/soutien.component';\nimport {RegisterComponent} from './components/register/register.component';\nimport {AccompagnementComponent} from './components/tatynanny-pages/accompagnement/accompagnement.component';\nimport {PrestationsComponent} from './components/tatynanny-pages/prestations/prestations.component';\nimport {RecrutementComponent} from './components/tatynanny-pages/recrutement/recrutement.component';\nimport {TarifsComponent} from './components/tatynanny-pages/tarifs/tarifs.component';\nimport {TermsComponent} from './components/terms/terms.component';\nimport {AskProposalInfoComponent} from './home/ask-proposal/ask-proposal-info/ask-proposal-info.component';\nimport {AskProposalNeedsComponent} from './home/ask-proposal/ask-proposal-needs/ask-proposal-needs.component';\nimport {AskProposalServiceComponent} from './home/ask-proposal/ask-proposal-service/ask-proposal-service.component';\nimport {AskProposalComponent} from './home/ask-proposal/ask-proposal.component';\nimport {HomePage} from './home/home.page';\nimport {TatynannyComponent} from './home/tatynanny/tatynanny.component';\nimport {MinAgeIntervalPipe} from './pipes/min-age-interval.pipe';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {EstimateComponent} from './connected/board/profilePages/estimate/estimate.component';\nimport {AddCardComponent} from './components/add-card/add-card.component';\nimport {MatTableModule} from '@angular/material/table';\nimport {MatPaginatorIntl, MatPaginatorModule} from '@angular/material/paginator';\nimport {MatSortModule} from '@angular/material/sort';\nimport {CustomPaginatorConfig} from './config/custom-paginator';\nimport {EstimateDetailComponent} from './connected/board/profilePages/estimate/estimate-detail/estimate-detail.component';\nimport {CreateEstimateComponent} from './connected/board/profilePages/estimate/create-estimate/create-estimate.component';\nimport {ProposalStatusPipe} from './pipes/proposal-status.pipe';\nimport {ContractStatusPipe} from './pipes/contract-status.pipe';\nimport {BillStatusPipe} from './pipes/bill-status.pipe';\nimport {TimeScheduleStatusPipe} from './pipes/time-schedule-status.pipe';\nimport {InfoPage} from './connected/board/profilePages/info/info.page';\nimport {DetailContratEduPage} from './connected/board/contract/detail-contrat-edu/detail-contrat-edu.page';\n\nregisterLocaleData(localeFr);\n\n@NgModule({\n declarations: [\n CreateEstimateComponent,\n EstimateDetailComponent,\n AddCardComponent,\n AppComponent,\n MenuNavigationComponent,\n ModalPaymentCardComponent,\n StarterComponent,\n AboutusAppComponent,\n\n // HOME\n MinAgeIntervalPipe,\n AskProposalInfoComponent,\n AskProposalComponent,\n AskProposalServiceComponent,\n AskProposalNeedsComponent,\n TatynannyComponent,\n HistoireComponent,\n PartenairesComponent,\n ValeursComponent,\n LudiqueComponent,\n OccasionnelComponent,\n PeriscolaireComponent,\n SoutienComponent,\n AccompagnementComponent,\n PrestationsComponent,\n RecrutementComponent,\n TarifsComponent,\n RegisterComponent,\n FaqComponent,\n ContactComponent,\n LegacyComponent,\n FooterComponent,\n TermsComponent,\n NewsletterComponent,\n HomePage,\n\n // BOARD\n InfoPage,\n ClientNavigationComponent,\n DashboardPage,\n BoardPage,\n DevisPage,\n DetailPage,\n RfePage,\n ContractPage,\n DetailContratPage,\n TimesheetPage,\n EventPage,\n DetailContratAePage,\n InvoicePage,\n InvoiceDetailPage,\n InvoiceDetailAePage,\n DetailContratMaidPage,\n DetailContratEduPage,\n \n ProductTypePipePipe,\n CivilitePipe,\n FrequencyPipe,\n DayOfWeekPipe,\n DatePipePipe,\n HourPipe,\n MonthPipe,\n\n ModalDatetimeComponent,\n ModalRfeComponent,\n ModalDayofweekComponent,\n ModalTimeComponent,\n ModalCalendarEventComponent,\n\n EstimateComponent,\n ProposalStatusPipe,\n ContractStatusPipe,\n BillStatusPipe,\n TimeScheduleStatusPipe,\n\n\n ],\n imports: [\n MatSortModule,\n MatPaginatorModule,\n MatTableModule,\n MatTooltipModule,\n CommonModule,\n HomePageRoutingModule,\n MatInputModule,\n MatFormFieldModule,\n MatButtonModule,\n MatMenuModule,\n MatIconModule,\n MatMomentDateModule,\n MatDatepickerModule,\n MatSelectModule,\n\n\n // BOARD MODULE \n ReactiveFormsModule,\n BoardPageRoutingModule,\n MatCheckboxModule,\n NgCalendarModule,\n Ng2SearchPipeModule,\n\n\n SwiperModule,\n MatGoogleMapsAutocompleteModule,\n AgmCoreModule.forRoot({\n apiKey: 'AIzaSyAAr8z3OjnqnW5Wqp-r4eBWizbu6eayxk8',\n libraries: ['places'],\n }),\n HttpClientModule,\n BrowserModule,\n IonicModule.forRoot(),\n AppRoutingModule,\n BrowserAnimationsModule,\n FormsModule,\n ],\n exports: [],\n providers: [\n {provide: MatPaginatorIntl, useClass: CustomPaginatorConfig},\n EnvServiceProvider,\n {provide: LOCALE_ID, useValue: 'fr'},\n {provide: RouteReuseStrategy, useClass: IonicRouteStrategy},\n {\n provide: Configuration,\n useFactory: (envService: EnvService) => {\n console.log('api: ', envService.apiUrl);\n const configBase = {\n // set configuration parameters here.\n withCredentials: true,\n basePath: envService.apiUrl,\n };\n return new Configuration(configBase);\n },\n deps: [EnvService],\n multi: false,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: KeycloakInterceptorService,\n multi: true,\n },\n {\n provide: KeycloakIonicService,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializer,\n deps: [KeycloakIonicService, EnvService],\n multi: true,\n },\n {\n provide: APP_CONFIG,\n useValue: {\n userType: AccountType.Client\n }\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-histoire',\n templateUrl: './histoire.component.html',\n styleUrls: ['./histoire.component.scss'],\n})\nexport class HistoireComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-partenaires',\n templateUrl: './partenaires.component.html',\n styleUrls: ['./partenaires.component.scss'],\n})\nexport class PartenairesComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-valeurs',\n templateUrl: './valeurs.component.html',\n styleUrls: ['./valeurs.component.scss'],\n})\nexport class ValeursComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ModalController} from '@ionic/angular';\n\n@Component({\n selector: 'app-aboutus-app',\n templateUrl: './aboutus-app.component.html',\n styleUrls: ['./aboutus-app.component.scss'],\n})\nexport class AboutusAppComponent implements OnInit {\n\n realIndex: number = 0;\n\n constructor(\n private modalCtrl: ModalController,\n ) { }\n\n ngOnInit() {}\n\n dismiss(): void {\n this.modalCtrl.dismiss();\n }\n\n onSlideChange(event: any): void {\n console.log(event);\n this.realIndex = event[0].realIndex;\n }\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Component, Input, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {ModalController, Platform} from '@ionic/angular';\nimport {CardInfo, StripePaymentService, PaymentResourceService, SecurityService} from '@tatynanny/api';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\ndeclare var Stripe: any;\n\n// import {Stripe, PaymentFlowEventsEnum} from '@capacitor-community/stripe';\n\n\n@Component({\n selector: 'app-add-card',\n templateUrl: './add-card.component.html',\n styleUrls: ['./add-card.component.scss']\n})\nexport class AddCardComponent implements OnInit {\n\n cardsInfos: CardInfo[]\n cardsSaved: CardInfo[] = []\n defaultCard: CardInfo\n\n @Input(\"product\") product: any;\n\n stripe: any;\n elements: any;\n card: any;\n\n constructor(\n private stripePaymentService: StripePaymentService,\n private paymentService: PaymentResourceService,\n private router: Router,\n public platform: Platform,\n private alertService: AlertService,\n private securityService: SecurityService,\n private keycloakService: KeycloakIonicService,\n private modalCtrl: ModalController,\n private http: HttpClient\n ) {\n this.stripe = Stripe('pk_test_51LfL3bHycFurCKDkIOQHIhk9akhWHCIBvLGHoYwceSQcO7bakxTDwBTzQ6bFzqMuBdeKw1wvdnui5QQjgX2fYoI3001LokDF98');\n // Stripe.initialize({\n // publishableKey: 'pk_test_51LfL3bHycFurCKDkIOQHIhk9akhWHCIBvLGHoYwceSQcO7bakxTDwBTzQ6bFzqMuBdeKw1wvdnui5QQjgX2fYoI3001LokDF98',\n // });\n }\n\n ngOnInit() {\n // this.refresh();\n this.loadCards();\n console.log(this.product);\n }\n\n ngAfterViewInit() {\n this.refresh();\n }\n\n dismissModal(): void {\n this.modalCtrl.dismiss();\n }\n\n selectCard(card: any): void {\n this.modalCtrl.dismiss(card);\n }\n\n refresh(): void {\n // Your Stripe public key\n\n // Create `card` element that will watch for updates\n // and display error messages\n this.elements = this.stripe.elements();\n this.card = this.elements.create('card');\n this.card.mount('#card-element');\n this.card.addEventListener('change', event => {\n const displayError = document.getElementById('card-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n });\n\n // Listen for form submission\n const paymentForm = document.getElementById('payment-form');\n paymentForm.addEventListener('submit', event => {\n event.preventDefault();\n this.stripe.createToken(this.card).then(result => {\n if (result.error) {\n console.log('Error creating payment method.');\n const errorElement = document.getElementById('card-errors');\n errorElement.textContent = result.error.message;\n this.alertService.closeLoader();\n this.alertService.error(`Une erreur est survenue lors de l'ajout de votre carte, veuillez réessayez ultérieurement.`);\n } else {\n console.log('Token acquired!');\n console.log(result.token);\n console.log(result.token.id);\n this.paymentService.addCreditCard({\n cardId : result.token.id,\n defaultCard : true\n }).forEach(r => {\n console.log(r)\n this.alertService.success(`Votre carte a bien été ajouté !`);\n this.loadCards();\n }).catch(e => {\n console.log(e)\n this.alertService.error('Error : ' + e);\n this.modalCtrl.dismiss('fail');\n })\n }\n })\n });\n }\n\n // validate(): void {\n // this.stripePaymentService.createSetupIntent().subscribe(r => {\n // console.log(\"Setup Intent\", r);\n // this.stripe.confirmCardSetup(r.result, {\n // payment_method: {\n // card: this.card,\n // },\n // }).then(resCard => {\n // console.log('SETUP INTENT RESULT', resCard);\n // // UPDATE CUSTOMER WITH PM\n // this.stripePaymentService.updateCustomer({\n // defaultPaymentMethod: resCard.payment_method,\n // }).subscribe(() => {\n // this.modalCtrl.dismiss(\"success\")\n // })\n // }); \n // })\n // }\n\n // useCard(cardId): void {\n // console.log(cardId);\n\n // this.stripePaymentService.createSetupIntent().subscribe(r => {\n // console.log(\"Setup Intent\", r);\n // this.stripe.confirmCardSetup(r.result, {\n // payment_method: {\n // card: this.card,\n // },\n // }).then(function(result) {\n // console.log('SETUP INTENT RESULT', result);\n // // UPDATE CUSTOMER WITH PM\n // this.stripePaymentService.updateCustomer({\n // defaultPaymentMethod: result.payment_method,\n // cardId: result\n // }).then(() => {\n // this.modalCtrl.dismiss('sucess');\n // })\n // }); \n // })\n // }\n\n loadCards(): void {\n this.cardsSaved = [];\n this.paymentService.listCreditCards().forEach(r => {\n console.log(r)\n this.cardsSaved = r.items;\n // this.cardsInfos = r.items\n // for (let card of this.cardsInfos) {\n // if (card.defaultCard) {\n // this.defaultCard = card\n // }\n // else {\n // this.cardsSaved.push(card)\n // }\n // }\n }).catch(e => {\n console.log(e)\n })\n }\n\n deleteCard(id: string): void {\n this.paymentService.removeCreditCard({\n cardId: id\n }).forEach(r => {\n console.log(r)\n this.loadCards()\n }).catch(e => {\n console.log(e)\n })\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MenuController } from '@ionic/angular';\nimport {Router} from \"@angular/router\";\nimport {FrontparentService} from \"@tatynanny/api\";\nimport {Subscription} from 'rxjs';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {NavigationService} from 'src/app/services/navigation/navigation.service';\nimport {SharedService} from 'src/app/services/shared/shared.service';\n\n@Component({\n selector: 'app-client-navigation',\n templateUrl: './client-navigation.component.html',\n styleUrls: ['./client-navigation.component.scss'],\n})\nexport class ClientNavigationComponent implements OnInit {\n\n disabled: boolean = false;\n\n menuEventSubscription: Subscription;\n\n imgURL: string = '';\n\n constructor(\n private keycloakService: KeycloakIonicService,\n private alertService: AlertService,\n private router: Router,\n private parentService: FrontparentService,\n public navigationService: NavigationService,\n private sharedService: SharedService,\n private envService: EnvService,\n ) {\n this.menuEventSubscription = this.sharedService.getRefreshMenu().subscribe(() => {\n this.refresh();\n });\n }\n\n ngOnInit() {\n this.refresh();\n }\n\n refresh(): void {\n this.navigationService.refreshClient().then((n) => {\n if(n) {\n if(n.result.civilite == null || n.result.formattedAddress == null || n.result.nbEnfants == null || n.result.birthdate == null) {\n this.disabled = true;\n } else {\n this.disabled = false;\n }\n }\n })\n }\n\n logout(): void {\n this.keycloakService.logout();\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {ContactUsForm, FrontgeneralService} from '@tatynanny/api';\nimport {AlertService} from 'src/app/services/alert/alert.service';\n\n@Component({\n selector: 'app-contact',\n templateUrl: './contact.component.html',\n styleUrls: ['./contact.component.scss'],\n})\nexport class ContactComponent implements OnInit {\n\n tabError: string[] = ['', '', ''];\n errorUserForm: boolean = false;\n\n form: ContactUsForm = {\n subject: '',\n email: '',\n message: '',\n };\n\n firstname: string = '';\n lastname: string = '';\n\n constructor(\n private frontgeneral: FrontgeneralService,\n private alertService: AlertService,\n ) { }\n\n ngOnInit() {\n\n }\n\n checkcontactForm() {\n this.errorUserForm = false;\n if (this.form.email.length == 0) {\n this.tabError[0] = 'Veuillez renseigner votre adresse mail';\n this.errorUserForm = true;\n }\n if (this.form.subject.length == 0) {\n this.tabError[1] = 'Veuillez renseigner l\\'Objet de votre mail';\n this.errorUserForm = true;\n }\n if (this.form.message.length == 0) {\n this.tabError[2] = 'Veuillez renseigner votre message';\n this.errorUserForm = true;\n }\n return this.errorUserForm;\n }\n\n send(): void {\n console.log(this.errorUserForm);\n console.log(this.tabError);\n if (!this.checkcontactForm()) {\n this.alertService.ask('Information', 'Voulez-vous envoyez votre message ?', 'Oui, envoyer', () => {\n this.frontgeneral.apiV1GeneralContactPost(this.form).forEach(r => {\n if(r.status) {\n this.form.subject = '';\n this.form.email = '';\n this.form.message = '';\n this.alertService.success('Message envoyé');\n \n }\n }).catch((e) => {\n console.log(e);\n this.alertService.error(\"Impossible d'envoyer votre message. Veuillez réessayez ultérieurement.\");\n });\n })\n }\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-faq',\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.scss'],\n})\nexport class FaqComponent implements OnInit {\n\n\n bref: string = `\n TatyNanny est une agence de garde d’enfants haut de gamme située à Paris.
\n Notre agence propose une gamme de services étoffée, qui comprend notamment :
\n 1. Les gardes d’enfants en périscolaire
\n 2. Les gardes ponctuelles
\n 3. Les gardes ludo-créatives
\n 4. Les cours de soutien scolaire
\n 5. Les ateliers d’accompagnement à la parentalité
\n\n Notre agence de babysitting se situe au 2 Rue Quinault – 75015 Paris, vous pouvez du Lundi au Vendredi venir à notre rencontre. Nous mettons également à disposition de nos membres une plateforme (web et application) simple et intuitive vous permettant de réserver une babysitter à la dernière minute…à proximité et surtout disponible en temps réel.\n
\n Que ce soit via l’agence ou via notre application (pour les babysitting de dernière minute), toutes nos babysitters suivent un processus de recrutement exigeant. Aucun.e de nos babysitters, salarié.e ou indépendant.e ne vous sera proposé.e sans que toutes les étapes de recrutements et de vérifications n’aient été validées minutieusement par nos équipes. Les parents peuvent désormais s’appuyer sur un service de garde d’enfants éligible à la CAF et au crédit d’impôt, permettant une mise en relation avec des babysitters fiables, déclaré.e.s, assuré.e.s et ce, même à la dernière minute.\n `\n\n babysitter = [\n {id: 0, question: \"Comment s'inscrire sur TatyNanny ?\", answer: `L’inscription sur TatyNanny est simple, rapide et 100% gratuite. Il suffit de vous rendre sur notre page d’accueil www.tatynanny.com et cliquer sur le bouton « Inscription » et sélectionner le profil « Je suis baby-sitter ». Après avoir complété les informations obligatoires, une validation de votre numéro de téléphone et de votre adresse email seront nécessaires pour accéder à l’étape suivante. Afin de permettre à nos équipes de vous connaître et de valider votre profil, renseignez toutes les informations demandées puis, confirmez votre inscription.\n
\n Afin de permettre à nos équipes de vous connaître et de vous contacter pour un entretien. Renseignez toutes les informations demandées puis confirmer votre inscription. `},\n {id: 1, question: \"Comment se passe le processus de sélection/recrutement ?\", answer: `Afin de garantir le respect de nos valeurs, la validation de votre profil est soumise dans un premier temps à un entretien téléphonique de « présélection » puis dans un deuxième temps à un entretien individuel dans nos locaux.\n
\n La pré-sélection :\n Après la confirmation de votre inscription, TatyNanny procède à l’examen de votre dossier. Un membre de notre équipe vous contacte dans les 48h pour un premier échange téléphonique, un entretien sera programmé si votre profil répond aux critères d’exigences recherchés par TatyNanny.\n
\n \n Entretien individuel :\n L’objectif de l’entretien est vous connaître (parcours, motivations, aptitude et engagements) et de partager avec vous les valeurs fondatrices de notre société. Nous sommes conscients que cette étape est primordiale pour notre future collaboration, c’est pourquoi notre équipe attache une importance particulière à ces échanges. Chez TatyNanny les Baby-sitters sont accompagnées à chaque stade de leur évolution. Etablir une relation solidaire et de confiance avec nos Babysitters est une de nos priorités.`},\n ];\n\n parents = [\n [\n {id: 0, question: \"Comment s'inscrire sur TatyNanny ?\", \n answer: `\n L’inscription sur TatyNanny est simple, rapide et 100% gratuite. Il suffit de vous rendre sur notre page d’accueil http ://tatynanny.com/, cliquer sur le bouton « Inscription » et sélectionner le profil « Je suis Parent ». Complétez les informations obligatoires, une validation de votre numéro de téléphone et de votre adresse email est nécessaire pour accéder à l’étape suivante.\n
\n Après avoir complété les informations obligatoires, une validation de votre numéro de téléphone et de votre adresse email seront nécessaires pour accéder à l’étape suivante. Afin de permettre à nos équipes de vous connaître et de valider votre profil, renseignez toutes les informations demandées puis, confirmez votre inscription.`},\n {id: 1, question: \"Comment se passe la validation de mon profil ?\", \n answer: `Une fois l’inscription terminée, un membre de l’équipe TatyNanny procède à la vérification de votre profil et des informations fournies par vos soins. Pour toutes demande, exceptée pour la garde occasionnelle, vous serez rapidement contacté.e afin de procéder à la qualification de vos besoins. Notre objectif est de vous fournir un service en parfaite adéquation avec vos besoins`},\n {id: 2, question: \"Une fois membre, dois-je payer un abonnement ? \",\n answer: `Aucun frais d’abonnement n’est demandé pour utiliser nos services. Nous facturons uniquement les prestations réellement consommées.`}\n ],\n [\n {id: 3, question: \"Comment trouver ma babysitter ?\", \n answer: `Pour les demandes de babysitting en périscolaire et pour les demandes de soutien scolaire, TatyNanny travaille sur mesure avec un accompagnement personnalisé. Notre équipe se donne pour mission de trouver la baby-sitter correspondant aux critères et aux besoins de la famille. Une fois votre inscription terminée, un membre de l’équipe vous contacte afin de cibler vos critères de recherche. Après la phase de qualification de vos besoins, nous vous présenterons un ou plusieurs dossiers complets de Nannies. Après avoir validé la ou les Nannies qui vous plaisent, un ou plusieurs entretiens seront réalisés afin de trouver la Nanny idéale. Après l’entretien nous attendons votre validation et celle de la Nannie pour mettre en place l’ensemble des procédures administratives pour que votre Nanny puisse commencer sa mission à temps. Vous n’avez rien à faire, Tatynanny s’occupe de tout.`},\n {id: 4, question: \"Puis-je choisir ma babysitter ?\", \n answer: `Oui, vous aurez accès aux profils des baby-sitters. Le descriptif de son parcours, de ses expériences, de ses diplômes. Après l’entretien, vous faites votre choix et la babysitter aussi, si c’est un OUI des deux côtés alors elle devient votre babysitter !`},\n {id: 5, question: \"Comment se déroule la mission au cours de l'année scolaire ?\", \n answer: `\n La nanny retenue à l’issue de l’entretien intervient chez vous et s’engage à respecter l’ensemble de vos pré-requis. Un relevé d’heures d’intervention est aussitôt mis en place, il est accessible directement depuis votre espace. Une facture au temps réel vous sera adressée à la fin du mois pour l’ensemble des heures effectuées par votre babysitter.\n
\n Pour les familles éligibles à la CAF, nous nous occupons de l’ensemble des démarches auprès de l’organisme.\n
\n Notre équipe vous contacte à la fin de chaque mois afin d’évaluer votre satisfaction quant aux prestations de votre Nanny. Vous pouvez bien évidemment contacter votre consultant attitré au cours de mois en cas de problème. Dans le cadre de notre programme d’accompagnement personnalisé, un consultant chargée de votre dossier et du suivi de votre nanny vous sera attitré pour tout au long de la mission, vous pouvez le contacter à votre convenance.`},\n {id: 6, question: \"Comment régler la Nanny ?\", \n answer: `Pour les prestations en périscolaire, les règlements s’effectuent par prélèvement bancaire.`},\n ],\n [\n {id: 7, question: \"Comment trouver ma babysitter de dernière minute ?\", \n answer: `Il suffit de vous connecter à l’application, de rentrer vos critères de recherches et notre algorithme se charge de vous présenter l’ensemble des Nannies disponibles et correspondant à vos besoins. Toutes nos prestations de babysitting sont déclarées, assurées et éligibles au crédit d’impôt.`},\n {id: 8, question: \"Puis-je choisir ma babysitter ?\", \n answer: `Oui, vous aurez accès aux profils des Nannies : le descriptif de leur parcours, de leurs expériences, de leurs diplômes ainsi que les commentaires laissés par les autres parents Cela, en plus de notre rigoureux processus de sélection vous permettra de trouver votre Nannie idéal.`},\n {id: 9, question: \"Comment se déroule la mise en contact, une fois la babysitter trouvée ?\", \n answer: `La mise en relation pour des demandes de garde ponctuelle est très simple. Elle est effective une fois la mission acceptée par les parties (parents et Nannie). Une notification de confirmation contenant les coordonnées de la babysitter vous sera envoyée. Vous pouvez dès lors, si vous le souhaitez, contacter votre babysitter.`},\n {id: 10, question: \"En combien de temps après l’envoi de la demande de garde reçois-je la confirmation ?\", \n answer: `Les Nannies occasionnelles ont un délai de 30 minutes pour accepter ou décliner votre demande. En cas d’acceptation, TatyNanny vous adresse les coordonnées de la babysitter choisie par SMS ou notification. En cas de refus, TatyNanny vous informe par SMS, tout en prenant soin de vous suggérer une liste de babysitters disponibles de confiance.`},\n {id: 11, question: \"Puis-je annuler une mission confirmée à la dernière minute ?\", \n answer: `L’annulation d’une mission est possible. Toutefois, pour les annulations des missions ponctuelles, les parents restent redevables de la 1re heure si l’annulation intervient 2 heures avant l’heure prévue d’intervention.`},\n {id: 12, question: \"Que se passe-t-il en cas d’annulation par la baby-sitter ?\", \n answer: `Les Nannies ont la possibilité d’annuler une mission confirmée. Elles ont l’obligation de prévenir les parents ainsi que les membres de l’équipe de TatyNanny dans les plus brefs délais, ceci afin que nos équipes puissent proposer une Nannie de remplacement en urgence. Cependant, et dans la mesure où les baby-sitters sont suivis par nos équipes, nous les rencontrons mensuellement pour un bilan d’activité. Elles sont engagées vis-à-vis des familles par notre charte de qualité qui exclut les annulations répétitives. Aussi et dans un esprit d’exigence, notre règlement stipule que la Société se réserve le droit de cesser toute collaboration avec les Nannies ayant plus de 5 annulations dans le mois.`},\n {id: 13, question: \"Dois-je rémunérer le baby-sitter pour les heures réservées mais non consommées ?\", \n answer: `Le nombre d’heures indiquées lors de votre réservation peut varier. Afin de rémunérer les baby-sitters au plus juste, l’application TatyNanny comporte un « Chronomètre de mission ». Les baby-sitters sont invitées, en présence des parents, à l’activer en début de mission et à l’arrêter lorsque celle-ci se termine. Notre système de facturation se chargera de ré-ajuster le montant de la mission au temps passé. Par conséquent, les parents paient uniquement les heures réellement consommées.`},\n {id: 14, question: \"Comment signaler un comportement irrespectueux de la part d’un baby-sitter ?\", \n answer: `A la fin de chaque mission, les parents doivent noter et commenter le déroulement de la mission. La notation et les commentaires sont des retours d’expérience précieux pour la communauté des parents d’une part, et d’autre part ils constituent un excellent moyen de signaler à notre équipe les comportements irrespectueux de la part d’une de nos Nannies. En cas de non-respect de la charte de bonne conduite, nos équipes interviendront auprès des babysitters pour leur rappeler les valeurs fondatrices de notre communauté. Enfin, il est à rappeler qu’une Nannie peut être suspendue ou exclue de la communauté en cas de retours d’expérience négatifs et répétitifs. Le respect mutuel est un pilier fondamental de notre communauté, nous veillerons à ce qu’il soit appliqué pour le bien-être de tous nos membres.`},\n {id: 15, question: \"Comment régler la babysitter et mon paiement est–il sécurisé ?\", \n answer: `Le règlement des missions s’effectue via notre plateforme par carte bancaire. Le paiement par carte bancaire est entièrement sécurisé. Il répond aux normes les plus strictes en terme de cryptage et de sécurisation des échanges. TatyNanny n'a pas accès à vos coordonnées bancaires, elles sont directement collectées par notre partenaire de paiement Stripe qui dispose de l'agrément européen.`},\n {id: 16, question: \"Comment obtenir ma facture ?\", \n answer: `A la fin de chaque mission, TatyNanny met à votre disposition la facture correspondante aux prestations fournies. Vous pouvez la retrouver à la rubrique « Facture et paiement » accessible depuis votre espace personnel.`},\n ],\n ]\n \n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.scss'],\n})\nexport class FooterComponent implements OnInit {\n\n constructor(\n private keycloakService: KeycloakIonicService\n ) { }\n\n ngOnInit() {}\n\n login(): void {\n this.keycloakService.login();\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-legacy',\n templateUrl: './legacy.component.html',\n styleUrls: ['./legacy.component.scss'],\n})\nexport class LegacyComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MenuController } from '@ionic/angular';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {NavigationService} from 'src/app/services/navigation/navigation.service';\n\n@Component({\n selector: 'app-menu-navigation',\n templateUrl: './menu-navigation.component.html',\n styleUrls: ['./menu-navigation.component.scss'],\n})\nexport class MenuNavigationComponent implements OnInit {\n\n public prestationsPages = [\n { title: 'Nos prestations', url: '/home/ludique', icon: 'clipboard-outline'},\n { title: 'Recrutement', url: '/home/recrutement', icon: 'people-circle-outline' },\n { title: 'Accompagnement', url: '/home/accompagnement', icon: 'people-outline' },\n { title: 'Tarifs', url: '/home/tarifs', icon: 'pricetag-outline' },\n { title: 'Notre Histoire', url: '/home/histoire', icon: 'book-outline' },\n ];\n\n\n isLoggedIn: boolean = false;\n\n constructor(\n private menu: MenuController,\n private keycloakIonicService: KeycloakIonicService,\n public navigationService: NavigationService,\n private envService: EnvService,\n ) {\n }\n\n ngOnInit() {\n this.navigationService.isLoggedIn = this.keycloakIonicService.getKeycloakInstance().authenticated;\n this.isLoggedIn = this.navigationService.isLoggedIn;\n\n }\n\n\n login(): void {\n this.keycloakIonicService.login();\n }\n\n logout(): void {\n this.keycloakIonicService.logout();\n }\n\n async closeMenu(): Promise {\n await this.menu.close('menu');\n }\n\n redirectToNanny(): void {\n window.location.href = `${this.envService.frontBabysitterUrl}`;\n }\n}\n","import { formatDate } from '@angular/common';\nimport { Component, Inject, Input, LOCALE_ID, OnInit, ViewChild } from '@angular/core';\nimport { AlertController, IonDatetime, MenuController, ModalController, Platform } from '@ionic/angular';\n// import { CalendarMode } from 'ionic2-calendar/calendar';\nimport * as moment from 'moment';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport { ModalDatetimeComponent } from '../modal-datetime/modal-datetime.component';\nimport {CalendarMode} from 'ionic2-calendar/calendar';\n\n@Component({\n selector: 'app-modal-calendar-event',\n templateUrl: './modal-calendar-event.component.html',\n styleUrls: ['./modal-calendar-event.component.scss'],\n})\nexport class ModalCalendarEventComponent implements OnInit {\n \n calendar = {\n mode: 'month' as CalendarMode,\n currentDate: new Date(),\n locale: 'fr',\n formatHourColumn: 'HH:mm',\n }\n \n viewTitle: string;\n \n event = {\n title: 'M. ou Mme.',\n desc: 'Type de garde ...',\n day: '',\n startTime: '',\n endTime: '',\n };\n markDisabled = (date: Date) => {\n var currentMonth = new Date().getMonth();\n return date.getMonth() < currentMonth || date.getMonth() > currentMonth;\n };\n \n modalReady = false;\n\n sliderOptions = {\n threshold: 50\n }\n\n @Input('selectedDay') selectedDay: any;\n\n selectedTimeStart: any;\n selectedTimeEnd: any;\n \n @Input('eventSource') eventSource;\n\n dateFormat = \"YYYY-MM-DDTHH:mm:ss.sssZ\";\n\n @ViewChild('dateStart') dateStart: IonDatetime;\n @ViewChild('dateEnd') dateEnd: IonDatetime;\n\n constructor(\n private platform: Platform,\n private menu: MenuController,\n private keycloakIonicService: KeycloakIonicService,\n private alertCtrl: AlertController,\n @Inject(LOCALE_ID) private locale: string,\n private modalCtrl: ModalController,\n private alertSerivce: AlertService\n ) { }\n\n ngOnInit(): void {\n let currentDay = moment().date();\n this.event.day = currentDay.toString();\n this.event.startTime = moment().hours(0).minutes(0).seconds(0).milliseconds(0).format(this.dateFormat);\n this.event.endTime = moment(this.event.startTime).add(1, 'hours').format(this.dateFormat);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n // this.calendar.currentDate = this.selectedDay;\n this.modalReady = true;\n }, 100)\n }\n\n async onEventSelected(event) {\n console.log(event)\n // Use Angular date pipe for conversion\n let start = formatDate(event.startTime, 'medium', this.locale);\n let end = formatDate(event.endTime, 'medium', this.locale);\n\n const alert = await this.alertCtrl.create({\n header: event.title,\n subHeader: event.desc,\n message: 'Du: ' + start + '
Au: ' + end,\n buttons: ['OK'],\n });\n alert.present();\n }\n\n onDateEndChange(ev: any): void {\n this.event.endTime = ev;\n }\n\n onDateStartChange(ev: any): void {\n this.event.startTime = ev;\n }\n\n\n save() { \n this.modalCtrl.dismiss({event: this.event})\n }\n \n onViewTitleChanged(title) {\n this.viewTitle = title;\n }\n \n onTimeSelected(ev) { \n let date = moment(ev.selectedTime).date();\n this.event.day = date.toString();\n this.event.startTime = moment(this.event.startTime).set('date', parseInt(this.event.day)).format(this.dateFormat);\n this.event.endTime = moment(this.event.endTime).set('date', parseInt(this.event.day)).format(this.dateFormat);\n }\n \n close() {\n this.modalCtrl.dismiss();\n }\n\n async openModalTime() {\n const modal = await this.modalCtrl.create({\n component: ModalDatetimeComponent,\n cssClass: 'modal-time',\n backdropDismiss: false,\n });\n\n modal.onDidDismiss().then(data => {\n console.log(data);\n })\n await modal.present();\n }\n}\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'app-modal-datetime',\n templateUrl: './modal-datetime.component.html',\n styleUrls: ['./modal-datetime.component.scss'],\n})\nexport class ModalDatetimeComponent implements OnInit {\n\n @Input('time') time: any;\n @Input('day') day: any;\n @Input('at') at: any;\n @Input('index') index: any;\n // @Input('min') min: any;\n\n dateFormat = \"YYYY-MM-DDTHH:mm:ss.sssZ\";\n\n init: boolean = false;\n\n title: string = '';\n\n constructor(\n private modalController: ModalController,\n ) { }\n\n ngOnInit() {\n // if(this.min != null) {\n // this.min = moment(this.min).format(this.dateFormat);\n // console.log('MOMENT MIN', this.min);\n // }\n\n if(this.at == 'start') {\n this.title = 'Heure de début';\n } else {\n this.title = 'Heure de fin';\n }\n\n console.log('TITRE: ', this.title);\n this.time = moment().locale('fr').hours(0).minutes(0).seconds(0).format(this.dateFormat);\n this.init = true;\n }\n\n\n onChange(ev: any): void {\n //console.log(ev);\n this.time = ev.detail.value;\n }\n\n dismissModal(): void {\n let object = {\n time: this.time,\n day: this.day,\n at: this.at,\n index: this.index,\n }\n this.modalController.dismiss(object);\n }\n\n dismissWithNothing(): void {\n this.modalController.dismiss();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport { ParentNeedRecurrence } from '@tatynanny/api';\n\n@Component({\n selector: 'app-modal-dayofweek',\n templateUrl: './modal-dayofweek.component.html',\n styleUrls: ['./modal-dayofweek.component.scss'],\n})\nexport class ModalDayofweekComponent implements OnInit {\n\n days = [\n {day: 1, checked: false},\n {day: 2, checked: false},\n {day: 3, checked: false},\n {day: 4, checked: false},\n {day: 5, checked: false},\n {day: 6, checked: false},\n {day: 7, checked: false},\n ]\n\n selectedDays = [];\n\n form: 'day' | 'time' = 'day';\n\n rfe: [\n { dayOfWeek: number, startTime: string, endTime: string, frequency: ParentNeedRecurrence},\n ]\n\n constructor(\n private modalCtrl: ModalController,\n ) { }\n\n ngOnInit() {}\n\n selectAll(): void {\n this.days.forEach(r => {\n r.checked = true;\n })\n }\n\n onWillDismiss(ev): void {\n console.log(ev);\n }\n\n dismiss(): void {\n this.days.forEach(r => {\n if(r.checked) {\n this.selectedDays.push(r.day);\n }\n })\n this.modalCtrl.dismiss(this.selectedDays);\n }\n\n dismissWithNothing(): void {\n this.modalCtrl.dismiss();\n }\n\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {ModalController} from \"@ionic/angular\";\nimport {RemoveCardForm} from \"@tatynanny/api/model/removeCardForm\";\nimport {CardInfo, PaymentResourceService, StripePaymentService} from \"@tatynanny/api\";\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {AddCardComponent} from '../add-card/add-card.component';\ndeclare var Stripe: any;\n\n\n@Component({\n selector: 'app-modal-payment-card',\n templateUrl: './modal-payment-card.component.html',\n styleUrls: ['./modal-payment-card.component.scss'],\n})\nexport class ModalPaymentCardComponent implements OnInit {\n\n @Input(\"discount\") discount: boolean;\n @Input(\"credit\") credit: any;\n\n cardNumber: any;\n cardFound: boolean = false;\n cardList: CardInfo[] = [];\n card: CardInfo;\n\n stripe: any;\n elements: any;\n cardElement: any;\n priceCeil: any;\n\n remain: any;\n total: any;\n price: any;\n coupon: boolean = false;\n couponCode: string = \"\";\n\n amount: any;\n subTotal: any;\n\n codeValidated: boolean = false;\n reduction: any;\n totalAfterCode: any;\n\n\n constructor(\n private modalCtrl: ModalController,\n private paymentService: PaymentResourceService,\n private keycloakService: KeycloakIonicService,\n private alertService: AlertService,\n private stripePaymentService: StripePaymentService,\n ) {\n this.stripe = Stripe('pk_test_51LfL3bHycFurCKDkIOQHIhk9akhWHCIBvLGHoYwceSQcO7bakxTDwBTzQ6bFzqMuBdeKw1wvdnui5QQjgX2fYoI3001LokDF98');\n }\n\n addCoupon(): void {\n this.coupon = !this.coupon;\n if (this.coupon == false) {\n this.couponCode = \"\";\n }\n }\n\n ngOnInit(): void {\n // console.log(\"PRODUCT PAYMENT :\", this.product);\n // console.log(\"DISCOUNT PAYMENT :\", this.discount);\n\n // if (!this.buyCredit) {\n // this.credit = this.credit.toFixed(2);\n\n // this.price = (this.product.prices[0].unitAmount / 100).toFixed(2);\n // if (this.credit > 0) {\n // if (this.credit > this.product.prices[0].unitAmount / 100) {\n // this.priceCeil = (this.product.prices[0].unitAmount / 100).toFixed(2);\n // this.remain = (this.credit - this.priceCeil).toFixed(2);\n // this.total = 0.00.toFixed(2);\n // } else {\n // this.priceCeil = this.credit;\n // this.total = parseFloat((this.product.prices[0].unitAmount / 100).toFixed(0)) - this.credit;\n // this.remain = 0;\n // }\n // } else {\n // this.total = (this.product.prices[0].unitAmount / 100).toFixed(2);\n // }\n // } else {\n // this.subTotal = 0.00.toFixed(2);\n // this.total = 0.00.toFixed(2);\n // }\n\n this.refresh();\n }\n\n onChangeAmount(): void {\n console.log(this.amount);\n if (this.amount >= 1) {\n this.subTotal = (this.amount * 1.2).toFixed(2);\n this.total = (this.amount * 1.2).toFixed(2);\n } else {\n this.subTotal = 0.00.toFixed(2);\n this.total = 0.00.toFixed(2);\n }\n }\n\n refresh(): void {\n\n this.keycloakService.isLoggedIn().then(connected => {\n if (connected) {\n this.paymentService.listCreditCards().subscribe(r => {\n console.log(r);\n if (r.items.length > 0) {\n this.cardFound = true;\n this.cardList = r.items;\n }\n for (let item of r.items) {\n if (item.defaultCard) {\n this.card = item;\n }\n }\n\n })\n }\n })\n }\n\n ngAfterViewInit(): void {\n this.elements = this.stripe.elements();\n this.cardElement = this.elements.create('card');\n this.cardElement.mount('#card-element');\n\n console.log(\"CARD ELEMENT: \", this.cardElement);\n\n this.cardElement.addEventListener('change', event => {\n const displayError = document.getElementById('card-errors');\n if (event.error) {\n displayError.textContent = event.error.message;\n } else {\n displayError.textContent = '';\n }\n });\n }\n\n validateCredit(): void {\n this.alertService.ask(\"Paiement\", \"Voulez-vous valider le paiement ?\", \"Oui, valider\", () => {\n this.alertService.loading().then(() => {\n if (this.cardList.length == 0 && !this.card) {\n this.stripe.createToken(this.cardElement).then(createToken => {\n if (createToken.error) {\n console.log('Error creating payment method.');\n const errorElement = document.getElementById('card-errors');\n errorElement.textContent = createToken.error.message;\n this.alertService.error(\"Une erreur est survenue lors de l'ajoute de votre carte, veuillez réessayez ultérieurement.\");\n } else {\n console.log('Token acquired!', createToken.token, createToken.token.id);\n this.paymentService.addCreditCard({\n cardId: createToken.token.id,\n defaultCard: true,\n }).forEach(addCreditCard => {\n console.log(\"AddCreditCard\", addCreditCard);\n this.paymentService.defaultCard(addCreditCard.result).subscribe(defaultCard => {\n console.log(\"Default Card\", defaultCard);\n this.stripePaymentService.paymentIntent({\n cardId: addCreditCard.result,\n discount: false,\n promotionCode: this.couponCode != \"\" ? this.couponCode : null,\n }).subscribe(paymentIntent => {\n console.log(\"Payment Intent\", paymentIntent);\n this.stripe.confirmCardPayment(paymentIntent.result).then(confirmCardPayment => {\n console.log(\"Confirm card payment\", confirmCardPayment);\n if (confirmCardPayment.error) {\n if (confirmCardPayment.error.paymentIntent.status != \"succeeded\") {\n this.alertService.closeLoader();\n this.alertService.error(\"Paiement échoué !\");\n this.modalCtrl.dismiss();\n } else {\n this.alertService.closeLoader();\n this.alertService.success(\"Paiement réussi ! Cela peut prendre quelques instants ...\");\n this.modalCtrl.dismiss();\n }\n } else {\n this.alertService.closeLoader();\n this.alertService.success(\"Paiement réussi ! Cela peut prendre quelques instants ...\");\n this.modalCtrl.dismiss();\n }\n }).catch(error => {\n console.log(error);\n })\n })\n })\n })\n }\n })\n } else {\n this.paymentService.defaultCard(this.card.id).subscribe(defaultCard => {\n console.log(\"Default Card\", defaultCard);\n this.stripePaymentService.paymentIntent({\n cardId: this.card.id,\n promotionCode: this.couponCode != \"\" ? this.couponCode : null,\n credits: this.amount,\n discount: false,\n }).subscribe(paymentIntent => {\n console.log(\"Payment Intent\", paymentIntent);\n this.stripe.confirmCardPayment(paymentIntent.result).then(confirmCardPayment => {\n console.log(\"Confirm card payment\", confirmCardPayment);\n if (confirmCardPayment.error) {\n if (confirmCardPayment.error.paymentIntent.status != \"succeeded\") {\n this.alertService.closeLoader();\n this.alertService.error(\"Paiement échoué\");\n this.modalCtrl.dismiss();\n } else {\n this.alertService.closeLoader();\n this.alertService.success(\"Paiement réussi. Cela peut prendre quelques instants ...\");\n this.modalCtrl.dismiss();\n }\n } else {\n this.alertService.closeLoader();\n this.alertService.success(\"Paiement réussi ! Cela peut prendre quelques instants ...\");\n this.modalCtrl.dismiss();\n }\n }).catch(error => {\n console.log(error);\n })\n })\n })\n }\n })\n }, \"Non, annuler\", () => {\n this.modalCtrl.dismiss(\"error\");\n })\n }\n\n changeCard(cardSelected: CardInfo): void {\n this.card = cardSelected;\n }\n\n async openCardModal() {\n const modal = await this.modalCtrl.create({\n component: AddCardComponent,\n });\n modal.onDidDismiss().then(value => {\n console.log(value);\n if (value.data) {\n this.changeCard(value.data);\n }\n })\n return await modal.present();\n }\n\n dismissModal(): void {\n this.modalCtrl.dismiss();\n }\n\n // applyCode(): void {\n // if (this.amount > 0) {\n // this.stripePaymentService.applyCode(this.couponCode).subscribe(applyCode => {\n // console.log(\"ApplyCode\", applyCode);\n // if (applyCode.status) {\n // if (applyCode.result) {\n // if (applyCode.result.amount > this.amount) {\n // this.alertService.infos(\"Information\", `Le montant de votre réduction est supérieur au montant de votre achat (Réduction de : ${applyCode.result.amount} €)`, \"Compris\");\n // } else {\n // this.reduction = applyCode.result.amount;\n // this.alertService.loading(\"Validation du code ...\").then(() => {\n // this.totalAfterCode = this.total - applyCode.result.amount;\n // this.codeValidated = true;\n // this.alertService.closeLoader();\n // })\n // }\n // }\n // } else {\n // this.alertService.infos(\"Information\", \"Le code promotionnelle est invalide.\", \"Compris\");\n // }\n // })\n // } else {\n // this.alertService.infos(\"Information\", \"Veuillez d'abord saisir le montant souhaité\", \"Compris\");\n // }\n // }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ModalController} from \"@ionic/angular\";\n\n@Component({\n selector: 'app-modal-rfe',\n templateUrl: './modal-rfe.component.html',\n styleUrls: ['./modal-rfe.component.scss'],\n})\nexport class ModalRfeComponent implements OnInit {\n\n daysList : any[];\n List : any;\n start : string;\n end : string;\n\n constructor(private modalCtrl: ModalController) { }\n\n ngOnInit() {\n console.log(\"Tablist\",this.List)\n console.log(\"daylist\",this.daysList)\n this.start = this.List[0].startTime;\n this.end = this.List[0].endTime;\n }\n\n dismissModal(): void {\n this.modalCtrl.dismiss({\n choiceDays : this.daysList\n });\n }\n\n validateSelection() {\n this.dismissModal();\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ModalController } from '@ionic/angular';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'app-modal-time',\n templateUrl: './modal-time.component.html',\n styleUrls: ['./modal-time.component.scss'],\n})\nexport class ModalTimeComponent implements OnInit {\n\n init: boolean = false;\n dateFormat = \"YYYY-MM-DDTHH:mm:ss.sssZ\";\n time: any;\n @Input('title') title: string;\n @Input('selectTime') selectTime: any;\n @Input('event') event: any;\n \n constructor(\n private modalCtrl: ModalController,\n ) { }\n\n ngOnInit() {\n console.log(this.event);\n if(this.selectTime == undefined) {\n this.time = moment().locale('fr').hours(0).minutes(0).seconds(0).format(this.dateFormat);\n } else {\n console.log(\"SELECT TIME : \", this.selectTime);\n }\n }\n\n ionViewDidEnter() {\n this.init = true;\n }\n\n\n close(): void {\n this.modalCtrl.dismiss();\n }\n\n dismissModal(): void {\n if(this.selectTime == undefined) {\n this.modalCtrl.dismiss({\n time: this.time,\n title: this.title\n });\n } else {\n this.modalCtrl.dismiss({\n selectTime: this.selectTime,\n });\n }\n }\n\n dismissModalEvent(): void {\n this.modalCtrl.dismiss({\n selectTime: this.selectTime,\n event: this.event,\n })\n }\n\n onChangeTime(ev: any): void {\n //console.log(ev);\n this.time = ev.detail.value;\n }\n\n onChange(ev: any): void {\n console.log(ev);\n this.selectTime = ev.detail.value;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ModalController} from '@ionic/angular';\nimport {CampaignEmailForm, CampaignEmailService} from '@tatynanny/api';\n\n@Component({\n selector: 'app-newsletter',\n templateUrl: './newsletter.component.html',\n styleUrls: ['./newsletter.component.scss'],\n})\nexport class NewsletterComponent implements OnInit {\n\n campaignEmailForm: CampaignEmailForm = {\n email: \"\",\n }\n\n error: string = \"\";\n\n constructor(\n private modalCtrl: ModalController,\n private campaignService: CampaignEmailService,\n ) { }\n\n ngOnInit() {}\n\n dismiss(): void {\n this.modalCtrl.dismiss(true);\n }\n\n dismissModal(): void {\n this.modalCtrl.dismiss(false);\n }\n\n submit(): void {\n this.campaignService.subscribe(this.campaignEmailForm).subscribe(res => {\n console.log(res);\n if(res.status) {\n this.error = \"\";\n this.dismiss();\n } else {\n this.error = \"Mail déjà utilisé\";\n }\n })\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-ludique',\n templateUrl: './ludique.component.html',\n styleUrls: ['./ludique.component.scss'],\n})\nexport class LudiqueComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-occasionnel',\n templateUrl: './occasionnel.component.html',\n styleUrls: ['./occasionnel.component.scss'],\n})\nexport class OccasionnelComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-periscolaire',\n templateUrl: './periscolaire.component.html',\n styleUrls: ['./periscolaire.component.scss'],\n})\nexport class PeriscolaireComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-soutien',\n templateUrl: './soutien.component.html',\n styleUrls: ['./soutien.component.scss'],\n})\nexport class SoutienComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import {HttpClient} from '@angular/common/http';\nimport {Component, ElementRef, EventEmitter, OnInit, Output, ViewChild} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {AccountType, ApiResult, AuthProvider, MinAgeInterval, PhoneOtpForm, RegisterAccountForm, RegisterService, RequestForEstimate} from '@tatynanny/api';\nimport {Router} from '@angular/router';\nimport {IonInput, IonItem} from '@ionic/angular';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {KeycloakSocialLoginService} from 'src/app/services/keycloak/keycloak-social-login.service';\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.component.html',\n styleUrls: ['./register.component.scss'],\n})\nexport class RegisterComponent implements OnInit {\n /**\n * Define if user phone is valid\n */\n @Output() formEventOutput: EventEmitter =\n new EventEmitter();\n /**\n * Save phone value for register form\n */\n @Output() savePhoneNumber: EventEmitter = new EventEmitter();\n /**\n * Boolean to show/hide form\n */\n isValidPhone: boolean = false;\n errorMessage: string = '';\n\n /**\n * User values\n */\n phoneNumber: string = '';\n codeNumber: string = '';\n phoneUser: PhoneOtpForm = new (class implements PhoneOtpForm {\n otp: string;\n phoneNumber: string;\n })();\n sendPhone: boolean = false;\n\n newAccount: RegisterAccountForm = new class implements RegisterAccountForm {\n authProvider?: AuthProvider;\n formattedAddress?: string;\n addressNumber?: string;\n address?: string;\n city?: string;\n zipcode?: string;\n country?: string;\n latitude: number;\n longitude?: number;\n nbChild?: number;\n minAgeInterval?: MinAgeInterval;\n requestForEstimate?: RequestForEstimate;\n accountType: AccountType & string;\n email: string = '';\n firstname: string = '';\n id: number;\n lastname: string = '';\n password: string = '';\n phoneNumber: string = '';\n }\n\n // pass: string = '';\n\n error: boolean = false\n tabError: string[] = [\n '', '', '', '', ''\n ]\n confirmPwd: string\n\n validateForm: boolean = false;\n\n selected: 'VOID' | 'APP' | 'GOOGLE' | 'FACEBOOK' = 'VOID';\n\n @ViewChild('lastname') lastnameInput;\n @ViewChild('firstname') firstnameInput;\n @ViewChild('email') emailInput;\n @ViewChild('password') passwordInput: IonInput;\n\n @ViewChild('passwordItem') passwordItem: ElementRef;\n\n pass: string = '';\n\n segment: 'parent' | 'babysitter' = \"parent\";\n\n\n constructor(\n private http: HttpClient,\n private alert: AlertService,\n private registerService: RegisterService,\n private router: Router,\n private keycloakService: KeycloakIonicService,\n private keycloakSocialLoginService: KeycloakSocialLoginService,\n private envService: EnvService,\n ) { }\n\n ngOnInit() { }\n\n\n setFocus(elementId): void {\n elementId.setFocus();\n }\n\n\n login(): void {\n this.keycloakService.login();\n }\n\n selectRegister(type: any): void {\n this.selected = type;\n this.keycloakSocialLoginService.redirectOauthPage(type);\n }\n\n askPhone(number: string): void {\n\n this.alert.loading();\n this.phoneUser.phoneNumber = number;\n let observable: Observable = this.registerService.askPhoneOTP(this.phoneUser);\n const FILTER_PHONE: RegExp = /^[+]?\\d{10,11}$/;\n if (FILTER_PHONE.test(this.phoneUser.phoneNumber)) {\n observable\n .forEach((r) => {\n if (r.status) {\n this.sendPhone = true;\n this.isValidPhone = true;\n this.alert.closeLoader();\n }\n }).catch((e) => {\n if (e.error == 'PhoneAlreadyExistException') {\n this.errorMessage = 'Votre numéro est déjà utilisé';\n this.alert.closeLoader();\n } else {\n\n this.alert.closeLoader();\n this.alert.error(`Page indisponible, nous faisons le maximum pour vous rétablir l'accès`);\n }\n });\n } else {\n this.errorMessage = \"Votre numéro n'est pas valide\";\n this.alert.closeLoader();\n }\n }\n\n\n /**\n * To show/hide form\n */\n showForm() {\n this.isValidPhone = !this.isValidPhone;\n console.log(this.isValidPhone);\n this.formEventOutput.emit(this.isValidPhone);\n }\n /**\n * To save output phone number\n */\n savePhone(): void {\n this.savePhoneNumber.emit(this.phoneNumber.trim());\n }\n\n validatePhone(code: string): void {\n this.phoneUser.otp = code;\n console.log('CODE : ', code);\n\n let observable: Observable = this.registerService.validatePhoneOTP(this.phoneUser);\n\n observable\n .forEach((r) => {\n console.log(r);\n if (r.status) {\n this.isValidPhone = true;\n this.errorMessage = '';\n console.log('CODE VALIDE');\n } else {\n this.isValidPhone = true;\n console.log(this.isValidPhone);\n this.errorMessage = \"Le code n'est pas valide\";\n }\n })\n .catch((e) => {\n if (e.error == 'NotValidatedPhone') {\n this.errorMessage = \"Le code n'est pas valide\";\n } else\n this.alert.error(\"Page indisponible, nous faisons le maximum pour vous rétablir l'accès\");\n });\n }\n\n addAccount(): void {\n // REGEX\n const FILTER_STRING = /(^[a-zéèêëôœîïûüàáâæç\\s-]+$)/i\n const FILTER_MAIL: RegExp = /(^[\\w.-]+@[\\w.-]+\\.[\\w]{2,4}$)/\n this.error = false\n\n // Filter inputs values\n\n if (!FILTER_STRING.test(this.newAccount.lastname.trim())) {\n this.tabError[0] = 'Veuillez renseigner votre nom'\n this.error = true\n }\n else\n this.tabError[0] = ''\n\n if (!FILTER_STRING.test(this.newAccount.firstname.trim())) {\n this.tabError[1] = 'Veuillez renseigner votre prénom'\n this.error = true\n }\n else\n this.tabError[1] = ''\n\n if (!FILTER_MAIL.test(this.newAccount.email.trim())) {\n this.tabError[2] = 'Veuillez renseigner votre email'\n this.error = true\n }\n else\n this.tabError[2] = ''\n\n if (this.newAccount.password.length < 6) {\n this.tabError[3] = 'Minimum 6 caractères';\n this.error = true;\n } else {\n this.tabError[3] = '';\n }\n\n if (this.newAccount.password != this.pass) {\n this.tabError[4] = `Le mot de passe n'est pas identique`\n this.error = true\n } else {\n this.tabError[4] = '';\n }\n\n\n // If 'error' is empty, save user and redirect to keycloak interface\n if (!this.error) {\n this.newAccount.accountType = AccountType.Client;\n this.newAccount.phoneNumber = this.phoneUser.phoneNumber;\n this.registerService.register(this.newAccount).forEach(r => {\n this.router.navigateByUrl('/home/register/validate');\n }).catch(e => {\n if (e.error == 'EmailAlreadyExistException')\n this.alert.error('Email déjà utilisé')\n else\n this.alert.error(e.error);\n })\n }\n }\n\n keyPressNumbers(event) {\n const pattern = /[0-9.,]/;\n const inputChar = String.fromCharCode(event.charCode);\n if (! /^[a-zA-Z0-9]+$/.test(inputChar)) {\n // invalid character, prevent input\n event.preventDefault();\n }\n }\n\n redirectToBabysitter(): void {\n window.location.href = `${this.envService.frontBabysitterUrl}` + '/home/register';\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ModalController} from '@ionic/angular';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {AboutusAppComponent} from '../aboutus-app/aboutus-app.component';\n\n@Component({\n selector: 'app-starter',\n templateUrl: './starter.component.html',\n styleUrls: ['./starter.component.scss'],\n})\nexport class StarterComponent implements OnInit {\n\n constructor(\n private keycloakService: KeycloakIonicService,\n private modalCtrl: ModalController,\n ) { }\n\n ngOnInit() {}\n\n login(): void {\n this.keycloakService.login();\n }\n\n async openAboutUsApp() {\n const modal = await this.modalCtrl.create({\n component: AboutusAppComponent,\n backdropDismiss: false,\n });\n modal.present();\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-accompagnement',\n templateUrl: './accompagnement.component.html',\n styleUrls: ['./accompagnement.component.scss'],\n})\nexport class AccompagnementComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-prestations',\n templateUrl: './prestations.component.html',\n styleUrls: ['./prestations.component.scss'],\n})\nexport class PrestationsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-recrutement',\n templateUrl: './recrutement.component.html',\n styleUrls: ['./recrutement.component.scss'],\n})\nexport class RecrutementComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {Router} from '@angular/router';\n\n@Component({\n selector: 'app-tarifs',\n templateUrl: './tarifs.component.html',\n styleUrls: ['./tarifs.component.scss'],\n})\nexport class TarifsComponent implements OnInit {\n\n constructor(private router: Router) { }\n\n ngOnInit() {}\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\n\n@Component({\n selector: 'app-terms',\n templateUrl: './terms.component.html',\n styleUrls: ['./terms.component.scss'],\n})\nexport class TermsComponent implements OnInit {\n\n constructor(\n private title : Title\n ) { }\n\n ngOnInit(): void {\n this.title.setTitle('TatyNanny - Conditions générales')\n }\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AccountType } from \"@tatynanny/api\";\n\nexport interface AppConfig {\n userType: AccountType\n}\n\nexport const APP_CONFIG = new InjectionToken('app.config');\n","import {MatPaginatorIntl} from '@angular/material/paginator';\n\nexport class CustomPaginatorConfig extends MatPaginatorIntl {\n itemsPerPageLabel = \"Élements par page: \";\n nextPageLabel = 'Page suivante';\n previousPageLabel = 'Page précédente';\n firstPageLabel = 'Première page';\n lastPageLabel = 'Dernière page';\n\n getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return '';\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n if (startIndex >= length) {\n return `${length} sur ${length}`;\n }\n const endIndex = startIndex < length ? Math.min(startIndex + pageSize, length) : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} sur ${length}`;\n };\n}","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nconst routes: Routes = [\n // {\n // path: '',\n // component: BoardPage,\n // children: [\n // {\n // path: 'tableau-de-bord',\n // loadChildren: () => import('./dashboard/dashboard.module').then( m => m.DashboardPageModule)\n // },\n // {\n // path: 'profile',\n // loadChildren: () => import('./profilePages/profile/profile.module').then( m => m.ProfilePageModule)\n // },\n // {\n // path: 'info',\n // loadChildren: () => import('./profilePages/info/info.module').then( m => m.InfoPageModule)\n // },\n // {\n // path: 'docs',\n // loadChildren: () => import('./profilePages/docs/docs.module').then( m => m.DocsPageModule)\n // },\n // {\n // path: 'planning',\n // loadChildren: () => import('./planningPages/planning/planning.module').then( m => m.PlanningPageModule)\n // },\n // {\n // path: 'extracurricular',\n // loadChildren: () => import('./planningPages/extracurricular/extracurricular.module').then( m => m.ExtracurricularPageModule)\n // },\n // {\n // path: 'occasional',\n // loadChildren: () => import('./planningPages/occasional/occasional.module').then( m => m.OccasionalPageModule)\n // },\n // {\n // path: 'contract',\n // loadChildren: () => import('./contract/contract.module').then( m => m.ContractPageModule)\n // },\n // {\n // path: 'timesheet',\n // loadChildren: () => import('./timesheet/timesheet.module').then( m => m.TimesheetPageModule)\n // },\n // {\n // path: 'invoice',\n // loadChildren: () => import('./invoice/invoice.module').then( m => m.InvoicePageModule)\n // },\n // {\n // path: 'attestation',\n // loadChildren: () => import('./attestation/attestation.module').then( m => m.AttestationPageModule)\n // },\n // {\n // path: 'payment',\n // loadChildren: () => import('./payment/payment.module').then( m => m.PaymentPageModule)\n // },\n // {\n // path: 'rfe',\n // loadChildren: () => import('./profilePages/rfe/rfe.module').then( m => m.RfePageModule)\n // },\n // {\n // path: 'devis',\n // loadChildren: () => import('./devis/devis.module').then( m => m.DevisPageModule)\n // },\n // {\n // path: 'mes-demandes',\n // loadChildren: () => import('./profilesPages/estimate/estimate.module').then( m => m.EstimatePageModule)\n // },\n // ]\n // },\n // {\n // path: '',\n // redirectTo: 'board/dashboard',\n // pathMatch: 'full'\n // },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class BoardPageRoutingModule {}\n","import {Component, OnInit} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {MenuController, Platform} from '@ionic/angular';\nimport {BillService, FrontNotificationResourceService, FrontparentService, Notification} from '@tatynanny/api';\nimport * as moment from 'moment';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-board',\n templateUrl: './board.page.html',\n styleUrls: ['./board.page.scss'],\n})\nexport class BoardPage implements OnInit {\n\n\n innerHeight: number;\n innerWidth: number;\n itemHeight: number;\n contentWidth: number;\n nbNotif: number = 0;\n currentDate = moment();\n notifications: Notification[] = [];\n sliceValue: number = 10;\n connected: boolean = false;\n\n constructor(\n private router: Router,\n private keycloakIonicService: KeycloakIonicService,\n private notificationService: FrontNotificationResourceService,\n private parentService: FrontparentService,\n private alertService: AlertService,\n private invoiceService: BillService,\n private platform: Platform,\n ) { }\n\n\n loadData(event): void {\n console.log(event);\n\n setTimeout(() => {\n console.log('Done');\n event.target.complete();\n this.sliceValue = this.sliceValue + 5;\n if (this.sliceValue >= this.notifications.length) {\n event.target.disabled = true;\n }\n }, 500);\n }\n\n navigation(notification: Notification): void {\n this.notificationService.readNotification(notification.id).subscribe(res => {\n console.log(res);\n this.refresh();\n })\n\n if (notification.type == 'proposal') {\n this.router.navigateByUrl(`/mon-espace/devis/detail/${notification.itemId}`);\n } else if (notification.type == 'contract') {\n this.parentService.loadSubContractById(notification.itemId).forEach(r => {\n console.log('CONTRACT LOADED :', r);\n if (r.parentContract.contractNanny.pricing.productType === 'EXTRACURRICULAR') {\n if (!r.candidate.autoEntreprise) {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat/${notification.itemId}/salarie`);\n } else {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat-ae/${notification.itemId}`);\n }\n }\n if (r.parentContract.contractNanny.pricing.productType === 'MAID') {\n this.alertService.confirm('Contrat', 'Le contrat est en cours de réalisation par l\\'équipe TatyNanny');\n }\n if (r.parentContract.contractNanny.pricing.productType === 'EDUCATIONAL_SUPPORT') {\n this.alertService.confirm('Contrat', 'Le contrat est en cours de réalisation par l\\'équipe TatyNanny');\n }\n });\n } else if (notification.type == 'bill') {\n\n this.invoiceService.loadBillById(notification.itemId).forEach(r => {\n if (r.result.userType == 'SALARIED') {\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail/${notification.itemId}`);\n } else {\n console.log('AUTO ENTREPRONNEUR');\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail-ae/${notification.itemId}`);\n }\n });\n } else if (notification.type == 'timesheet') {\n this.router.navigateByUrl(`/mon-espace/feuille-de-temps/event/${notification.itemId}`);\n }\n }\n\n deleteNotif(notification: Notification): void {\n this.alertService.ask('Attention', 'Voulez-vous supprimer définitivement la notification ?', 'Oui, supprimer', () => {\n this.notificationService.deleteNotification(notification.id).subscribe(res => {\n console.log(res);\n this.refresh();\n })\n }, 'Annuler', () => {\n\n })\n }\n\n ngOnInit() {\n this.innerHeight = window.innerHeight;\n this.refresh();\n }\n\n refresh(): void {\n this.nbNotif = 0;\n this.notifications = [];\n \n this.keycloakIonicService.isLoggedIn().then(connected => {\n this.connected = connected;\n })\n\n if (this.platform.platforms().includes('mobile') || this.platform.platforms().includes('mobileweb')) {\n this.notificationService.getNotifications().subscribe(res => {\n console.log(res);\n res.items.sort(function (a, b) {\n if (a.creationDate >= b.creationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n for (let item of res.items) {\n if (item.read == false) {\n this.nbNotif = this.nbNotif + 1;\n }\n if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'weeks') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'weeks').toString() + 'sem';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'days') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'days').toString() + 'j';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'hours') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'hours').toString() + 'h';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'minutes') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'minutes').toString() + 'min';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'seconds') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'seconds').toString() + 's';\n }\n this.notifications.push(item);\n }\n })\n }\n }\n\n navigateHome(): void {\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n })\n }\n\n logout(): void {\n this.keycloakIonicService.logout();\n }\n\n\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {FrontparentService, PageQuery, Proposal, SearchItem, SubContract, SubContractService} from '@tatynanny/api';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {merge} from 'rxjs';\nimport {startWith, switchMap} from 'rxjs/operators';\nimport {Router} from '@angular/router';\nimport {AlertService} from 'src/app/services/alert/alert.service';\n\n@Component({\n selector: 'app-contract',\n templateUrl: './contract.page.html',\n styleUrls: ['./contract.page.scss'],\n})\nexport class ContractPage implements OnInit {\n segment: 'SENT' | 'ACTIVE' | 'ALL' = 'ALL';\n data: Proposal[] = [];\n displayedColumns: string[] = [\"contractId\", \"creationDate\", \"parentContract.contractNanny.pricing.productType\", \"contractStatus\", \"totalPriceTTC\", \"action\"];\n service: string = \"\";\n inputId: string = \"\";\n selectedDate: string = \"\";\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n pageQuery: PageQuery = {\n fields: [\n {field: \"contractId\", value: this.inputId},\n {field: \"parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"contractStatus\", value: this.segment},\n {field: \"creationDate\", value: this.selectedDate}\n ],\n sort: 'creationDate',\n direction: 'desc',\n }\n\n searchItems: SearchItem[] = [];\n\n constructor(\n private subContract: SubContractService,\n private router: Router,\n private alertService: AlertService,\n ) { }\n\n ngOnInit(): void {\n\n }\n\n refresh(): void {\n this.searchItems = [\n {field: \"contractId\", value: this.inputId},\n {field: \"parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"contractStatus\", value: this.segment},\n {field: \"creationDate\", value: this.selectedDate}\n ];\n this.pageQuery.fields = this.searchItems;\n this.subContract.search(this.pageQuery).subscribe((res: any) => {\n console.log('[contract] (searchContract)', res);\n this.data = res.content;\n });\n }\n\n\n ngAfterViewInit() {\n this.sort.sortChange.subscribe(() => {\n this.paginator.pageIndex = 0;\n this.pageQuery.sort = this.sort.active;\n this.pageQuery.direction = this.sort.direction;\n console.log(this.sort.active);\n });\n this.pageQuery.page = this.paginator.pageIndex;\n this.pageQuery.pageSize = this.paginator.pageSize;\n\n merge(this.sort.sortChange, this.paginator.page).pipe(startWith({}), switchMap(() => {\n return this.subContract.search(this.pageQuery);\n })).subscribe((data: any) => {\n console.log('[contract] (searchContract)', data);\n (this.data = data.content)\n });\n }\n\n onSegmentChange(event: any): void {\n console.log(event);\n this.segment = event;\n this.refresh();\n\n }\n\n onInputChange(event: any): void {\n console.log('[contract] (onInputChange)', event);\n this.inputId = event;\n this.refresh();\n }\n\n onServiceChange(event: any): void {\n console.log('[contract] (onServiceChange)', event);\n this.service = event.value;\n this.refresh();\n }\n\n onDateChange(event: any): void {\n console.log('[contract] (onDateChange)', event);\n this.selectedDate = event;\n this.refresh();\n }\n\n openContract(contract: SubContract): void {\n console.log('[contract] (openContract)', contract);\n\n if (contract.parentContract.contractNanny.pricing.productType === 'EXTRACURRICULAR') {\n if (!contract.candidate.autoEntreprise) {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat/${contract.id}/salarie`);\n } else {\n console.log('AUTO ENTREPRONNEUR');\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat-ae/${contract.id}`);\n }\n }\n if (contract.parentContract.contractNanny.pricing.productType === 'MAID') {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat-maid/${contract.id}`)\n }\n if (contract.parentContract.contractNanny.pricing.productType === 'EDUCATIONAL_SUPPORT') {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat-edu/${contract.id}`);\n // this.alertService.temp('Le contrat est en cours de réalisation par l\\'équipe TatyNanny');\n }\n }\n\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\nimport {FrontparentService, Parent, Proposal, SubContract} from \"@tatynanny/api\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport * as moment from \"moment\";\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-detail-contrat-ae',\n templateUrl: './detail-contrat-ae.page.html',\n styleUrls: ['./detail-contrat-ae.page.scss'],\n})\nexport class DetailContratAePage implements OnInit {\n\n detailId: any;\n year: any;\n loaded: boolean = false;\n\n title: string;\n contract: SubContract;\n proposal: Proposal;\n parent: Parent;\n\n timeList: any[];\n\n // Costs :\n totalTTC: number = 0;\n CAF: number = 377.66;\n totalAfterCaf: number = 0;\n impot: number = 0;\n totalAfterImpot: number = 0;\n totalNet: number = 0;\n\n hoursWeek: any;\n minutesWeek: any;\n minutesMonth: any;\n\n holidays: boolean;\n\n @ViewChild('proposalDiv') proposalDiv;\n @ViewChild('proposalPage1') proposalPage1;\n @ViewChild('proposalPage2') proposalPage2;\n @ViewChild('proposalPage3') proposalPage3;\n @ViewChild('proposalPage4') proposalPage4;\n @ViewChild('proposalPage5') proposalPage5;\n\n taux: number = 0;\n\n constructor(\n private parentService: FrontparentService,\n private router: Router,\n private alertService: AlertService,\n private keycloakService: KeycloakIonicService,\n private activatedRoute: ActivatedRoute,\n\n ) { }\n\n ngOnInit() {\n this.alertService.loading();\n this.keycloakService.isLoggedIn().then(connected => {\n if (connected) {\n this.year = new Date().getFullYear();\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n this.parentService.loadSubContractById(this.detailId).forEach(r => {\n console.log('CONTRACT :', r);\n this.contract = r;\n this.proposal = r.parentContract.proposal;\n\n if (this.contract.increaseChildren == true) {\n this.taux = this.taux + (this.contract.percentChild != null ? this.contract.percentChild : 0);\n }\n if (this.contract.increaseLang == true) {\n this.taux = this.taux + (this.contract.percentLang != null ? this.contract.percentLang : 0);\n }\n\n this.title = r.parentContract.contractNanny.pricing.productType;\n this.parent = r.parentContract.contractNanny.parent;\n this.holidays = r.parentContract.contractNanny.availableDuringHolidays;\n this.timeList = r.timeList;\n\n this.minutesMonth = (r.parentContract.contractNanny.totalHoursPerMonth % 1) * 60;;\n\n this.hoursWeek = r.totalHoursPerWeek;\n if (this.isFloat(this.hoursWeek)) {\n this.minutesWeek = ((this.hoursWeek % 1) * 60).toFixed(0);\n console.log('MINUTE:', this.minutesWeek);\n this.hoursWeek = this.hoursWeek - (this.hoursWeek % 1);\n }\n\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n if (this.title === 'EXTRACURRICULAR') {\n /*if(this.contract.parent.preferredLang === 'FRANCAIS' || this.contract.parent.preferredLang == null ) {\n if(this.parent.nbEnfants >= 3) {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.1 ;\n } else {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n }\n } else {\n if(this.parent.nbEnfants >= 3) {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.21 ;\n }\n else {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.1;\n }\n }*/\n this.totalAfterCaf = this.totalTTC - this.CAF;\n this.impot = this.totalAfterCaf / 2;\n this.totalAfterImpot = this.totalAfterCaf - this.impot;\n }\n else {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n this.totalAfterCaf = 0;\n this.impot = this.totalTTC / 2;\n this.totalAfterImpot = this.impot;\n }\n\n this.totalNet = this.totalAfterImpot / this.contract.parentContract.contractNanny.totalHoursPerMonth;\n\n });\n this.loaded = true;\n this.alertService.closeLoader();\n\n } else {\n this.alertService.closeLoader();\n //this.alertService.temp('Vous êtes déconnecté.', 2000);\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n });\n }\n });\n }\n\n async generatePdf() {\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.proposalPage1.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n await this.generateElement2pdf(this.proposalPage2.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage3.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage4.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage5.nativeElement, doc);\n doc.save('Contrat-' + this.contract.contractId + '.pdf');\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n async generateElement2pdf(element, doc: jsPDF) {\n const canvas = await this.getImageData(element)\n const image = canvas.url;\n const imgWidth = 210;\n const pageHeight = 295;\n let position = 0;\n let imgHeight = canvas.height * imgWidth / canvas.width;\n let heightLeft = imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight);\n heightLeft -= pageHeight;\n\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight - 5);\n heightLeft -= pageHeight;\n }\n }\n\n calculateTotalHours(): number {\n let diff = 0.0;\n this.timeList.forEach(r => {\n if (r.startTime !== r.endTime) {\n r.diffTime = moment(r.endTime, 'HH:mm').diff(moment(r.startTime, 'HH:mm'), 'milliseconds');\n if (r.frequency == 'EVERY_TWO_WEEKS') {\n r.diffTime = r.diffTime / 2;\n } else if (r.frequency == 'ONE_WEEK_PER_MONTH') {\n r.diffTime = r.diffTime / 4;\n }\n diff = diff + r.diffTime;\n }\n });\n console.log('DIFF MS', diff);\n diff = (diff / (1000 * 60 * 60));\n console.log('DIFF HOURS', diff);\n return diff;\n }\n\n isFloat(n) {\n return Number(n) === n && n % 1 !== 0;\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {SubContract, FrontparentService, Candidate, ParentContract, ContractNanny, Pricing} from '@tatynanny/api';\nimport jsPDF from 'jspdf';\nimport html2canvas from \"html2canvas\";\nimport * as moment from 'moment';\n\n\n@Component({\n selector: 'app-detail-contrat-edu',\n templateUrl: './detail-contrat-edu.page.html',\n styleUrls: ['./detail-contrat-edu.page.scss'],\n})\nexport class DetailContratEduPage implements OnInit {\n detailId: any;\n subContract: SubContract = {\n\n candidate: {} as Candidate,\n parentContract: {\n contractNanny: {\n pricing: {} as Pricing,\n } as ContractNanny,\n } as ParentContract,\n } as SubContract;\n\n taux: number = 0;\n\n currentDate: any;\n\n @ViewChild(\"contract\") contract;\n @ViewChild(\"contract1\") contract1;\n @ViewChild(\"contract2\") contract2;\n @ViewChild(\"contract3\") contract3;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private parentService: FrontparentService,\n ) { }\n\n ngOnInit() {\n\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n\n this.parentService.loadSubContractById(this.detailId).forEach(r => {\n this.subContract = r;\n\n this.currentDate = parseInt(moment(this.subContract.creationDate).format('YYYY'));\n if (this.subContract.increaseChildren == true) {\n this.taux = this.taux + (this.subContract.percentChild != null ? this.subContract.percentChild : 0);\n }\n if (this.subContract.increaseLang == true) {\n this.taux = this.taux + (this.subContract.percentLang != null ? this.subContract.percentLang : 0);\n }\n })\n }\n\n async generatePdf() {\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.contract.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n await this.generateElement2pdf(this.contract1.nativeElement, doc);\n await this.generateElement2pdf(this.contract2.nativeElement, doc);\n await this.generateElement2pdf(this.contract3.nativeElement, doc);\n\n doc.save('Contrat-' + this.subContract.contractId + '.pdf');\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n async generateElement2pdf(element, doc: jsPDF) {\n const canvas = await this.getImageData(element)\n const image = canvas.url;\n const imgWidth = 210;\n const pageHeight = 295;\n let position = 0;\n let imgHeight = canvas.height * imgWidth / canvas.width;\n let heightLeft = imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight);\n heightLeft -= pageHeight;\n\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight - 5);\n heightLeft -= pageHeight;\n }\n }\n\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {FrontparentService, SubContract} from '@tatynanny/api';\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\n\n@Component({\n selector: 'app-detail-contrat-maid',\n templateUrl: './detail-contrat-maid.page.html',\n styleUrls: ['./detail-contrat-maid.page.scss'],\n})\nexport class DetailContratMaidPage implements OnInit {\n\n detailId: any;\n subContract: SubContract;\n\n taux: number = 0;\n\n @ViewChild(\"contract\") contract;\n @ViewChild(\"contract1\") contract1;\n @ViewChild(\"contract2\") contract2;\n @ViewChild(\"contract3\") contract3;\n @ViewChild(\"contract4\") contract4;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private parentService: FrontparentService,\n ) { }\n\n ngOnInit() {\n\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n\n this.parentService.loadSubContractById(this.detailId).forEach(r => {\n this.subContract = r;\n\n if (this.subContract.increaseChildren == true) {\n this.taux = this.taux + (this.subContract.percentChild != null ? this.subContract.percentChild : 0);\n }\n if (this.subContract.increaseLang == true) {\n this.taux = this.taux + (this.subContract.percentLang != null ? this.subContract.percentLang : 0);\n }\n })\n }\n\n async generatePdf() {\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.contract.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n await this.generateElement2pdf(this.contract1.nativeElement, doc);\n await this.generateElement2pdf(this.contract2.nativeElement, doc);\n await this.generateElement2pdf(this.contract3.nativeElement, doc);\n if(this.contract4) {\n await this.generateElement2pdf(this.contract4.nativeElement, doc);\n }\n\n doc.save('Contrat-' + this.subContract.contractId + '.pdf');\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n async generateElement2pdf(element, doc: jsPDF) {\n const canvas = await this.getImageData(element)\n const image = canvas.url;\n const imgWidth = 210;\n const pageHeight = 295;\n let position = 0;\n let imgHeight = canvas.height * imgWidth / canvas.width;\n let heightLeft = imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight);\n heightLeft -= pageHeight;\n\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight - 5);\n heightLeft -= pageHeight;\n }\n }\n\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {Account, Candidate, FrontparentService, Parent, ParentContract, Proposal, SubContract, SuitableTime} from \"@tatynanny/api\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\nimport * as moment from \"moment\";\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-detail-contrat',\n templateUrl: './detail-contrat.page.html',\n styleUrls: ['./detail-contrat.page.scss'],\n})\nexport class DetailContratPage implements OnInit {\n\n detailId: any;\n year: any;\n loaded: boolean = false;\n\n title: string;\n contract: SubContract;\n proposal: Proposal;\n parent: Parent;\n\n timeList: any[];\n reqForEstimate: any;\n\n // Costs :\n totalTTC: number = 0;\n CAF: number = 377.66;\n totalAfterCaf: number = 0;\n impot: number = 0;\n totalAfterImpot: number = 0;\n totalNet: number = 0;\n\n hoursWeek: any;\n minutesWeek: any;\n minutesMonth: any;\n\n holidays: boolean;\n\n @ViewChild('proposalDiv') proposalDiv;\n @ViewChild('proposalPage1') proposalPage1;\n @ViewChild('proposalPage2') proposalPage2;\n @ViewChild('proposalPage3') proposalPage3;\n @ViewChild('proposalPage4') proposalPage4;\n @ViewChild('proposalPage5') proposalPage5;\n\n taux = 0;\n constructor(\n private parentService: FrontparentService,\n private router: Router,\n private alertService: AlertService,\n private keycloakService: KeycloakIonicService,\n private activatedRoute: ActivatedRoute,\n\n ) { }\n\n minute: any = 0;\n\n ngOnInit() {\n this.alertService.loading();\n this.keycloakService.isLoggedIn().then(connected => {\n if (connected) {\n this.year = new Date().getFullYear();\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n this.parentService.loadSubContractById(this.detailId).forEach(r => {\n console.log('CONTRACT :', r);\n this.contract = r;\n this.proposal = r.parentContract.proposal;\n this.title = r.parentContract.contractNanny.pricing.productType;\n this.parent = r.parentContract.contractNanny.parent;\n this.holidays = r.parentContract.contractNanny.availableDuringHolidays;\n this.timeList = r.timeList;\n // this.contract.parentContract.contractNanny = r.proposal.requestForEstimateLink;\n\n if (this.contract.increaseChildren == true) {\n this.taux = this.taux + (this.contract.percentChild != null ? this.contract.percentChild : 0);\n }\n if (this.contract.increaseLang == true) {\n this.taux = this.taux + (this.contract.percentLang != null ? this.contract.percentLang : 0);\n }\n\n this.minutesMonth = (r.parentContract.contractNanny.totalHoursPerMonth % 1) * 60;\n\n this.hoursWeek = r.totalHoursPerWeek;\n if (this.isFloat(this.hoursWeek)) {\n this.minutesWeek = ((this.hoursWeek % 1) * 60).toFixed(0);\n console.log('MINUTE:', this.minute);\n this.hoursWeek = this.hoursWeek - (this.hoursWeek % 1);\n }\n\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n if (this.title == 'EXTRACURRICULAR') {\n /*if(this.contract.parent.preferredLang == 'FRANCAIS' || this.contract.parent.preferredLang == null ) {\n if(this.parent.nbEnfants >= 3) {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.1 ;\n } else {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n }\n } else {\n if(this.parent.nbEnfants >= 3) {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.21 ;\n }\n else {\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC * 1.1;\n }\n }*/\n this.totalAfterCaf = this.totalTTC - this.CAF;\n this.impot = this.totalAfterCaf / 2;\n this.totalAfterImpot = this.totalAfterCaf - this.impot;\n }\n else {\n console.log(\"REEQ\", this.contract.parentContract.contractNanny);\n this.totalTTC = this.contract.parentContract.contractNanny.totalPriceTTC;\n this.totalAfterCaf = 0;\n this.impot = this.totalTTC / 2;\n this.totalAfterImpot = this.impot;\n }\n\n this.totalNet = this.totalAfterImpot / this.contract.parentContract.contractNanny.totalHoursPerMonth;\n\n })\n this.loaded = true;\n this.alertService.closeLoader();\n\n } else {\n this.alertService.closeLoader();\n //this.alertService.temp('Vous êtes déconnecté.', 2000);\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n })\n }\n })\n }\n\n isFloat(n) {\n return Number(n) === n && n % 1 !== 0;\n }\n\n async generatePdf() {\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.proposalPage1.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n await this.generateElement2pdf(this.proposalPage2.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage3.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage4.nativeElement, doc);\n await this.generateElement2pdf(this.proposalPage5.nativeElement, doc);\n doc.save('Contrat-' + this.contract.contractId + '.pdf');\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n async generateElement2pdf(element, doc: jsPDF) {\n const canvas = await this.getImageData(element)\n const image = canvas.url;\n const imgWidth = 210;\n const pageHeight = 295;\n let position = 0;\n let imgHeight = canvas.height * imgWidth / canvas.width;\n let heightLeft = imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight);\n heightLeft -= pageHeight;\n\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight - 5);\n heightLeft -= pageHeight;\n }\n }\n}\n","import {Component, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {Platform} from '@ionic/angular';\nimport {BillService, ContactUsForm, FrontgeneralService, FrontNotificationResourceService, FrontparentService, Notification, NotificationService, Parent, Proposal, ProposalService, ProposalStatus} from '@tatynanny/api';\nimport * as moment from 'moment';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n\nexport interface PendingInfo {\n status?: any,\n statut?: any,\n id?: number,\n text?: string,\n link?: string,\n icon?: string,\n color?: string,\n}\n\n\n\n@Component({\n selector: 'app-dashboard',\n templateUrl: './dashboard.page.html',\n styleUrls: ['./dashboard.page.scss'],\n})\nexport class DashboardPage implements OnInit {\n\n loaded: boolean = false;\n percentProfile: number = 0;\n percentNeed: number = 0;\n percentInfo: number = 0;\n percentDoc: number = 0;\n form: ContactUsForm = {\n subject: '',\n email: '',\n message: '',\n };\n tabError: string[] = ['', ''];\n errorUserForm: boolean = false;\n option: string = \"\";\n notifications: Notification[] = [];\n currentDate: any;\n sliceValue: number = 10;\n nbNotif: number = 0;\n parent: Parent;\n\n pendingProposal: boolean = false;\n pendingRfe: boolean = false;\n pendingContract: boolean = false;\n pendingTimesheet: boolean = false;\n pendingBill: boolean = false;\n\n proposalChecked: boolean = false;\n profileChecked: boolean = false;\n\n pendingInfos: PendingInfo[] = [];\n\n\n constructor(\n private parentService: FrontparentService,\n private frontgeneral: FrontgeneralService,\n private alertService: AlertService,\n private notificationService: FrontNotificationResourceService,\n private router: Router,\n private invoiceService: BillService,\n private envService: EnvService,\n private platform: Platform,\n private proposalService: ProposalService,\n private kcService: KeycloakIonicService\n ) { }\n\n checkProgress(parent: Parent): void {\n\n if (parent.civilite != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.birthdate != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.account.lastname != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.account.firstname != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.account.phoneNumber != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.account.email != null) this.percentProfile = this.percentProfile + 12.5;\n if (parent.child_list.length > 0 || parent.nbEnfants > 0) this.percentProfile = this.percentProfile + 12.5;\n if (parent.formattedAddress != null) this.percentProfile = this.percentProfile + 12.5;\n\n if (parent.aboutMe != null) this.percentInfo = this.percentInfo + 50;\n if (parent.files.avatar) this.percentInfo = this.percentInfo + 50;\n\n if (parent.files.address) this.percentDoc = this.percentDoc + 33.3;\n if (parent.files.idRecto) this.percentDoc = this.percentDoc + 33.3;\n if (parent.files.idVerso) this.percentDoc = this.percentDoc + 33.4;\n\n this.parentService.loadParentNeeds().forEach(r => {\n if (r.items.length > 0) {\n this.percentNeed = 100;\n } else {\n this.percentNeed = 0;\n }\n });\n }\n\n\n loadData(event): void {\n console.log(event);\n\n setTimeout(() => {\n console.log('Done');\n event.target.complete();\n this.sliceValue = this.sliceValue + 5;\n if (this.sliceValue >= this.notifications.length) {\n event.target.disabled = true;\n }\n }, 500);\n }\n\n deleteNotif(notification: Notification): void {\n this.alertService.ask('Attention', 'Voulez-vous supprimer définitivement la notification ?', 'Oui, supprimer', () => {\n this.notificationService.deleteNotification(notification.id).subscribe(res => {\n console.log(res);\n this.refresh();\n })\n }, 'Annuler', () => {\n\n })\n }\n\n ionViewWillEnter() {\n this.proposalChecked = localStorage.getItem('proposalChecked') != null ? true : false;\n this.profileChecked = localStorage.getItem('profileChecked') != null ? true : false;\n this.refresh();\n }\n\n refresh(): void {\n this.nbNotif = 0;\n this.percentProfile = 0;\n this.percentNeed = 0;\n this.percentInfo = 0;\n this.percentDoc = 0;\n this.pendingInfos = [];\n this.notifications = [];\n this.currentDate = moment();\n\n this.kcService.isLoggedIn().then(connected => {\n if (connected) {\n\n this.parentService.getPendingInfo().subscribe((res: any) => {\n if (res.result) {\n\n Object.entries(res.result).forEach((info: any) => {\n let pi: PendingInfo = {};\n let object: any = info[0];\n let statut: any = Object.keys(info[1])[0];\n let id: any = Object.values(info[1])[0];\n console.log(id);\n\n if (object == 'RequestForEstimate' && statut == 'false') {\n pi.id = id;\n pi.text = \"Demande de devis en cours\"\n pi.link = `/mon-espace/demandes/${id}`;\n pi.status = statut;\n pi.statut = \"En cours\";\n } else if (object == 'Proposal' && statut == 'SENT') {\n pi.id = id;\n pi.text = \"Un devis est disponible\"\n pi.link = `/mon-espace/devis/detail/${id}`;\n pi.status = statut;\n pi.statut = \"En cours\";\n } else if (object == 'SubContract' && statut == 'SENT') {\n pi.id = id;\n pi.text = \"Un contrat est disponible\"\n pi.link = `/mon-espace/contrats/`;\n pi.status = statut;\n pi.statut = \"En cours\";\n } else if (object == 'TimeScheduleMonth') {\n pi.id = id;\n pi.link = `/mon-espace/feuille-de-temps/event/${id}`;\n pi.status = statut;\n pi.icon = 'calendar'\n if (statut == 'SENT') {\n pi.text = \"Un nouveau relevé d'heures est disponible\";\n pi.statut = 'Nouveau';\n } else if (statut == 'PENDING') {\n pi.text = \"Un relevé d'heures est en cours\";\n pi.statut = 'En cours';\n }\n } else if(object == 'Bill') {\n pi.id = info[1];\n pi.link = `/mon-espace/factures`;\n pi.status = statut;\n if (statut == 'SENT') {\n pi.text = \"Une nouvelle facture est disponible\";\n pi.statut = 'Nouveau';\n } else if (statut == 'WAITING') {\n pi.text = \"Une facture est en attente de paiement\";\n pi.statut = 'En attente';\n } else if(statut == 'NOT_PAYED') {\n pi.text = \"Une facture n'est pas encore payée\";\n pi.statut = 'Non payée';\n }\n }\n\n this.pendingInfos.unshift(pi);\n })\n console.log(res.result);\n }\n });\n\n this.parentService.apiV1ParentProfileLoadProfileGet().subscribe(r => {\n console.log(r);\n this.parent = r.result;\n this.form.email = r.result.account.email;\n this.checkProgress(r.result);\n\n this.loaded = true;\n })\n\n if (this.platform.platforms().includes('desktop')) {\n this.notificationService.getNotifications().subscribe(res => {\n console.log(res);\n res.items.sort(function (a, b) {\n if (a.creationDate >= b.creationDate) {\n return -1;\n } else {\n return 1;\n }\n });\n for (let item of res.items) {\n if (item.read == false) {\n this.nbNotif = this.nbNotif + 1;\n }\n if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'weeks') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'weeks').toString() + 'sem';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'days') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'days').toString() + 'j';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'hours') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'hours').toString() + 'h';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'minutes') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'minutes').toString() + 'min';\n } else if (this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'seconds') > 0) {\n item.creationDate = this.currentDate.diff(moment(item.creationDate).subtract(1, 'hours'), 'seconds').toString() + 's';\n }\n this.notifications.push(item);\n }\n })\n }\n }\n });\n }\n\n ngOnInit() {\n }\n\n navigation(notification: Notification): void {\n this.notificationService.readNotification(notification.id).subscribe(res => {\n console.log(res);\n this.refresh();\n })\n\n if (notification.type == 'proposal') {\n this.router.navigateByUrl(`/mon-espace/devis/detail/${notification.itemId}`);\n } else if (notification.type == 'contract') {\n this.parentService.loadSubContractById(notification.itemId).forEach(r => {\n console.log('CONTRACT LOADED :', r);\n if (r.parentContract.contractNanny.pricing.productType === 'EXTRACURRICULAR') {\n if (!r.candidate.autoEntreprise) {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat/${notification.itemId}/salarie`);\n } else {\n this.router.navigateByUrl(`/mon-espace/contrats/detail-contrat-ae/${notification.itemId}`);\n }\n }\n if (r.parentContract.contractNanny.pricing.productType === 'MAID') {\n this.alertService.confirm('Le contrat est en cours de réalisation par l\\'équipe TatyNanny');\n }\n if (r.parentContract.contractNanny.pricing.productType === 'EDUCATIONAL_SUPPORT') {\n this.alertService.confirm('Le contrat est en cours de réalisation par l\\'équipe TatyNanny');\n }\n });\n } else if (notification.type == 'bill') {\n\n this.invoiceService.loadBillById(notification.itemId).forEach(r => {\n // if (r.result.timeScheduleMonth.parentContract.contractNanny.pricing.productType === 'EXTRACURRICULAR') {\n if (r.result.userType == 'SALARIED') {\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail/${notification.itemId}`);\n } else {\n console.log('AUTO ENTREPRONNEUR');\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail-ae/${notification.itemId}`);\n }\n // }\n // if (r.result.timeScheduleMonth.parentContract.contractNanny.pricing.productType === 'MAID') {\n // this.alertService.confirm('Contrat', 'La facture est en cours de réalisation par l\\'équipe TatyNanny', '', () => { });\n // }\n // if (r.result.timeScheduleMonth.parentContract.contractNanny.pricing.productType === 'EDUCATIONAL_SUPPORT') {\n // this.alertService.confirm('Contrat', 'La facture est en cours de réalisation par l\\'équipe TatyNanny', '', () => { });\n // }\n });\n } else if (notification.type == 'timesheet') {\n this.router.navigateByUrl(`/mon-espace/feuille-de-temps/event/${notification.itemId}`);\n }\n }\n\n onSelect(event): void {\n console.log(event);\n this.form.subject = event.detail.value;\n }\n\n checkcontactForm() {\n this.errorUserForm = false;\n if (this.form.email.length == 0) {\n this.tabError[0] = 'Veuillez renseigner votre sujet';\n this.errorUserForm = true;\n }\n if (this.form.subject.length == 0) {\n this.tabError[1] = 'Veuillez renseigner un message';\n this.errorUserForm = true;\n }\n return this.errorUserForm;\n }\n\n send(): void {\n if (!this.checkcontactForm()) {\n this.alertService.ask('Information', 'Confirmer votre envoi ?', 'Envoyer', () => {\n this.frontgeneral.apiV1GeneralContactPost(this.form).forEach(r => {\n if (r.status) {\n this.option = '';\n this.form.subject = '';\n this.form.email = '';\n this.form.message = '';\n this.alertService.success('Votre message à bien été envoyé. Nous vous répondrons dans les plus brefs délais.');\n }\n }).catch(e => {\n console.log(e);\n this.alertService.error(`Erreur, le message n'a pas pu être envoyé. Veuillez réessayez ultérieurement.`);\n })\n });\n }\n }\n\n navigateToProposal(proposalId: number): void {\n localStorage.setItem('proposalChecked', JSON.stringify(true));\n this.router.navigateByUrl(`/mon-espace/devis/detail/${proposalId}`)\n }\n\n navigateToProfil(): void {\n localStorage.setItem('profileChecked', JSON.stringify(true));\n this.router.navigateByUrl('/mon-espace/profil');\n }\n\n}\n","import {Component, NgZone, OnInit, ViewChild} from '@angular/core';\nimport {MinAgeInterval, ProposalService, RequestForEstimate, SuitableTime} from \"@tatynanny/api\";\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport jsPDF from 'jspdf';\nimport html2canvas from 'html2canvas';\nimport * as moment from 'moment';\n\n@Component({\n selector: 'app-detail',\n templateUrl: './detail.page.html',\n styleUrls: ['./detail.page.scss'],\n})\nexport class DetailPage implements OnInit {\n\n proposal: any;\n year: any;\n parent: any;\n reqForEstimate: RequestForEstimate;\n timeList: SuitableTime[];\n\n detailId: any;\n\n // Costs :\n totalTTC: number = 0;\n CAF: number = 377.66;\n totalAfterCaf: number = 0;\n impot: number = 0;\n totalAfterImpot: number;\n totalNet: number = 0;\n\n loaded: boolean = false;\n\n title: string = '';\n\n @ViewChild('proposalDiv') proposalDiv;\n @ViewChild('proposalPage1') proposalPage1;\n @ViewChild('proposalPage2') proposalPage2;\n\n totalTime: number = 0;\n totalTimeMinutes: number = 0;\n\n totalDiff: number = 0;\n\n minutesWeek: number = 0;\n minutesMonth: any;\n\n hoursWeek: any;\n\n dateCreation: any;\n\n //productType : any;\n\n hour: any;\n minute: any;\n\n taux: any = 0;\n\n constructor(\n private router: Router,\n private ngZone: NgZone,\n private activatedRoute: ActivatedRoute,\n private proposalService: ProposalService,\n\n ) { }\n\n ngOnInit() {\n this.year = new Date().getFullYear();\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n\n\n\n this.proposalService.loadUserWithProposalById(this.detailId).forEach(n => {\n this.parent = n.result.parent;\n this.proposal = n.result.proposal;\n\n this.hour = n.result.proposal.requestForEstimateLink.totalHoursPerMonth\n this.minute = (n.result.proposal.requestForEstimateLink.totalHoursPerMonth % 1);\n this.hour = this.hour - this.minute;\n this.minute = (n.result.proposal.requestForEstimateLink.totalHoursPerMonth % 1) * 60;\n\n\n console.log('HOUR:', this.hour, 'MINUTE', this.minute);\n\n\n let d = this.proposal.creationDate.split(\"-\")[2];\n let m = this.proposal.creationDate.split(\"-\")[1];\n let y = this.proposal.creationDate.split(\"-\")[0];\n this.dateCreation = d + '-' + m + '-' + y;\n\n this.reqForEstimate = n.result.proposal.requestForEstimateLink;\n if (this.reqForEstimate.increaseChildren == true) {\n this.taux = this.taux + (this.reqForEstimate.percentChild != null ? this.reqForEstimate.percentChild : 0);\n }\n if (this.reqForEstimate.increaseLang == true) {\n this.taux = this.taux + (this.reqForEstimate.percentLang != null ? this.reqForEstimate.percentLang : 0);\n }\n\n\n this.title = this.reqForEstimate.pricing.productType;\n\n\n if (this.proposal.minAgeInterval != null) {\n if (this.proposal.minAgeInterval == MinAgeInterval.Less1 || this.proposal.minAgeInterval == MinAgeInterval.Between1To2) {\n this.CAF = 755.3;\n } else if (this.proposal.minAgeInterval == MinAgeInterval.Between3To5) {\n this.CAF = 377.66;\n } else {\n this.CAF = 0;\n }\n } else {\n if (this.parent.minAgeEnfants <= 3) {\n this.CAF = 755.3;\n }\n else if (this.parent.minAgeEnfants < 6) {\n this.CAF = 377.66;\n }\n else {\n this.CAF = 0;\n }\n }\n \n this.timeList = this.reqForEstimate.timeList;\n\n this.minutesWeek = (n.result.proposal.requestForEstimateLink.totalHoursPerWeek % 1) * 60;\n this.minutesMonth = (n.result.proposal.requestForEstimateLink.totalHoursPerMonth % 1) * 60;;\n\n this.hoursWeek = String(n.result.proposal.requestForEstimateLink.totalHoursPerWeek).split(\".\")[0];\n\n this.totalTTC = this.reqForEstimate.totalPriceTTC;\n\n if (this.title == 'EXTRACURRICULAR') {\n /*if(this.reqForEstimate.parent.prefLang === 'FRANCAIS' || this.reqForEstimate.parent.prefLang === null ) {\n if(this.parent.nbChildren >= 3) {\n this.totalTTC = this.reqForEstimate.totalPriceTTC * 1.1 ;\n } else {\n this.totalTTC = this.reqForEstimate.totalPriceTTC;\n }\n } else {\n if(this.parent.nbChildren >= 3) {\n this.totalTTC = this.reqForEstimate.totalPriceTTC * 1.21 ;\n }\n else {\n this.totalTTC = this.reqForEstimate.totalPriceTTC * 1.1;\n }\n }*/\n this.totalAfterCaf = this.totalTTC - this.CAF;\n if (this.totalAfterCaf <= 0) {\n this.CAF = parseFloat(((this.totalTTC * 85) / 100).toFixed(2));\n this.totalAfterCaf = parseFloat(((this.totalTTC * 15) / 100).toFixed(2));\n this.impot = this.totalAfterCaf / 2;\n this.totalAfterImpot = this.totalAfterCaf - this.impot;\n } else {\n this.impot = this.totalAfterCaf / 2;\n this.totalAfterImpot = this.totalAfterCaf - this.impot;\n }\n }\n else {\n this.totalTTC = this.reqForEstimate.totalPriceTTC;\n this.totalAfterCaf = 0;\n this.impot = this.totalTTC / 2;\n this.totalAfterImpot = this.impot;\n }\n\n this.totalNet = this.totalAfterImpot / this.reqForEstimate.totalHoursPerMonth;\n\n\n n.result.proposal.requestForEstimateLink.timeList.forEach(res => {\n this.totalDiff = res.diffTime + this.totalDiff;\n })\n this.totalTime = moment(this.totalDiff).hours() - 1;\n console.log(this.totalTime);\n this.totalTimeMinutes = moment(this.totalDiff).minutes();\n console.log(this.totalTime);\n\n this.loaded = true;\n })\n\n }\n\n msToTime(duration): string {\n var minutes = Math.floor((duration / (1000 * 60)) % 60),\n hours = Math.floor((duration / (1000 * 60 * 60)) % 24);\n\n var h = (hours < 10) ? \"0\" + hours : hours;\n var m = (minutes < 10) ? \"0\" + minutes : minutes;\n\n if (m == '00' && h == '00') {\n return '-';\n }\n else if (m == '00') {\n return h + \"h\";\n }\n else {\n return h + \"h\" + m;\n }\n }\n\n async generatePdf() {\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.proposalPage1.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n await this.generateElement2pdf(this.proposalPage2.nativeElement, doc);\n doc.save('Devis.pdf');\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n async generateElement2pdf(element, doc: jsPDF) {\n const canvas = await this.getImageData(element)\n const image = canvas.url;\n const imgWidth = 210;\n const pageHeight = 295;\n let position = 0;\n let imgHeight = canvas.height * imgWidth / canvas.width;\n let heightLeft = imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight);\n heightLeft -= pageHeight;\n\n while (heightLeft >= 0) {\n position = heightLeft - imgHeight;\n doc.addPage();\n doc.addImage(image, 'PNG', 0, position, imgWidth, imgHeight - 5);\n heightLeft -= pageHeight;\n }\n }\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {Router} from '@angular/router';\nimport {PageQuery, Proposal, ProposalService, SearchItem} from '@tatynanny/api';\nimport {merge} from 'rxjs';\nimport {startWith, switchMap} from 'rxjs/operators';\n\n\n@Component({\n selector: 'app-devis',\n templateUrl: './devis.page.html',\n styleUrls: ['./devis.page.scss'],\n})\nexport class DevisPage implements OnInit {\n\n segment: 'SENT' | 'ACTIVE' | 'ALL' = 'ALL';\n data: Proposal[] = [];\n displayedColumns: string[] = [\"proposalId\", \"creationDate\", \"requestForEstimateLink.pricing.productType\", \"proposalStatus\", \"requestForEstimateLink.totalPriceTTC\", \"action\"];\n service: string = \"\";\n inputId: string = \"\";\n selectedDate: string = \"\";\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n pageQuery: PageQuery = {\n fields: [\n {field: \"proposalId\", value: this.inputId},\n {field: \"requestForEstimateLink.pricing.productType\", value: this.service},\n {field: \"proposalStatus\", value: this.segment},\n {field: \"creationDate\", value: this.selectedDate}\n ],\n sort: 'creationDate',\n direction: 'desc',\n }\n\n searchItems: SearchItem[] = [];\n\n constructor(\n private proposalService: ProposalService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n\n }\n\n refresh(): void {\n this.searchItems = [\n {field: \"proposalId\", value: this.inputId},\n {field: \"requestForEstimateLink.pricing.productType\", value: this.service},\n {field: \"proposalStatus\", value: this.segment},\n {field: \"creationDate\", value: this.selectedDate}\n ];\n this.pageQuery.fields = this.searchItems;\n this.proposalService.search(this.pageQuery).subscribe((res: any) => {\n console.log('[devis] (search)', res);\n this.data = res.content;\n })\n }\n\n\n ngAfterViewInit() {\n this.sort.sortChange.subscribe(() => {\n this.paginator.pageIndex = 0;\n this.pageQuery.sort = this.sort.active;\n this.pageQuery.direction = this.sort.direction;\n console.log(this.sort.active);\n });\n this.pageQuery.page = this.paginator.pageIndex;\n this.pageQuery.pageSize = this.paginator.pageSize;\n\n merge(this.sort.sortChange, this.paginator.page).pipe(startWith({}), switchMap(() => {\n return this.proposalService.search(this.pageQuery);\n })).subscribe((data: any) => {\n console.log('[devis] (search)', data);\n (this.data = data.content)\n });\n }\n\n onSegmentChange(event: any): void {\n console.log(event);\n this.segment = event;\n this.refresh();\n\n }\n\n onInputChange(event: any): void {\n console.log('[devis] (onInputChange)', event);\n this.inputId = event;\n this.refresh();\n }\n\n onServiceChange(event: any): void {\n console.log('[devis] (onServiceChange)', event);\n this.service = event.value;\n this.refresh();\n }\n\n onDateChange(event: any): void {\n console.log('[devis] (onDateChange)', event);\n this.selectedDate = event;\n this.refresh();\n }\n\n openProposal(proposal: Proposal): void {\n console.log('[devis] (openProposal)', proposal);\n this.router.navigateByUrl(`/mon-espace/devis/detail/${proposal.id}`);\n }\n\n\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {Bill, BillService, Pricing} from \"@tatynanny/api\";\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\n\n@Component({\n selector: 'app-invoice-detail-ae',\n templateUrl: './invoice-detail-ae.page.html',\n styleUrls: ['./invoice-detail-ae.page.scss'],\n})\nexport class InvoiceDetailAePage implements OnInit {\n\n\n detailId: string;\n title: string;\n currentFacture: Bill;\n currentFactId: any;\n\n currentTimeSched: any;\n babySitter: any;\n totalTTC: any;\n totalHours: any;\n minutes: any;\n thTTC = 0;\n\n candidateLastname: string = \"\";\n candidateFirstname: string = \"\";\n candidateAddress1: string = \"\";\n candidateAddress2: string = \"\";\n candidateAddress: string = \"\";\n candidateSiret: string = \"\";\n candidateSAP: string = \"\";\n\n parentLastname: string = \"\";\n parentFirstname: string = \"\";\n parentAddress1: string = \"\";\n parentAddress2: string = \"\";\n parentAddress: string = \"\";\n parentCivilite: any;\n\n startDate: string = \"\";\n endDate: string = \"\";\n designation: string = \"\";\n hoursCompleted: any = 0;\n totalPricePerHour: any = 0;\n service: Pricing;\n taux: number = 0;\n priceNanny: number = 0;\n\n tva: number = 0.1;\n tauxTva: string = \"10%\";\n tvaMultiple: number = 1.1;\n\n @ViewChild('invoiceDiv') invoiceDiv;\n @ViewChild('invoicePage1') invoicePage1;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private invoiceService: BillService,\n\n ) { }\n\n ngOnInit() {\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n this.invoiceService.loadBillById(Number(this.detailId)).forEach(r => {\n console.log('BILL LOADED :', r.result);\n this.currentFacture = r.result;\n this.babySitter = r.result.timeScheduleMonth.candidate;\n this.currentFactId = r.result.id;\n this.currentTimeSched = r.result.timeScheduleMonth;\n this.title = r.result.timeScheduleMonth.parentContract.proposal.requestForEstimateLink.pricing.productType;\n this.totalHours = r.result.timeScheduleMonth.hoursCompleted;\n\n\n this.candidateLastname = this.currentFacture.timeScheduleMonth.candidate.account.lastname;\n this.candidateFirstname = this.currentFacture.timeScheduleMonth.candidate.account.firstname;\n this.candidateAddress1 = this.currentFacture.timeScheduleMonth.candidate.addressNumber + ' ' + this.currentFacture.timeScheduleMonth.candidate.address;\n this.candidateAddress2 = this.currentFacture.timeScheduleMonth.candidate.zipcode + ' ' + this.currentFacture.timeScheduleMonth.candidate.city + ', ' + this.currentFacture.timeScheduleMonth.candidate.country;\n this.candidateAddress = this.currentFacture.timeScheduleMonth.candidate.formattedAddress;\n this.candidateSiret = this.currentFacture.timeScheduleMonth.candidate.numSiret;\n this.candidateSAP = this.currentFacture.timeScheduleMonth.candidate.numAgrement;\n \n this.parentLastname = this.currentFacture.timeScheduleMonth.parent.account.lastname;\n this.parentFirstname = this.currentFacture.timeScheduleMonth.parent.account.firstname;\n this.parentAddress1 = this.currentFacture.timeScheduleMonth.parent.addressNumber + ' ' + this.currentFacture.timeScheduleMonth.parent.address;\n this.parentAddress2 = this.currentFacture.timeScheduleMonth.parent.zipcode + ' ' + this.currentFacture.timeScheduleMonth.parent.city + ', ' + this.currentFacture.timeScheduleMonth.parent.country;\n this.parentCivilite = this.currentFacture.timeScheduleMonth.parent.civilite;\n this.parentAddress = this.currentFacture.timeScheduleMonth.parent.formattedAddress;\n \n this.startDate = this.currentFacture.startDate != null ? this.currentFacture.startDate : this.currentFacture.timeScheduleMonth.startDate;\n this.endDate = this.currentFacture.endDate != null ? this.currentFacture.endDate : this.currentFacture.timeScheduleMonth.endDate;\n this.hoursCompleted = this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted;\n this.totalPricePerHour = this.currentFacture.totalPricePerHour.toFixed(2);\n this.priceNanny = this.currentFacture.priceNanny != null ? this.currentFacture.priceNanny : this.currentFacture.timeScheduleMonth.priceNanny;\n this.service = this.currentFacture.timeScheduleMonth.parentContract.contractNanny.pricing;\n\n\n if(this.service.productType == 'MAID') {\n if(this.service.pricingType == 'PROFESSIONAL') {\n this.tva = 0.2;\n this.tvaMultiple = 1.2;\n this.tauxTva = \"20%\";\n this.designation = \"Entretien de ménage\";\n } else {\n this.designation = \"Entretien de ménage à domicile\"\n }\n } else if(this.service.productType == 'EXTRACURRICULAR') {\n this.tva = 0.1;\n this.tvaMultiple = 1.1;\n this.tauxTva = \"10%\";\n this.designation = \"Garde d'enfants à domicile\"\n } else if(this.service.productType == 'EDUCATIONAL_SUPPORT') {\n this.tva = 0.1;\n this.tvaMultiple = 1.1;\n this.tauxTva = \"10%\";\n this.designation = \"Soutien scolaire à domicile\"\n } else if(this.service.productType == 'BABYSITTING') {\n this.tva = 0.2;\n this.tvaMultiple = 1.2;\n this.tauxTva = \"20%\";\n this.designation = \"Garde occasionnelle\"\n }\n\n\n if(this.currentFacture.timeScheduleMonth.subContract.increaseChildren == true) {\n this.taux = this.taux + (this.currentFacture.timeScheduleMonth.subContract.percentChild != null ? this.currentFacture.timeScheduleMonth.subContract.percentChild : 0);\n }\n if(this.currentFacture.timeScheduleMonth.subContract.increaseLang == true) {\n this.taux = this.taux + (this.currentFacture.timeScheduleMonth.subContract.percentLang != null ? this.currentFacture.timeScheduleMonth.subContract.percentLang : 0);\n }\n\n if(this.taux != 0) {\n this.totalTTC = (this.currentFacture.totalPricePerHour * ((this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)) + ((this.currentFacture.totalPricePerHour * (this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)) * this.taux) / 100);\n } else {\n this.totalTTC = (this.currentFacture.totalPricePerHour * ((this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)));\n }\n\n\n if(this.isFloat(this.totalHours)) {\n this.minutes = ((this.totalHours % 1) * 60).toFixed(0);\n this.totalHours = this.totalHours - (this.totalHours % 1);\n }\n });\n }\n\n isFloat(n){\n return Number(n) === n && n % 1 !== 0;\n }\n\n async generatePdf(){\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.invoiceDiv.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n doc.save('Facture-'+this.currentFacture.billIdAe+'.pdf');\n }\n\n async getImageData(element){\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from \"@angular/router\";\nimport {BillService, Pricing} from \"@tatynanny/api\";\nimport jsPDF from \"jspdf\";\nimport html2canvas from \"html2canvas\";\n\n@Component({\n selector: 'app-invoice-detail',\n templateUrl: './invoice-detail.page.html',\n styleUrls: ['./invoice-detail.page.scss'],\n})\nexport class InvoiceDetailPage implements OnInit {\n\n detailId: string;\n title: string;\n currentFacture: any;\n currentFactId: any;\n currentTimeSched: any;\n babySitter: any;\n includes: boolean = false;\n tva: number = 0;\n priceHT: any;\n totalTVA: any;\n totalHT: any;\n totalHours: any;\n minutes: any;\n thTTC = 0;\n @ViewChild('invoiceDiv') invoiceDiv;\n @ViewChild('invoicePage1') invoicePage1;\n taux: number = 0;\n totalTTC: number = 0;\n\n service: Pricing;\n designation: string = \"\";\n\n tvaMultiple: number = 1.1;\n parentLastname: string = '';\n parentFirstname: string = '';\n parentAddress: string = '';\n hoursCompleted: any;\n tauxTva: string = \"10%\";\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private invoiceService: BillService,\n\n ) { }\n\n ngOnInit() {\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n this.invoiceService.loadBillById(Number(this.detailId)).forEach(r => {\n console.log('BILL LOADED :', r.result);\n this.currentFacture = r.result;\n this.currentFactId = r.result.id;\n this.currentTimeSched = r.result.timeScheduleMonth;\n\n this.parentLastname = this.currentFacture.timeScheduleMonth.parent.account.lastname;\n this.parentFirstname = this.currentFacture.timeScheduleMonth.parent.account.firstname;\n this.parentAddress = this.currentFacture.timeScheduleMonth.parent.formattedAddress;\n this.hoursCompleted = this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted;\n\n\n\n this.service = r.result.timeScheduleMonth.parentContract.contractNanny.pricing;\n if(this.service.productType == 'EXTRACURRICULAR') {\n this.designation = \"Garde d'enfants à domicile\";\n } else if(this.service.productType == 'MAID') {\n if(this.service.pricingType == 'PROFESSIONAL') {\n this.designation = \"Entretien de ménage\";\n } else {\n this.designation = \"Entretien de ménage à domicile\";\n }\n } else if(this.service.productType == 'EDUCATIONAL_SUPPORT') {\n this.designation = \"Soutien scolaire à domicile\";\n } else if(this.service.productType == 'BABYSITTING') {\n this.designation = \"Garde occasionnelle\";\n }\n \n if(r.result.professional == null) {\n this.tva = 0.1;\n this.currentFacture.professional = false;\n } else if(r.result.professional == true) {\n this.tva = 0.2;\n this.currentFacture.professional = true;\n } else if(r.result.professional == false) {\n this.tva = 0.1;\n this.currentFacture.professional = false;\n }\n\n\n \n console.log(this.tva);\n\n if(this.currentFacture.timeScheduleMonth.subContract.increaseChildren == true) {\n this.taux = this.taux + (this.currentFacture.timeScheduleMonth.subContract.percentChild != null ? this.currentFacture.timeScheduleMonth.subContract.percentChild : 0);\n }\n if(this.currentFacture.timeScheduleMonth.subContract.increaseLang == true) {\n this.taux = this.taux + (this.currentFacture.timeScheduleMonth.subContract.percentLang != null ? this.currentFacture.timeScheduleMonth.subContract.percentLang : 0);\n }\n\n if(this.taux != null && this.taux != 0) {\n this.totalTTC = (this.currentFacture.totalPricePerHour * ((this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)) + ((this.currentFacture.totalPricePerHour * (this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)) * this.taux) / 100);\n } else {\n this.totalTTC = (this.currentFacture.totalPricePerHour * ((this.currentFacture.hoursCompleted != null ? this.currentFacture.hoursCompleted : this.currentFacture.timeScheduleMonth.hoursCompleted)));\n }\n \n this.totalHours = r.result.timeScheduleMonth.hoursCompleted;\n /** Calculate prices\n * */\n this.thTTC = this.currentFacture.timeScheduleMonth.calculatedPrice / this.totalHours;\n this.priceHT = this.thTTC / 1.1;\n this.totalHT = this.priceHT * r.result.timeScheduleMonth.hoursCompleted;\n\n\n\n if(this.isFloat(this.totalHours)){\n this.minutes = ((this.totalHours % 1) * 60).toFixed(0);\n this.totalHours = this.totalHours - (this.totalHours % 1);\n }\n\n\n this.title = r.result.timeScheduleMonth.parentContract.proposal.requestForEstimateLink.pricing.productType;\n this.babySitter = r.result.timeScheduleMonth.candidate;\n });\n }\n\n isFloat(n){\n return Number(n) === n && n % 1 !== 0;\n }\n\n async generatePdf(){\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.invoiceDiv.nativeElement);\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n doc.save('Facture-'+this.currentFacture.billId+'.pdf');\n }\n\n async getImageData(element){\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {Bill, BillForm, BillService, PageQuery, Proposal, ProposalService, SearchItem} from \"@tatynanny/api\";\nimport {Router} from \"@angular/router\";\nimport * as moment from 'moment';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {merge} from 'rxjs';\nimport {startWith, switchMap} from 'rxjs/operators';\n\n@Component({\n selector: 'app-invoice',\n templateUrl: './invoice.page.html',\n styleUrls: ['./invoice.page.scss'],\n})\nexport class InvoicePage implements OnInit {\n\n segment: 'SENT' | 'ACTIVE' | 'ALL' = 'ALL';\n data: Bill[] = [];\n displayedColumns: string[] = [\"startDate\", \"timeScheduleMonth.parentContract.contractNanny.pricing.productType\", \"timeScheduleMonth.candidate.account.lastname\", \"hoursCompleted\", \"totalPriceTTC\", \"billStatus\", \"action\"];\n service: string = \"\";\n inputId: string = \"\";\n selectedDate: string = \"\";\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n pageQuery: PageQuery = {\n fields: [\n {field: \"billId\", value: this.inputId},\n {field: \"timeScheduleMonth.parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"billStatus\", value: this.segment},\n {field: \"startDate\", value: this.selectedDate}\n ],\n sort: 'startDate',\n direction: 'desc',\n }\n\n searchItems: SearchItem[] = [];\n\n constructor(\n private billService: BillService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n\n }\n\n refresh(): void {\n this.searchItems = [\n {field: \"billId\", value: this.inputId},\n {field: \"timeScheduleMonth.parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"billStatus\", value: this.segment},\n {field: \"startDate\", value: this.selectedDate}\n ];\n this.pageQuery.fields = this.searchItems;\n this.billService.searchBill(this.pageQuery).subscribe((res: any) => {\n console.log('[invoice] (search)', res);\n this.data = res.content;\n })\n }\n\n\n ngAfterViewInit() {\n this.sort.sortChange.subscribe(() => {\n this.paginator.pageIndex = 0;\n this.pageQuery.sort = this.sort.active;\n this.pageQuery.direction = this.sort.direction;\n console.log(this.sort.active);\n });\n this.pageQuery.page = this.paginator.pageIndex;\n this.pageQuery.pageSize = this.paginator.pageSize;\n\n merge(this.sort.sortChange, this.paginator.page).pipe(startWith({}), switchMap(() => {\n return this.billService.searchBill(this.pageQuery);\n })).subscribe((data: any) => {\n console.log('[invoice] (search)', data);\n (this.data = data.content)\n });\n }\n\n onSegmentChange(event: any): void {\n console.log(event);\n this.segment = event;\n this.refresh();\n\n }\n\n onInputChange(event: any): void {\n console.log('[invoice] (onInputChange)', event);\n this.inputId = event;\n this.refresh();\n }\n\n onServiceChange(event: any): void {\n console.log('[invoice] (onServiceChange)', event);\n this.service = event.value;\n this.refresh();\n }\n\n onDateChange(event: any): void {\n console.log('[invoice] (onDateChange)', event);\n this.selectedDate = event;\n this.refresh();\n }\n\n openInvoice(bill: Bill): void {\n console.log('[invoice] (openInvoice)', bill);\n if (bill.userType == 'SALARIED') {\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail/${bill.id}`);\n } else {\n console.log('AUTO ENTREPRONNEUR');\n this.router.navigateByUrl(`/mon-espace/factures/invoice-detail-ae/${bill.id}`);\n }\n\n\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {Router} from '@angular/router';\nimport {RequestForEstimate, Pricing, LangOptions, RegisterAccountForm, RfeService} from '@tatynanny/api';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {ErrorService} from 'src/app/services/error/error.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {KeycloakSocialLoginService} from 'src/app/services/keycloak/keycloak-social-login.service';\n\n@Component({\n selector: 'app-create-estimate',\n templateUrl: './create-estimate.component.html',\n styleUrls: ['./create-estimate.component.scss'],\n})\nexport class CreateEstimateComponent implements OnInit {\n\n\n segment: 'SERVICE' | 'NEEDS' = 'SERVICE';\n segmentService: 'EXTRACURRICULAR' | 'EDUCATIONAL_SUPPORT' | 'MAID' | \"\" = \"\";\n minAge: \"LESS_1\" | 'BETWEEN_1_TO_2' | 'BETWEEN_3_TO_6' | 'MORE_6' | \"\" = \"\"\n nbChild: 1 | 2 | 3 | 0 = 0;\n school: 'PRIMARY' | 'COLLEGE' | 'HIGH SCHOOL' | '' = '';\n progress: number = 0.33;\n\n rfe: RequestForEstimate = {\n pricing: {} as Pricing,\n timeList: [],\n availableDuringHolidays: false,\n startDate: \"\",\n increaseLang: false,\n increaseChildren: false,\n langOptions: LangOptions.Anglais,\n } as RequestForEstimate;\n\n constructor(\n private rfeService: RfeService,\n private alertService: AlertService,\n private router: Router,\n private kcService: KeycloakIonicService,\n private errorService: ErrorService,\n ) { }\n \n ngOnInit() {\n if (localStorage.getItem('selectedDays')) {\n localStorage.removeItem('selectedDays');\n }\n console.log('[ask-proposal] (ngOnInit) rfe', this.rfe);\n }\n\n addProgress(value: number): void {\n this.progress = this.progress + value;\n }\n\n selectService(service: any): void {\n console.log(service);\n if (this.segmentService == service) {\n this.segmentService = \"\";\n } else {\n this.segmentService = service;\n }\n }\n selectChildren(number: any): void {\n if (this.nbChild == number) {\n this.nbChild = 0;\n } else {\n this.nbChild = number;\n }\n }\n selectMinAge(age: any): void {\n if (this.minAge == age) {\n this.minAge = \"\";\n } else {\n this.minAge = age;\n }\n }\n selectSchool(school: any): void {\n if (this.school == school) {\n this.school = \"\";\n } else {\n this.school = school;\n }\n }\n\n next(rfe?: RequestForEstimate): void {\n this.rfe.pricing = rfe.pricing;\n if (this.segment == 'SERVICE') {\n this.segment = 'NEEDS';\n }\n }\n\n\n back(rfe?: RequestForEstimate): void {\n console.log('[ask-proposal] (back) rfe', rfe);\n this.rfe = rfe;\n if(this.segment == 'NEEDS') {\n this.segment = 'SERVICE';\n }\n }\n\n validateRfe(rfe: any) {\n console.log('[create-estimate] (validateRfe)', rfe);\n\n if(this.rfe.nbChild >= 3) {\n this.rfe.increaseChildren = true;\n }\n \n this.rfe.percentChild = 10.0;\n this.rfe.percentLang = 10.0;\n\n this.rfeService.askRfe(rfe).subscribe(res => {\n console.log('[create-estimate] (askRfe)', res);\n if(res.status) {\n this.alertService.success('Demande de devis envoyé');\n this.router.navigateByUrl('/mon-espace/demandes', {\n replaceUrl: true\n });\n }\n }, (error) => {\n this.alertService.error(\"Une erreur est survenue lors de la demande de devis. Veuillez réessayez ultérieurement.\")\n })\n //TODO: send rfe to create\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {RequestForEstimate, RfeService} from '@tatynanny/api';\n\n@Component({\n selector: 'app-estimate-detail',\n templateUrl: './estimate-detail.component.html',\n styleUrls: ['./estimate-detail.component.scss'],\n})\nexport class EstimateDetailComponent implements OnInit {\n\n estimateId: any;\n estimate: any;\n \n constructor(\n private activatedRoute: ActivatedRoute,\n private rfeService: RfeService,\n ) { }\n\n ngOnInit() {\n this.estimateId = this.activatedRoute.snapshot.paramMap.get('id');\n\n this.rfeService.getRfe(this.estimateId).subscribe(res => {\n console.log('[estimate-detail] (getRfe)', res);\n if(res.result) {\n this.rfeService.getEstimateRfe(res.result).subscribe(res => {\n this.estimate = res.result;\n })\n }\n })\n\n }\n\n}\n","import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {Router} from '@angular/router';\nimport {RfeService, RequestForEstimate, PageQuery, ProposalService} from '@tatynanny/api';\nimport {merge} from 'rxjs';\nimport {startWith, switchMap} from 'rxjs/operators';\nimport {AlertService} from 'src/app/services/alert/alert.service';\n\n@Component({\n selector: 'app-estimate',\n templateUrl: './estimate.component.html',\n styleUrls: ['./estimate.component.scss'],\n})\nexport class EstimateComponent implements OnInit {\n\n data: RequestForEstimate[] = [];\n displayedColumns: string[] = [\"lastUpdateDate\", \"pricing.productType\", \"totalHoursPerMonth\", \"totalPriceTTC\", \"proposalGenerated\", \"action\"];\n service: string = \"\";\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n pageQuery: PageQuery = {\n direction: 'asc',\n sort: 'proposalGenerated',\n fields: [\n // {field: \"proposalGenerated\", value: JSON.stringify(false)},\n {field: \"pricing.productType\", value: ''},\n ],\n }\n\n constructor(\n private rfeService: RfeService,\n private router: Router,\n private proposalService: ProposalService,\n private alert: AlertService\n ) { }\n\n onServiceChange(event: any): void {\n console.log(event);\n this.pageQuery.fields = [\n // {field: \"proposalGenerated\", value: JSON.stringify(false)},\n {field: \"pricing.productType\", value: event.value}\n ]\n this.refresh();\n }\n\n ngOnInit(): void {\n }\n\n refresh(): void {\n this.rfeService.search(this.pageQuery).subscribe((res: any) => {\n // console.log(res);\n this.data = res.content;\n })\n }\n\n ionViewDidEnter() {\n this.sort.sortChange.subscribe(() => {\n this.paginator.pageIndex = 0;\n this.pageQuery.sort = this.sort.active;\n this.pageQuery.direction = this.sort.direction;\n console.log(this.sort.active);\n });\n\n this.pageQuery.page = this.paginator.pageIndex;\n this.pageQuery.pageSize = this.paginator.pageSize;\n\n merge(this.sort.sortChange, this.paginator.page).pipe(startWith({}), switchMap(() => {\n return this.rfeService.search(this.pageQuery);\n })).subscribe((data: any) => {\n console.log(data);\n (this.data = data.content)\n });\n }\n\n openEstimate(estimate: RequestForEstimate): void {\n if(estimate.proposalGenerated) {\n this.proposalService.loadProposalByRfe(estimate.id).subscribe(res => {\n if(res.result) {\n this.router.navigateByUrl(`/mon-espace/devis/detail/${res.result.id}`);\n }\n }, (error) => {\n this.alert.error(`${error.error}`);\n });\n } else {\n this.router.navigateByUrl(`/mon-espace/demandes/${estimate.id}`);\n }\n }\n}","import {HttpEventType, HttpErrorResponse, HttpHeaders, HttpClient} from '@angular/common/http';\nimport {Component, ElementRef, OnInit, ViewChild} from '@angular/core';\nimport {Account, DownloadService, FrontparentService, Parent} from '@tatynanny/api';\nimport {of} from 'rxjs';\nimport {map, catchError} from 'rxjs/operators';\nimport {Camera, CameraResultType} from '@capacitor/camera';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {Router} from '@angular/router';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {UploadService} from 'src/app/services/upload/upload.service';\n\n@Component({\n selector: 'app-info',\n templateUrl: './info.page.html',\n styleUrls: ['./info.page.scss'],\n})\nexport class InfoPage implements OnInit {\n\n\n modify: boolean = false;\n\n aboutMe: string;\n /**\n * Parent account\n */\n parentAccount: Parent = new class implements Parent {\n aboutMe: string;\n account: Account;\n activite: string;\n address: string;\n addressNumber: string;\n age: string;\n birthdate: string;\n city: string;\n civilite: number;\n country: string;\n distance: number;\n enfants: string;\n files: {[p: string]: string};\n fonction: string;\n formattedAddress: string;\n id: number;\n latitude: number;\n longitude: number;\n nationalite: string;\n salary: number;\n zipcode: string;\n }\n\n imgURL: string | ArrayBuffer | any;\n @ViewChild(\"inputPicture\", {static: false}) fileUpload: ElementRef;\n files = [];\n\n loaded: boolean = false;\n\n constructor(\n private parentService: FrontparentService,\n private alert: AlertService,\n private uploadService: UploadService,\n private http: HttpClient,\n private sanitizer: DomSanitizer,\n private router: Router,\n private envService: EnvService,\n private keycloakService: KeycloakIonicService,\n private downloadService: DownloadService\n ) { }\n\n\n fileSelect(): void {\n const fileUpload = this.fileUpload.nativeElement;\n for (let index = 0; index < fileUpload.files.length; index++) {\n const file = fileUpload.files[index];\n this.files.push({data: file, inProgress: false, progress: 0});\n }\n }\n\n uploadFile(file) {\n console.log(file);\n\n this.uploadService.upload('CLIENT', 'avatar', file.data).pipe(\n map(event => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n file.progress = Math.round(event.loaded * 100 / event.total);\n break;\n case HttpEventType.Response:\n return event;\n }\n }),\n catchError((error: HttpErrorResponse) => {\n file.inProgress = false;\n\n return of(`${file.data.name} upload failed.`);\n })).subscribe((event: any) => {\n if (typeof (event) === 'object') {\n }\n });\n }\n\n onSelectFile(event) {\n if (event.target.files && event.target.files[0]) {\n let reader = new FileReader();\n reader.readAsDataURL(event.target.files[0]);\n reader.onload = (event) => {\n this.imgURL = event.target.result;\n }\n }\n }\n\n ngOnInit() {\n this.alert.loading();\n this.keycloakService.isLoggedIn().then(connected => {\n if (connected) {\n this.parentService.apiV1ParentProfileLoadProfileGet().forEach(r => {\n console.log(r);\n this.aboutMe = r.result.aboutMe\n this.imgURL = this.envService.apiUrl + `/api/v1/files/${r.result.account.id}/avatar/download`;\n console.log('IMG URL : ', this.imgURL);\n this.loaded = true;\n this.alert.closeLoader();\n }).catch(e => {\n console.log(e);\n this.alert.closeLoader();\n // this.alert.errorApi();\n })\n } else {\n this.alert.closeLoader();\n this.alert.error('Vous êtes déconnecté.');\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n })\n }\n }).catch(e => {\n console.log(e);\n this.alert.closeLoader();\n })\n }\n\n\n updateAboutMe(): void {\n this.parentAccount.aboutMe = this.aboutMe\n // this.parentService.apiV1ParentProfileUploadFileFileTypePost()\n this.parentService.saveAboutMe(this.parentAccount).forEach(r => {\n if (this.files.length > 0) {\n this.uploadFile(this.files[0]);\n }\n this.alert.success('Descritpion enregistrée')\n this.router.navigateByUrl('/mon-espace/documents');\n }).catch(e => {\n console.log(e);\n // this.alert.errorApi()\n })\n\n }\n\n}\n","import {HttpClient} from '@angular/common/http';\nimport {ChangeDetectorRef, Component, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {ModalController, ToastController} from '@ionic/angular';\nimport {\n RequestForEstimate,\n SuitableTime,\n ProductType,\n FrontparentService,\n ParentNeedRecurrence,\n RfeService,\n} from '@tatynanny/api';\nimport {ModalDayofweekComponent} from 'src/app/components/modal-dayofweek/modal-dayofweek.component';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-rfe',\n templateUrl: './rfe.page.html',\n styleUrls: ['./rfe.page.scss'],\n})\nexport class RfePage implements OnInit {\n\n request: RequestForEstimate = {\n timeList: Array(),\n totalHoursPerWeek: 0,\n pricing: {\n productType: ProductType.Extracurricular,\n },\n };\n\n segment: 'EXTRACURRICULAR' | 'MAID' | 'EDUCATIONAL_SUPPORT' = 'EXTRACURRICULAR';\n\n estimate: RequestForEstimate = {\n budgetBeforeAid: 0.0,\n budgetAfterCaf: 0.0,\n cafHelp: 0.0,\n taxCredits: 0.0,\n realCost: 0.0,\n totalHoursPerWeekStr: \"\",\n totalHoursPerMonthStr: \"\",\n totalHoursPerMonth: 0.0,\n pricePerHour: 0.0,\n increaseChildren: false,\n }\n tabList = [];\n\n constructor(\n private parentService: FrontparentService,\n private modalCtrl: ModalController,\n public toastController: ToastController,\n private rfeService: RfeService,\n ) { }\n\n ngOnInit() {\n\n }\n\n\n onSegmentChange(event): void {\n this.segment = event.detail.value;\n }\n\n reset(): void {\n this.tabList = [];\n this.request = {\n timeList: Array(),\n totalHoursPerWeek: 0,\n totalHoursPerMonth: 0,\n totalPriceTTC: 0,\n totalPriceHT: 0,\n pricing: {\n productType: this.segment,\n },\n }\n }\n\n\n removeSuitableTime(item: SuitableTime, index: number): void {\n this.tabList.splice(index, 1);\n this.refreshEstimate();\n }\n\n validateNeeds(): void {\n\n }\n\n\n refreshEstimate(): void {\n\n let valid: boolean = true;\n this.request.timeList.forEach(r => {\n if(!r.startTime || !r.endTime) {\n valid = false;\n }\n })\n\n if(valid) {\n this.rfeService.getEstimateRfe(this.request).subscribe(res => {\n console.log('[rfe] (refreshEstimate)', res);\n this.estimate = res.result;\n }, (error) => {\n console.error(error);\n });\n }\n }\n\n\n async openModalDayOfWeek() {\n const modal = await this.modalCtrl.create({\n component: ModalDayofweekComponent,\n cssClass: 'modal-calendar',\n });\n modal.onDidDismiss().then(res => {\n if (res.data) {\n res.data.forEach(r => {\n this.tabList.push({\n dayOfWeek: r, startTime: '16:30', endTime: '19:30', frequency: ParentNeedRecurrence.Weekly, diffTime: 0,\n });\n })\n this.sortDays();\n }\n })\n await modal.present();\n }\n\n sortDays(): void {\n this.tabList.sort((a, b) => a.dayOfWeek - b.dayOfWeek);\n }\n\n}\n","import {Component, ElementRef, Inject, LOCALE_ID, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {IonDatetime, AlertController, ModalController, PopoverController} from '@ionic/angular';\nimport * as moment from 'moment';\nimport {Account, Candidate, ContactUsForm, FrontgeneralService, Parent, TimeSchedule, TimeScheduleForm, TimeScheduleHistory, TimeScheduleMonth, TimescheduleService, TimesheetReportForm} from '@tatynanny/api';\nimport jsPDF from 'jspdf';\nimport html2canvas from 'html2canvas';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-event',\n templateUrl: './event.page.html',\n styleUrls: ['./event.page.scss'],\n})\nexport class EventPage implements OnInit {\n\n detailId: any;\n title: string = \"\";\n active: boolean = false;\n currentTimeScheduleMonth: TimeScheduleMonth = {\n parent: {\n account: {} as Account,\n } as Parent,\n candidate: {\n account: {} as Account,\n } as Candidate,\n } as TimeScheduleMonth;\n total: number = 0;\n times = [];\n modify: boolean = false;\n message: string = \"\";\n error: boolean = false;\n @ViewChild(\"page\") page: ElementRef;\n\n displayedColumns = [\n \"date\",\n \"startDate\",\n \"endDate\",\n \"diff\",\n \"action\",\n ];\n\n form: TimesheetReportForm = {\n subject: \"Erreur sur le relevé d'heure\",\n email: '',\n message: '',\n };\n\n warned: boolean[] = [];\n modified: boolean[] = [];\n \n constructor(\n private keycloakIonicService: KeycloakIonicService,\n private alertCtrl: AlertController,\n @Inject(LOCALE_ID) private locale: string,\n private alertService: AlertService,\n private activatedRoute: ActivatedRoute,\n private router: Router,\n private frontTimeScheduleService: TimescheduleService,\n private modalCtrl: ModalController,\n private popoverCtrl: PopoverController,\n private generalService: FrontgeneralService,\n ) { }\n\n onChangeStartTime(event: any): void {\n console.log(event);\n }\n\n onChangeEndTime(event: any): void {\n console.log(event);\n }\n\n\n ngOnInit(): void {\n this.refreshPage();\n }\n\n refreshPage(): void {\n this.alertService.loading();\n\n // this.currentMonth = this.calendar.currentDate.toLocaleString('default', {month: 'long'}).toUpperCase();\n\n this.detailId = this.activatedRoute.snapshot.paramMap.get('id');\n this.form.timeScheduleMonthId = this.detailId;\n\n this.keycloakIonicService.isLoggedIn().then(connected => {\n if (connected) {\n this.loadTimeSchedule();\n this.alertService.closeLoader();\n } else {\n this.alertService.closeLoader();\n //this.alertService.temp('Vous êtes déconnecté.', 2000);\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n });\n }\n });\n }\n\n // loadHistory() {\n // this.frontTimeScheduleService.loadHistoryByTimeScheduleId(Number(this.detailId)).subscribe(t => {\n // for (let item of t.items) {\n // this.history.push(item);\n // this.history.sort((a, b) => new Date(b.creationDate).getTime() - new Date(a.creationDate).getTime());\n // }\n // this.loadHistoryEvents();\n // });\n // }\n\n loadTimeSchedule(): void {\n this.frontTimeScheduleService.loadTimeScheduleById(Number(this.detailId)).subscribe(r => {\n console.log(r);\n this.currentTimeScheduleMonth = r.result;\n this.loadTimes(r.result.timeSchedules);\n if (r.result.timeScheduleStatus != 'ACTIVE' && r.result.timeScheduleStatus != 'BILLED' && r.result.timeScheduleStatus != 'ARCHIVED') {\n this.active = false;\n this.title = r.result.parentContract.proposal.requestForEstimateLink.pricing.productType;\n // this.loadHistory();\n // this.loadEvents();\n } else {\n this.title = r.result.parentContract.proposal.requestForEstimateLink.pricing.productType;\n this.active = true;\n }\n\n this.form.email = r.result.parent.account.email;\n });\n }\n\n loadTimes(times: TimeSchedule[]): void {\n times.forEach(r => {\n let diff = r.diffTime / 3600000;\n console.log(diff);\n this.total = this.total + diff;\n if(moment(r.startDate).date() == moment(r.endDate).date()) {\n this.times.push({\n date: moment(r.startDate).locale('fr').format('dddd DD/MM'),\n startDate: moment(r.startDate),\n endDate: moment(r.endDate),\n diff: diff,\n })\n } else {\n this.times.push({\n date: moment(r.startDate).locale('fr').format('dddd DD/MM') + \" au \" + moment(r.endDate).format('dddd DD/MM'),\n startDate: moment(r.startDate),\n endDate: moment(r.endDate),\n diff: diff,\n })\n }\n });\n\n }\n\n isFloat(n) {\n return Number(n) === n && n % 1 !== 0;\n }\n\n errorTime(): void {\n this.modify = true;\n }\n\n\n\n async generatePdf() {\n console.log(this.page);\n const imgWidth = 210;\n const pageHeight = 295;\n const position = 0;\n let imgHeight = 0;\n const doc = new jsPDF('p', 'mm');\n const image1 = await this.getImageData(this.page.nativeElement);\n\n imgHeight = image1.height * imgWidth / image1.width;\n doc.addImage(image1.url, 'PNG', 0, position, imgWidth, imgHeight);\n\n doc.save(`${this.currentTimeScheduleMonth.timeScheduleMonthCode}.pdf`);\n }\n\n async getImageData(element) {\n const canvas = await html2canvas(element);\n return {url: canvas.toDataURL(\"image/jpeg\"), height: canvas.height, width: canvas.width}\n }\n\n addReportTime(time: any, index: number, deleted: boolean) {\n if(deleted) {\n this.form.message = this.form.message + \"\\n\" + \"Suppression: \" + moment(time.startDate).locale('fr').format('dddd DD/MM HH:mm') + \" - \" + moment(time.endDate).locale('fr').format('dddd DD/MM HH:mm');\n this.warned[index] = true;\n } else {\n this.form.message = this.form.message + \"\\n\" + \"Heures saisies : \" + moment(time.startDate).locale('fr').format('dddd DD/MM HH:mm') + \" - \" + moment(time.endDate).locale('fr').format('dddd DD/MM HH:mm') + \"\\nNouveau horaire : \" + moment(time.startDate).locale('fr').format('dddd DD/MM') + \" - __:__ - \" + moment(time.endDate).locale('fr').format('dddd DD/MM') + \" - __:__\\n\";\n this.modified[index] = true;\n }\n }\n\n\n sendReport(): void {\n this.alertService.ask('Information', `Voulez-vous envoyer votre signalement d'erreur sur votre relevé d'heure ?`, 'Oui, envoyer', () => {\n this.frontTimeScheduleService.report(this.form).subscribe(res => {\n if(res.status) {\n this.alertService.success('Notre équipe va examiner votre signalement et nous vous ferons un retour très rapidement.');\n this.error = false;\n }\n }, (error) => {\n this.alertService.error(\"Impossible d'envoyer votre signalement. Veuillez réessayez ultérieurement.\");\n })\n });\n }\n}\n","import {Component, OnInit, ViewChild} from '@angular/core';\nimport {MatPaginator} from '@angular/material/paginator';\nimport {MatSort} from '@angular/material/sort';\nimport {Router} from '@angular/router';\nimport {PageQuery, Proposal, ProposalService, SearchItem, TimeScheduleForm, TimeScheduleMonth, TimescheduleService, TimeScheduleStatus} from \"@tatynanny/api\";\nimport * as moment from 'moment';\nimport {merge} from 'rxjs';\nimport {startWith, switchMap} from 'rxjs/operators';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\n\n@Component({\n selector: 'app-timesheet',\n templateUrl: './timesheet.page.html',\n styleUrls: ['./timesheet.page.scss'],\n})\nexport class TimesheetPage implements OnInit {\n\n segment: 'SENT' | 'ACTIVE' | 'ALL' = 'ALL';\n data: Proposal[] = [];\n displayedColumns: string[] = [\"monthYear\", \"parentContract.contractNanny.pricing.productType\", \"candidate.account.lastname\", \"hoursCompleted\", \"calculatedPrice\", \"timeScheduleStatus\", \"action\"];\n service: string = \"\";\n inputId: string = \"\";\n selectedDate: string = \"\";\n searchDate: string = \"\";\n\n @ViewChild(MatPaginator) paginator: MatPaginator;\n @ViewChild(MatSort) sort: MatSort;\n\n pageQuery: PageQuery = {\n fields: [\n {field: \"monthYear\", value: this.searchDate},\n {field: \"parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"timeScheduleStatus\", value: this.segment},\n ],\n sort: 'creationDate',\n direction: 'desc',\n }\n\n searchItems: SearchItem[] = [];\n\n constructor(\n private timesheetService: TimescheduleService,\n private router: Router,\n ) { }\n\n ngOnInit(): void {\n\n }\n\n refresh(): void {\n this.searchItems = [\n {field: \"monthYear\", value: this.searchDate},\n {field: \"parentContract.contractNanny.pricing.productType\", value: this.service},\n {field: \"timeScheduleStatus\", value: this.segment},\n ];\n this.pageQuery.fields = this.searchItems;\n this.timesheetService.searchTimesheet(this.pageQuery).subscribe((res: any) => {\n console.log('[timesheet] (search)', res);\n this.data = res.content;\n })\n }\n\n\n ngAfterViewInit() {\n this.sort.sortChange.subscribe(() => {\n this.paginator.pageIndex = 0;\n this.pageQuery.sort = this.sort.active;\n this.pageQuery.direction = this.sort.direction;\n console.log(this.sort.active);\n });\n this.pageQuery.page = this.paginator.pageIndex;\n this.pageQuery.pageSize = this.paginator.pageSize;\n\n merge(this.sort.sortChange, this.paginator.page).pipe(startWith({}), switchMap(() => {\n return this.timesheetService.searchTimesheet(this.pageQuery);\n })).subscribe((data: any) => {\n console.log('[timesheet] (search)', data);\n (this.data = data.content)\n });\n }\n\n onSegmentChange(event: any): void {\n console.log(event);\n this.segment = event;\n this.refresh();\n\n }\n\n onInputChange(event: any): void {\n console.log('[timesheet] (onInputChange)', event);\n this.inputId = event;\n this.refresh();\n }\n\n onServiceChange(event: any): void {\n console.log('[timesheet] (onServiceChange)', event);\n this.service = event.value;\n this.refresh();\n }\n\n onDateChange(event: any): void {\n console.log('[timesheet] (onDateChange)', event);\n this.selectedDate = event;\n if(event != '') {\n let dates = event.split('-');\n console.log(dates);\n if(dates && dates[1].startsWith('0')) {\n dates[1] = dates[1].substr(1);\n }\n this.searchDate = dates[1] + \"-\" + dates[0];\n } else {\n this.searchDate = event;\n }\n this.refresh();\n }\n\n openTimesheet(timesheet: TimeScheduleMonth): void {\n console.log('[timescheet] (openTimesheet)', timesheet);\n this.router.navigateByUrl(`/mon-espace/feuille-de-temps/event/${timesheet.id}`)\n \n }\n\n\n}\n","import {MapsAPILoader} from '@agm/core';\nimport {AfterViewInit, Component, ElementRef, EventEmitter, Input, NgZone, OnInit, Output, Renderer2, ViewChild} from '@angular/core';\nimport {IonInput} from '@ionic/angular';\nimport {AccountType, RegisterAccountForm, RequestForEstimate, RfeService} from '@tatynanny/api';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {KeycloakSocialLoginService} from 'src/app/services/keycloak/keycloak-social-login.service';\nimport {Keyboard} from '@capacitor/keyboard';\n\n@Component({\n selector: 'app-ask-proposal-info',\n templateUrl: './ask-proposal-info.component.html',\n styleUrls: ['./ask-proposal-info.component.scss'],\n})\nexport class AskProposalInfoComponent implements OnInit, AfterViewInit {\n\n @Input('rfe') rfe: RequestForEstimate;\n @Output() backEv = new EventEmitter();\n\n @Output() registerEv = new EventEmitter();\n @Output() registerSocialEv = new EventEmitter();\n\n registerForm: RegisterAccountForm = {\n accountType: AccountType.Client,\n } as RegisterAccountForm;\n\n @ViewChild('address', {static: true}) addressRef: IonInput;\n\n constructor(\n private mapsAPILoader: MapsAPILoader,\n private ngZone: NgZone,\n ) { }\n\n ngOnInit() {\n console.log('[ask-proposal-info] (ngOnInit) rfe', this.rfe);\n this.registerForm.requestForEstimate = this.rfe;\n }\n\n ngAfterViewInit(): void {\n this.addressRef.getInputElement().then(input => {\n this.mapsAPILoader.load().then(() => {\n let autocomplete = new google.maps.places.Autocomplete(\n input,\n {\n types: ['address'],\n componentRestrictions: {\n country: 'fr',\n },\n }\n );\n autocomplete.addListener('place_changed', () => {\n this.ngZone.run(() => {\n let place: google.maps.places.PlaceResult = autocomplete.getPlace();\n if (place.geometry === undefined || place.geometry === null) {\n return;\n }\n this.registerForm.formattedAddress = place.formatted_address;\n this.registerForm.addressNumber =\n place.address_components[0].long_name;\n this.registerForm.address = place.address_components[1].long_name;\n this.registerForm.city = place.address_components[2].long_name;\n if (place.address_components[5] != null) {\n this.registerForm.country = place.address_components[5].long_name;\n }\n if (place.address_components[6] != null) {\n this.registerForm.zipcode = place.address_components[6].long_name;\n }\n this.registerForm.latitude = place.geometry.location.lat();\n this.registerForm.longitude = place.geometry.location.lng();\n });\n });\n });\n });\n }\n\n back(): void {\n this.backEv.emit(this.rfe);\n }\n\n\n checkForm(): boolean {\n let valid = true;\n if (!this.registerForm.lastname) valid = false;\n if (!this.registerForm.phoneNumber) valid = false;\n if (!this.registerForm.email) valid = false;\n if (!this.registerForm.password) valid = false;\n if (!this.registerForm.formattedAddress) valid = false;\n\n return valid;\n }\n\n finalize(): void {\n this.registerEv.emit(this.registerForm);\n }\n\n // selectRegister(type: any): void {\n // let object = {\n // type: type,\n // registerForm: this.registerForm,\n // }\n // this.registerSocialEv.emit(object);\n // }\n\n handleEnter(event: any): void {\n console.log(event);\n Keyboard.hide();\n }\n}\n","import {Component, EventEmitter, Input, OnInit, Output, Renderer2} from '@angular/core';\nimport {ModalController} from '@ionic/angular';\nimport {RequestForEstimate, RfeService} from '@tatynanny/api';\nimport * as moment from 'moment';\nimport {ModalDayofweekComponent} from 'src/app/components/modal-dayofweek/modal-dayofweek.component';\nimport {AlertService} from 'src/app/services/alert/alert.service';\n\n@Component({\n selector: 'app-ask-proposal-needs',\n templateUrl: './ask-proposal-needs.component.html',\n styleUrls: ['./ask-proposal-needs.component.scss'],\n})\nexport class AskProposalNeedsComponent implements OnInit {\n\n @Input('rfe') rfe: RequestForEstimate;\n\n @Input('connected') connected: boolean = false;\n\n @Output() nextEv = new EventEmitter();\n @Output() validateEv = new EventEmitter();\n @Output() backEv = new EventEmitter();\n\n daysOfWeek = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'];\n selectedDays: any[] = [\n {dayOfWeek: 1, day: 'Lundi', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 2, day: 'Mardi', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 3, day: 'Mercredi', startTime: '11:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 4, day: 'Jeudi', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 5, day: 'Vendredi', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 6, day: 'Samedi', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n {dayOfWeek: 7, day: 'Dimanche', startTime: '16:30', endTime: '19:30', frequency: 'WEEKLY', checked: false, canDelete: false},\n ];\n\n estimate: RequestForEstimate = {\n budgetBeforeAid: 0.0,\n budgetAfterCaf: 0.0,\n cafHelp: 0.0,\n taxCredits: 0.0,\n realCost: 0.0,\n totalHoursPerWeekStr: \"\",\n totalHoursPerMonthStr: \"\",\n totalHoursPerMonth: 0.0,\n pricePerHour: 0.0,\n increaseChildren: false,\n }\n error: string = \"\";\n\n minDate: any;\n\n constructor(\n private modalCtrl: ModalController,\n private rfeService: RfeService,\n private alertService: AlertService,\n ) {\n }\n\n ngOnInit() {\n if (localStorage.getItem('selectedDays')) {\n this.selectedDays = JSON.parse(localStorage.getItem('selectedDays'));\n this.refreshEstimate();\n } else if (this.rfe.timeList.length > 0) {\n this.loadRfe(this.rfe);\n this.refreshEstimate();\n }\n\n if (!this.rfe.startDate) {\n this.rfe.startDate = moment().locale('fr').add(1, 'days').format('YYYY-MM-DD');\n }\n }\n\n loadRfe(rfe: RequestForEstimate): void {\n this.selectedDays = [];\n rfe.timeList.forEach((time, index) => {\n let canDelete: boolean = false;\n\n // let indexFound = this.selectedDays.findIndex(e => e.dayOfWeek == time.dayOfWeek && e.checked == true);\n let indexFound = this.selectedDays.filter(e => e.dayOfWeek == time.dayOfWeek && e.checked == true);\n if (indexFound.length > 1) {\n canDelete = true;\n }\n this.selectedDays.push({\n dayOfWeek: time.dayOfWeek,\n day: this.daysOfWeek[time.dayOfWeek > 0 ? time.dayOfWeek - 1 : 0],\n startTime: time.startTime,\n endTime: time.endTime,\n frequency: time.frequency,\n checked: true,\n canDelete: canDelete,\n })\n });\n\n\n this.daysOfWeek.forEach((day, index) => {\n let found = this.selectedDays.find(e => e.day == day);\n if (!found) {\n this.selectedDays.push({\n dayOfWeek: index + 1,\n day: day,\n startTime: day != 'Mercredi' ? '16:30' : '14:30',\n endTime: '19:30',\n frequency: 'WEEKLY',\n checked: false,\n canDelete: false,\n });\n }\n });\n\n this.sortDays();\n }\n\n addDay(day: string, checked?: boolean) {\n let startTime = \"16:30\";\n let endTime = \"19:30\";\n if (day == 'Mercredi') {\n startTime = \"11:30\";\n endTime = \"19:30\";\n }\n this.selectedDays.push({\n dayOfWeek: this.getDayOfWeek(day),\n day: day,\n startTime: startTime,\n endTime: endTime,\n frequency: 'WEEKLY',\n checked: checked || false,\n });\n\n\n this.sortDays();\n }\n\n removeDay(day: string) {\n const index = this.selectedDays.findIndex(d => d.day === day);\n if (index !== -1) {\n this.selectedDays.splice(index, 1);\n }\n }\n\n addExtraDay(day?: string) {\n console.log(day);\n this.addDay(day, true);\n }\n\n async openModalDayOfWeek() {\n\n const modal = await this.modalCtrl.create({\n component: ModalDayofweekComponent,\n cssClass: 'modal-calendar',\n });\n modal.onDidDismiss().then(res => {\n if (res.data) {\n console.log(res.data);\n res.data.forEach(r => {\n let index = this.selectedDays.findIndex(e => e.dayOfWeek == r);\n if (this.selectedDays[index].checked) {\n this.selectedDays.push({\n dayOfWeek: r,\n day: this.getDay(r),\n startTime: '16:30',\n endTime: '19:30',\n frequency: 'WEEKLY',\n checked: true,\n canDelete: true,\n });\n this.sortDays();\n } else {\n this.selectedDays[index].checked = true;\n }\n });\n }\n })\n await modal.present();\n }\n\n sortDays(): void {\n this.selectedDays.sort((a, b) => a.dayOfWeek - b.dayOfWeek);\n }\n\n safeDelete(index: number): void {\n this.selectedDays.splice(index, 1);\n }\n\n getDayOfWeek(day: string): number {\n if (day == 'Lundi') {\n return 1;\n } else if (day == 'Mardi') {\n return 2;\n } else if (day == 'Mercredi') {\n return 3;\n } else if (day == 'Jeudi') {\n return 4;\n } else if (day == 'Vendredi') {\n return 5;\n } else if (day == 'Samedi') {\n return 6;\n } else if (day == 'Dimanche') {\n return 7;\n }\n }\n getDay(dayOfWeek: number): string {\n if (dayOfWeek == 1) {\n return 'Lundi';\n } else if (dayOfWeek == 2) {\n return 'Mardi';\n } else if (dayOfWeek == 3) {\n return 'Mercredi';\n } else if (dayOfWeek == 4) {\n return 'Jeudi';\n } else if (dayOfWeek == 5) {\n return 'Vendredi';\n } else if (dayOfWeek == 6) {\n return 'Samedi';\n } else if (dayOfWeek == 7) {\n return 'Dimanche';\n }\n }\n\n checkSelectedDays(): boolean {\n let element = this.selectedDays.find(e => e.checked == true);\n if (element != null && this.rfe.startDate && moment(this.rfe.startDate).locale('fr').isAfter(moment().locale('fr'))) {\n return true;\n } else {\n return false;\n }\n }\n\n next(): void {\n if (this.checkSelectedDays()) {\n this.selectedDays.forEach(e => {\n if (e.checked) {\n this.rfe.timeList.push({\n dayOfWeek: e.dayOfWeek,\n startTime: e.startTime,\n endTime: e.endTime,\n frequency: e.frequency,\n });\n }\n });\n console.log('[ask-proposal-needs] (next) rfe', this.rfe);\n localStorage.setItem('selectedDays', JSON.stringify(this.selectedDays));\n this.refreshEstimate();\n this.estimate.increaseChildren = this.rfe.increaseChildren;\n this.estimate.increaseLang = this.rfe.increaseLang;\n this.estimate.percentLang = 10.0;\n this.estimate.percentChild = 10.0;\n this.validateEv.emit(this.estimate);\n } else {\n this.alertService.temp('Veuillez sélectionnez au moins un créneau horaire.', 3000);\n }\n\n }\n\n back(): void {\n this.backEv.emit(this.rfe);\n }\n\n handleCheckboxChange(event: any, index: number) {\n this.selectedDays[index].checked = event.detail.checked;\n if (this.selectedDays[index].canDelete) {\n this.selectedDays.splice(index, 1);\n }\n this.refreshEstimate();\n }\n\n\n refreshEstimate(): void {\n this.rfe.timeList = [];\n this.selectedDays.forEach(element => {\n if (element.checked) {\n this.rfe.timeList.push({\n dayOfWeek: element.dayOfWeek,\n startTime: element.startTime,\n endTime: element.endTime,\n frequency: element.frequency,\n });\n }\n });\n this.rfeService.getEstimateRfe(this.rfe).subscribe(res => {\n console.log('[ask-proposal-needs] (getEstimateRfe)', res);\n this.estimate = res.result;\n });\n }\n}","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {MinAgeInterval, Pricing, RequestForEstimate} from '@tatynanny/api';\n\n@Component({\n selector: 'app-ask-proposal-service',\n templateUrl: './ask-proposal-service.component.html',\n styleUrls: ['./ask-proposal-service.component.scss'],\n})\nexport class AskProposalServiceComponent implements OnInit {\n\n segmentService: any = \"\";\n minAge: MinAgeInterval;\n nbChild: number = 0;\n school: any = '';\n @Input('rfe') rfe: RequestForEstimate;\n @Output() nextEv = new EventEmitter();\n\n @ViewChild('children', {static: true}) children: ElementRef;\n @ViewChild('age', {static: true}) age: ElementRef;\n @ViewChild('schoolLevel', {static: true}) schoolLevel: ElementRef;\n\n constructor() { }\n\n ngOnInit() {\n console.log('[ask-proposal-service] (ngOnInit) rfe', this.rfe);\n\n if (this.rfe.nbChild > 0) {\n this.nbChild = this.rfe.nbChild\n }\n if (this.rfe.minAgeInterval) {\n this.minAge = this.rfe.minAgeInterval;\n }\n if (localStorage.getItem('classLevel')) {\n this.school = localStorage.getItem('classLevel');\n }\n }\n\n next(): void {\n this.rfe.nbChild = this.nbChild;\n this.rfe.minAgeInterval = this.minAge;\n\n console.log('[ask-proposal-service] (next) rfe', this.rfe);\n this.nextEv.emit(this.rfe);\n }\n\n selectService(service: any): void {\n this.rfe.pricing.productType = service;\n if (service != 'EDUCATIONAL_SUPPORT') {\n localStorage.removeItem('classLevel');\n this.school = \"\";\n }\n\n if(service == 'EXTRACURRICULAR') {\n setTimeout(() => {\n let element: any = document.getElementById('children');\n element.scrollIntoView({behavior: 'smooth'});\n }, 300);\n } else if(service == 'EDUCATIONAL_SUPPORT') {\n setTimeout(() => {\n let element: any = document.getElementById('schoolLevel');\n element.scrollIntoView({behavior: 'smooth'});\n }, 300);\n }\n }\n selectChildren(number: any): void {\n if (this.nbChild == number) {\n this.nbChild = 0;\n } else {\n this.nbChild = number;\n }\n\n setTimeout(() => {\n let element: any = document.getElementById('age');\n element.scrollIntoView({behavior: 'smooth'});\n }, 300);\n }\n selectMinAge(age: any): void {\n if (this.minAge == age) {\n this.minAge = null;\n } else {\n this.minAge = age;\n }\n\n setTimeout(() => {\n let element: any = document.getElementById('validate');\n element.scrollIntoView({behavior: 'smooth'});\n }, 300);\n }\n selectSchool(school: any): void {\n if (this.school == school) {\n this.school = \"\";\n localStorage.removeItem('classLevel');\n } else {\n this.school = school;\n localStorage.setItem('classLevel', this.school);\n }\n\n setTimeout(() => {\n let element: any = document.getElementById('validate');\n element.scrollIntoView({behavior: 'smooth'});\n }, 300);\n }\n}\n","import {ViewportScroller} from '@angular/common';\nimport {Component, Input, OnInit, ViewChild} from '@angular/core';\nimport {IonContent} from '@ionic/angular';\nimport {LangOptions, Pricing, RegisterAccountForm, RequestForEstimate, RfeService} from '@tatynanny/api';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {ErrorService} from 'src/app/services/error/error.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {KeycloakSocialLoginService} from 'src/app/services/keycloak/keycloak-social-login.service';\n\n@Component({\n selector: 'app-ask-proposal',\n templateUrl: './ask-proposal.component.html',\n styleUrls: ['./ask-proposal.component.scss'],\n})\nexport class AskProposalComponent implements OnInit {\n\n @Input('isComponent') isComponent: boolean = false;\n\n segment: 'SERVICE' | 'NEEDS' | 'INFOS' = 'SERVICE';\n segmentService: 'EXTRACURRICULAR' | 'EDUCATIONAL_SUPPORT' | 'MAID' | \"\" = \"\";\n minAge: \"LESS_1\" | 'BETWEEN_1_TO_2' | 'BETWEEN_3_TO_6' | 'MORE_6' | \"\" = \"\"\n nbChild: 1 | 2 | 3 | 0 = 0;\n school: 'PRIMARY' | 'COLLEGE' | 'HIGH SCHOOL' | '' = '';\n progress: number = 0.33;\n\n rfe: RequestForEstimate = {\n pricing: {} as Pricing,\n timeList: [],\n availableDuringHolidays: false,\n startDate: \"\",\n increaseLang: false,\n increaseChildren: false,\n langOptions: LangOptions.Anglais,\n } as RequestForEstimate;\n\n @ViewChild('content') content: IonContent;\n\n constructor(\n private rfeService: RfeService,\n private alertService: AlertService,\n private kcService: KeycloakIonicService,\n private errorService: ErrorService,\n private keycloakSocialLoginService: KeycloakSocialLoginService,\n private viewportScroller: ViewportScroller\n ) { }\n\n ngOnInit() {\n if (localStorage.getItem('selectedDays')) {\n localStorage.removeItem('selectedDays');\n }\n console.log('[ask-proposal] (ngOnInit) rfe', this.rfe);\n }\n\n addProgress(value: number): void {\n this.progress = this.progress + value;\n }\n\n selectService(service: any): void {\n console.log(service);\n if (this.segmentService == service) {\n this.segmentService = \"\";\n } else {\n this.segmentService = service;\n }\n }\n selectChildren(number: any): void {\n if (this.nbChild == number) {\n this.nbChild = 0;\n } else {\n this.nbChild = number;\n }\n }\n selectMinAge(age: any): void {\n if (this.minAge == age) {\n this.minAge = \"\";\n } else {\n this.minAge = age;\n }\n }\n selectSchool(school: any): void {\n if (this.school == school) {\n this.school = \"\";\n } else {\n this.school = school;\n }\n }\n\n next(rfe?: RequestForEstimate): void {\n this.scrollToTop();\n this.rfe.pricing = rfe.pricing;\n if (this.segment == 'SERVICE') {\n this.segment = 'NEEDS';\n } else if (this.segment == 'NEEDS') {\n this.segment = 'INFOS';\n }\n }\n\n validateRfe(rfe: any): void {\n this.scrollToTop();\n console.log('[ask-proposal] (validateRfe) rfe', rfe);\n this.segment = 'INFOS';\n }\n\n back(rfe?: RequestForEstimate): void {\n this.scrollToTop();\n console.log('[ask-proposal] (back) rfe', rfe);\n this.rfe = rfe;\n if (this.segment == 'INFOS') {\n this.segment = 'NEEDS';\n } else if (this.segment == 'NEEDS') {\n this.segment = 'SERVICE';\n }\n }\n\n changeSegment(segment: string): void {\n this.scrollToTop();\n if (segment == 'SERVICE') {\n this.segment = 'SERVICE';\n } else if (segment == 'NEEDS') {\n if (this.segment == 'INFOS') {\n this.segment = 'NEEDS';\n }\n }\n }\n\n\n scrollToTop() {\n this.content.scrollToTop(0);\n }\n\n\n\n register(form: RegisterAccountForm): void {\n console.log('[ask-proposal] (register) form', form);\n this.alertService.loading();\n if(form.nbChild >= 3) {\n form.increaseChildren = true;\n }\n this.rfeService.registerRfe(form).subscribe(res => {\n console.log('[ask-proposal-info] (finalize)', res);\n if (res.status) {\n this.alertService.closeLoader();\n this.alertService.confirm(`Connectez vous à votre espace pour accéder à votre devis. \n Nous vous contactons dans les plus brefs délais`, 'Se connecter', () => {\n this.kcService.login({\n loginHint: form.email,\n });\n });\n } else {\n this.alertService.closeLoader();\n this.errorService.showError(res.errors.fieldErrors);\n }\n }, (error) => {\n this.alertService.closeLoader();\n this.alertService.error(`${error.error}`);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport {HistoireComponent} from '../components/about-pages/histoire/histoire.component';\nimport {PartenairesComponent} from '../components/about-pages/partenaires/partenaires.component';\nimport {ValeursComponent} from '../components/about-pages/valeurs/valeurs.component';\nimport {ContactComponent} from '../components/contact/contact.component';\nimport {FaqComponent} from '../components/faq/faq.component';\nimport {LegacyComponent} from '../components/legacy/legacy.component';\nimport {LudiqueComponent} from '../components/prestations-pages/ludique/ludique.component';\nimport {OccasionnelComponent} from '../components/prestations-pages/occasionnel/occasionnel.component';\nimport {PeriscolaireComponent} from '../components/prestations-pages/periscolaire/periscolaire.component';\nimport {SoutienComponent} from '../components/prestations-pages/soutien/soutien.component';\nimport {RegisterComponent} from '../components/register/register.component';\nimport {StarterComponent} from '../components/starter/starter.component';\nimport {AccompagnementComponent} from '../components/tatynanny-pages/accompagnement/accompagnement.component';\nimport {PrestationsComponent} from '../components/tatynanny-pages/prestations/prestations.component';\nimport {RecrutementComponent} from '../components/tatynanny-pages/recrutement/recrutement.component';\nimport {TarifsComponent} from '../components/tatynanny-pages/tarifs/tarifs.component';\nimport {TermsComponent} from '../components/terms/terms.component';\n\nimport { HomePage } from './home.page';\nimport {AboutusAppComponent} from '../components/aboutus-app/aboutus-app.component';\nimport {AskProposalComponent} from './ask-proposal/ask-proposal.component';\nimport {TatynannyComponent} from './tatynanny/tatynanny.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: HomePage,\n },\n { path: 'tatynanny', component: TatynannyComponent},\n { path: 'faq', component: FaqComponent},\n // children: [\n // {path: 'tatynanny', component: TatynannyComponent},\n // {path: 'periscolaire', component: PeriscolaireComponent},\n // {path: 'occasionnel', component: OccasionnelComponent},\n // {path: 'ludique', component: LudiqueComponent},\n // {path: 'soutienscolaire', component: SoutienComponent},\n // {path: 'prestations', component: PrestationsComponent},\n // {path: 'recrutement', component: RecrutementComponent},\n // {path: 'accompagnement', component: AccompagnementComponent},\n // {path: 'tarifs', component: TarifsComponent},\n // {path: 'histoire', component: HistoireComponent},\n // {path: 'valeur', component: ValeursComponent},\n // {path: 'faq', component: FaqComponent},\n // {path: 'partenaires', component: PartenairesComponent},\n // {path: 'contact', component: ContactComponent},\n // {path: 'legacy', component: LegacyComponent},\n // {path: 'register', component: RegisterComponent},\n // {path: 'terms', component: TermsComponent},\n // {path: 'starter', component: StarterComponent},\n // {path: 'demande-de-devis', component: AskProposalComponent},\n // ]\n // },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class HomePageRoutingModule {}\n","\nimport {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Preferences} from '@capacitor/preferences';\nimport {IonContent, IonPopover, IonicSlides, ModalController, Platform} from '@ionic/angular';\nimport {SecurityService} from '@tatynanny/api';\nimport * as moment from 'moment';\nimport {Subscription} from 'rxjs';\nimport SwiperCore, {\n Autoplay,\n EffectFade,\n Keyboard,\n Pagination,\n Scrollbar,\n SwiperOptions,\n Zoom,\n} from 'swiper';\nimport {NewsletterComponent} from '../components/newsletter/newsletter.component';\nimport {AlertService} from '../services/alert/alert.service';\nimport {EnvService} from '../services/environment/env.service';\nimport {KeycloakIonicService} from '../services/keycloak/keycloak-ionic.service';\nimport {SharedService} from '../services/shared/shared.service';\nimport {MatMenuTrigger} from '@angular/material/menu';\n\nSwiperCore.use([Autoplay, Keyboard, Pagination, Scrollbar, Zoom]);\nSwiperCore.use([EffectFade, IonicSlides]);\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.page.html',\n styleUrls: ['./home.page.scss'],\n})\nexport class HomePage implements OnInit {\n\n\n constructor(\n private keycloakService: KeycloakIonicService,\n private securityService: SecurityService,\n private alertService: AlertService,\n private envService: EnvService,\n private platform: Platform,\n private router: Router,\n ) {\n }\n\n\n ngOnInit() {\n this.refresh();\n }\n\n refresh(): void {\n if(!this.router.url.includes('demande-de-devis')) {\n this.router.navigateByUrl('/home/tatynanny');\n }\n }\n\n scroll(el: any) {\n console.log(el);\n if(this.router.url != '/home/tatynanny') {\n this.router.navigateByUrl('/home/tatynanny');\n }\n\n if (el == 'agency') {\n console.log(document.getElementById('agency'));\n document.getElementById('agency').scrollIntoView({\n behavior: 'smooth',\n });\n } else if (el == 'history') {\n console.log(document.getElementById('history'));\n document.getElementById('history').scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n } else if (el == 'service') {\n document.getElementById('service').scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'nearest',\n });\n }\n }\n\n redirectToNanny(): void {\n window.location.href = `${this.envService.frontBabysitterUrl}`;\n }\n\n login(): void {\n this.keycloakService.login();\n }\n\n navigateHome(): void {\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n });\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {Preferences} from '@capacitor/preferences';\nimport {IonContent, IonPopover, Platform, ModalController} from '@ionic/angular';\nimport {SecurityService} from '@tatynanny/api';\nimport * as moment from 'moment';\nimport {Subscription} from 'rxjs';\nimport {NewsletterComponent} from 'src/app/components/newsletter/newsletter.component';\nimport {AlertService} from 'src/app/services/alert/alert.service';\nimport {EnvService} from 'src/app/services/environment/env.service';\nimport {KeycloakIonicService} from 'src/app/services/keycloak/keycloak-ionic.service';\nimport {SharedService} from 'src/app/services/shared/shared.service';\nimport {SwiperOptions} from 'swiper';\n\n@Component({\n selector: 'app-tatynanny',\n templateUrl: './tatynanny.component.html',\n styleUrls: ['./tatynanny.component.scss'],\n})\nexport class TatynannyComponent implements OnInit {\n\n pageName: string = '';\n selectedPrestation: 'periscolaire' | 'occasionnelle' | 'ludique' | 'tutorat' = 'periscolaire';\n imagePrestation: string = './assets/images/static/periscolaire.jpg';\n textPrestation: string = `Nos nannies de talents veillent avec douceur et bienveillance sur vos enfants dès\n la sortie de l'école : parc, goûter, devoirs, jeux, bain et dîner.\n C'est avec un professionnalisme sans faille qu'elles\n s'occupent de tout en attendant votre retour à la maison.`;\n mobilePlatform: boolean = false;\n @ViewChild('content') content: IonContent;\n row: any;\n rect: any;\n triggerAnimation: boolean = false;\n innerWidth: number = 0;\n config: SwiperOptions;\n provider: string = '';\n session: string = '';\n code: string = '';\n token: Subscription;\n connected: boolean = false;\n currentScroll: 'AGENCY' | 'HISTORY' | 'SERVICE' = 'AGENCY';\n\n @ViewChild('popover') popover: IonPopover;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private platform: Platform,\n private router: Router,\n private keycloakService: KeycloakIonicService,\n private envService: EnvService,\n private alertService: AlertService,\n private securityService: SecurityService,\n private modalCtrl: ModalController,\n private sharedService: SharedService,\n ) {\n this.config = {\n slidesPerView: 3,\n spaceBetween: 0,\n loop: false,\n };\n }\n\n ngOnInit() {\n\n this.innerWidth = window.innerWidth;\n if (this.platform.platforms().includes('desktop') || this.platform.platforms().includes('mobileweb')) {\n this.mobilePlatform = false;\n } else if(this.platform.platforms().includes('mobileweb') && !this.platform.platforms().includes('mobile')) {\n this.mobilePlatform = true;\n }\n let kc_idp_hint = this.activatedRoute.snapshot.queryParamMap.get('kc_idp_hint')\n if (this.activatedRoute.snapshot.queryParamMap.get('kc_idp_hint')) {\n this.keycloakService.socialLogin({\n redirectUri: `${this.envService.keycloak.redirectUri}/register-social?kc_idp_hint=${kc_idp_hint}`,\n })\n }\n this.checkNewsletter();\n }\n\n\n checkNewsletter(): void {\n Preferences.get({key: 'newsletter'}).then(e => {\n console.log('Preferences', e.value);\n let element = e.value;\n let json = JSON.parse(element);\n if (json == null) {\n this.openModalNews();\n } else if (json == true) {\n console.log('already subscribed to newsletter');\n } else if (typeof (json) == 'object') {\n let current = moment();\n let compare = moment(element.date).add(1, 'month');\n if (current.isAfter(compare)) {\n console.log('remove newsletter');\n Preferences.remove({\n key: 'newsletter',\n }).then(() => {\n this.openModalNews();\n })\n }\n }\n })\n }\n\n ngAfterViewInit() {\n this.row = document.querySelector('#row');\n }\n\n navigateToProfil(): void {\n if (this.keycloakService.getKeycloakInstance().authenticated) {\n this.router.navigateByUrl('/mon-espace/profil');\n } else {\n this.router.navigateByUrl('/home/demande-de-devis');\n }\n }\n\n navigateHome(): void {\n this.router.navigateByUrl('/home/tatynanny', {\n replaceUrl: true,\n });\n }\n\n selectPrestation(form) {\n this.selectedPrestation = form;\n }\n\n segmentChanged(ev) {\n console.log(ev);\n this.selectedPrestation = ev.detail.value;\n\n if (this.selectedPrestation == 'periscolaire') {\n this.imagePrestation = './assets/images/static/periscolaire.jpg';\n this.textPrestation = `\n Nos nannies de talents veillent avec douceur et bienveillance sur vos enfants dès la sortie de l'école : parc, goûter, devoirs, jeux, bain et dîner. C'est avec un professionnalisme sans faille qu'elles s'occupent de tout en attendant votre retour à la maison.`;\n } else if (this.selectedPrestation == 'occasionnelle') {\n this.imagePrestation = './assets/images/static/occasionnel.jpg';\n this.textPrestation = `Un imprévu, une envie de sortie de dernière minute. Faites appel à nos Nannies, disponibles en temps réel. TatyNanny, 1ère agence avec des profils sélectionnés, validés sur un entretien. Nos prestations sont déclarées, assurées et éligible au crédit d'impôt (-50%).`;\n } else if (this.selectedPrestation == 'ludique') {\n this.imagePrestation = './assets/images/static/ludique.jpg';\n this.textPrestation = `Donner vie à la créativité, stimuler la curiosité de vos enfants est un des piliers de TatyNanny. Des gardes créatives et ludiques sont proposées tout au long de l'année afin de faire découvrir à vos enfants des activités stimulantes.`;\n } else {\n this.imagePrestation = './assets/images/static/school.jpg';\n this.textPrestation = `Des cours particuliers personnalisés et adaptés au niveau scolaire de votre enfant sont dispensés par nos Nannies étudiants (e) issus(e) des meilleures écoles ou par nos nannies professeurs. Un programme de coaching individualisé est également mis en place pour être au plus proche de votre enfant et de révéler ainsi son meilleur potentiel. Que se soit pour l'année scolaire ou occasionnellement, pour une matière ou plusieurs. Vous pouvez compter sur le professionnalisme de nos Nannies.`;\n }\n }\n\n\n async openModalNews() {\n const modal = await this.modalCtrl.create({\n component: NewsletterComponent,\n backdropDismiss: false,\n showBackdrop: true,\n cssClass: 'newsletter',\n })\n modal.present();\n modal.onDidDismiss().then(data => {\n console.log(data);\n if (data.data != null) {\n let object = {\n value: 'true',\n date: moment(),\n }\n Preferences.set({\n key: 'newsletter',\n value: data.data ? 'true' : JSON.stringify(object),\n }).then(() => {\n console.log('Newsletter key set')\n }, (error) => {\n console.log('Newsletter key not set', error);\n })\n if (data.data) {\n this.alertService.success('Souscription validée !');\n }\n }\n })\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { LoadingController } from '@ionic/angular';\nimport { Subject } from 'rxjs';\nimport { concatMap, distinctUntilChanged } from 'rxjs/operators';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoaderProvider {\n\n private loadingRequestsStream$: Subject;\n private loaderElement: HTMLIonLoadingElement;\n private lazyDismissTimer: any;\n\n constructor(private loadingCtrl: LoadingController) {\n this.initValues();\n };\n\n private initValues() {\n this.loaderElement = null;\n this.lazyDismissTimer = null;\n this.loadingRequestsStream$ = new Subject();\n this.loadingRequestsStream$.pipe(\n distinctUntilChanged(),\n concatMap(loader =>{\n if (loader) {\n return this.createLoader(loader)\n } else {\n return this.dismissLoader()\n };\n })\n )\n .subscribe(); // we do not worry of unsubscribing here since this service will always be used across the app\n };\n\n public showLoader(msg?: string) {\n this.loadingRequestsStream$.next(msg);\n };\n\n public hideLoader() {\n this.loadingRequestsStream$.next(null);\n };\n\n private async createLoader(msg?: any):Promise {\n // we check if there is a loader already instantiated:\n if (!this.loaderElement) {\n // if not we create new loader and limit its max duration to 2000ms to prevent blocking loader to hangout indefinitely\n\n this.loaderElement = await this.loadingCtrl.create({\n cssClass: \"load-alert\",\n message: msg || \"Chargement ...\",\n spinner: \"crescent\",\n // duration: 3000\n });\n // its essential we return a Promise here as this is what concatMap will leverage for serialization\n return this.loaderElement.present();\n } else {\n // if loader element exists already we just return resolved promise:\n return Promise.resolve();\n };\n };\n\n private async dismissLoader(): Promise {\n // here we check if loader element exists and that there is no timer running already\n if (this.loaderElement && !this.lazyDismissTimer) {\n // we set the timer\n this.lazyDismissTimer = setTimeout(async () => {\n // after 700ms we dismiss our loader element:\n await this.loaderElement.dismiss();\n // nullify our properties right after dismiss promise fulfilled itself:\n this.loaderElement = null;\n clearTimeout(this.lazyDismissTimer);\n this.lazyDismissTimer = null;\n // still remember to return a promise to let concatMap know it can proceed\n return Promise.resolve();\n }, 700)\n } else {\n // if loader element does not exist or if there is already a timer running - there is nothing to dismiss, we just return empty promise\n return Promise.resolve();\n };\n };\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'billStatus'\n})\nexport class BillStatusPipe implements PipeTransform {\n\n transform(value: string): string {\n if(value == 'NEW') {\n value = \"Nouveau\";\n } else if(value == 'SENT') {\n value = \"En cours\";\n } else if(value == 'NOT_PAYED') {\n value = \"Non payée\";\n } else if(value == 'PAYED') {\n value = 'Payée';\n } else if(value == 'WAITING') {\n value = \"En attente\";\n } else if(value == 'SUSPENDED') {\n value = 'Suspendu';\n }\n return value;\n }\n\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'civilite'\n})\nexport class CivilitePipe implements PipeTransform {\n\n transform(value: any) : string {\n if(value == 1) {\n value = 'M.';\n } else if(value == 2) {\n value = 'Mme.'\n } else if(value == 3) {\n value = 'Mme.'\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'contractStatus'\n})\nexport class ContractStatusPipe implements PipeTransform {\n\n transform(value: string): string {\n if(value == 'NEW') {\n value = \"Nouveau\";\n } else if(value == 'PENDING') {\n value = \"En attente\";\n } else if(value == 'SENT') {\n value = \"En cours\";\n } else if(value == 'ACTIVE') {\n value = 'Validé';\n } else if(value == 'EXPIRED') {\n value = \"Expiré\";\n } else if(value == 'SUSPENDED') {\n value = 'Suspendu';\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({\n name: 'datePipe'\n})\nexport class DatePipePipe implements PipeTransform {\n\n transform(value: any): any {\n try {\n let date = moment(value.date).format('W');\n return date;\n } catch {\n return null;\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'dayOfWeek'\n})\nexport class DayOfWeekPipe implements PipeTransform {\n\n\n transform(value: any): any {\n if(value == 1) {\n value = 'Lundi';\n } else if (value == 2) {\n value = 'Mardi';\n } else if (value == 3) {\n value = 'Mercredi';\n } else if (value == 4) {\n value = 'Jeudi';\n } else if (value == 5) {\n value = 'Vendredi';\n } else if (value == 6) {\n value = 'Samedi';\n } else {\n value = 'Dimanche';\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'frequency'\n})\nexport class FrequencyPipe implements PipeTransform {\n\n transform(value: string): string {\n if(value == 'WEEKLY') {\n value = \"Par semaine\"\n } else if(value == 'EVERY_TWO_WEEKS') {\n value = \"Une semaine sur deux\";\n } else if(value == \"ONE_WEEK_PER_MONTH\") {\n value = \"Une semaine par mois\"\n }\n\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'hour'\n})\nexport class HourPipe implements PipeTransform {\n\n transform(value: any): any {\n let minutes = parseFloat((value % 1).toFixed(2));\n let hours = value - minutes;\n minutes = parseFloat((minutes * 60).toFixed(0));\n value = hours.toString() + 'H' + minutes.toString() + 'm';\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {MinAgeInterval} from '@tatynanny/api';\n\n@Pipe({\n name: 'minAgeInterval'\n})\nexport class MinAgeIntervalPipe implements PipeTransform {\n\n transform(value: any): string {\n if(value == MinAgeInterval.Less1) {\n value = \"moins de 1 an\";\n } else if(value == MinAgeInterval.Between1To2) {\n value = \"1 à 2 ans\";\n } else if(value == MinAgeInterval.Between3To5) {\n value = \"3 à 5 ans\";\n } else if(value == MinAgeInterval.More6) {\n value = \"plus de 6 ans\";\n } \n\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'month'\n})\nexport class MonthPipe implements PipeTransform {\n\n transform(value: any): string {\n if(value == 1) {\n value = 'JANVIER'\n } else if (value == 2) {\n value = 'FEVRIER'\n } else if (value == 3) {\n value = 'MARS'\n } else if (value == 4) {\n value = 'AVRIL'\n } else if (value == 5) {\n value = 'MAI'\n } else if (value == 6) {\n value = 'JUIN'\n } else if (value == 7) {\n value = 'JUILLET'\n } else if (value == 8) {\n value = 'AOÛT'\n } else if (value == 9) {\n value = 'SEPTEMBRE'\n } else if (value == 10) {\n value = 'OCTOBRE'\n } else if (value == 11) {\n value = 'NOVEMBRE'\n } else if (value == 12) {\n value = 'DECEMBRE'\n }\n\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ProductType } from '@tatynanny/api';\n\n@Pipe({\n name: 'productTypePipe'\n})\nexport class ProductTypePipePipe implements PipeTransform {\n\n transform(value: ProductType | String): any {\n if(value == 'EXTRACURRICULAR') {\n value = 'Garde périscolaire';\n } else if(value == 'BABYSITTING') {\n value = 'Garde occasionnelle';\n } else if(value == 'EDUCATIONAL_SUPPORT') {\n value = 'Soutien scolaire';\n } else if(value == 'MAID') {\n value = 'Soin du domicile';\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'proposalStatus'\n})\nexport class ProposalStatusPipe implements PipeTransform {\n\n transform(value: string): string {\n if(value == 'NEW') {\n value = \"Nouveau\";\n } else if(value == 'PENDING') {\n value = \"En attente\";\n } else if(value == 'SENT') {\n value = \"En cours\";\n } else if(value == 'ACTIVE') {\n value = 'Validé';\n } else if(value == 'SUSPENDED') {\n value = 'Suspendu';\n }\n return value;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'timeScheduleStatus'\n})\nexport class TimeScheduleStatusPipe implements PipeTransform {\n\n transform(value: string): string {\n if(value == 'NEW') {\n value = \"Nouveau\";\n } else if(value == 'SENT') {\n value = \"En cours\";\n } else if(value == 'PENDING') {\n value = \"En cours\";\n } else if(value == 'ACTIVE') {\n value = 'Validé';\n } else if(value == 'BILLED') {\n value = 'Validé';\n } else if(value == 'ARCHIVED') {\n value = 'Archivé';\n } else if(value == 'DELETED') {\n value = 'Supprimé';\n } else if(value == 'SUSPENDED') {\n value = 'Suspendu';\n }\n return value;\n }\n\n}\n","import {Injectable} from '@angular/core';\nimport {LoaderProvider} from 'src/app/loader-provider/loader.provider';\nimport Swal from 'sweetalert2'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AlertService {\n\n loader: any;\n\n constructor(\n public loaderProvider: LoaderProvider,\n ) { }\n\n success(message: string): void {\n Swal.fire({\n icon: 'success',\n title: message,\n heightAuto: false,\n timer: 2000,\n confirmButtonColor: 'var(--ion-color-tn-blue)',\n });\n }\n\n error(error: string): void {\n Swal.fire({\n icon: 'error',\n heightAuto: false,\n title: 'Erreur',\n html: error,\n confirmButtonColor: 'var(--ion-color-danger)',\n });\n }\n\n temp(message: string, time?: number, cssClass?: string): void {\n Swal.fire({\n icon: 'info',\n title: 'Information',\n html: message,\n timer: time || 3000,\n timerProgressBar: true,\n heightAuto: false,\n customClass: cssClass,\n });\n }\n\n tempAction(message: string, time?: number, action?: () => any, cssClass?: string): void {\n Swal.fire({\n position: 'top-end',\n html: message,\n timer: time || 3000,\n timerProgressBar: true,\n heightAuto: false,\n customClass: cssClass,\n icon: 'info',\n showConfirmButton: true,\n showCloseButton: false,\n showDenyButton: false,\n showLoaderOnConfirm: true,\n confirmButtonColor: 'var(--ion-color-tn-blue)',\n }).then(result => {\n if (result.isConfirmed) {\n action();\n }\n })\n }\n\n confirm(message: string, btnName?: string, action?: () => any) {\n Swal.fire({\n title: 'Information',\n html: message,\n heightAuto: false,\n icon: 'success',\n showConfirmButton: true,\n showCancelButton: false,\n showDenyButton: false,\n confirmButtonText: btnName || 'OK',\n confirmButtonColor: 'var(--ion-color-tn-blue)',\n }).then(result => {\n if (result.isConfirmed) {\n action().then(() => {\n this.closeLoader();\n Swal.fire(\n 'Confimer',\n 'Les modifications ont été sauvegardées',\n 'success'\n );\n })\n }\n });\n }\n\n\n async loading(): Promise {\n var pp = new Promise((res, rej) => {\n this.loaderProvider.showLoader();\n res();\n });\n return pp;\n }\n\n async closeLoader() {\n this.loaderProvider.hideLoader();\n }\n\n\n ask(title: string, message: string, btnName?: string, action?: () => void, btnCancelName?: string, actionCancel?: () => void) {\n Swal.fire({\n heightAuto: false,\n icon: 'question',\n title: title,\n html: message,\n showLoaderOnConfirm: true,\n showConfirmButton: true,\n showDenyButton: true,\n showCancelButton: false,\n confirmButtonText: btnName || 'OK',\n confirmButtonColor: 'var(--ion-color-tn-blue)',\n denyButtonText: btnCancelName || 'Annuler',\n denyButtonColor: 'var(--ion-color-danger)',\n // cancelButtonText: btnCancelName || 'Annuler',\n // cancelButtonColor: 'var(--ion-color-tn-orange)',\n // showCancelButton: false,\n }).then(res => {\n if (res.isConfirmed) {\n action();\n } else if (res.isDenied) {\n actionCancel();\n }\n })\n }\n\n\n\n}\n","import { EnvService } from './env.service';\n\nexport const EnvServiceFactory = () => {\n console.log('init env service factory!!')\n // Create env\n const env = new EnvService();\n\n // Read environment variables from browser window\n const browserWindow = window || {};\n const browserWindowEnv = browserWindow['__env'] || {};\n\n // Assign environment variables from browser window to env\n // In the current implementation, properties from env.js overwrite defaults from the EnvService.\n // If needed, a deep merge can be performed here to merge properties instead of overwriting them.\n for (const key in browserWindowEnv) {\n if (browserWindowEnv.hasOwnProperty(key)) {\n env[key] = window['__env'][key];\n }\n }\n\n console.log('env ', env);\n return env;\n};\n\nexport const EnvServiceProvider = {\n provide: EnvService,\n useFactory: EnvServiceFactory,\n deps: [],\n};\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EnvService {\n // public apiUrl = 'https://api-back.testing.tatynanny.com';\n // public apiUrl = \"https://api.tatynanny.com\"\n // public apiUrl = \"https://api-features-ci-fabien.testing.tatynanny.com\";\n public apiUrl = \"http://localhost:9191\";\n public frontBabysitterUrl = \"https://www.tatynannyjobs.com\";\n public frontClientUrl = \"https://www.tatynanny.com\";\n public frontTest = \"https://features-build-client.testing.tatynanny.com\";\n //public apiUrl =\" https://api-features-ci-fabien.testing.tatynanny.com\";\n public ionicDeployChannel = '';\n public keycloak = {\n // url: 'https://sso-testing.testing.tatynanny.com/',\n // url: 'https://sso.preprod.tatynanny.com/auth',\n url: 'http://localhost:8180',\n //url :'https://sso-testing.testing.tatynanny.com/',\n realm: 'tatynanny',\n // realm: 'tatynanny',\n clientId: 'front',\n // redirectUri: 'https://features-build-client.testing.tatynanny.com',\n // redirectUriBrowser: 'https://features-build-client.testing.tatynanny.com'\n redirectUri: 'http://localhost:8100',\n redirectUriBrowser: 'http://localhost:8100'\n };\n\n public enableDebug = true;\n public production = false\n\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\nimport {AlertService} from '../alert/alert.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorService {\n\n constructor(\n private alertService: AlertService,\n ) { }\n\n showError(fieldErrors: any) {\n if(fieldErrors) {\n let message = \"\";\n fieldErrors.forEach(error => {\n message = message + error.message + '
';\n });\n message = `` + message + `
`;\n this.alertService.error(message);\n }\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { KeycloakIonicService } from '../keycloak/keycloak-ionic.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService {\n\n constructor(\n private keycloakService: KeycloakIonicService\n ) { }\n\n canActivate(): Promise {\n return new Promise((resolve, reject) => {\n this.keycloakService.isLoggedIn().then(connected => {\n if(connected) {\n this.keycloakService.getToken().then(token => {\n if(token != null) {\n resolve(true);\n }\n })\n } else {\n resolve(false);\n }\n })\n })\n }\n}\n","export enum KeycloakEventType {\n /**\n * Called if there was an error during authentication.\n */\n OnAuthError,\n /**\n * Called if the user is logged out\n * (will only be called if the session status iframe is enabled, or in Cordova mode).\n */\n OnAuthLogout,\n /**\n * Called if there was an error while trying to refresh the token.\n */\n OnAuthRefreshError,\n /**\n * Called when the token is refreshed.\n */\n OnAuthRefreshSuccess,\n /**\n * Called when a user is successfully authenticated.\n */\n OnAuthSuccess,\n /**\n * Called when the adapter is initialized.\n */\n OnReady,\n /**\n * Called when the access token is expired. If a refresh token is available the token\n * can be refreshed with updateToken, or in cases where it is not (that is, with implicit flow)\n * you can redirect to login screen to obtain a new access token.\n */\n OnTokenExpired\n}\n\n/**\n * Structure of an event triggered by Keycloak, contains it's type\n * and arguments (if any).\n */\nexport interface KeycloakEvent {\n /**\n * Event type as described at {@link KeycloakEventType}.\n */\n type: KeycloakEventType;\n /**\n * Arguments from the keycloak-js event function.\n */\n args?: any;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\nimport {from, Subject} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport * as Keycloak_ from 'keycloak-ionic';\nimport {\n ExcludedUrl,\n ExcludedUrlRegex,\n KeycloakOptions,\n} from './interfaces/keycloak-options';\nimport {KeycloakEvent, KeycloakEventType} from './interfaces/keycloak-event';\nimport {Preferences} from '@capacitor/preferences';\nimport {Platform} from '@ionic/angular';\nimport {EnvService} from '../environment/env.service';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {SharedService} from '../shared/shared.service';\nimport {KeycloakSocialLoginService} from './keycloak-social-login.service';\nimport {SecurityService} from '@tatynanny/api';\nimport {AlertService} from '../alert/alert.service';\n\nexport const Keycloak = Keycloak_;\ndeclare const gtag: Function;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeycloakIonicService {\n\n constructor(\n private platform: Platform,\n private envService: EnvService,\n private sharedService: SharedService,\n private router: Router,\n private route: ActivatedRoute,\n private http: HttpClient,\n private keycloakSocialLoginService: KeycloakSocialLoginService,\n private securityService: SecurityService,\n private alertService: AlertService,\n ) {\n }\n\n /**\n * Keycloak-js instance.\n */\n private _instance: Keycloak.KeycloakInstance;\n /**\n * User profile as KeycloakProfile interface.\n */\n private _userProfile: Keycloak.KeycloakProfile;\n /**\n * Flag to indicate if the bearer will not be added to the authorization header.\n */\n private _enableBearerInterceptor: boolean;\n /**\n * When the implicit flow is choosen there must exist a silentRefresh, as there is\n * no refresh token.\n */\n private _silentRefresh: boolean;\n /**\n * Indicates that the user profile should be loaded at the keycloak initialization,\n * just after the login.\n */\n private _loadUserProfileAtStartUp: boolean;\n /**\n * The bearer prefix that will be appended to the Authorization Header.\n */\n private _bearerPrefix: string;\n /**\n * Value that will be used as the Authorization Http Header name.\n */\n private _authorizationHeaderName: string;\n /**\n * The excluded urls patterns that must skip the KeycloakBearerInterceptor.\n */\n private _excludedUrls: ExcludedUrlRegex[];\n /**\n * Observer for the keycloak events\n */\n private _keycloakEvents$: Subject =\n new Subject();\n\n /**\n * Binds the keycloak-js events to the keycloakEvents Subject\n * which is a good way to monitor for changes, if needed.\n *\n * The keycloakEvents returns the keycloak-js event type and any\n * argument if the source function provides any.\n */\n private bindsKeycloakEvents(): void {\n this._instance.onAuthError = (errorData) => {\n this._keycloakEvents$.next({\n args: errorData,\n type: KeycloakEventType.OnAuthError,\n });\n };\n\n this._instance.onAuthLogout = () => {\n this.sharedService.sendRefreshMenu();\n\n // this.router.navigateByUrl('/home/tatynanny', {\n // replaceUrl: true,\n // });\n this._keycloakEvents$.next({type: KeycloakEventType.OnAuthLogout});\n };\n\n this._instance.onAuthRefreshSuccess = () => {\n\n this._keycloakEvents$.next({\n type: KeycloakEventType.OnAuthRefreshSuccess,\n });\n };\n\n this._instance.onAuthRefreshError = () => {\n\n this._keycloakEvents$.next({\n type: KeycloakEventType.OnAuthRefreshError,\n });\n };\n\n this._instance.onAuthSuccess = async () => {\n this.sharedService.sendRefreshMenu();\n this._instance.token = await this.getToken();\n // let provider = this.route.snapshot.queryParamMap.get('kc_idp_hint');\n // if (provider == null) {\n // if (this.platform.platforms().includes('mobile') && !this.platform.platforms().includes('mobileweb')) {\n // this.router.navigateByUrl('/app-board')\n // } else {\n // this.router.navigateByUrl('/mon-espace/tableau-de-bord', {\n // replaceUrl: true,\n // });\n // }\n // }\n\n this._keycloakEvents$.next({type: KeycloakEventType.OnAuthSuccess});\n };\n\n this._instance.onTokenExpired = () => {\n\n this._keycloakEvents$.next({\n type: KeycloakEventType.OnTokenExpired,\n });\n };\n\n this._instance.onReady = (authenticated) => {\n this._keycloakEvents$.next({\n args: authenticated,\n type: KeycloakEventType.OnReady,\n });\n if (authenticated) {\n this.securityService.apiV1SecurityLoadGet().subscribe(security => {\n if (security.result.userType == 'BABYSITTER') {\n this.alertService.ask('Compte existant', `Votre compte est déjà enregistrer en tant que babysitter. Voulez-vous être rediriger vers www.tatynannyjobs.com ?`, 'Oui, rediriger', () => {\n window.location.href = `${this.envService.frontBabysitterUrl}`;\n }, 'Se déconnecter', () => {\n this.logout();\n })\n } else {\n if (this.platform.platforms().includes('mobile') && !this.platform.platforms().includes('mobileweb')) {\n this.router.navigateByUrl('/app-board', {\n replaceUrl: true,\n })\n } else {\n this.router.navigateByUrl('/mon-espace/tableau-de-bord', {\n replaceUrl: true,\n });\n }\n }\n })\n } else {\n if (this.platform.platforms().includes('mobile') && !this.platform.platforms().includes('mobileweb')) {\n this.router.navigateByUrl('/home/starter', {\n replaceUrl: true\n })\n } else {\n if (!this.router.url.includes('demande-de-devis')) {\n this.router.navigateByUrl('/home/tatynanny');\n }\n }\n }\n\n };\n }\n\n /**\n * Loads all bearerExcludedUrl content in a uniform type: ExcludedUrl,\n * so it becomes easier to handle.\n *\n * @param bearerExcludedUrls array of strings or ExcludedUrl that includes\n * the url and HttpMethod.\n */\n private loadExcludedUrls(\n bearerExcludedUrls: (string | ExcludedUrl)[]\n ): ExcludedUrlRegex[] {\n const excludedUrls: ExcludedUrlRegex[] = [];\n for (const item of bearerExcludedUrls) {\n let excludedUrl: ExcludedUrlRegex;\n if (typeof item === 'string') {\n excludedUrl = {urlPattern: new RegExp(item, 'i'), httpMethods: []};\n } else {\n excludedUrl = {\n urlPattern: new RegExp(item.url, 'i'),\n httpMethods: item.httpMethods,\n };\n }\n excludedUrls.push(excludedUrl);\n }\n return excludedUrls;\n }\n\n /**\n * Handles the class values initialization.\n *\n * @param options\n */\n private initServiceValues({\n enableBearerInterceptor = true,\n loadUserProfileAtStartUp = false,\n bearerExcludedUrls = [],\n authorizationHeaderName = 'Authorization',\n bearerPrefix = 'Bearer',\n initOptions,\n }: KeycloakOptions): void {\n this._enableBearerInterceptor = enableBearerInterceptor;\n this._loadUserProfileAtStartUp = loadUserProfileAtStartUp;\n this._authorizationHeaderName = authorizationHeaderName;\n this._bearerPrefix = bearerPrefix.trim().concat(' ');\n this._excludedUrls = this.loadExcludedUrls(bearerExcludedUrls);\n this._silentRefresh = initOptions ? initOptions.flow === 'implicit' : false;\n }\n\n /**\n * Keycloak initialization. It should be called to initialize the adapter.\n * Options is a object with 2 main parameters: config and initOptions. The first one\n * will be used to create the Keycloak instance. The second one are options to initialize the\n * keycloak instance.\n *\n * @param options\n * Config: may be a string representing the keycloak URI or an object with the\n * following content:\n * - url: Keycloak json URL\n * - realm: realm name\n * - clientId: client id\n *\n * initOptions:\n * Options to initialize the Keycloak adapter, matches the options as provided by Keycloak itself.\n *\n * enableBearerInterceptor:\n * Flag to indicate if the bearer will added to the authorization header.\n *\n * loadUserProfileInStartUp:\n * Indicates that the user profile should be loaded at the keycloak initialization,\n * just after the login.\n *\n * bearerExcludedUrls:\n * String Array to exclude the urls that should not have the Authorization Header automatically\n * added.\n *\n * authorizationHeaderName:\n * This value will be used as the Authorization Http Header name.\n *\n * bearerPrefix:\n * This value will be included in the Authorization Http Header param.\n *\n * @returns\n * A Promise with a boolean indicating if the initialization was successful.\n */\n public async init(options: KeycloakOptions = {}) {\n console.log('FUNCTION INIT', options);\n this.initServiceValues(options);\n const {config, initOptions} = options;\n\n this._instance = Keycloak(config);\n this.bindsKeycloakEvents();\n // this.loadUserProfile();\n this.setLoginSubscriptions('login');\n\n const authenticated = await this._instance.init(initOptions);\n console.log('authenticated', authenticated);\n\n if (authenticated && this._loadUserProfileAtStartUp) {\n await this.loadUserProfile();\n }\n\n return authenticated;\n }\n\n public setLoginSubscriptions(source: string): void {\n console.log('[keycloak] subscribing on ' + source);\n const sub = this._keycloakEvents$.subscribe((val) => {\n console.log('[keycloak event]: ', val);\n\n if (val.type == KeycloakEventType.OnAuthSuccess) {\n console.log('[keycloak success]', this._instance.token);\n console.log('[keycloak refresh success]', this._instance.refreshToken);\n\n if (this._instance.token) {\n this.sharedService.sendToken(this._instance.token);\n }\n try {\n\n let kcTokens = {\n accessToken: this._instance.token,\n refreshToken: this._instance.refreshToken,\n idToken: this._instance.idToken\n }\n\n\n Preferences.set({key: 'kcTokens', value: JSON.stringify(kcTokens)}).then(\n () => console.log('[keycloak success] KC TOKENS Stored!'),\n (error) =>\n console.error('[keycloak success] Error storing item', error)\n );\n\n\n let provider = this.route.snapshot.queryParamMap.get('kc_idp_hint');\n if (provider != null) {\n this.keycloakSocialLoginService.socialProviderInfo(provider, this._instance).then((res: any) => {\n this.keycloakSocialLoginService.sendUser(res);\n })\n }\n } catch (e) {\n console.log('[keycloak success] error while seting token', e);\n }\n }\n if (val.type == KeycloakEventType.OnAuthError) {\n console.log('[keycloak auth error]');\n try {\n Preferences.remove({key: 'kcTokens'}).then(\n (va) => {\n console.log('[keycloak auth error]. removed tokens from Preferences');\n },\n (err) => {\n console.log(\n '[keycloak auth error]. failed to remove token from Preferences'\n );\n }\n );\n } catch (e) {\n console.log('[keycloak auth error] error while removing tokens');\n }\n }\n if (val.type == KeycloakEventType.OnAuthLogout) {\n console.log('[keycloak logout]. removing token from Preferences');\n try {\n Preferences.remove({key: 'kcTokens'}).then(\n () => {\n console.log('[keycloak logout]. removed tokens from Preferences');\n },\n (err) => {\n console.log(\n '[keycloak logout]. failed to remove tokens from Preferences'\n );\n }\n );\n } catch (e) {\n console.log('error while removing tokens');\n }\n }\n });\n }\n\n public async socialLogin(options: Keycloak.KeycloakLoginOptions = {}) {\n const login = await this._instance.login(options);\n const profile = await this.loadUserProfile();\n console.log({profile});\n return profile;\n }\n\n\n /**\n * Redirects to login form on (options is an optional object with redirectUri and/or\n * prompt fields).\n *\n * @param options\n * Object, where:\n * - redirectUri: Specifies the uri to redirect to after login.\n * - prompt:By default the login screen is displayed if the user is not logged-in to Keycloak.\n * To only authenticate to the application if the user is already logged-in and not display the\n * login page if the user is not logged-in, set this option to none. To always require\n * re-authentication and ignore SSO, set this option to login .\n * - maxAge: Used just if user is already authenticated. Specifies maximum time since the\n * authentication of user happened. If user is already authenticated for longer time than\n * maxAge, the SSO is ignored and he will need to re-authenticate again.\n * - loginHint: Used to pre-fill the username/email field on the login form.\n * - action: If value is 'register' then user is redirected to registration page, otherwise to\n * login page.\n * - locale: Specifies the desired locale for the UI.\n * @returns\n * A void Promise if the login is successful and after the user profile loading.\n */\n public async login(options: Keycloak.KeycloakLoginOptions = {}) {\n //this.alertService.showSpinner().subscribe(() => {\n\n this._instance.login(options).then(() => {\n if (this._loadUserProfileAtStartUp) {\n this.loadUserProfile();\n }\n // this.alertService.dismissALlPending();\n });\n //});\n }\n\n /**\n * Redirects to logout.\n *\n * @param redirectUri\n * Specifies the uri to redirect to after logout.\n * @returns\n * A void Promise if the logout was successful, cleaning also the userProfile.\n */\n public async logout(redirectUri?: string) {\n if (this.platform.platforms().includes('mobile')) {\n redirectUri = this.envService.keycloak.redirectUri;\n } else {\n redirectUri = this.envService.keycloak.redirectUriBrowser;\n }\n const options = {\n redirectUri,\n };\n this._userProfile = undefined;\n\n var url = this._instance.authServerUrl + '/realms/' + this._instance.realm + '/protocol/openid-connect/logout'\n + '?post_logout_redirect_uri=' + encodeURIComponent(redirectUri)\n + '&id_token_hint=' + encodeURIComponent(this._instance.idToken);\n console.log('logout url: ', url);\n window.location.href = url;\n\n return;\n }\n\n\n /**\n * Redirects to registration form. Shortcut for login with option\n * action = 'register'. Options are same as for the login method but 'action' is set to\n * 'register'.\n *\n * @param options\n * login options\n * @returns\n * A void Promise if the register flow was successful.\n */\n public async register(\n options: Keycloak.KeycloakLoginOptions = {action: 'register'}\n ) {\n await this._instance.register(options);\n }\n\n /**\n * Check if the user has access to the specified role. It will look for roles in\n * realm and clientId, but will not check if the user is logged in for better performance.\n *\n * @param role\n * role name\n * @param resource\n * resource name If not specified, `clientId` is used\n * @returns\n * A boolean meaning if the user has the specified Role.\n */\n isUserInRole(role: string, resource?: string): boolean {\n let hasRole: boolean;\n hasRole = this._instance.hasResourceRole(role, resource);\n if (!hasRole) {\n hasRole = this._instance.hasRealmRole(role);\n }\n return hasRole;\n }\n\n /**\n * Return the roles of the logged user. The allRoles parameter, with default value\n * true, will return the clientId and realm roles associated with the logged user. If set to false\n * it will only return the user roles associated with the clientId.\n *\n * @param allRoles\n * Flag to set if all roles should be returned.(Optional: default value is true)\n * @returns\n * Array of Roles associated with the logged user.\n */\n getUserRoles(allRoles: boolean = true): string[] {\n let roles: string[] = [];\n if (this._instance.resourceAccess) {\n for (const key in this._instance.resourceAccess) {\n if (this._instance.resourceAccess.hasOwnProperty(key)) {\n const resourceAccess: any = this._instance.resourceAccess[key];\n const clientRoles = resourceAccess['roles'] || [];\n roles = roles.concat(clientRoles);\n }\n }\n }\n if (allRoles && this._instance.realmAccess) {\n const realmRoles = this._instance.realmAccess['roles'] || [];\n roles.push(...realmRoles);\n }\n return roles;\n }\n\n /**\n * Check if user is logged in.\n *\n * @returns\n * A boolean that indicates if the user is logged in.\n */\n async isLoggedIn(): Promise {\n try {\n if (!this._instance.authenticated) {\n return false;\n }\n try {\n await this.updateToken(20);\n } catch (e) {\n console.log('[keycloak js] isLoggedIn error. update token error', e);\n }\n return true;\n } catch (error) {\n console.log('[keycloak js] isLoggedIn error', error);\n return false;\n }\n }\n\n /**\n * Returns true if the token has less than minValidity seconds left before\n * it expires.\n *\n * @param minValidity\n * Seconds left. (minValidity) is optional. Default value is 0.\n * @returns\n * Boolean indicating if the token is expired.\n */\n isTokenExpired(minValidity: number = 0): boolean {\n return this._instance.isTokenExpired(minValidity);\n }\n\n /**\n * If the token expires within minValidity seconds the token is refreshed. If the\n * session status iframe is enabled, the session status is also checked.\n * Returns a promise telling if the token was refreshed or not. If the session is not active\n * anymore, the promise is rejected.\n *\n * @param minValidity\n * Seconds left. (minValidity is optional, if not specified 5 is used)\n * @returns\n * Promise with a boolean indicating if the token was succesfully updated.\n */\n public async updateToken(minValidity = 5) {\n // TODO: this is a workaround until the silent refresh (issue #43)\n // is not implemented, avoiding the redirect loop.\n if (this._silentRefresh) {\n if (this.isTokenExpired()) {\n throw new Error(\n 'Failed to refresh the token, or the session is expired'\n );\n }\n\n return true;\n }\n\n if (!this._instance) {\n throw new Error('Keycloak Angular library is not initialized.');\n }\n\n return this._instance.updateToken(minValidity);\n }\n\n /**\n * Loads the user profile.\n * Returns promise to set functions to be invoked if the profile was loaded\n * successfully, or if the profile could not be loaded.\n *\n * @param forceReload\n * If true will force the loadUserProfile even if its already loaded.\n * @returns\n * A promise with the KeycloakProfile data loaded.\n */\n public async loadUserProfile(forceReload = false) {\n if (this._userProfile && !forceReload) {\n return this._userProfile;\n }\n\n if (!this._instance.authenticated) {\n throw new Error(\n 'The user profile was not loaded as the user is not logged in.'\n );\n }\n\n return (this._userProfile = await this._instance.loadUserProfile());\n }\n\n /**\n * Returns the authenticated token, calling updateToken to get a refreshed one if necessary.\n */\n public async getToken() {\n await this.updateToken(10);\n return this._instance.token;\n }\n\n /**\n * Returns the logged username.\n *\n * @returns\n * The logged username.\n */\n public getUsername() {\n if (!this._userProfile) {\n throw new Error('User not logged in or user profile was not loaded.');\n }\n\n return this._userProfile.username;\n }\n\n /**\n * Clear authentication state, including tokens. This can be useful if application\n * has detected the session was expired, for example if updating token fails.\n * Invoking this results in onAuthLogout callback listener being invoked.\n */\n clearToken(): void {\n this._instance.clearToken();\n }\n\n /**\n * Adds a valid token in header. The key & value format is:\n * Authorization Bearer .\n * If the headers param is undefined it will create the Angular headers object.\n *\n * @param headers\n * Updated header with Authorization and Keycloak token.\n * @returns\n * An observable with with the HTTP Authorization header and the current token.\n */\n public addTokenToHeader(headers: HttpHeaders = new HttpHeaders()) {\n return from(this.getToken()).pipe(\n map((token) =>\n token\n ? headers.set(\n this._authorizationHeaderName,\n this._bearerPrefix + token\n )\n : headers\n )\n );\n }\n\n /**\n * Returns the original Keycloak instance, if you need any customization that\n * this Angular service does not support yet. Use with caution.\n *\n * @returns\n * The KeycloakInstance from keycloak-js.\n */\n getKeycloakInstance(): Keycloak.KeycloakInstance {\n return this._instance;\n }\n\n /**\n * Returns the excluded URLs that should not be considered by\n * the http interceptor which automatically adds the authorization header in the Http Request.\n *\n * @returns\n * The excluded urls that must not be intercepted by the KeycloakBearerInterceptor.\n */\n get excludedUrls(): ExcludedUrlRegex[] {\n return this._excludedUrls;\n }\n\n /**\n * Flag to indicate if the bearer will be added to the authorization header.\n *\n * @returns\n * Returns if the bearer interceptor was set to be disabled.\n */\n get enableBearerInterceptor(): boolean {\n return this._enableBearerInterceptor;\n }\n\n /**\n * Keycloak subject to monitor the events triggered by keycloak-js.\n * The following events as available (as described at keycloak docs -\n * https://www.keycloak.org/docs/latest/securing_apps/index.html#callback-events):\n * - OnAuthError\n * - OnAuthLogout\n * - OnAuthRefreshError\n * - OnAuthRefreshSuccess\n * - OnAuthSuccess\n * - OnReady\n * - OnTokenExpire\n * In each occurrence of any of these, this subject will return the event type,\n * described at {@link KeycloakEventType} enum and the function args from the keycloak-js\n * if provided any.\n *\n * @returns\n * A subject with the {@link KeycloakEvent} which describes the event type and attaches the\n * function args.\n */\n get keycloakEvents$(): Subject {\n return this._keycloakEvents$;\n }\n\n initAuth(): Promise {\n console.log('INIT AUTH');\n var globalP = new Promise((gResolve, gReject) => {\n console.log('GLOBALP');\n var pp = new Promise((resolve, reject) => {\n console.log('PP');\n let finalToken: any = {\n accessToken: null,\n refreshToken: null,\n idToken: null,\n };\n try {\n\n } catch (e) {\n console.log('error while getting token. resolving to empty', e);\n resolve(finalToken);\n }\n console.log('finalToken', finalToken);\n });\n\n Preferences.get({key: 'kcTokens'}).then(\n (data) => {\n let finalToken: any = {\n accessToken: null,\n refreshToken: null,\n idToken: null,\n }\n try {\n finalToken = JSON.parse(data.value);\n } catch (e) {\n console.log('error while parsing tokens string from Preferences', e, data.value)\n }\n if (!finalToken) {\n finalToken = {\n accessToken: null,\n refreshToken: null,\n idToken: null,\n }\n }\n console.log('resolved tokens: ', finalToken);\n this.platform.ready().then(\n () => {\n if (\n this.platform.platforms().includes('desktop') ||\n this.platform.platforms().includes('mobileweb')\n ) {\n console.log(\n '[keycloak] init desktop mode',\n this.platform.platforms()\n );\n\n this.init({\n config: {\n url: this.envService.keycloak.url,\n realm: this.envService.keycloak.realm,\n clientId: this.envService.keycloak.clientId,\n },\n initOptions: {\n adapter: 'default',\n responseMode: 'query',\n redirectUri: this.envService.keycloak.redirectUriBrowser,\n enableLogging: true,\n token: finalToken.accessToken,\n refreshToken: finalToken.refreshToken,\n idToken: finalToken.idToken,\n onLoad: 'check-sso',\n silentCheckSsoRedirectUri: window.location.origin + '/assets/silent-check-sso.html',\n timeSkew: 0\n },\n });\n }\n // else if (this.platform.platforms().includes('mobile')) {\n // console.log('[keycloak] init mobile mode');\n // this.init({\n // config: {\n // url: this.envService.keycloak.url,\n // realm: this.envService.keycloak.realm,\n // clientId: this.envService.keycloak.clientId\n // },\n // initOptions: {\n // adapter: 'capacitor',\n // responseMode: 'query',\n // redirectUri: 'cdqapp://home?fromLogin=1',\n // enableLogging: true,\n // token: tokens.token,\n // refreshToken: tokens.refreshToken,\n // timeSkew: 3600\n // }\n // }\n // );\n // }\n console.log('init keycloak done. resolving');\n gResolve('');\n },\n (err) => {\n console.log('[keycloak init error] tokens not resolved', err);\n gResolve('');\n }\n );\n },\n (error) => {\n console.error('Error getting kcTokens', error);\n gResolve('');\n }\n );\n });\n return globalP;\n }\n\n loginWithHint(loginHint?: any, url?: any): void {\n if (\n this.platform.platforms().includes('desktop') ||\n this.platform.platforms().includes('mobileweb')\n )\n window.open(\n this._instance.createLoginUrl({maxAge: 0, loginHint: loginHint}),\n '_self'\n );\n else {\n this._instance.login({\n maxAge: 0,\n loginHint: loginHint,\n redirectUri: url,\n });\n }\n }\n}\n","import { AppConfig } from '../../config/app.config';\nimport { APP_CONFIG } from '../../config/app.config';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport {\n AccountType,\n AuthProvider,\n FrontparentService,\n FrontbabysitterService,\n} from '@tatynanny/api';\nimport { AlertService } from '../alert/alert.service';\nimport * as moment from 'moment';\nimport { EnvService } from '../environment/env.service';\nimport { OAuthProviderList } from './interfaces/oauth-provider';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, Subject } from 'rxjs';\nimport { Platform } from '@ionic/angular';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KeycloakSocialLoginService {\n private user = new Subject();\n\n private userType: AccountType = AccountType.Client;\n\n providersApis: OAuthProviderList = {\n google: {\n url: 'https://people.googleapis.com/v1/people/me',\n params:\n 'addresses,ageRanges,biographies,birthdays,calendarUrls,clientData,coverPhotos,emailAddresses,events,externalIds,genders,imClients,interests,locales,locations,memberships,metadata,miscKeywords,names,nicknames,occupations,organizations,phoneNumbers,photos,relations,sipAddresses,skills,urls,userDefined',\n },\n facebook: {\n url: 'https://graph.facebook.com/me',\n params:\n 'id,name,email,gender,location,address,hometown,locale,picture,birthday,age_range,cover,devices,first_name,last_name,verified,languages,link,sports,timezone',\n },\n };\n\n constructor(\n private alertService: AlertService,\n private parentService: FrontparentService,\n private babysitterService: FrontbabysitterService,\n private router: Router,\n private envService: EnvService,\n private http: HttpClient,\n @Inject(APP_CONFIG) config: AppConfig,\n private platform: Platform\n ) {\n this.userType = config.userType;\n }\n\n sendUser(user: any) {\n console.log('Send User :', user);\n this.user.next(user);\n }\n\n getUser(): Observable {\n console.log('Get user');\n return this.user.asObservable();\n }\n\n redirectOauthPage(identityProvider: AuthProvider) {\n if (\n [AuthProvider.Google, AuthProvider.Facebook].includes(identityProvider)\n ) {\n const type = identityProvider.toLowerCase();\n const keycloakUrl = `${this.envService.keycloak.url}`;\n const providerUrl = `realms/${this.envService.keycloak.realm}/protocol/openid-connect/auth?client_id=${this.envService.keycloak.clientId}`;\n let redirectBaseUri = '';\n if (this.platform.platforms().includes('mobile')) {\n redirectBaseUri = this.envService.keycloak.redirectUri;\n } else {\n redirectBaseUri = this.envService.keycloak.redirectUriBrowser;\n }\n const redirectUri = `${redirectBaseUri}/home/register`;\n const params = `?kc_idp_hint=${type}&response_type=code&scope=openid&kc_idp_hint=${type}`;\n const url = `${keycloakUrl}/${providerUrl}&redirect_uri=${redirectUri}${params}`;\n\n console.log('URL:', url);\n window.location.href = url;\n }\n }\n\n saveGoogleInfo(userGoogle: any, generalAccount: any, newAccount: any): void {\n if (userGoogle) {\n if (userGoogle.genders?.[0].value == 'male') {\n generalAccount.civilite = 1;\n } else if (userGoogle.genders?.[0].value == 'female') {\n generalAccount.civilite = 2;\n }\n if (userGoogle.addresses) {\n generalAccount.formattedAddress =\n userGoogle.addresses[0].formattedValue;\n generalAccount.address = userGoogle.addresses[0].streetAddress;\n generalAccount.city = userGoogle.addresses[0].city;\n generalAccount.zipcode = userGoogle.addresses[0].postalCode;\n generalAccount.country = userGoogle.addresses[0].country;\n } else {\n generalAccount.formattedAddress = '';\n }\n if (userGoogle.birthdays) {\n if (userGoogle.birthdays[0].date.day.toString().length == 1) {\n userGoogle.birthdays[0].date.day =\n '0' + userGoogle.birthdays[0].date.day.toString();\n }\n generalAccount.birthdate = `${userGoogle.birthdays[0].date.year.toString()}-${userGoogle.birthdays[0].date.month.toString()}-${\n userGoogle.birthdays[0].date.day\n }`;\n } else {\n generalAccount.birthdate = `1970-01-01`;\n }\n generalAccount.account.firstname = newAccount.firstname;\n generalAccount.account.lastname = newAccount.lastname;\n generalAccount.account.phoneNumber = newAccount.phoneNumber;\n\n if (this.userType == AccountType.Client) {\n this.parentService\n .saveGeneralInformations(generalAccount)\n .forEach((r) => {\n console.log(r);\n this.alertService.success('Informations enregistrées');\n this.router.navigateByUrl('/mon-espace/profil', {\n replaceUrl: true,\n });\n })\n .catch((e) => {\n console.log(e);\n this.alertService.error('Impossible de sauvegarder les informations');\n });\n } else if (this.userType == AccountType.Babysitter) {\n this.babysitterService\n .saveGeneralBabysit(generalAccount)\n .forEach((r) => {\n console.log(r);\n this.alertService.success('Informations enregistrées');\n this.router.navigateByUrl('/mon-espace/profil', {\n replaceUrl: true,\n });\n }).catch((e) => {\n console.log(e);\n this.alertService.error('Impossible de sauvegarder les informations');\n });\n }\n }\n }\n\n saveFacebookInfo(\n userFacebook: any,\n generalAccount: any,\n newAccount: any\n ): void {\n if (userFacebook) {\n if (userFacebook.gender == 'male') {\n generalAccount.civilite = 1;\n } else if (userFacebook.gender == 'female') {\n generalAccount.civilite = 2;\n }\n generalAccount.birthdate = userFacebook.birthday\n ? moment(userFacebook.birthday).format('YYYY-MM-DD')\n : '1970-01-01';\n\n if (userFacebook.location) {\n generalAccount.formattedAddress = userFacebook.location.name;\n } else {\n generalAccount.formattedAddress = '';\n }\n generalAccount.account.firstname = newAccount.firstname;\n generalAccount.account.lastname = newAccount.lastname;\n generalAccount.account.phoneNumber = newAccount.phoneNumber;\n\n if (this.userType == AccountType.Client) {\n this.parentService\n .saveGeneralInformations(generalAccount)\n .forEach((r) => {\n console.log(r);\n this.alertService.success('Informations enregistrées');\n this.router.navigateByUrl('/mon-espace/profil', {\n replaceUrl: true,\n });\n })\n .catch((e) => {\n console.log(e);\n this.alertService.error('Impossible de sauvegarder les informations');\n });\n } else if (this.userType == AccountType.Babysitter) {\n this.babysitterService\n .saveGeneralBabysit(generalAccount)\n .forEach((r) => {\n console.log(r);\n this.alertService.success('Informations enregistrées');\n this.router.navigateByUrl('/mon-espace/profil', {\n replaceUrl: true,\n });\n }).catch((e) => {\n console.log(e);\n this.alertService.error('Impossible de sauvegarder les informations');\n });\n }\n }\n }\n\n socialProviderInfo(\n provider: any,\n instance: Keycloak.KeycloakInstance\n ): Promise {\n return new Promise((resolve, reject) => {\n this.http\n .get(\n `${this.envService.keycloak.url}/realms/${this.envService.keycloak.realm}/broker/${provider}/token`,\n {\n headers: {\n Authorization: 'Bearer ' + instance.token,\n },\n }\n )\n .toPromise()\n .then((providerToken: any) => {\n var myHeaders = new Headers();\n myHeaders.append(\n 'Authorization',\n 'Bearer ' + providerToken['access_token']\n );\n\n let url = '';\n let providerApi = this.providersApis[provider];\n if (provider == 'google') {\n url = `${providerApi.url}?personFields=${providerApi.params}`;\n } else if (provider == 'facebook') {\n url = `${providerApi.url}?fields=${providerApi.params}&access_token=${providerToken['access_token']}`;\n }\n\n fetch(url, {\n method: 'GET',\n headers: myHeaders,\n redirect: 'follow',\n })\n .then((response) => resolve(response.json()))\n .catch((error) => console.log('error', error));\n });\n });\n }\n}\n","import { KeycloakIonicService } from \"./keycloak-ionic.service\";\n\nexport function initializer(keycloakIonicService: KeycloakIonicService) {\n return (): Promise => {\n return keycloakIonicService.initAuth();\n }\n}","import { Injectable } from '@angular/core';\nimport {\n HttpInterceptor,\n HttpRequest,\n HttpHandler,\n HttpEvent,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Observable, from } from 'rxjs';\nimport { mergeMap, tap } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { AlertService } from '../alert/alert.service';\nimport { ToastController } from '@ionic/angular';\nimport { EnvService } from '../environment/env.service';\nimport { KeycloakIonicService } from './keycloak-ionic.service';\n\n@Injectable()\nexport class KeycloakInterceptorService implements HttpInterceptor {\n /**\n * Constructor\n * @param keycloakService {KeycloakService}\n */\n constructor(\n private keycloakService: KeycloakIonicService,\n private router: Router,\n private alertService: AlertService,\n private toastCtrl: ToastController,\n private envService: EnvService\n ) {}\n\n /**\n * Interceptor for user token\n * @param request {HttpRequest}\n * @param next {HttpHandler}\n */\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n if (this.keycloakService.getKeycloakInstance().authenticated) {\n return this.getUserToken().pipe(\n mergeMap((token) => {\n if (token) {\n request = request.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`,\n },\n });\n }\n return next.handle(request);\n })\n );\n }\n return next.handle(request);\n }\n\n // intercept(request: HttpRequest, next: HttpHandler): Observable> | any {\n\n // // Exclude interceptor for login request:\n // // console.log('debug reg intercept search', request.url.search(environment.keycloak.url));\n // if (request.url.search(this.envService.keycloak.url) === -1 && this.keycloakService.getKeycloakInstance().authenticated) {\n // return this.getUserToken().pipe(\n // mergeMap((token) => {\n // if (token) {\n // request = request.clone({\n // setHeaders: {\n // Authorization: `Bearer ${token}`\n // }\n // });\n // }\n // return next.handle(request);\n // }))\n // }\n // }\n\n /**\n * Return observable token\n */\n getUserToken() {\n const tokenPromise: Promise = this.keycloakService.getToken();\n const tokenObservable: Observable = from(tokenPromise);\n return tokenObservable;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {FrontbabysitterService, FrontparentService} from '@tatynanny/api';\nimport { Subscription } from 'rxjs';\nimport { KeycloakIonicService } from '../keycloak/keycloak-ionic.service';\nimport { SharedService } from '../shared/shared.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigationService {\n\n isLoggedIn: boolean = false;\n\n constructor(\n private keycloakIonicService: KeycloakIonicService,\n private sharedService: SharedService,\n private parentService: FrontparentService,\n private candidateService: FrontbabysitterService,\n ) {\n }\n\n refreshNanny(): Promise {\n return new Promise((resolve, reject) => {\n this.candidateService.apiV1BabysitterProfileLoadProfileGet().forEach(n => {\n resolve(n);\n })\n });\n }\n\n refreshClient(): Promise {\n return new Promise((resolve, reject) => {\n this.keycloakIonicService.isLoggedIn().then(connected => {\n if(connected) {\n this.parentService.apiV1ParentProfileLoadProfileGet().forEach(n => {\n resolve(n);\n })\n } else {\n resolve(null);\n }\n })\n })\n }\n\n refresh(): void {\n this.isLoggedIn = this.keycloakIonicService.getKeycloakInstance().authenticated;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedService {\n private refreshMenuNavigation = new Subject();\n private token = new Subject();\n invoiceSubject = new Subject();\n\n private connect = new Subject();\n\n constructor(\n ) {}\n\n sendConnect() {\n this.connect.next();\n }\n\n getConnect() {\n return this.connect.asObservable();\n }\n\n sendToken(token: any) {\n console.log('Send Token :', token);\n this.token.next(token);\n }\n\n getToken() {\n console.log('Get Token');\n return this.token.asObservable();\n }\n\n sendRefreshMenu() {\n console.log('Send imgComUpdate Event');\n this.refreshMenuNavigation.next('');\n }\n\n sendinvoiceStat(data : boolean) {\n console.log('Send invoice Event');\n this.invoiceSubject.next(data);\n }\n\n getRefreshMenu(): Observable {\n console.log('Get imgComUpdate Event');\n return this.refreshMenuNavigation.asObservable();\n }\n\n\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {EnvService} from \"../environment/env.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n constructor(private httpClient: HttpClient, private envService : EnvService) {\n }\n\n public upload(userRole: string, fileType: any, file: any) {\n\n const formData = new FormData()\n\n formData.append('uploadedFile', file)\n const profileType = userRole == 'CLIENT' ? 'parent' : 'babysitter'\n\n const serverUrl = this.envService.apiUrl + '/api/v1/' + profileType.toLowerCase() + '/profile/upload-file/' + fileType;\n return this.httpClient.post(serverUrl, formData, {\n reportProgress: true,\n observe: 'events'\n });\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n\n keycloak: {\n // url: 'https://sso.preprod.tatynanny.com/auth',\n url: 'http://localhost:8180',\n realm: 'tatynanny',\n clientId: 'tatynanny-front-app',\n redirectUri: 'http://localhost:8100',\n redirectUriBrowser: 'http://localhost:8100'\n },\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","var map = {\n\t\"./ion-accordion_2.entry.js\": [\n\t\t70079,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-accordion_2_entry_js\"\n\t],\n\t\"./ion-action-sheet.entry.js\": [\n\t\t25593,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-action-sheet_entry_js\"\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t13225,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-alert_entry_js\"\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t4812,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-app_8_entry_js\"\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t86655,\n\t\t\"node_modules_ionic_core_dist_esm_ion-avatar_3_entry_js\"\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t44856,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-back-button_entry_js\"\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t13059,\n\t\t\"node_modules_ionic_core_dist_esm_ion-backdrop_entry_js\"\n\t],\n\t\"./ion-breadcrumb_2.entry.js\": [\n\t\t58648,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-breadcrumb_2_entry_js\"\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t98308,\n\t\t\"node_modules_ionic_core_dist_esm_ion-button_2_entry_js\"\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t44690,\n\t\t\"node_modules_ionic_core_dist_esm_ion-card_5_entry_js\"\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t64090,\n\t\t\"node_modules_ionic_core_dist_esm_ion-checkbox_entry_js\"\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t36214,\n\t\t\"node_modules_ionic_core_dist_esm_ion-chip_entry_js\"\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t69447,\n\t\t\"node_modules_ionic_core_dist_esm_ion-col_3_entry_js\"\n\t],\n\t\"./ion-datetime-button.entry.js\": [\n\t\t17950,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-caf38df0_js-node_modules_ionic_core_dist_esm_th-d3ab8e\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime-button_entry_js\"\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t79689,\n\t\t\"default-node_modules_ionic_core_dist_esm_data-caf38df0_js-node_modules_ionic_core_dist_esm_th-d3ab8e\",\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-datetime_3_entry_js\"\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t18840,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-fab_3_entry_js\"\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t40749,\n\t\t\"node_modules_ionic_core_dist_esm_ion-img_entry_js\"\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t69667,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-infinite-scroll_2_entry_js\"\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t83288,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-input_entry_js\"\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t35473,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item-option_3_entry_js\"\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t53634,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-item_8_entry_js\"\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t22855,\n\t\t\"node_modules_ionic_core_dist_esm_ion-loading_entry_js\"\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t495,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-menu_3_entry_js\"\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t58737,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-modal_entry_js\"\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t99632,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-nav_2_entry_js\"\n\t],\n\t\"./ion-picker-column-internal.entry.js\": [\n\t\t54446,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-column-internal_entry_js\"\n\t],\n\t\"./ion-picker-internal.entry.js\": [\n\t\t32275,\n\t\t\"node_modules_ionic_core_dist_esm_ion-picker-internal_entry_js\"\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t48050,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-popover_entry_js\"\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t18994,\n\t\t\"node_modules_ionic_core_dist_esm_ion-progress-bar_entry_js\"\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t23592,\n\t\t\"node_modules_ionic_core_dist_esm_ion-radio_2_entry_js\"\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t35454,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-range_entry_js\"\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t290,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-refresher_2_entry_js\"\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t92666,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-reorder_2_entry_js\"\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t64816,\n\t\t\"node_modules_ionic_core_dist_esm_ion-ripple-effect_entry_js\"\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t45534,\n\t\t\"node_modules_ionic_core_dist_esm_ion-route_4_entry_js\"\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t94902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-searchbar_entry_js\"\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t91938,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-segment_2_entry_js\"\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t78179,\n\t\t\"node_modules_ionic_core_dist_esm_ion-select_3_entry_js\"\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t90668,\n\t\t\"node_modules_ionic_core_dist_esm_ion-slide_2_entry_js\"\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t61624,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-spinner_entry_js\"\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t19989,\n\t\t\"node_modules_ionic_core_dist_esm_ion-split-pane_entry_js\"\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t28902,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab-bar_2_entry_js\"\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t70199,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-tab_2_entry_js\"\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t48395,\n\t\t\"node_modules_ionic_core_dist_esm_ion-text_entry_js\"\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t96357,\n\t\t\"node_modules_ionic_core_dist_esm_ion-textarea_entry_js\"\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t38268,\n\t\t\"node_modules_ionic_core_dist_esm_ion-toast_entry_js\"\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t15269,\n\t\t\"common\",\n\t\t\"node_modules_ionic_core_dist_esm_ion-toggle_entry_js\"\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t32875,\n\t\t\"node_modules_ionic_core_dist_esm_ion-virtual-scroll_entry_js\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 50863;\nmodule.exports = webpackAsyncContext;","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;"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[89,90]}