{"version":3,"file":"main.46fc4f9d7df09cb7.js","mappings":"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","names":["AnalyticsService","constructor","config","router","logger","this","pageEnterTime","initializeGoogleAnalytics","gaTrackingId","environmentType","events","pipe","filter","event","NavigationEnd","subscribe","log","url","performance","now","trafficType","gtag","page_path","traffic_type","internal_traffic","trackingId","script","document","createElement","async","src","head","appendChild","onload","window","dataLayer","push","arguments","Date","trackPageView","pagePath","trackEvent","page_location","location","href","page_title","title","eventName","params","static","t","i0","SHARED_LIBRARY_CONFIG","i1","i2","_angular_core__WEBPACK_IMPORTED_MODULE_3__","Yz7","factory","ɵfac","providedIn","appConfig","applicationId","petszelUrl","beta","apiUrl","dev","development","prod","production","gtmId","routes","path","loadChildren","Promise","all","__webpack_require__","e","then","bind","m","LayoutModule","data","bodyClass","HealthLayoutModule","redirectTo","AppRoutingModule","core","oAB","cJS","RouterModule","forRoot","GoogleTagService","initializeGoogleTagManager","listenToRouterEvents","gtmScript","gtmNoScript","gtmIframe","style","display","visibility","body","insertBefore","firstChild","gtmTag","urlAfterRedirects","AppComponent","analyticsService","googleTagService","Xpm","selectors","decls","vars","template","rf","ctx","AppModule","bootstrap","provide","useValue","sharedLibraryConfigProvider","SharedLibraryService","imports","BrowserModule","HttpClientModule","CommonModule","PetszelSharedModule","LoggerModule","level","NgxLoggerLevel","DEBUG","serverLogLevel","ERROR","disableConsoleLogging","__NgCli_bootstrap_1","bootstrapModule","catch","err","console","error","_angular_core__WEBPACK_IMPORTED_MODULE_0__","ReactiveFormsModule","GoogleMapsModule","FormsModule","MatDialogModule","NgbToastModule","PetszelSharedService","PetszelSharedComponent","ownerEnvironment","isLocalhostConfiguration","includes","betaEnvironment","devEnvironment","prodEnvironment","baseEnvironment","environment","ShelterService","http","shelterNameSource","BehaviorSubject","shelterName$","asObservable","shelter$","token","localStorage","getItem","headers","HttpHeaders","set","shelterObs$","getShelter","get","tap","shelter","extractionEnabled","communicationsEnabled","next","setShelterName","legalName","clearShelterName","name","getShelterLogos","updateShelter","put","responseType","uploadLogo","post","deleteLogo","logoId","delete","getUsers","changePassword","AuthGuard","shelterService","redirectRoute","badCredentials","isLoggedIn","credentialType","jwt_decode","Array","isArray","canActivate","route","state","logout","removeItem","navigateByUrl","redirectCallback","success","logoutAndRedirect","of","undefined","AuthenticationGuardService","targetUrl","NavigationError","redirect","savedTargetUrl","getTargetUrl","setTargetUrl","navigate","queryParams","isValidString","isValidArray","AuthGuardService","setItem","InjectionToken","useFactory","sharedLibraryConfigFactory","frontEndUrl","deps","sharedLibraryConfig","checkIfProductionUrl","getSharedLibraryConfig","isProductionUrl","PetszelLoginComponent_div_9_div_1_Template","PetszelLoginComponent_div_9_div_2_Template","ctx_r6","isShelterApplication","isOwnerApplication","user_r15","routerLink","PetszelLoginComponent_div_49_div_1_Template","ctx_r10","newUser","PetszelLoginComponent","formBuilder","authGuard","staffAuthGuard","ownerAuthGuard","sharedLibraryService","deviceDetectorService","submitted","isOnboardingStarted","showErrorBanner","hidePassword","ngOnInit","currentApplication","environmentConfig","appConfigOwner","appConfigShelter","isMobile","domain","allowedCredentials","loginForm","group","username","Validators","compose","email","required","control","value","parent","endsWith","badcredentials","password","pattern","togglePasswordVisibility","getElementById","type","makePostRequest","response","isSuccess","expiration","credentials","rolePriority","role","handleCredential","handleBadCredentials","status","credential","login","controls","onLogin","invalid","clearUsernameError","setErrors","clearPasswordError","i3","i4","i5","i6","i7","i8","i9","inputs","user","consts","PetszelLoginComponent_img_3_Template","PetszelLoginComponent_img_4_Template","PetszelLoginComponent_img_5_Template","PetszelLoginComponent_img_6_Template","PetszelLoginComponent_img_7_Template","PetszelLoginComponent_img_8_Template","PetszelLoginComponent_div_9_Template","PetszelLoginComponent_div_27_Template","PetszelLoginComponent_div_41_Template","PetszelLoginComponent_div_43_Template","PetszelLoginComponent_div_49_Template","PetszelLoginComponent_div_51_Template","errors","dirty","touched","ConfirmResetComponent","activatedRoute","resetId","snapshot","paramMap","setTimeout","PasswordValidator","patternValidator","regex","test","passwordMatchValidator","passwordControl","confirmPasswordControl","NoPasswordMatch","ConfirmResetService","postResetPassword","updatePassword","PetszelPasswordResetComponent","postPassword","fieldTextType","showPasswordRequirements","isSmallScreen","showSuccessBanner","checkScreenSize","formResetPassword","newPassword","hasNumber","hasCapitalCase","hasSmallCase","minLength","confirmPasswordReset","validator","toggleFieldTextType","showRequirements","innerWidth","onSubmit","result","displaySuccessBanner","PetszelPasswordResetComponent_div_27_Template","PetszelPasswordResetComponent_div_53_Template","hasError","_c0","ResetPasswordEmailComponent","postReset","resetIdExists","formResetEmail","reset","alert","ResetPasswordEmailComponent_h3_7_Template","ResetPasswordEmailComponent_h3_8_Template","ResetPasswordEmailComponent_input_17_Template","ResetPasswordEmailComponent_input_18_Template","LogoutService","logoutTimeout","logoutAfterDelay","delay","clearLogoutTimeout","clearAllLocalStorage","logoutBtn","clearTimeout","clear","PetszelPoweredComponent","size","navigateToShelter","petszelLogoSrc","shelterLogoSrc","ShelterAlt","PetszelPoweredNobrandComponent","ctx_r0","ctx_r1","ctx_r2","logo","logoUrl","$event","_r24","item_r18","$implicit","ctx_r22","toggleSubMenu","_c1","isExpanded","subItem_r28","_c2","disabled","label","NavigationComponent_div_15_div_1_li_1_ng_container_4_ul_1_li_1_Template","subItems","NavigationComponent_div_15_div_1_li_1_ng_container_4_ul_1_Template","NavigationComponent_div_15_div_1_li_1_i_3_Template","NavigationComponent_div_15_div_1_li_1_ng_container_4_Template","action","NavigationComponent_div_15_div_1_li_1_Template","NavigationComponent_div_15_div_1_Template","ctx_r4","navItems","item_r33","NavigationComponent_div_16_div_2_Template","ctx_r5","navItems2","item_r35","newTab","NavigationComponent_ng_container_17_div_2_div_1_ng_container_2_Template","NavigationComponent_ng_container_17_div_2_div_1_ng_container_3_Template","NavigationComponent_ng_container_17_div_2_div_1_Template","ctx_r34","requiresLogin","NavigationComponent_ng_container_17_div_2_Template","navItems3","_r43","ctx_r42","ctx_r44","ctx_r45","NavigationComponent_ng_container_24_ng_container_1_Template","NavigationComponent_ng_container_24_ng_container_2_Template","ctx_r9","daysSinceAdoption","brandingDays","_r52","item_r47","ctx_r50","subItem_r56","NavigationComponent_div_29_ng_container_1_ng_container_5_ul_1_li_1_Template","NavigationComponent_div_29_ng_container_1_ng_container_5_ul_1_Template","_r60","ctx_r59","performAction","NavigationComponent_div_29_ng_container_1_i_4_Template","NavigationComponent_div_29_ng_container_1_ng_container_5_Template","NavigationComponent_div_29_ng_container_1_Template","ctx_r12","item_r62","NavigationComponent_div_30_ng_container_2_Template","ctx_r13","item_r64","NavigationComponent_div_31_ng_container_2_div_1_ng_container_2_Template","NavigationComponent_div_31_ng_container_2_div_1_ng_container_3_Template","NavigationComponent_div_31_ng_container_2_div_1_Template","ctx_r63","NavigationComponent_div_31_ng_container_2_Template","ctx_r14","_r72","ctx_r71","NavigationComponent","logoutService","authGuardService","authenticationGuardService","actionTriggered","EventEmitter","isMenuOpen","isOffcanvasOpen","isNavbarCollapsed","checkIsLoggedIn","emit","openOffcanvas","performItemClick","item","performActionSm","preventDefault","toggleMenu","openOffcanvasSm","offcanvasElement","Element","show","onLinkClick","toggleNavbar","closeHamburger","menuElement","nativeElement","classList","remove","add","warn","closeOffcanvas","navbarToggler","toggleExpansion","stopPropagation","viewQuery","NavigationComponent_ng_container_9_Template","NavigationComponent_ng_container_10_Template","NavigationComponent_ng_container_11_Template","NavigationComponent_div_15_Template","NavigationComponent_div_16_Template","NavigationComponent_ng_container_17_Template","NavigationComponent_li_18_Template","NavigationComponent_li_19_Template","NavigationComponent_ng_container_24_Template","NavigationComponent_ng_container_25_Template","NavigationComponent_ng_container_26_Template","NavigationComponent_div_29_Template","NavigationComponent_div_30_Template","NavigationComponent_div_31_Template","NavigationComponent_div_33_Template","NavigationComponent_div_34_Template","_c3","_c4","_c5","isApplication1","_r7","item_r2","icon","iconActive","FooterNavComponent_div_0_ng_container_3_a_1_Template","FooterNavComponent_div_0_ng_container_3_a_2_Template","FooterNavComponent_div_0_ng_container_3_Template","FooterNavComponent","FooterNavComponent_div_0_Template","imageSrc","imageAlt","btnImg","PrimaryBtnComponent","primaryBtn","buttonText","showImage","PrimaryBtnComponent_img_1_Template","message","ErrorMessageComponent","ErrorMessageComponent_div_0_Template"],"sourceRoot":"webpack:///","sources":["./projects/petszel-home/src/app/services/google-analytics.service.ts","./projects/petszel-home/src/environments/environment.dev.ts","./projects/petszel-home/src/home.config.ts","./projects/petszel-home/src/environments/environment.beta.ts","./projects/petszel-home/src/environments/environment.prod.ts","./projects/petszel-home/src/app/app-routing.module.ts","./projects/petszel-home/src/app/services/google-tag-manager.service.ts","./projects/petszel-home/src/app/app.component.ts","./projects/petszel-home/src/app/app.component.html","./projects/petszel-home/src/app/app.module.ts","./projects/petszel-home/src/main.ts","./projects/petszel-shared/src/lib/petszel-shared.module.ts","./projects/petszel-shared/src/lib/petszel-shared.service.ts","./projects/petszel-shared/src/lib/petszel-shared.component.ts","./projects/petszel-owner/src/environments/environment.beta.ts","./projects/petszel-owner/src/environments/environment.dev.ts","./projects/petszel-owner/src/environments/environment.prod.ts","./projects/petszel-owner/src/environments/environment.ts","./projects/petszel-owner/src/owner.config.ts","./projects/petszel-shelter/src/environments/environment.beta.ts","./projects/petszel-shelter/src/environments/environment.dev.ts","./projects/petszel-shelter/src/environments/environment.prod.ts","./projects/petszel-shelter/src/environments/environment.ts","./projects/petszel-shelter/src/shelter.config.ts","./projects/petszel-shelter/src/app/service/shelter.service.ts","./projects/petszel-shelter/src/app/service/authentication-guard.service.ts","./projects/petszel-staff/src/app/service/authentication-guard.service.ts","./projects/petszel-owner/src/app/service/authentication-guard.service.ts","./projects/petszel-shared/src/lib/services/shared.factory.ts","./projects/petszel-shared/src/lib/services/shared.config.ts","./projects/petszel-shared/src/lib/petszel-login/petszel-login.component.html","./projects/petszel-shared/src/lib/petszel-login/petszel-login.component.ts","./projects/petszel-shared/src/lib/services/username-validator-staff.ts","./projects/petszel-shared/src/lib/confirm-reset/confirm-reset.component.ts","./projects/petszel-shared/src/lib/confirm-reset/confirm-reset.component.html","./projects/petszel-shared/src/lib/classes/password.ts","./projects/petszel-shared/src/lib/services/confirm-reset.service.ts","./projects/petszel-shared/src/lib/petszel-password-reset/petszel-password-reset.component.html","./projects/petszel-shared/src/lib/petszel-password-reset/petszel-password-reset.component.ts","./projects/petszel-shared/src/lib/reset-password-email/reset-password-email.component.html","./projects/petszel-shared/src/lib/reset-password-email/reset-password-email.component.ts","./projects/petszel-shared/src/lib/services/logout.service.ts","./projects/petszel-shared/src/lib/petszel-powered/petszel-powered.component.ts","./projects/petszel-shared/src/lib/petszel-powered/petszel-powered.component.html","./projects/petszel-shared/src/lib/petszel-powered-nobrand/petszel-powered-nobrand.component.ts","./projects/petszel-shared/src/lib/petszel-powered-nobrand/petszel-powered-nobrand.component.html","./projects/petszel-shared/src/lib/navigation/navigation.component.html","./projects/petszel-shared/src/lib/navigation/navigation.component.ts","./projects/petszel-shared/src/lib/footer-nav/footer-nav.component.html","./projects/petszel-shared/src/lib/footer-nav/footer-nav.component.ts","./projects/petszel-shared/src/lib/primary-btn/primary-btn.component.html","./projects/petszel-shared/src/lib/primary-btn/primary-btn.component.ts","./projects/petszel-shared/src/lib/error-message/error-message.component.html","./projects/petszel-shared/src/lib/error-message/error-message.component.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\nimport { Router, NavigationEnd, Event as RouterEvent } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { appConfig } from '../../home.config';\nimport { SHARED_LIBRARY_CONFIG } from 'projects/petszel-shared/src/public-api';\nimport { NGXLogger } from 'ngx-logger';\nimport { BehaviorSubject } from 'rxjs';\nimport { time } from '@rxweb/reactive-form-validators';\n\ndeclare let gtag: Function;\n\ndeclare global {\n interface Window {\n dataLayer: any[];\n gtag: (...args: any[]) => void;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AnalyticsService {\n private environmentType!: string;\n private pageEnterTime: number | null = null;\n\n constructor(\n @Inject(SHARED_LIBRARY_CONFIG) private config: any,\n private router: Router,\n private logger: NGXLogger\n ) {\n this.initializeGoogleAnalytics(config.gaTrackingId);\n this.environmentType = this.config.environmentType;\n\n this.router.events\n .pipe(\n filter(\n (event: RouterEvent): event is NavigationEnd =>\n event instanceof NavigationEnd\n )\n )\n .subscribe((event: NavigationEnd) => {\n this.logger.log('Page navigation ended. Previous page:', event.url); // Log the URL of the previous page\n this.pageEnterTime = performance.now(); // Set the new entry time\n this.logger.log('New page entry time set:', this.pageEnterTime); // Log the new entry time\n });\n \n\n const trafficType =\n this.environmentType === 'local' ? 'internal' : 'external';\n gtag('config', config.gaTrackingId, {\n page_path: this.router.url,\n traffic_type: trafficType,\n });\n\n if (this.environmentType === 'local') {\n gtag('event', 'internal_traffic', {\n internal_traffic: 'yes',\n });\n }\n }\n\n private initializeGoogleAnalytics(trackingId: string) {\n const script = document.createElement('script');\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtag/js?id=${trackingId}`;\n document.head.appendChild(script);\n\n script.onload = () => {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function () {\n window.dataLayer.push(arguments);\n };\n window.gtag('js', new Date());\n window.gtag('config', trackingId);\n\n };\n }\n\n trackPageView() {\n const pagePath = this.router.url; // Ensure this is the correct way to get the current URL path in your application\n this.trackEvent('page_view', {\n page_location: window.location.href,\n page_path: pagePath,\n page_title: document.title,\n });\n }\n\n trackEvent(eventName: string, params: { [key: string]: any }) {\n const userProperties: { [key: string]: any } = {};\n if (eventName === 'page_view') {\n userProperties['pagePath'] = params['page_path'];\n } \n\n gtag('event', eventName, {\n ...params,\n });\n }\n}","export const homeEnvironment = {\n development: true,\n production: false,\n apiUrl: 'https://dev.api.petszelconnectbackend.petszel.com/',\n};\n","import { homeEnvironment as devEnvironment, homeEnvironment } from './environments/environment.dev';\nimport { homeEnvironment as prodEnvironment } from './environments/environment.prod';\nimport { homeEnvironment as baseEnvironment } from './environments/environment';\nimport { homeEnvironment as betaEnvironment } from './environments/environment.beta';\n\nexport const appConfig = {\n applicationId: 'home',\n petszelUrl: homeEnvironment.production ? 'https://petszel.com' : 'https://dev.petszel.com',\n beta: {\n apiUrl: betaEnvironment.apiUrl,\n beta: betaEnvironment.beta,\n },\n dev: {\n apiUrl: devEnvironment.apiUrl,\n development: devEnvironment.development,\n gaTrackingId: 'G-GJF0ZLJPZJ',\n },\n prod: {\n apiUrl: prodEnvironment.apiUrl,\n production: prodEnvironment.production,\n gaTrackingId: 'G-B61D7YV2G3',\n gtmId: 'GTM-MRXX8Q62'\n },\n apiUrl: baseEnvironment.apiUrl,\n gaTrackingId: 'G-GJF0ZLJPZJ',\n};\n","export const homeEnvironment = {\n beta: false,\n apiUrl: 'https://beta.api.petszel.com/'\n };","export const homeEnvironment = {\n production: true,\n apiUrl: 'https://api.petszel.com/',\n };","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () =>\n import('../app/layout/layout.module').then((m) => m.LayoutModule),\n data: { bodyClass: 'gradient-staff' }\n },\n {\n path: 'environment',\n loadChildren: () =>\n import('../app/health-layout/health-layout.module').then((m) => m.HealthLayoutModule),\n data: { bodyClass: 'gradient-staff' }\n },\n { path: '**', redirectTo: '/' }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router, Event as RouterEvent } from '@angular/router';\nimport { SHARED_LIBRARY_CONFIG } from 'projects/petszel-shared/src/public-api';\nimport { filter } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n })\n export class GoogleTagService {\n \n constructor(\n @Inject(SHARED_LIBRARY_CONFIG) private config: any,\n private router: Router,\n ) { \n // Initialize Google Tag Manager if in production\n if (this.config.environmentType === 'production') {\n this.initializeGoogleTagManager('GTM-MRXX8Q62'); \n this.listenToRouterEvents();\n }\n }\n \n private initializeGoogleTagManager(gtmId: string) {\n // GTM script tag\n const gtmScript = document.createElement('script');\n gtmScript.async = true;\n gtmScript.src = `https://www.googletagmanager.com/gtm.js?id=${gtmId}`;\n document.head.appendChild(gtmScript);\n \n // GTM noscript tag for browsers with JavaScript disabled\n const gtmNoScript = document.createElement('noscript');\n const gtmIframe = document.createElement('iframe');\n gtmIframe.src = `https://www.googletagmanager.com/ns.html?id=${gtmId}`;\n gtmIframe.style.display = 'none';\n gtmIframe.style.visibility = 'hidden';\n gtmNoScript.appendChild(gtmIframe);\n document.body.insertBefore(gtmNoScript, document.body.firstChild);\n }\n \n private listenToRouterEvents(): void {\n this.router.events.pipe(\n filter((event: RouterEvent): event is NavigationEnd => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n const gtmTag = {\n event: 'pageView',\n pagePath: event.urlAfterRedirects,\n };\n \n // Push to dataLayer\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(gtmTag);\n });\n }\n }\n ","import { Component } from '@angular/core';\nimport { AnalyticsService } from './services/google-analytics.service';\nimport { GoogleTagService } from './services/google-tag-manager.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Petszel';\n constructor(private analyticsService: AnalyticsService, private googleTagService: GoogleTagService) {\n }\n}\n","","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule } from '@angular/common/http';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\nimport { PetszelSharedModule, SharedLibraryService, sharedLibraryConfigProvider } from 'projects/petszel-shared/src/public-api';\nimport { appConfig } from '../home.config';\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n AppRoutingModule,\n HttpClientModule,\n RouterModule,\n CommonModule,\n PetszelSharedModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG, // set log level\n serverLogLevel: NgxLoggerLevel.ERROR, // set server log level\n disableConsoleLogging: false, //enable/disable console logging\n }),\n ],\n providers: [\n {\n provide: 'appConfig',\n useValue: appConfig,\n },\n sharedLibraryConfigProvider,\n SharedLibraryService,\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\n\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport { PetszelPasswordResetComponent } from './petszel-password-reset/petszel-password-reset.component';\nimport { ConfirmResetComponent } from './confirm-reset/confirm-reset.component';\nimport { RouterModule } from '@angular/router';\nimport { ResetPasswordEmailComponent } from './reset-password-email/reset-password-email.component';\nimport { PetszelLoginComponent } from './petszel-login/petszel-login.component'; // Import the PetszelLoginComponent\nimport { NavigationComponent } from './navigation/navigation.component';\nimport { PetszelPoweredComponent } from './petszel-powered/petszel-powered.component';\nimport { PrimaryBtnComponent } from './primary-btn/primary-btn.component';\nimport { PetszelPoweredNobrandComponent } from './petszel-powered-nobrand/petszel-powered-nobrand.component';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { PetszelPartnerSummaryComponent } from '../../../petszel-staff/src/app/components/petszel-partner-summary/petszel-partner-summary.component';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { PlacesListComponent } from './places-list/places-list.component';\nimport { ErrorMessageComponent } from './error-message/error-message.component';\nimport { LoadingComponent } from './loading/loading.component';\nimport { ToastsContainerComponent } from './toasts-container/toasts-container.component';\nimport { NgbToastModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { FooterNavComponent } from './footer-nav/footer-nav.component';\nimport { SortableHeaderDirective } from './directives/sortable-header.directive';\n\n@NgModule({\n declarations: [\n PetszelPasswordResetComponent,\n ConfirmResetComponent,\n ResetPasswordEmailComponent,\n PetszelLoginComponent,\n NavigationComponent,\n PetszelPoweredComponent,\n PrimaryBtnComponent,\n PetszelPoweredNobrandComponent,\n PetszelPartnerSummaryComponent,\n PlacesListComponent,\n ErrorMessageComponent,\n LoadingComponent,\n ToastsContainerComponent,\n FooterNavComponent,\n SortableHeaderDirective\n ],\n imports: [\n ReactiveFormsModule,\n CommonModule,\n RouterModule,\n GoogleMapsModule,\n LayoutModule,\n FormsModule,\n MatDialogModule,\n NgbToastModule\n ],\n exports: [\n ReactiveFormsModule,\n CommonModule,\n RouterModule,\n PetszelPasswordResetComponent,\n ConfirmResetComponent,\n ResetPasswordEmailComponent,\n PetszelLoginComponent,\n NavigationComponent,\n FooterNavComponent,\n PetszelPoweredComponent,\n PrimaryBtnComponent,\n PetszelPoweredNobrandComponent,\n GoogleMapsModule,\n PetszelPartnerSummaryComponent,\n PlacesListComponent,\n ErrorMessageComponent,\n LoadingComponent,\n ToastsContainerComponent,\n SortableHeaderDirective\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class PetszelSharedModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PetszelSharedService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-PetszelShared',\n template: `\n

\n petszel-shared works!\n

\n `,\n styles: [\n ]\n})\nexport class PetszelSharedComponent {\n\n}\n","export const ownerEnvironment = {\n beta: false,\n apiUrl: 'https://beta.api.petszel.com/'\n};","export const ownerEnvironment = {\n development: true,\n apiUrl: 'https://dev.api.petszelconnectbackend.petszel.com/'\n};\n","export const ownerEnvironment = {\n production: true,\n apiUrl: 'https://api.petszel.com/'\n};","export const ownerEnvironment = {\n production: false,\n apiUrl: 'http://localhost:4200/',\n development: isLocalhostConfiguration(),\n};\n\nfunction isLocalhostConfiguration() {\n return window.location.href.includes('localhost');\n}\n","import { ownerEnvironment as betaEnvironment } from './environments/environment.beta';\nimport { ownerEnvironment as devEnvironment } from './environments/environment.dev';\nimport { ownerEnvironment as prodEnvironment } from './environments/environment.prod';\nimport { ownerEnvironment as baseEnvironment } from './environments/environment';\n\nexport const appConfig = {\n applicationId: 'owner',\n beta: {\n apiUrl: betaEnvironment.apiUrl,\n beta: betaEnvironment.beta,\n },\n dev: {\n apiUrl: devEnvironment.apiUrl,\n development: devEnvironment.development,\n gaTrackingId: 'G-RRDMVNK3JH',\n },\n prod: {\n apiUrl: prodEnvironment.apiUrl,\n production: prodEnvironment.production,\n gaTrackingId: 'G-XWQ39XLC3F',\n },\n apiUrl: baseEnvironment.apiUrl,\n gaTrackingId: 'G-RRDMVNK3JH',\n};\n","export const environment = {\n beta: true,\n production: false,\n apiUrl: 'https://beta.api.petszel.com/'\n };","export const environment = {\n apiUrl: 'https://dev.api.petszelconnectbackend.petszel.com/',\n production: false,\n development: true\n};\n","export const environment = {\n production: true,\n apiUrl: 'https://api.petszel.com/'\n };","export const environment = {\n production: false,\n apiUrl: 'http://localhost:4200/',\n development: isLocalhostConfiguration(),\n};\n\nfunction isLocalhostConfiguration() {\n return window.location.href.includes('localhost');\n}\n","import { environment as betaEnvironment } from './environments/environment.beta';\nimport { environment as devEnvironment } from './environments/environment.dev';\nimport { environment as prodEnvironment } from './environments/environment.prod';\nimport { environment as baseEnvironment } from './environments/environment';\n\nexport const appConfig = {\n applicationId: 'shelter',\n beta: {\n apiUrl: betaEnvironment.apiUrl,\n beta: betaEnvironment.beta,\n },\n dev: {\n apiUrl: devEnvironment.apiUrl,\n development: devEnvironment.development,\n },\n prod: {\n apiUrl: prodEnvironment.apiUrl,\n production: prodEnvironment.production,\n },\n apiUrl: baseEnvironment.apiUrl,\n};\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { BehaviorSubject, Observable, tap } from \"rxjs\";\nimport { appConfig } from \"../../shelter.config\";\nimport { ShelterModel } from \"../models/shelter.model\";\nimport { ShelterLogoModel } from \"../models/shelter-logo.model\";\nimport { ShelterUserModel } from \"../models/shelter-user.model\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ShelterService {\n private shelterNameSource = new BehaviorSubject('');\n shelterName$ = this.shelterNameSource.asObservable();\n shelterObs$: Observable;\n\n private shelter$: BehaviorSubject = new BehaviorSubject(null);\n private token = localStorage.getItem('token');\n private headers = new HttpHeaders().set('Authorization', `Bearer ${this.token}`);\n\n constructor(private http: HttpClient) {\n this.shelterObs$ = this.shelter$.asObservable();\n }\n\n getShelter(): Observable {\n const url = `${appConfig.apiUrl}Shelter`;\n return this.http.get(url, { headers: this.headers }).pipe(\n tap(shelter => {\n shelter.extractionEnabled = shelter.extractionEnabled == null ? false : shelter.extractionEnabled;\n shelter.communicationsEnabled = shelter.communicationsEnabled == null ? false : shelter.communicationsEnabled;\n\n // Automatically update new info in Observable\n this.shelter$.next(shelter);\n this.setShelterName(shelter.legalName); // Update shelter name\n })\n );\n }\n\n clearShelterName(): void {\n this.shelterNameSource.next('');\n }\n\n setShelterName(name: string): void {\n this.shelterNameSource.next(name);\n }\n\n getShelterLogos(): Observable {\n const url = `${appConfig.apiUrl}Shelter/Logos`\n return this.http.get(url, { headers: this.headers });\n }\n\n updateShelter(data: ShelterModel): Observable {\n const url = `${appConfig.apiUrl}Shelter`;\n return this.http.put(url, data, { headers: this.headers, responseType: 'text' });\n }\n\n uploadLogo(data: any): Observable {\n const url = `${appConfig.apiUrl}Shelter/Logos`;\n return this.http.post(url, data, { headers: this.headers });\n }\n\n deleteLogo(logoId: string): Observable {\n const url = `${appConfig.apiUrl}Shelter/Logos?logoId=${logoId}`;\n return this.http.delete(url, { headers: this.headers, responseType: 'text' });\n }\n\n getUsers(): Observable {\n const url = `${appConfig.apiUrl}Shelter/Users`;\n console.log(url, appConfig)\n return this.http.get(url, { headers: this.headers });\n }\n\n changePassword(data: { existingPassword: string, newPassword: string }): Observable {\n const url = `${appConfig.apiUrl}Authorize/ChangePassword`;\n return this.http.post(url, data,{ headers: this.headers });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport jwt_decode from 'jwt-decode';\nimport { ShelterService } from './shelter.service';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuard implements CanActivate {\n redirectRoute: string = '/shelter-dashboard';\n badCredentials = false;\n\n constructor(private router: Router, private shelterService: ShelterService) {}\n\n isLoggedIn(): boolean {\n const token = localStorage.getItem('token');\n if (token) {\n try {\n const decodedToken = jwt_decode(token);\n const credentialType = decodedToken['petszel-credentialtype'];\n if (Array.isArray(credentialType)) {\n return (\n credentialType.includes('PetszelConnectShelterAdmin') ||\n credentialType.includes('PetszelConnectShelterSiteAdmin') ||\n credentialType.includes('PetszelConnectShelterStaff')\n );\n } else {\n return (\n credentialType === 'PetszelConnectShelterAdmin' ||\n credentialType === 'PetszelConnectShelterSiteAdmin' ||\n credentialType === 'PetszelConnectShelterStaff'\n );\n }\n } catch (error) {\n return false;\n }\n }\n return false;\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.isLoggedIn()) {\n if (this.redirectRoute === '/shelter-dashboard') {\n return true;\n } else {\n this.badCredentials = true;\n this.logout();\n return false;\n }\n } else {\n this.logout();\n return false;\n }\n }\n\n logout(): void {\n localStorage.removeItem('token');\n this.shelterService.clearShelterName(); // Clear shelter name on logout\n this.router.navigateByUrl('/');\n }\n\n redirectCallback(credentialType: string) {\n if (\n credentialType === 'PetszelConnectShelterAdmin' ||\n credentialType === 'PetszelConnectShelterSiteAdmin' ||\n credentialType === 'PetszelConnectShelterStaff'\n ) {\n this.router.navigateByUrl(this.redirectRoute).then((success) => {\n if (!success) {\n console.error('Navigation failed');\n }\n });\n }\n }\n\n logoutAndRedirect(): Observable {\n this.shelterService.clearShelterName();\n this.logout();\n return of(undefined);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationError, Router, RouterStateSnapshot } from '@angular/router';\nimport jwt_decode from 'jwt-decode';\nimport { NGXLogger } from 'ngx-logger';\nimport { Observable, of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthenticationGuardService {\n redirectRoute: string = '/staff-dashboard';\n badCredentials = false;\n private targetUrl: string | null = null;\n\n constructor(private router: Router, private logger: NGXLogger) {\n this.router.events.subscribe((event) => {\n if (event instanceof NavigationError) {\n console.error('Navigation error:', event.error);\n this.logger.error('Navigation error:', event.error);\n }\n });\n }\n\n isLoggedIn(redirect: boolean = false): boolean {\n const token = localStorage.getItem('token');\n if (token) {\n try {\n const decodedToken = jwt_decode(token);\n const credentialType = decodedToken['petszel-credentialtype'];\n if (Array.isArray(credentialType)) {\n return (\n credentialType.includes('PetszelStaff') ||\n credentialType.includes('PetszelAdmin')\n );\n } else {\n return (\n credentialType === 'PetszelStaff' ||\n credentialType === 'PetszelAdmin'\n );\n }\n } catch (error) {\n return false;\n }\n } else if (redirect) {\n // If there's no token and the redirect parameter is true, perform the redirect\n const savedTargetUrl = this.getTargetUrl(); // Use your custom method\n if (savedTargetUrl) {\n // Redirect the user to the saved target URL\n window.location.href = savedTargetUrl;\n }\n }\n return false;\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\n if (this.isLoggedIn()) {\n return true; // User is logged in, allow access to the route\n } else {\n // User is not logged in, save the target URL with a query parameter\n this.setTargetUrl(state.url);\n this.router.navigate(['/'], {\n queryParams: { redirect: state.url },\n });\n return false;\n }\n }\n\n redirectCallback(credentialType: any) {\n // Check if the credentialType is a string and matches one of the valid types\n const isValidString =\n typeof credentialType === 'string' &&\n (credentialType === 'PetszelStaff' || credentialType === 'PetszelAdmin');\n\n // Check if the credentialType is an array and contains at least one of the valid types\n const isValidArray =\n Array.isArray(credentialType) &&\n (credentialType.includes('PetszelStaff') || credentialType.includes('PetszelAdmin'));\n\n if (isValidString || isValidArray) {\n const savedTargetUrl = this.getTargetUrl(); // Get the saved target URL\n const targetUrl = savedTargetUrl || this.redirectRoute; // Use savedTargetUrl or fallback to redirectRoute\n\n this.router.navigateByUrl(targetUrl).then((success) => {\n if (!success) {\n this.logger.error('Navigation failed');\n }\n });\n }\n }\n\n getTargetUrl(): string | null {\n return localStorage.getItem('savedTargetUrl');\n }\n\n setTargetUrl(url: string): void {\n this.targetUrl = url;\n }\n\n // In AuthGuardService\n logoutAndRedirect(): Observable {\n // Perform the logout logic here, e.g., clearing token, redirecting to login page\n localStorage.removeItem('token'); // Remove the token\n this.router.navigateByUrl('/'); // Redirect to the login page\n return of(undefined);\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport jwt_decode from 'jwt-decode';\nimport { Observable, of } from 'rxjs';\nimport { setLoadState } from \"../shared-store/app-state.actions\";\nimport * as petActions from \"../shared-store/pet/pet.actions\";\nimport * as ownerActions from \"../shared-store/owner/owner.actions\";\nimport * as shelterActions from \"../shared-store/shelter/shelter.actions\"; // Import 'Observable' and 'of' from RxJS\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthGuardService {\n redirectRoute: string = '/owner-dashboard';\n badCredentials = false;\n\n constructor(private router: Router) {}\n\n isLoggedIn(): boolean {\n const token = localStorage.getItem('token');\n if (token) {\n try {\n const decodedToken = jwt_decode(token);\n const credentialType = decodedToken['petszel-credentialtype'];\n return credentialType === 'PetszelConnectClient';\n } catch (error) {\n return false;\n }\n }\n return false;\n }\n\n canActivate(): boolean {\n if (this.isLoggedIn()) {\n if (this.redirectRoute === '/owner-dashboard') {\n return true; // Allow access to the route\n } else {\n this.badCredentials = true;\n localStorage.removeItem('token'); // Remove the token since the authentication is not successful\n return false; // Block access to the route\n }\n } else {\n this.router.navigateByUrl('/'); // Redirect to the home URL\n return false; // Block access to the route\n }\n }\n\n redirectCallback(credentialType: string) {\n if (\n credentialType === 'PetszelConnectClient' &&\n this.redirectRoute === '/owner-dashboard'\n ) {\n localStorage.setItem('token', 'placeholder'); // Store a placeholder token\n this.router.navigateByUrl(this.redirectRoute);\n } else {\n this.badCredentials = true;\n localStorage.removeItem('token'); // Remove the token since the authentication is not successful\n this.router.navigateByUrl('/'); // Redirect to '/' for bad credentials\n }\n }\n\n // In AuthGuardService\n logoutAndRedirect(): Observable {\n localStorage.removeItem('token'); // Remove the token\n this.router.navigateByUrl('/'); // Redirect to the login page\n return of(undefined);\n }\n\n // setUserEmailFromToken(token: string): void {\n // try {\n // const decodedToken = jwt_decode(token);\n // const email =\n // decodedToken[\n // 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'\n // ];\n // const encodedEmail = btoa(email); // Base64 encode the email\n // localStorage.setItem('userEmail', encodedEmail);\n // } catch (error) {\n // console.error('Error decoding token: ', error);\n // }\n // }\n\n // getUserEmail(): string | null {\n // const encodedEmail = localStorage.getItem('userEmail');\n // return encodedEmail ? atob(encodedEmail) : null; // Base64 decode the email, or return null if not set\n // }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport function sharedLibraryConfigFactory(appConfig: any): any {\n const frontEndUrl = window.location.href;\n let apiUrl, applicationId, environmentType, gaTrackingId, gtmId;\n\n if (frontEndUrl.includes('localhost')) {\n environmentType = 'local';\n } else if (frontEndUrl.includes('dev')) {\n environmentType = 'development';\n } else if (frontEndUrl.includes('beta')) {\n environmentType = 'beta';\n } else {\n environmentType = 'production';\n }\n\n if (environmentType === 'local') {\n apiUrl = appConfig.dev.apiUrl;\n applicationId = appConfig.applicationId;\n gaTrackingId = appConfig.dev.gaTrackingId;\n } else if (environmentType === 'development') {\n apiUrl = appConfig.dev.apiUrl;\n applicationId = appConfig.applicationId;\n gaTrackingId = appConfig.dev.gaTrackingId;\n } else if (environmentType === 'beta') {\n apiUrl = appConfig.beta.apiUrl;\n applicationId = appConfig.applicationId;\n gaTrackingId = appConfig.beta.gaTrackingId;\n } else if (environmentType === 'production') {\n apiUrl = appConfig.prod.apiUrl;\n applicationId = appConfig.applicationId;\n gaTrackingId = appConfig.prod.gaTrackingId;\n gtmId = appConfig.prod.gtmId;\n }\n\n return {\n apiUrl,\n applicationId,\n environmentType,\n gaTrackingId \n };\n}\n\nexport const SHARED_LIBRARY_CONFIG = new InjectionToken('sharedLibraryConfig');\n\nexport const sharedLibraryConfigProvider = {\n provide: SHARED_LIBRARY_CONFIG,\n useFactory: sharedLibraryConfigFactory,\n deps: ['appConfig'],\n};\n","import { Injectable, Inject } from '@angular/core';\nimport { SHARED_LIBRARY_CONFIG } from './shared.factory';\nimport { NGXLogger } from 'ngx-logger';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SharedLibraryService {\n constructor(@Inject(SHARED_LIBRARY_CONFIG) private sharedLibraryConfig: any, private logger: NGXLogger) {\n this.logger.log('Shared Library Config:', sharedLibraryConfig);\n this.logger.log('Backend API URL:', sharedLibraryConfig.apiUrl);\n this.checkIfProductionUrl();\n }\n\n getSharedLibraryConfig(): any {\n return this.sharedLibraryConfig;\n }\n\n private checkIfProductionUrl(): void {\n const isProductionUrl = this.sharedLibraryConfig.environmentType === 'production';\n this.logger.log('Is Production URL:', isProductionUrl);\n }\n}\n\n","
\n
\n
\n \n \n \n \n \n \n
\n
\n Please visit Petszel to learn more and sign up for future access.\n
\n \n
\n Are you a shelter, rescue, or pet care provider? Please visit Petszel to learn more.\n
\n
\n
\n
\n
\n \n
\n
\n \n

\n {{ isOwnerApplication ? 'Pet Parent Login' : (isShelterApplication ? 'Shelter & Rescue Login' : 'Staff Login') }}\n

\n
\n
\n
\n \n
\n \n
*
\n
\n
\n \n
\n \n Invalid Entry - Please re-enter field or fill it out to proceed\n
\n
\n
\n
\n
\n
\n \n
\n \n
*
\n
\n
\n
\n\n \n \n
\n
\n \n Invalid credentials. Please check your username and password.\n
\n
\n
\n
\n The username or password you entered was incorrect.\n
\n
\n \n \n \n \n \n \n \n \n \n \n\n
\n
\n An error has occurred, please try again. If the issue persists, please\n contact support@petszel.com.\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { NGXLogger } from 'ngx-logger';\nimport { HttpClient } from '@angular/common/http';\nimport jwt_decode from 'jwt-decode';\nimport { AuthGuard } from 'projects/petszel-shelter/src/app/service/authentication-guard.service';\nimport { SharedLibraryService } from '../services/shared.config';\nimport { AuthenticationGuardService } from 'projects/petszel-staff/src/app/service/authentication-guard.service';\nimport { AuthGuardService } from 'projects/petszel-owner/src/app/service/authentication-guard.service';\nimport { domainValidatorForCredentials } from '../services/username-validator-staff';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { appConfig as appConfigOwner } from 'projects/petszel-owner/src/owner.config';\nimport { appConfig as appConfigShelter } from 'projects/petszel-shelter/src/shelter.config';\n@Component({\n selector: 'lib-petszel-login',\n templateUrl: './petszel-login.component.html',\n styleUrls: ['./petszel-login.component.css'],\n})\nexport class PetszelLoginComponent {\n loginForm!: FormGroup;\n submitted = false;\n isOnboardingStarted = false;\n credentialType: string | undefined;\n badCredentials = false;\n @Input() newUser!: any[];\n @Input() user!: any[];\n @Input() currentApplication!: string;\n showErrorBanner = false;\n targetUrl: string | null = null;\n isOwnerApplication: boolean = false;\n isShelterApplication: boolean = false;\n hidePassword = true;\n isMobile!: boolean;\n environmentConfig: any;\n\n constructor(\n private http: HttpClient,\n private logger: NGXLogger,\n private formBuilder: FormBuilder,\n private router: Router,\n private authGuard: AuthGuard,\n private staffAuthGuard: AuthenticationGuardService,\n private ownerAuthGuard: AuthGuardService,\n public sharedLibraryService: SharedLibraryService,\n private deviceDetectorService: DeviceDetectorService,\n ) {}\n\n ngOnInit(): void {\n if (this.currentApplication === 'owner') {\n this.environmentConfig = appConfigOwner;\n this.isOwnerApplication = true;\n this.isShelterApplication = false;\n } else if (this.currentApplication === 'shelter') {\n this.environmentConfig = appConfigShelter;\n this.isShelterApplication = true;\n this.isOwnerApplication = false;\n } else {\n }\n\n this.isMobile = this.deviceDetectorService.isMobile();\n const getSharedLibraryConfig: { applicationId: string } =\n this.sharedLibraryService.getSharedLibraryConfig();\n const applicationId: string = getSharedLibraryConfig.applicationId;\n this.loginForm = this.formBuilder.group({\n applicationId: [applicationId],\n username: [\n '',\n [\n Validators.compose([\n Validators.email,\n Validators.required,\n domainValidatorForCredentials('petszel.com', [\n 'PetszelStaff',\n 'PetszelAdmin',\n ]),\n ]),\n ],\n ],\n password: [\n '',\n [\n Validators.compose([\n Validators.required,\n Validators.pattern('(?=.*[0-9]).{7,}'),\n ]),\n ],\n ],\n credentialType: [''],\n });\n this.isOwnerApplication = applicationId === 'owner';\n }\n\n togglePasswordVisibility(): void {\n this.hidePassword = !this.hidePassword;\n const passwordInput = document.getElementById(\n 'password'\n ) as HTMLInputElement;\n passwordInput.type = this.hidePassword ? 'password' : 'text';\n }\n\n makePostRequest() {\n const url =\n this.sharedLibraryService.getSharedLibraryConfig().apiUrl + 'Authorize';\n const applicationId =\n this.sharedLibraryService.getSharedLibraryConfig().applicationId;\n this.logger.log(applicationId);\n const data = { ...this.loginForm.value, applicationId };\n\n this.http\n .post<{ isSuccess: boolean; token: string; expiration: string }>(\n url,\n data\n )\n .subscribe(\n (response) => {\n if (\n response.isSuccess &&\n response.token &&\n new Date(response.expiration) > new Date()\n ) {\n try {\n const decodedToken = jwt_decode(response.token);\n\n let credentials = decodedToken['petszel-credentialtype'];\n if (!Array.isArray(credentials)) {\n credentials = [credentials];\n }\n\n // Define roles in order of priority\n const rolePriority = [\n 'PetszelAdmin',\n 'PetszelStaff',\n 'PetszelConnectShelterAdmin',\n 'PetszelConnectShelterSiteAdmin',\n 'PetszelConnectShelterStaff',\n 'PetszelConnectClient',\n ];\n\n for (let role of rolePriority) {\n if (credentials.includes(role)) {\n this.handleCredential(role, applicationId, response.token);\n return;\n }\n }\n } catch (error) {\n this.handleBadCredentials();\n }\n // If the user is not logged in, store the target URL\n if (!localStorage.getItem('token') && this.targetUrl) {\n localStorage.setItem('targetUrl', this.targetUrl);\n }\n } else {\n this.handleBadCredentials();\n }\n\n // Log authentication events\n if (!this.badCredentials) {\n this.logger.log('User login successful', {\n username: this.loginForm.value.username,\n });\n } else {\n this.logger.error('User login failed', {\n username: this.loginForm.value.username,\n });\n }\n },\n (error) => {\n this.logger.error(error);\n if (error.status === 400 || 503) {\n this.handleBadCredentials();\n }\n }\n );\n }\n\n handleCredential(credential: string, applicationId: string, token: string) {\n switch (credential) {\n case 'PetszelStaff':\n case 'PetszelAdmin':\n this.staffAuthGuard.redirectCallback(credential);\n localStorage.setItem('token', token);\n break;\n case 'PetszelConnectShelterAdmin':\n case 'PetszelConnectShelterSiteAdmin':\n case 'PetszelConnectShelterStaff':\n if (applicationId === 'shelter') {\n this.authGuard.redirectCallback(credential);\n localStorage.setItem('token', token);\n } else {\n this.authGuard.redirectCallback(credential);\n }\n break;\n case 'PetszelConnectClient':\n if (\n this.ownerAuthGuard.redirectRoute === '/owner-dashboard' &&\n applicationId === 'owner'\n ) {\n this.ownerAuthGuard.redirectCallback(credential);\n localStorage.setItem('token', token);\n } else {\n this.badCredentials = true;\n localStorage.removeItem('token');\n this.router.navigateByUrl('/');\n }\n break;\n default:\n this.badCredentials = true;\n localStorage.removeItem('token');\n this.router.navigateByUrl('/');\n }\n }\n\n handleBadCredentials() {\n this.badCredentials = true;\n this.showErrorBanner = true;\n localStorage.removeItem('token');\n // this.router.navigateByUrl('/');\n }\n\n logout() {\n localStorage.removeItem('token'); // Clear the token from client-side storage\n this.router.navigateByUrl('/'); // Redirect to the home URL\n\n // Log user logout event\n this.logger.log('User logout', { username: this.loginForm.value.username });\n }\n\n get login() {\n return this.loginForm.controls;\n }\n\n onLogin() {\n this.showErrorBanner = false;\n if (this.loginForm?.invalid) {\n return;\n }\n\n // Store the target URL before making the POST request\n this.targetUrl = localStorage.getItem('targetUrl');\n\n this.makePostRequest();\n this.submitted = true;\n this.logger.log(this.submitted);\n }\n\n clearUsernameError() {\n this.loginForm.controls['username'].setErrors(null);\n }\n\n clearPasswordError() {\n this.loginForm.controls['password'].setErrors(null);\n }\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\nexport function domainValidatorForCredentials(\n domain: string,\n allowedCredentials: string[]\n): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n const username: string = control.value;\n const credentialTypeControl = control.parent?.get('credentialType');\n const credentialType = credentialTypeControl?.value;\n const isAllowedCredential = allowedCredentials.includes(credentialType || '');\n\n if (!isAllowedCredential && !username.endsWith(`@${domain}`)) {\n return { badcredentials: true };\n }\n return null;\n };\n}\n\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { NGXLogger } from 'ngx-logger';\n\n@Component({\n selector: 'lib-confirm-reset',\n templateUrl: './confirm-reset.component.html',\n styleUrls: ['./confirm-reset.component.css']\n})\nexport class ConfirmResetComponent {\n constructor(private router: Router, private activatedRoute: ActivatedRoute, private logger: NGXLogger) { }\n\n submitted = true;\n\n ngOnInit() {\n const resetId = this.activatedRoute.snapshot.paramMap.get('id');\n this.logger.log('Reset ID:', resetId);\n\n if (resetId !== null) {\n const existingResetId = localStorage.getItem('resetId');\n if (existingResetId !== resetId) {\n localStorage.setItem('resetId', resetId);\n }\n }\n\n setTimeout(() => {\n this.router.navigate(['/resetpassword']);\n }, 3000); // 3 seconds\n }\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n","\nimport { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\n\nexport class PasswordValidator {\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (!control.value) {\n // if control is empty return no error\n return null as any;\n }\n \n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value);\n \n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null as any : error;\n };\n }\n\n static passwordMatchValidator(control: AbstractControl) {\n const passwordControl = control.get('newPassword');\n const confirmPasswordControl = control.get('confirmPasswordReset');\n \n if (!passwordControl || !confirmPasswordControl) {\n return null;\n }\n \n const password: string = passwordControl.value;\n const confirmPasswordReset: string = confirmPasswordControl.value;\n \n if (password !== confirmPasswordReset) {\n confirmPasswordControl.setErrors({ NoPasswordMatch: true });\n } else {\n confirmPasswordControl.setErrors(null);\n }\n \n return null;\n }\n }","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { SharedLibraryService } from '../services/shared.config'; // Import the SharedLibraryService\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmResetService {\n\n constructor(\n private http: HttpClient,\n private sharedLibraryService: SharedLibraryService // Inject the SharedLibraryService\n ) {}\n\n // reset password email\n postResetPassword(data: any) {\n const apiUrl = this.sharedLibraryService.getSharedLibraryConfig().apiUrl; // Get the API URL from the sharedLibraryConfig\n return this.http.post(apiUrl + 'Authorize/ResetPassword', data);\n }\n\n // Update password\n updatePassword(data: any) {\n const apiUrl = this.sharedLibraryService.getSharedLibraryConfig().apiUrl; // Get the API URL from the sharedLibraryConfig\n return this.http.post(apiUrl + 'Authorize/UpdatePassword', data);\n }\n\n}\n","
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n

Enter Password

\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n\n \n \n \n
\n
\n\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n\n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n \n
\n
\n\n
\n
\n
\n
\n Password created, please check your email to login!\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NGXLogger } from 'ngx-logger';\nimport { PasswordValidator } from '../classes/password';\nimport { ConfirmResetService } from '../services/confirm-reset.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-petszel-password-reset',\n templateUrl: './petszel-password-reset.component.html',\n styleUrls: ['./petszel-password-reset.component.css']\n})\nexport class PetszelPasswordResetComponent {\n formResetPassword!: FormGroup;\n submitted = false;\n fieldTextType: boolean = false;\n showPasswordRequirements: boolean = false; \n isSmallScreen: boolean = false; \n showSuccessBanner: boolean = false;\n\n constructor(\n private formBuilder: FormBuilder, \n private logger: NGXLogger,\n private postPassword: ConfirmResetService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.checkScreenSize();\n this.formResetPassword = this.formBuilder.group({\n newPassword: ['', Validators.compose([\n Validators.required,\n PasswordValidator.patternValidator(/\\d/, { hasNumber: true }),\n PasswordValidator.patternValidator(/[A-Z]/, { hasCapitalCase: true }),\n PasswordValidator.patternValidator(/[a-z]/, { hasSmallCase: true }),\n Validators.minLength(10)]),\n ],\n confirmPasswordReset: ['', Validators.compose([Validators.required, Validators.minLength(10)])]\n },\n {\n validator: PasswordValidator.passwordMatchValidator\n });\n }\n\n toggleFieldTextType() {\n this.fieldTextType = !this.fieldTextType;\n this.showPasswordRequirements = false;\n }\n\n showRequirements() {\n const passwordControl = this.formResetPassword.get('password');\n if (passwordControl && passwordControl.value) {\n this.showPasswordRequirements = true; // Show password requirements when password has a value\n }\n }\n\ncheckScreenSize() {\n this.isSmallScreen = window.innerWidth < 576;\n}\n \nonSubmit() {\n this.logger.log('Submit button clicked');\n if (this.formResetPassword.invalid) {\n return;\n }\n const newPassword = this.formResetPassword.value.newPassword;\n const resetId = localStorage.getItem('resetId');\n const data = {\n newPassword: newPassword,\n resetId: resetId\n }\n \n this.postPassword.updatePassword(data).subscribe(\n result => {\n this.logger.log(result);\n this.displaySuccessBanner();\n // Navigate to the desired URL after password update\n // this.router.navigate(['/']);\n },\n error => {\n this.logger.error(error); // Log the error message\n }\n );\n}\n\ndisplaySuccessBanner() {\n this.showSuccessBanner = true;\n\n // After displaying the banner for 5 seconds, hide it and toggle the edit mode off\n setTimeout(() => {\n this.showSuccessBanner = false;\n // You might also need to manually trigger change detection if the view doesn't update\n }, 5000);\n}\n}\n\n","\n \n
\n
\n \n
\n
\n
\n
\n

Reset Password

\n

Create Password

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n\n","import { Component } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { NGXLogger } from 'ngx-logger';\nimport { ConfirmResetService } from '../services/confirm-reset.service';\n\n@Component({\n selector: 'lib-reset-password-email',\n templateUrl: './reset-password-email.component.html',\n styleUrls: ['./reset-password-email.component.css']\n})\nexport class ResetPasswordEmailComponent {\n formResetEmail!: FormGroup;\n submitted = false;\n resetIdExists!: boolean;\n\n constructor(\n private formBuilder: FormBuilder,\n private logger: NGXLogger,\n private postReset: ConfirmResetService\n ){ this.resetIdExists = !!localStorage.getItem('resetId');\n}\n\n ngOnInit(): void {\n this.formResetEmail = this.formBuilder.group(\n {\n username: ['', [Validators.compose([Validators.required, Validators.email])]],\n },\n );\n }\n\n // submit form and check if valid\n onSubmit(): void {\n this.submitted = true;\n \n if (this.formResetEmail.invalid) {\n return;\n }\n this.postReset.postResetPassword(this.formResetEmail.value).subscribe((result)=>{\n this.logger.log(result);\n });\n this.formResetEmail.reset();\n alert('Please check your email to reset your password.')\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LogoutService {\n private logoutTimeout: any;\n\n constructor(private router: Router) {\n this.logoutTimeout = null;\n }\n\n logoutAfterDelay(delay: number) {\n // Clear any existing timeout to prevent multiple logout calls\n this.clearLogoutTimeout();\n // Set the new logout timeout\n this.logoutTimeout = setTimeout(() => {\n this.clearAllLocalStorage(); // Clear all local storage items\n\n this.logout();\n }, delay);\n }\n\n logout() {\n this.clearAllLocalStorage(); // Clear all local storage items\n\n // Redirect to the desired route\n this.router.navigateByUrl('/');\n }\n\n logoutBtn() {\n this.clearLogoutTimeout();\n\n this.clearAllLocalStorage(); // Clear all local storage items\n\n this.router.navigateByUrl('/');\n }\n\n private clearLogoutTimeout() {\n if (this.logoutTimeout) {\n clearTimeout(this.logoutTimeout);\n this.logoutTimeout = null;\n }\n }\n\n private clearAllLocalStorage() {\n localStorage.clear(); // Clears all items in local storage\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BusinessNameService } from 'projects/petszel-owner/src/app/service/businessName.service';\n\n@Component({\n selector: 'lib-petszel-powered',\n templateUrl: './petszel-powered.component.html',\n styleUrls: ['./petszel-powered.component.css']\n})\nexport class PetszelPoweredComponent {\n @Input() shelterLogoSrc!: any;\n @Input() ShelterAlt!: string;\n @Input() size: 'small' | 'large' = 'small';\n\n constructor(private router: Router){}\n\n ngOnInit(){\n }\n\n navigateToShelter() {\n // Opens the URL in a new tab\n this.router.navigate(['/organization']);\n }\n \n\n get petszelLogoSrc(): string {\n return this.size === 'small' ? '../../assets/images/petszelPoweredByLogo.png' : '../../assets/images/petszelPoweredByLogo.png';\n } \n}\n","
\n
\n
\n \n \n
\n
\n
\n
\n
\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-petszel-powered-nobrand',\n templateUrl: './petszel-powered-nobrand.component.html',\n styleUrls: ['./petszel-powered-nobrand.component.css']\n})\nexport class PetszelPoweredNobrandComponent {\n @Input() shelterLogoSrc!: any;\n @Input() ShelterAlt!: string;\n @Input() size: 'small' | 'large' = 'small';\n brandingDays!: any;\n}\n","\n \n ","\n
\n
\n \n \n\n
\n
\n \n \n \n = this.brandingDays)\">\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n\n\n
\n
\n
\n
\n \n \n \n \n = this.brandingDays\">\n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
    \n
    \n \n
    \n \n
  • \n \n {{ item.label }}\n \n \n \n
      \n
    • \n \n {{ subItem.label }}\n \n
    • \n
    \n
    \n
  • \n \n
    \n \n
    \n
    \n \n
  • \n \n {{ item.label }}\n \n
  • \n
    \n
    \n \n
    \n
    \n \n
    \n
  • \n \n \n {{ item.label }}\n \n \n \n \n {{ item.label }}\n \n \n
  • \n
    \n
    \n
    \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n","import {\n Component,\n Input,\n OnInit,\n ElementRef,\n ViewChild,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { LogoutService } from '../services/logout.service';\nimport { AuthGuardService } from 'projects/petszel-owner/src/app/service/authentication-guard.service';\nimport { AuthGuard } from 'projects/petszel-shelter/src/app/service/authentication-guard.service';\nimport { AuthenticationGuardService } from 'projects/petszel-staff/src/app/service/authentication-guard.service';\nimport { NGXLogger } from 'ngx-logger';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport * as bootstrap from 'bootstrap';\n\n@Component({\n selector: 'lib-navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css'],\n})\nexport class NavigationComponent implements OnInit {\n @Input() navItems!: any[];\n @Input() item: any;\n @Input() navItems2!: any[];\n @Input() navItems3!: any[];\n @Input() shelterLogoSrc!: string;\n @Input() size!: string;\n @Input() brandingDays!: number;\n @Input() daysSinceAdoption!: number;\n @Input() isApplication1!: boolean;\n @ViewChild('navbarNav', { static: false }) menuElement!: ElementRef;\n @Output() actionTriggered = new EventEmitter();\n isMenuOpen = false;\n isLoggedIn: boolean = false;\n isOffcanvasOpen = false;\n isNavbarCollapsed = true;\n @Input() logo: any;\n\n constructor(\n private logoutService: LogoutService,\n private authGuard: AuthGuard,\n private authGuardService: AuthGuardService,\n private authenticationGuardService: AuthenticationGuardService,\n private logger: NGXLogger,\n private router: Router\n ) {\n this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe(() => {\n this.isMenuOpen = false; // Close the menu on any navigation end\n });\n }\n\n ngOnInit() {\n this.isLoggedIn = this.checkIsLoggedIn();\n this.logoutService.logoutAfterDelay(4000 * 60 * 60); // Logout after 4 hours\n }\n\n performAction(action: string) {\n this.actionTriggered.emit(action);\n\n switch (action) {\n case 'openOffcanvas':\n this.openOffcanvas();\n break;\n }\n }\n\n performItemClick(item: any, event: MouseEvent) {\n if (item.action) {\n this.performActionSm(item.action);\n } else {\n this.isMenuOpen = false;\n }\n event.preventDefault();\n }\n\n performActionSm(action: string) {\n this.toggleMenu();\n\n switch (action) {\n case 'openOffcanvas':\n this.openOffcanvasSm();\n break;\n }\n }\n\n openOffcanvasSm() {\n const offcanvasElement = document.getElementById(\n 'emergencyOffcanvasBottom'\n );\n\n if (offcanvasElement instanceof Element) {\n const bsOffcanvas = new bootstrap.Offcanvas(offcanvasElement);\n bsOffcanvas.show();\n } else {\n console.error('Offcanvas element not found');\n }\n }\n\n openOffcanvas() {\n const offcanvasElement = document.getElementById('emergencyOffcanvasRight');\n if (offcanvasElement instanceof Element) {\n const bsOffcanvas = new bootstrap.Offcanvas(offcanvasElement);\n bsOffcanvas.show();\n } else {\n console.error('Offcanvas element not found');\n }\n }\n\n logoutBtn() {\n this.logoutService.logoutBtn();\n }\n\n checkIsLoggedIn(): boolean {\n return (\n this.authGuardService.isLoggedIn() ||\n this.authGuard.isLoggedIn() ||\n this.authenticationGuardService.isLoggedIn()\n );\n }\n\n onLinkClick(queryParams: any) {\n if (queryParams) {\n this.toggleNavbar();\n this.isMenuOpen = false;\n }\n }\n\n toggleMenu() {\n if (this.isMenuOpen) {\n this.closeHamburger();\n }\n if (this.menuElement && this.menuElement.nativeElement) {\n this.isMenuOpen = !this.isMenuOpen;\n if (!this.isMenuOpen) {\n this.menuElement.nativeElement.classList.add('show');\n } else {\n this.menuElement.nativeElement.classList.remove('show');\n }\n } else {\n console.warn('Menu element or its native element is not available');\n }\n }\n\n closeHamburger() {\n this.isMenuOpen = false;\n }\n\n closeOffcanvas() {\n this.isOffcanvasOpen = false;\n }\n\n toggleNavbar() {\n this.isNavbarCollapsed = !this.isNavbarCollapsed;\n\n if (this.isOffcanvasOpen) {\n this.closeOffcanvas();\n }\n this.isMenuOpen = !this.isMenuOpen;\n const navbarToggler = document.getElementById('navbarToggler');\n if (navbarToggler) {\n if (this.isMenuOpen) {\n navbarToggler.classList.remove('collapsed');\n } else {\n navbarToggler.classList.add('collapsed');\n }\n }\n\n if (this.menuElement && this.menuElement.nativeElement) {\n if (this.isMenuOpen) {\n this.menuElement.nativeElement.classList.add('show');\n } else {\n setTimeout(() => {\n this.menuElement.nativeElement.classList.remove('show');\n }, 0);\n }\n }\n }\n\n toggleExpansion(item: any): void {\n if (item.subItems) {\n item.isExpanded = !item.isExpanded;\n this.logger.log(item.label + ' isExpanded:', item.isExpanded);\n }\n }\n\n toggleSubMenu(item: any, event: MouseEvent): void {\n item.isExpanded = !item.isExpanded;\n event.preventDefault();\n event.stopPropagation();\n }\n}\n","\n
\n
\n \n
\n
","import {\n Component,\n Input,\n OnInit,\n ElementRef,\n ViewChild,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { AuthGuardService } from 'projects/petszel-owner/src/app/service/authentication-guard.service';\nimport { AuthGuard } from 'projects/petszel-shelter/src/app/service/authentication-guard.service';\nimport { AuthenticationGuardService } from 'projects/petszel-staff/src/app/service/authentication-guard.service';\nimport * as bootstrap from 'bootstrap';\nimport { LogoutService } from '../services/logout.service';\n@Component({\n selector: 'lib-footer-nav',\n templateUrl: './footer-nav.component.html',\n styleUrls: ['./footer-nav.component.css']\n})\nexport class FooterNavComponent implements OnInit {\n @Input() navItems!: any[];\n @Input() item: any;\n @Input() navItems2!: any[];\n @Input() navItems3!: any[];\n @Input() shelterLogoSrc!: string;\n @Input() size!: string;\n @Input() brandingDays!: number;\n @Input() daysSinceAdoption!: number;\n @Input() isApplication1!: boolean;\n @ViewChild('navbarNav', { static: false }) menuElement!: ElementRef;\n @Output() actionTriggered = new EventEmitter();\n isMenuOpen = false;\n isLoggedIn: boolean = false;\n isOffcanvasOpen = false;\n isNavbarCollapsed = true;\n @Input() logo: any;\n\n constructor(\n private logoutService: LogoutService,\n private authGuard: AuthGuard,\n private authGuardService: AuthGuardService,\n private authenticationGuardService: AuthenticationGuardService,\n ) {\n }\n\n ngOnInit() {\n this.isLoggedIn = this.checkIsLoggedIn();\n\n this.logoutService.logoutAfterDelay(4000 * 60 * 60); // Logout after 4 hours\n }\n\n performAction(action: string) {\n this.actionTriggered.emit(action);\n\n switch (action) {\n case 'openOffcanvas':\n this.openOffcanvas();\n break;\n }\n }\n\n performItemClick(item: any, event: MouseEvent) {\n if (item.action) {\n // If there is a specific action, perform it\n this.performActionSm(item.action);\n } else {\n // Close the hamburger menu\n this.isMenuOpen = false;\n\n }\n event.preventDefault();\n }\n\n performActionSm(action: string) {\n\n switch (action) {\n case 'openOffcanvas':\n this.openOffcanvasSm();\n break;\n }\n }\n\n openOffcanvasSm() {\n const offcanvasElement = document.getElementById(\n 'emergencyOffcanvasBottom'\n );\n\n if (offcanvasElement instanceof Element) {\n const bsOffcanvas = new bootstrap.Offcanvas(offcanvasElement);\n bsOffcanvas.show();\n } else {\n console.error('Offcanvas element not found');\n }\n }\n\n openOffcanvas() {\n const offcanvasElement = document.getElementById('emergencyOffcanvasRight');\n if (offcanvasElement instanceof Element) {\n const bsOffcanvas = new bootstrap.Offcanvas(offcanvasElement);\n bsOffcanvas.show();\n } else {\n console.error('Offcanvas element not found');\n }\n }\n\n checkIsLoggedIn(): boolean {\n return (\n this.authGuardService.isLoggedIn() ||\n this.authGuard.isLoggedIn() ||\n this.authenticationGuardService.isLoggedIn()\n );\n }\n\n closeOffcanvas() {\n this.isOffcanvasOpen = false;\n }\n}\n","\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-primary-btn',\n templateUrl: './primary-btn.component.html',\n styleUrls: ['./primary-btn.component.css']\n})\nexport class PrimaryBtnComponent {\n @Input() primaryBtn!: string;\n @Input() buttonText!: string;\n @Input() showImage!: boolean;\n @Input() imageSrc!: string;\n @Input() imageAlt!: string;\n @Input() btnImg: string = 'btnImg';\n @Input() disabled: boolean = false;\n\n}\n","
\n {{ message | slice : 0 : 55 }}\n support@petszel.com.\n
\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-error-message',\n templateUrl: './error-message.component.html',\n styleUrls: ['./error-message.component.css']\n})\nexport class ErrorMessageComponent {\n @Input() message: string = 'Oops, something went wrong. Please try again or contact support@petszel.com.';\n}\n"],"x_google_ignoreList":[]}