{"version":3,"file":"main.09829efa19adc21e.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/accordion/accordion.component.ts","./src/app/components/accordion/accordion.component.html","./src/app/components/content-short/content-short.component.ts","./src/app/components/content-short/content-short.component.html","./src/app/components/definition/definition.component.ts","./src/app/components/definition/definition.component.html","./src/app/components/favorite-button/favorite-button.component.ts","./src/app/components/favorite-button/favorite-button.component.html","./src/app/components/image/image.component.ts","./src/app/components/image/image.component.html","./src/app/components/modal-error/modal-error.component.ts","./src/app/components/modal-error/modal-error.component.html","./src/app/components/nav-search-bar/nav-search-bar.component.ts","./src/app/components/nav-search-bar/nav-search-bar.component.html","./src/app/components/search-box/search-box.component.ts","./src/app/components/search-box/search-box.component.html","./src/app/components/tabs/tabs.component.ts","./src/app/components/tabs/tabs.component.html","./src/app/components/title/title.component.ts","./src/app/components/title/title.component.html","./src/app/helpers/pwaToastGetter.ts","./src/app/helpers/pwaToastSetter.ts","./src/app/helpers/tokenGetter.ts","./src/app/helpers/tokenSetter.ts","./src/app/layout/header/header-nav/header-nav.component.ts","./src/app/layout/header/header-nav/header-nav.component.html","./src/app/layout/header/header.component.ts","./src/app/layout/header/header.component.html","./src/app/layout/loading/loading.component.ts","./src/app/layout/loading/loading.component.html","./src/app/layout/menu-dropdown/menu-dropdown.component.ts","./src/app/layout/menu-dropdown/menu-dropdown.component.html","./src/app/layout/nav-bottom/nav-bottom.component.ts","./src/app/layout/nav-bottom/nav-bottom.component.html","./src/app/models/condition.model.ts","./src/app/models/content.model.ts","./src/app/models/environment.ts","./src/app/models/ingredient.model.ts","./src/app/models/user.model.ts","./src/app/pages/about-ascp/about-ascp.component.ts","./src/app/pages/about-ascp/about-ascp.component.html","./src/app/pages/about-mark-lees/about-mark-lees.component.ts","./src/app/pages/about-mark-lees/about-mark-lees.component.html","./src/app/pages/about-skinpro/about-skinpro.component.ts","./src/app/pages/about-skinpro/about-skinpro.component.html","./src/app/pages/access-denied/access-denied.component.ts","./src/app/pages/access-denied/access-denied.component.html","./src/app/pages/add-to-home-screen/add-to-home-screen.component.ts","./src/app/pages/add-to-home-screen/add-to-home-screen.component.html","./src/app/pages/conditions/conditions.component.ts","./src/app/pages/conditions/conditions.component.html","./src/app/pages/content/content-list/content-list.component.ts","./src/app/pages/content/content-list/content-list.component.html","./src/app/pages/content/content-saved/content-saved.component.ts","./src/app/pages/content/content-saved/content-saved.component.html","./src/app/pages/content/content-search/content-search-box/content-search-box.component.ts","./src/app/pages/content/content-search/content-search-box/content-search-box.component.html","./src/app/pages/content/content-search/content-search.component.ts","./src/app/pages/content/content-search/content-search.component.html","./src/app/pages/faq/faq.component.ts","./src/app/pages/faq/faq.component.html","./src/app/pages/ingredients/ingredients.component.ts","./src/app/pages/ingredients/ingredients.component.html","./src/app/pages/login/login-form/login-form.component.ts","./src/app/pages/login/login-form/login-form.component.html","./src/app/pages/login/login.component.ts","./src/app/pages/login/login.component.html","./src/app/route-animation.ts","./src/app/services/auth-guard.service.ts","./src/app/services/condition.service.ts","./src/app/services/connection.service.ts","./src/app/services/content.service.ts","./src/app/services/favorite-content.service.ts","./src/app/services/helpers.ts","./src/app/services/ingredient.service.ts","./src/app/services/jwt.interceptor.ts","./src/app/services/recent-content.service.ts","./src/app/services/saved-content.service.ts","./src/app/services/user.service.ts","./src/app/tokens/deploy-url.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AboutAscpComponent } from './pages/about-ascp/about-ascp.component';\nimport { AboutMarkLeesComponent } from './pages/about-mark-lees/about-mark-lees.component';\nimport { AccessDeniedComponent } from './pages/access-denied/access-denied.component';\nimport { FaqComponent } from './pages/faq/faq.component';\nimport { AddToHomeScreenComponent } from './pages/add-to-home-screen/add-to-home-screen.component';\n\nimport { ConditionsComponent } from './pages/conditions/conditions.component';\nimport { ContentListComponent } from './pages/content/content-list/content-list.component';\nimport { ContentSavedComponent } from './pages/content/content-saved/content-saved.component';\nimport { ContentSearchBoxComponent } from './pages/content/content-search/content-search-box/content-search-box.component';\nimport { ContentSearchComponent } from './pages/content/content-search/content-search.component';\nimport { IngredientsComponent } from './pages/ingredients/ingredients.component';\nimport { LoginComponent } from './pages/login/login.component';\nimport { AuthGuardService } from './services/auth-guard.service';\n\nconst routes: Routes = [\n { path: '', redirectTo: 'search', pathMatch: 'full' },\n { path: 'login', component: LoginComponent, data: {} },\n {\n path: 'search',\n component: ContentSearchComponent,\n canActivate: [AuthGuardService],\n data: { animation: 'contentnode' },\n children: [\n { path: '', component: ContentSearchBoxComponent, data: { animation: 'contentnode' } },\n { path: 'list/:type', component: ContentListComponent, data: { animation: 'contentnode' } },\n ]\n },\n { path: 'about-ascp', component: AboutAscpComponent },\n { path: 'about-mark-lees', component: AboutMarkLeesComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'using-skinpro', component: FaqComponent },\n { path: 'add-to-home-screen', component: AddToHomeScreenComponent },\n { path: 'conditions/:name', component: ConditionsComponent, canActivate: [AuthGuardService], data: { animation: '' } },\n { path: 'ingredients/:name', component: IngredientsComponent, canActivate: [AuthGuardService], data: { animation: '' } },\n { path: 'recent', component: ContentSavedComponent, canActivate: [AuthGuardService], data: { title: 'Recent Conditions & Ingredients', type: 'recent' } },\n { path: 'favorite', component: ContentSavedComponent, canActivate: [AuthGuardService], data: { title: 'Saved Conditions & Ingredients', type: 'favorite' } }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, ElementRef, HostBinding, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationEnd, ResolveEnd, Router } from '@angular/router';\nimport { SwUpdate } from '@angular/service-worker';\nimport { ToastrService } from 'ngx-toastr';\nimport { Observable } from 'rxjs';\nimport { filter, map, share, take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\nimport { AuthGuardService } from './services/auth-guard.service';\nimport { UserService } from './services/user.service';\nimport { slideInAnimation } from './route-animation';\nimport { tokenSetter } from './helpers/tokenSetter';\n\ndeclare const gtag: Function;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n animations: [ slideInAnimation ]\n})\nexport class AppComponent implements OnInit, OnDestroy {\n\n private sink: SubSink = new SubSink();\n\n public hideSearch: boolean = false;\n public hideMenu: boolean = true;\n public guardLoader$: Observable = new Observable;\n public version: string = '1.0.0';\n\n private State$ = this.router.events.pipe(\n filter(event => event instanceof ResolveEnd),\n map((event: ResolveEnd) => event.url),\n map(url => url.startsWith('/ingredient') || url.startsWith('/condition') || url.startsWith('/login')),\n share(),\n );\n\n public HeaderClass$ = this.State$.pipe(map(state => state ? 'nav-background-img' : 'nav-background-md'));\n\n @HostBinding('class')\n public htmlClass: string = 'web-background-md';\n\n private token: string;\n\n constructor(\n element: ElementRef,\n private router: Router,\n private user: UserService,\n private guard: AuthGuardService,\n private toastr: ToastrService,\n private updates: SwUpdate) {\n this.token = (element.nativeElement as HTMLElement).getAttribute('token'); //<-- Uncomment this line and erase below for production; this is to bypass the login screen\n //this.token = \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4YTBkMDMzNS1iMWI2LTQ1NDAtYjczZC03NWMzYTk2YWM5NjEiLCJuYW1lIjoiand0OjEwMjQ5NTEiLCJnaXZlbl9uYW1lIjoiRHJldyIsImZhbWlseV9uYW1lIjoiWmFybiIsIm5pY2tuYW1lIjoiRHJldyIsImVtYWlsIjoienpkcmV3QGFibXAuY29tenoiLCJwYWMiOnsiY3N0X3JlY25vIjoxMDI0OTUxLCJleGFtY29hY2giOnsiYWN0aXZlIjp0cnVlLCJleHBpcmVzIjoiMjAyNC0wNC0wMVQwMDowMDowMCIsImNvaG9ydHMiOnt9fX0sImp0aSI6IjAzYjM3ZGQxLWJjY2ItNDZkNy1iZjI2LWJmMThhYTUyMDIzYiIsInJvbGVzIjpbIlBBQyBTVEFGRiIsIkFmZmluaXR5IFRpZXIgMiIsIlByZW1pZXIgU2Nob29sICsgSW5zdXJhbmNlIl0sIm5iZiI6MTcwNTM1MjQyOCwiZXhwIjoxNzA2NTYyMDI4LCJpYXQiOjE3MDUzNTI0Mjh9.G0zhzbiGTP9Phsx4hDdN6WydIxOhrcSi3pEvy2wonbo\";\n\n this.router.events.pipe(\n filter(event => event instanceof NavigationEnd)\n ).subscribe((event: NavigationEnd) => {\n /** START : Code to Track Page View */\n if (gtag && typeof gtag === 'function') {\n gtag('event', 'page_view', {\n page_path: event.urlAfterRedirects\n });\n }\n /** END */\n })\n }\n\n public ngOnInit(): void {\n if (this.token) {\n tokenSetter(this.token);\n }\n\n this.user.authenticateFromToken();\n\n this.guardLoader$ = this.guard.Loader$;\n this.sink.sink = this.State$.subscribe(state => this.htmlClass = state ? 'bg-white' : 'web-background-md');\n this.sink.sink = this.user.User$.pipe(\n filter(user => user !== null && user.IsLoggedIn()),\n take(1)\n ).subscribe(() => {\n this.hideMenu = false;\n });\n\n this.sink.sink = this.updates.versionUpdates.subscribe((e) => {\n if (e.type === 'VERSION_READY') {\n this.toastr.info('A new app update is available. Click here to install.', 'Update', {\n disableTimeOut: true,\n positionClass: 'toast-bottom-center',\n closeButton: true\n }).onTap.pipe(take(1)).subscribe(() => location.reload());\n }\n });\n }\n\n public ngOnDestroy() {\n this.sink.unsubscribe();\n }\n}\n","\n\n
\n \n
\n
\n
\n
\n
\n  \n Loading...\n
\n
\n
\n
\n
\n
\n\n","import { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS, HttpClient, HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { JwtModule } from '@auth0/angular-jwt';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\nimport { AccordionModule } from 'ngx-bootstrap/accordion';\nimport { AlertModule } from 'ngx-bootstrap/alert';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { ModalModule } from 'ngx-bootstrap/modal';\nimport { TypeaheadModule } from 'ngx-bootstrap/typeahead';\nimport { ToastrModule } from 'ngx-toastr';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { AppAccordionComponent } from './components/accordion/accordion.component';\nimport { ContentShortComponent } from './components/content-short/content-short.component';\nimport { DefinitionComponent } from './components/definition/definition.component';\nimport { FavoriteButtonComponent } from './components/favorite-button/favorite-button.component';\nimport { ImageComponent } from './components/image/image.component';\nimport { ModalErrorComponent } from './components/modal-error/modal-error.component';\nimport { SearchBoxComponent } from './components/search-box/search-box.component';\nimport { TabsComponent } from './components/tabs/tabs.component';\nimport { TitleComponent } from './components/title/title.component';\nimport { tokenGetter } from './helpers/tokenGetter';\nimport { HeaderNavComponent } from './layout/header/header-nav/header-nav.component';\nimport { HeaderComponent } from './layout/header/header.component';\nimport { LoadingComponent } from './layout/loading/loading.component';\nimport { MenuDropdownComponent } from './layout/menu-dropdown/menu-dropdown.component';\nimport { NavBottomComponent } from './layout/nav-bottom/nav-bottom.component';\nimport { ConditionsComponent } from './pages/conditions/conditions.component';\nimport { ContentListComponent } from './pages/content/content-list/content-list.component';\nimport { ContentSavedComponent } from './pages/content/content-saved/content-saved.component';\nimport { ContentSearchBoxComponent } from './pages/content/content-search/content-search-box/content-search-box.component';\nimport { ContentSearchComponent } from './pages/content/content-search/content-search.component';\nimport { IngredientsComponent } from './pages/ingredients/ingredients.component';\nimport { LoginFormComponent } from './pages/login/login-form/login-form.component';\nimport { LoginComponent } from './pages/login/login.component';\nimport { JwtInterceptor } from './services/jwt.interceptor';\nimport { FaqComponent } from './pages/faq/faq.component';\nimport { AboutAscpComponent } from './pages/about-ascp/about-ascp.component';\nimport { AboutMarkLeesComponent } from './pages/about-mark-lees/about-mark-lees.component';\nimport { AboutSkinProComponent } from './pages/about-skinpro/about-skinpro.component';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { AddToHomeScreenComponent } from './pages/add-to-home-screen/add-to-home-screen.component';\nimport { NavSearchBarComponent } from './components/nav-search-bar/nav-search-bar.component';\nimport { AccessDeniedComponent } from './pages/access-denied/access-denied.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n HeaderComponent,\n NavBottomComponent,\n MenuDropdownComponent,\n HeaderNavComponent,\n ConditionsComponent,\n IngredientsComponent,\n TitleComponent,\n DefinitionComponent,\n ImageComponent,\n TabsComponent,\n AppAccordionComponent,\n ContentListComponent,\n ContentSearchComponent,\n SearchBoxComponent,\n ContentShortComponent,\n LoginComponent,\n LoginFormComponent,\n ModalErrorComponent,\n LoadingComponent,\n FavoriteButtonComponent,\n ContentSearchBoxComponent,\n ContentSavedComponent,\n FaqComponent,\n AboutAscpComponent,\n AboutMarkLeesComponent,\n AboutSkinProComponent,\n AddToHomeScreenComponent,\n NavSearchBarComponent,\n AccessDeniedComponent\n ],\n imports: [\n BrowserModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n AppRoutingModule,\n FontAwesomeModule,\n BrowserAnimationsModule,\n CollapseModule,\n AccordionModule.forRoot(),\n AlertModule.forRoot(),\n JwtModule.forRoot({\n config: {\n tokenGetter: tokenGetter,\n allowedDomains: ['localhost', 'ascpskincare.com', 'skinpro-dev.ascpskincare.com', 'skinpro.lt-sham.dev.cc', 'umbraco-api.azurewebsites.net']\n }\n }),\n BsDropdownModule.forRoot(),\n ModalModule.forRoot(),\n ToastrModule.forRoot({\n preventDuplicates: true,\n autoDismiss: true\n }),\n TypeaheadModule.forRoot(),\n ServiceWorkerModule.register('ngsw-worker.js', {\n enabled: true,\n // Register the ServiceWorker as soon as the app is stable\n // or after 30 seconds (whichever comes first).\n registrationStrategy: 'registerWhenStable:30000'\n })\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: JwtInterceptor,\n multi: true\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n constructor(httpClient: HttpClient) {\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\nimport { AccordionComponent } from 'ngx-bootstrap/accordion';\nimport { AccordionPanelComponent } from 'ngx-bootstrap/accordion/accordion-group.component';\nimport { SubSink } from 'subsink';\n\nimport { IRelatedContent } from 'src/app/models/content.interface';\n\n@Component({\n selector: 'app-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AppAccordionComponent implements OnInit {\n\n public slideOpen = true;\n public onePanelAtATime = true;\n public faChevronDown = faChevronDown;\n public faChevronUp = faChevronUp;\n private subs = new SubSink();\n\n @Input()\n public Related_Conditions: IRelatedContent[] = [];\n\n @Input()\n public Related_Ingredients: IRelatedContent[] = [];\n\n @Input()\n public Research_and_Resources: string = '';\n\n @ViewChild('conditions', { static: false }) conditions: AccordionPanelComponent;\n \n @ViewChild('ingredients', { static: false }) ingredients: AccordionPanelComponent;\n\n @ViewChild(AccordionComponent) public accordion: AccordionComponent;\n\n constructor(private route: ActivatedRoute) {\n }\n\n ngOnInit(): void {\n const subs = new SubSink();\n\n this.subs.sink = this.route.paramMap.subscribe(param => {\n subs.unsubscribe();\n\n if (this.accordion) {\n this.accordion.closeOtherPanels(null);\n }\n });\n }\n\n}\n","\n 0\" is-open=\"open\">\n \n \n \n 0\">\n \n \n \n \n \n
\n
\n
","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AllContent } from 'src/app/services/helpers';\n\n@Component({\n selector: 'content-short',\n templateUrl: './content-short.component.html',\n styleUrls: ['./content-short.component.scss']\n})\nexport class ContentShortComponent implements OnInit {\n\n public content_type: string = '';\n\n @Input()\n public ContentNode: AllContent;\n\n constructor(public router: Router) { }\n\n ngOnInit(): void {\n if ((this.ContentNode.Type === 'ingredient')) {\n this.content_type = 'ingredients';\n } else if ((this.ContentNode.Type === 'condition')) {\n this.content_type = 'conditions';\n }\n }\n\n public encode(name: string): string {\n return encodeURI(name);\n }\n\n}\n","
\n \n

{{ ContentNode.name }}

\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-definition',\n templateUrl: './definition.component.html',\n styleUrls: ['./definition.component.scss']\n})\nexport class DefinitionComponent implements OnInit {\n\n @Input()\n public Definition: string = '';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { faBookmark as faBookmarkRegular } from '@fortawesome/free-regular-svg-icons';\nimport { faBookmark as faBookmarkSolid } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-favorite-button',\n templateUrl: './favorite-button.component.html',\n styleUrls: ['./favorite-button.component.scss']\n})\nexport class FavoriteButtonComponent implements OnInit {\n\n @Input()\n public isFavorite: boolean = false;\n\n @Output()\n public toggle: EventEmitter = new EventEmitter();\n\n @ViewChild('btn')\n public btn: ElementRef;\n\n public faBookmarkSolid = faBookmarkSolid;\n public faBookmarkRegular = faBookmarkRegular;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public ToggleFaveStar(status: boolean): void {\n this.toggle.emit(status);\n this.btn.nativeElement.blur();\n }\n\n}\n","","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AllContent } from 'src/app/services/helpers';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n selector: 'app-image',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.scss']\n})\nexport class ImageComponent implements OnInit {\n\n private content$: Subject = new ReplaySubject(1);\n\n public Image$ = this.content$.pipe(map(content => content.image ));\n public Images: Object = {};\n public imageMap: any[] = [];\n public imageSize: any[] = [];\n\n @Input()\n public set Content(content: AllContent) {\n this.content$.next(content);\n }\n\n constructor(@Inject(DEPLOY_URL) public deployUrl: string) {\n }\n\n ngOnInit(): void {\n this.Image$.subscribe((image) => {\n this.Images = image;\n this.imageMap = [\n `${this.Images['thumbnail'] ? this.Images['thumbnail'] : ''} 100w`,\n ` ${this.Images['phone'] ? this.Images['phone'] : ''} 400w`,\n ` ${this.Images['desktop'] ? this.Images['desktop'] : ''} 460w`,\n ` ${this.Images['tablet'] ? this.Images['tablet'] : ''} 640w`\n ];\n });\n\n this.imageSize = [\n \"(max-width: 359px) 280px\",\n \"(min-width: 360px) and (max-width: 479px) 300px\",\n \"(min-width: 480px) and (max-width: 575px) 400px\",\n \"(min-width: 576px) and (max-width: 767px) 460px\",\n \"(min-width: 768px) and (max-width: 991px) 640px\",\n \"(min-width: 992px) and (max-width: 1199px) 360px\",\n \"(min-width: 1200px) and (max-width: 1399px) 400px\",\n \"(min-width: 1400px) 460px\",\n ]\n }\n\n}\n","\n \"\"\n","import { Component } from '@angular/core';\nimport { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';\n\n@Component({\n templateUrl: './modal-error.component.html',\n styleUrls: ['./modal-error.component.scss']\n})\nexport class ModalErrorComponent {\n\n modalRef?: BsModalRef;\n\n constructor(private modalService: BsModalService) { }\n\n public hide() {\n this.modalService.hide();\n }\n\n}\n","
\n
\n

Error

\n \n
\n
\n Could not retrieve data, please reload page\n
\n
","import { Component, ElementRef, OnInit, Inject, ViewChild } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { combineLatest, Observable, Subject, timer } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\nimport { TypeaheadMatch } from 'ngx-bootstrap/typeahead';\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\n\nimport { Condition } from 'src/app/models/condition.model';\nimport { AllContent, TitleMatch } from '../../services/helpers';\nimport { ConditionService} from '../../services/condition.service';\nimport { IngredientService } from '../../services/ingredient.service';\n\nimport { UserService } from '../../services/user.service';\nimport { User } from 'src/app/models/user.model';\n\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n selector: 'app-nav-search-bar',\n templateUrl: './nav-search-bar.component.html',\n styleUrls: ['./nav-search-bar.component.scss']\n})\nexport class NavSearchBarComponent implements OnInit {\n\n public ContentNodes$: Observable;\n public faSearch = faSearch;\n public search$: Subject;\n public searchOpen: boolean = false;\n public searchIsSet: boolean = false;\n\n public showAppMenuDropdown$: Observable = this.userService.User$.pipe(\n filter(user => user instanceof User),\n map(user => user.IsLoggedIn()),\n shareReplay(1)\n );\n\n public showSearchbar$: Observable = combineLatest([this.showAppMenuDropdown$, this.router.events.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd))]).pipe(\n map(([isLoggedIn, routeEvent]) => {\n return isLoggedIn && !(routeEvent.url == '/search' || routeEvent.url == '/login' || routeEvent.url == '/access-denied');\n })\n );\n\n @ViewChild('search', { read: ElementRef })\n public search: ElementRef;\n\n constructor(\n @Inject(DEPLOY_URL) public deployUrl: string, \n public router: Router, \n private conditionService: ConditionService, \n private ingredientService: IngredientService, \n private userService: UserService,\n private elRef: ElementRef) {\n this.search$ = new Subject();\n }\n\n ngOnInit(): void {\n this.searchIsSet = false;\n this.ContentNodes$ = combineLatest([this.search$, this.conditionService.Content$, this.ingredientService.Content$]).pipe(\n map(([search_term, conditions, ingredients]) => {\n if (!search_term) {\n return [];\n }\n\n const nodes = [...conditions, ...ingredients];\n return nodes.filter(node => {\n let match = TitleMatch(node, search_term);\n return match;\n });\n })\n );\n }\n\n public onTransitionEnd(event: TransitionEvent): void {\n if (event.propertyName === 'width') {\n if (this.elRef.nativeElement.parentElement.classList.contains('searchOpen')) {\n this.searchIsSet = true;\n this.search.nativeElement.focus();\n } else {\n this.search.nativeElement.blur();\n this.searchIsSet = false;\n }\n }\n }\n\n public onSelect(event: TypeaheadMatch): void {\n this.search.nativeElement.blur();\n this.search$.next(null);\n let contentType = event.item instanceof Condition ? 'conditions' : 'ingredients';\n this.router.navigate([`/${contentType}`, event.item.alias]);\n }\n\n public close(): void {\n timer(250).subscribe(() => {\n this.searchOpen = false;\n });\n }\n\n}\n","
\n \n \n \n
\n\n
\n \n
\n
\n
\n \n \n Search\n \n
\n \n
\n
\n
\n
\n\n\n
{{ item.name }}
\n
","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\nimport { faSearch, faTimes } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss']\n})\nexport class SearchBoxComponent implements OnInit {\n\n @Output()\n public search: EventEmitter<[string, boolean]> = new EventEmitter(true);\n\n public faSearch = faSearch;\n public faTimes = faTimes;\n\n constructor() { }\n\n ngOnInit(): void {\n this.search.emit([null, false]);\n }\n\n public Search(term: string, deep: boolean): void {\n term = term.trim().toLowerCase();\n this.search.emit([term, deep]);\n }\n\n}\n","
\n
\n
\n \n\n
\n
\n \n Search\n \n
\n \n \n
\n \n
\n
\n\n
\n
\n
\n ","import { Component, OnInit, Input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { SubSink } from 'subsink';\n\n@Component({\n selector: 'app-tabs',\n templateUrl: './tabs.component.html',\n styleUrls: ['./tabs.component.scss']\n})\nexport class TabsComponent implements OnInit {\n\n public activeTab: string = 'overview';\n public isCollapsed: boolean = true;\n private subs = new SubSink();\n\n @Input()\n public Summary: string = '';\n\n @Input()\n public Overview: string = '';\n\n @Input()\n public Considerations: string = '';\n\n @Input()\n public Contraindications: string = '';\n\n constructor(private route: ActivatedRoute) {\n }\n\n ngOnInit(): void {\n const subs = new SubSink();\n\n this.subs.sink = this.route.paramMap.subscribe(param => {\n subs.unsubscribe();\n this.activeTab = 'overview';\n });\n }\n\n openTab(activeTab: string, $event: MouseEvent): void {\n $event.preventDefault();\n this.activeTab = activeTab;\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
","import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons';\nimport { faBookmark as faBookmarkSolid } from '@fortawesome/free-solid-svg-icons';\nimport { combineLatest, merge, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\nimport { AllContent } from 'src/app/services/helpers';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\nimport { SubSink } from 'subsink';\n\nimport { FavoriteContentService } from '../../services/favorite-content.service';\n\n@Component({\n selector: 'app-title',\n templateUrl: './title.component.html',\n styleUrls: ['./title.component.scss']\n})\nexport class TitleComponent implements OnInit, OnDestroy {\n\n private content$: Subject = new ReplaySubject(1);\n private subsink: SubSink = new SubSink();\n\n public faBookmarkSolid = faBookmarkSolid;\n public farBookmark = farBookmark;\n\n public Favorite$: Subject = new Subject();\n public isFavorite$: Observable = merge(this.content$.pipe(switchMap(content => this.favoriteService.Has$({ nid: content.nid, status: true, type: content.Type }))), this.Favorite$);\n public IconUrl$ = this.content$.pipe(map(content => this.deployUrl + `assets/images/icon_${content.Type}.png`));\n public Title$ = this.content$.pipe(map(content => content.name));\n\n @Input()\n public set Content(content: AllContent) {\n this.content$.next(content);\n }\n\n constructor(\n @Inject(DEPLOY_URL) public deployUrl: string,\n private favoriteService: FavoriteContentService) { }\n\n public ngOnInit(): void {\n this.subsink.sink = combineLatest([this.content$, this.Favorite$.pipe(debounceTime(500))]).subscribe(([content, status]) => {\n if (status) {\n this.favoriteService.Add({\n nid: content.nid,\n status: true,\n type: content.Type,\n alias: content.alias,\n name: content.name\n });\n } else {\n this.favoriteService.Remove({\n nid: content.nid,\n status: false,\n type: content.Type,\n alias: content.alias,\n name: content.name\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.subsink.unsubscribe();\n }\n\n public ToggleFaveStar(status: boolean): void {\n if (this.Favorite$) {\n this.Favorite$.next(status);\n }\n }\n\n}\n","

\n
\n \n {{ Title$ | async }}\n
\n \n

\n","export function pwaToastGetter(): string | null {\n\tif (localStorage instanceof Storage) {\n\t\treturn localStorage.getItem('clicked_pwa_toast');\n\t}\n\n\treturn null;\n}\n","export function pwaToastSetter(token: string): void {\n\tif (localStorage instanceof Storage) {\n\t\tlocalStorage.setItem('clicked_pwa_toast', token);\n\t}\n}\n","export function tokenGetter(): string | null {\n\tif (localStorage instanceof Storage) {\n\t\treturn localStorage.getItem('access_token');\n\t}\n\n\treturn null;\n}\n","export function tokenSetter(token: string): void {\n\tif (localStorage instanceof Storage) {\n\t\tlocalStorage.setItem('access_token', token);\n\t}\n}\n","import { Component, ElementRef, OnInit, Input, Inject, ViewChild } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { combineLatest, Observable } from 'rxjs';\nimport { filter, map, shareReplay } from 'rxjs/operators';\n\nimport { faBars, faChevronLeft, faTimes, faWindowClose } from '@fortawesome/free-solid-svg-icons';\nimport { faBookmark as faBookmarkSolid, faHistory, faUndo, faHome } from '@fortawesome/free-solid-svg-icons';\nimport { faBookmark as faBookmarkRegular } from '@fortawesome/free-regular-svg-icons';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\nimport { UserService } from '../../../services/user.service';\nimport { User } from 'src/app/models/user.model';\n\n@Component({\n selector: 'app-header-nav',\n templateUrl: './header-nav.component.html',\n styleUrls: ['./header-nav.component.scss']\n})\nexport class HeaderNavComponent implements OnInit {\n\n public faHome = faHome;\n public faHistory = faHistory;\n public faUndo = faUndo;\n public faBookmarkRegular = faBookmarkRegular;\n public faBookmarkSolid = faBookmarkSolid;\n \n public faChevronLeft = faChevronLeft;\n public faTimes = faTimes;\n public faWindowClose = faWindowClose;\n public faBars = faBars;\n\n public showAppMenuDropdown$: Observable = this.userService.User$.pipe(\n filter(user => user instanceof User),\n map(user => user.IsLoggedIn()),\n shareReplay(1)\n );\n\n public showSearchbar$: Observable = combineLatest([this.showAppMenuDropdown$, this.router.events.pipe(filter((event): event is NavigationEnd => event instanceof NavigationEnd))]).pipe(\n map(([isLoggedIn, routeEvent]) => {\n return isLoggedIn && !(routeEvent.url == '/' || routeEvent.url == '/search' || routeEvent.url == '/login' || routeEvent.url == '/access-denied');\n })\n );\n\n public notLoginRoute$: Observable = this.router.events.pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n map((routeEvent) => {\n return (routeEvent.url != '/login');\n })\n );\n\n @Input()\n public hideSearch: boolean = false;\n\n @Input()\n public hideMenu: boolean = true;\n\n @ViewChild('nav', { static: true })\n public nav: ElementRef;\n\n constructor(\n @Inject(DEPLOY_URL) public deployUrl: string, \n public router: Router, \n public route: ActivatedRoute, \n public userService: UserService,\n private location: Location) {\n \n }\n\n ngOnInit(): void {\n\n }\n\n public back(): void {\n this.location.back();\n }\n\n}\n","","import { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { Router, ResolveEnd } from '@angular/router';\nimport { filter, map, share } from 'rxjs/operators';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n\n private State$ = this.router.events.pipe(\n filter(event => event instanceof ResolveEnd),\n map((event: ResolveEnd) => event.url),\n map(url => url.startsWith('/login')),\n share(),\n );\n\n @Input()\n public hideSearch: boolean = false;\n\n @Input()\n public hideMenu: boolean = true;\n\n @HostBinding('class')\n public htmlClass: string = 'bg-white';\n\n constructor(private router: Router) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n \n
\n ","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n selector: 'app-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss']\n})\nexport class LoadingComponent implements OnInit {\n\n public showSplash: boolean = true;\n\n constructor(@Inject(DEPLOY_URL) public deployUrl: string, private router: Router) { }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.showSplash = !this.showSplash;\n this.router.navigate(['login']);\n }, 2000);\n }\n\n}\n","
\n

\n

\n

\n
","import { Component, OnInit, Input } from '@angular/core';\nimport { faBars } from '@fortawesome/free-solid-svg-icons';\nimport { faHistory, faHome, faUndo } from '@fortawesome/free-solid-svg-icons';\nimport { faBookmark as faBookmarkRegular } from '@fortawesome/free-regular-svg-icons';\nimport { BsDropdownConfig } from 'ngx-bootstrap/dropdown';\n\n@Component({\n selector: 'app-menu-dropdown',\n templateUrl: './menu-dropdown.component.html',\n styleUrls: ['./menu-dropdown.component.scss'],\n providers: [{ provide: BsDropdownConfig, useValue: { isAnimated: true, autoClose: true } }]\n})\nexport class MenuDropdownComponent implements OnInit {\n\n @Input()\n public ButtonClass: Array;\n\n @Input()\n public ButtonText: string = '';\n\n @Input()\n public Placement: 'top' | 'bottom' = 'bottom';\n\n public faBars = faBars;\n public faBookmarkRegular = faBookmarkRegular;\n public faHistory = faHistory;\n public faHome = faHome;\n public faUndo = faUndo;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n\n \n \n\n \n\n \n \n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { faBookmark as faBookmarkSolid, faHistory, faHome, faQuestionCircle, faUndo } from '@fortawesome/free-solid-svg-icons';\n\n@Component({\n selector: 'app-nav-bottom',\n templateUrl: './nav-bottom.component.html',\n styleUrls: ['./nav-bottom.component.scss']\n})\nexport class NavBottomComponent implements OnInit {\n\n @Input()\n public hideMenu: boolean = true;\n\n public faBookmarkSolid = faBookmarkSolid;\n public faHistory = faHistory;\n public faHome = faHome;\n public faQuestion = faQuestionCircle;\n public faUndo = faUndo;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n\n \n
\n \n
\n ","import { IContentAlias } from './content.interface';\nimport { Content } from './content.model';\n\nexport class Condition extends Content {\n\n public readonly Type = 'condition';\n\n constructor(source?: IContentAlias) {\n super(source);\n }\n}\n","import { ContentTypes } from '../helpers/content-types';\nimport { GetAlias } from '../services/helpers';\nimport { IContentAlias, IRelatedContent } from './content.interface';\n\nexport abstract class Content implements IContentAlias {\n public nid: number = 0;\n public name: string = '';\n public definition: string = '';\n public overview: string = '';\n public summary: string = '';\n public considerations: string = '';\n public contraindications: string = '';\n public research_and_resources: string = '';\n public related_conditions: IRelatedContent[] = [];\n public related_ingredients: IRelatedContent[] = [];\n public common_names: string[] = [];\n public image: Object = {};\n public alias: string = '';\n public readonly abstract Type: ContentTypes;\n\n constructor(source?: any) {\n if (source) {\n for (const key in this) {\n if (key in source) {\n switch (key) {\n case 'related_conditions':\n case 'related_ingredients':\n (this[key] as any) = (source[key] as IRelatedContent[]).map(related => ({\n ...related,\n alias: GetAlias(related.name)\n }));\n break;\n default:\n this[key] = source[key];\n }\n }\n }\n }\n }\n\n public GetContentStub() {\n return {\n nid: this.nid,\n name: this.name,\n overview: this.overview\n };\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport interface IEnvironment {\n production: boolean;\n name: string;\n api: string;\n netforum: string;\n BuildTime: Date;\n}\n\nexport const Environment = new InjectionToken('Environment');\n","import { IContentAlias } from \"./content.interface\";\nimport { Content } from \"./content.model\";\n\nexport class Ingredient extends Content {\n\n public readonly Type = 'ingredient';\n\n constructor(source?: IContentAlias) {\n super(source);\n }\n}\n","export interface IUser {\n cst_recno: number | null;\n ind_first_name: string | null;\n ind_last_name: string | null;\n ind_badge_name: string | null;\n eml_address: string | null;\n jwt: string | null;\n fromCache: boolean;\n cacheAge?: Date;\n\n IsLoggedIn(): boolean;\n}\n\nexport interface PACJwt {\n pac: {\n cst_recno: number;\n };\n\n given_name: string;\n family_name: string;\n nickname: string;\n email: string;\n\n iat: number;\n exp: number;\n nbf: number;\n jti?: string;\n}\n\nexport interface JWTSSO {\n ObjectName: 'Individual';\n CurrentKey: string;\n Columns: {\n cst_recno: number;\n ind_first_name: string;\n ind_last_name: string;\n ind_badge_name: string;\n eml_address: string;\n update: number;\n }\n}\n\nexport class User implements IUser {\n\n public cst_recno: number | null = null;\n public ind_first_name: string | null = null;\n public ind_last_name: string | null = null;\n public ind_badge_name: string | null = null;\n public eml_address: string | null = null;\n public jwt: string | null = null;\n\n public fromCache: boolean = false;\n public cacheAge?: Date = new Date();\n\n public IsLoggedIn(): boolean {\n return this.cst_recno !== null && this.cst_recno !== 0;\n }\n\n constructor(jwt: PACJwt | JWTSSO | User) {\n try {\n if ('pac' in jwt) {\n this.cst_recno = jwt.pac.cst_recno;\n this.ind_badge_name = jwt.nickname;\n this.ind_first_name = jwt.given_name;\n this.ind_last_name= jwt.family_name;\n this.eml_address = jwt.email;\n this.cacheAge = new Date(jwt.nbf * 1000);\n } else if ('ObjectName' in jwt) {\n this.cst_recno = jwt.Columns.cst_recno;\n this.ind_badge_name = jwt.Columns.ind_badge_name;\n this.ind_first_name = jwt.Columns.ind_first_name;\n this.ind_last_name= jwt.Columns.ind_last_name;\n this.eml_address = jwt.Columns.eml_address;\n this.cacheAge = new Date(jwt.Columns.update * 1000);\n }\n } catch (e) {\n this.cst_recno = 0;\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './about-ascp.component.html',\n styleUrls: ['./about-ascp.component.scss']\n})\nexport class AboutAscpComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

About ASCP

\n\n

Associated Skin Care Professionals (ASCP) is the nation's largest association for skin care professionals and your ONLY all-inclusive source for professional liability insurance, education, community, and career support.

\n \n

For estheticians at every stage of the journey who are passionate about skin care, ASCP is your essential partner. ASCP empowers you to reach your highest potential by providing innovative business solutions, unmatched quality education, vital professional liability insurance, and a dedicated team who cares about our members' success and is always willing to go the extra mile for our members.

\n \n

ASCP's members include estheticians, students, instructors, and educators across the United States, and it is the only organization providing estheticians with industry-specific benefits in addition to comprehensive liability insurance coverage.

\n \n

Connect With Us

\n

Phone: 800-789-0411
\n Website: www.ascpskincare.com
\n Email: getconnected@ascpskincare.com
\n Facebook: www.facebook.com/ASCPskincare
\n Instagram: www.instagram.com/ascpskincare\n

\n
","import { Component, OnInit, Inject } from '@angular/core';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n templateUrl: './about-mark-lees.component.html',\n styleUrls: ['./about-mark-lees.component.scss']\n})\nexport class AboutMarkLeesComponent implements OnInit {\n\n constructor(@Inject(DEPLOY_URL) public deployUrl: string) { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

About Mark Lees

\n\n
\n
\n \"headshot\n
\n
\n

Mark Lees, PhD, MS, is an award-winning speaker, master clinical skin therapist, and developer of Mark Lees Skin Care, which specializes in products for acne-prone, sensitive, and aging skin. He is also author of Skin Care: Beyond the Basics, the Skin Care Answer Book, and his latest book, Clearing Concepts: A Guide to Acne Treatment. He writes for professional journals, including a column for ASCP Skin Deep magazine, and has authored chapters for two medical/dental school texts, and the cosmetic chemistry “bible”—Harry's Cosmeticology Volume 3. He is a licensed cosmetologist (Florida and Washington), a licensed master esthetician (Washington), and holds a CIDESCO International Diploma.

\n

Lees is the former chairman of EstheticsAmerica—the esthetics education division of the National Cosmetology Association (NCA)—and has served as a CIDESCO International Examiner. He has also served on the national board of directors of the NCA, is the former chairman of the board of the Esthetics Manufacturers and Distributors Alliance, and is a member of the Society of Cosmetic Chemists.

\n

His professional awards include Esthetician of the Year from American Salon magazine, the Les Nouvelles Esthétiques Crystal Award, the Dermascope Legends Award, and the Esthetics International Humanitarian Award from the Southern Spa and Salon Conference. He was also inducted into the National Cosmetology Association's Hall of Renown. In addition to his practice and product development company, Lees has consulted for major pharmaceutical companies, universities, and numerous state boards of cosmetology.

\n

For more information on books by Mark Lees, or to make a purchase, visit the Mark Lees Skin Care Store.

\n
\n
\n\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './about-skinpro.component.html',\n styleUrls: ['./about-skinpro.component.scss']\n})\nexport class AboutSkinProComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

About ASCP SkinPro

\n\n

You've got the knowledge, the skills, and the drive, but sometimes you need to consult with another Skin Pro. That's why Associated Skin Care Professionals (ASCP) has created this exciting web-based app that informs and validates your treatment decisions.

\n \n

Designed to aid in skin analysis, ASCP SkinPro puts the essential knowledge of contraindications for common skin-related conditions and ingredients at your fingertips and will help you customize treatment plans to improve your client outcomes and elevate your skin care practice.

\n \n

It's Easy to Use

\n \n

Picture this: You're in the treatment room and a client tells you they have atopic dermatitis and several allergies. You're pretty sure you know how to proceed with treatment, but you want to be sure. Simply open the ASCP SkinPro app, search for the condition, and you've got the expert information you need to help make treatment room decisions. You can also use the app to quickly and easily look up ingredients, identifying important contraindications and best practices so you can adjust your treatment plan on the spot.

\n \n

Confidently elevate your treatment plans by consulting with ASCP SkinPro. The ASCP team sourced information from a variety of clinical journals and worked with Mark Lees, PhD, MS, author of Skin Care: Beyond the Basics and a longtime contributor to ASCP Skin Deep magazine, to bring it all together. Plus, ASCP SkinPro uses progressive web app technology so you can easily save it to your mobile device without it taking up the space of an app from the app store. Remember, ASCP SkinPro is an exclusive benefit for ASCP members.

\n \n

Why Isn't My Condition or Ingredient Listed?

\n \n

ASCP SkinPro focuses on the most common conditions and ingredients estheticians might find while working in the treatment room. While this list was vetted to bring you information on conditions and ingredients you will see again and again throughout the course of your career, the list is always growing. Go to the ASCP SkinPro home page and click “List All Ingredients” or “List All Conditions” to see if your term shows up in the program.

\n \n

Caution First

\n \n

The information provided within ASCP SkinPro is not intended as medical advice. Care has been taken to confirm the accuracy of the information presented herein and to describe generally accepted practices. However, ASCP, the author, editors, and publishers involved in this project, are not responsible for omissions or errors or for any consequences from application of the information in this program, and make no warranty, expressed or implied, regarding the completeness or accuracy of the contents of this publication. Application of the information in a particular situation remains the practitioner's professional responsibility, as is their adherence to scope of practice.

\n \n

Questions about ASCP SkinPro? Contact us at getconnected@ascpskincare.com.

\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './access-denied.component.html',\n styleUrls: ['./access-denied.component.scss']\n})\nexport class AccessDeniedComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

Access Denied

\n\n

We're sorry, but your current level of membership doesn't include access to this resource.

\n

Click here to join ASCP for full access. \n If you have questions, please contact us at 800-789-0411, or getconnected@ascpskincare.com.

\n
","import { Component, Inject, OnInit } from '@angular/core';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { Environment, IEnvironment } from '../../models/environment';\nimport { DEPLOY_URL } from '../../tokens/deploy-url';\n\n@Component({\n templateUrl: './add-to-home-screen.component.html',\n styleUrls: ['./add-to-home-screen.component.scss']\n})\nexport class AddToHomeScreenComponent implements OnInit {\n\n private deviceInfo = null;\n\n public browserVersion: string;\n public browserMainVersion: number;\n public devicebrowser: string;\n public deviceOS: string;\n public iOSandMobi: boolean;\n public iosMobiSafari: boolean;\n public isAndroid: boolean;\n public isIOS: boolean;\n public isMobi: boolean;\n public isTablet: boolean;\n public macTablet: boolean;\n public osCookieValue = 'UNKNOWN';\n\n constructor(@Inject(Environment) public environment: IEnvironment, @Inject(DEPLOY_URL) public deployUrl: string, private dd: DeviceDetectorService) {\n this.DeviceTest();\n }\n\n ngOnInit(): void {\n }\n\n public DeviceTest(): void {\n this.deviceInfo = this.dd.getDeviceInfo();\n this.isMobi = this.dd.isMobile();\n this.isTablet = this.dd.isTablet();\n this.deviceOS = this.deviceInfo.os;\n this.devicebrowser = this.deviceInfo.browser;\n\n this.browserVersion = this.deviceInfo.browser_version;\n this.browserMainVersion = parseInt(this.browserVersion.split('.')[0], 10) || 0;\n\n if ((this.deviceOS === 'Mac') && (this.isTablet === true)) {\n this.macTablet = true;\n }\n if (this.deviceOS === 'iOS') {\n this.isIOS = true;\n this.isAndroid = false;\n } else if (this.deviceOS === 'Android') {\n this.isAndroid = true;\n this.isIOS = false;\n } else {\n this.isAndroid = false;\n this.isIOS = false;\n }\n }\n\n}\n","
\n
\n
\n
\n

How To Install SkinPro

\n
\n

ASCP SkinPro is a \"progressive web app,\" which means you can save it to your phone, mobile device, or computer so that it works like an app from the app store, but it takes up much less space. The app can recognize the device that you're using, and the instructions below will match that device. So, for example, if you want to save ASCP SkinPro to your phone, log in with your phone and follow the instructions below.

\n
\n \n
\n
iOS/macOS Safari Users
\n
\n
    \n
  1. Tap the share action icon\n at the bottom of the screen.\n
  2. \n
  3. \n

    Scroll down and tap on
    Add to Home Screen.

    \n

    \n
  4. \n
  5. \n

    Tap Add.

    \n

    \n
  6. \n
    \n
  7. \n

    \n

    The icon will now be on your Home Screen, and you can open SkinPro by clicking on the icon.\n (You may be prompted to log in again, the first time you open it using the icon.)\n

    \n
  8. \n
\n
\n
\n

Still Not Working?

\n
    \n
  1. \n

    Check the footer for a Safari icon near the bottom right of your screen. This means you're viewing the page from inside another app, instead of the Safari browser.

    \n

    \n
  2. \n
  3. \n

    Tap that icon to open SkinPro in Safari, then follow the instructions above.

    \n
  4. \n
  5. \n

    Still can't install the app? Click on the \"Browser Detail\" link below and email it to getconnected@ascpskincare.com.

    \n
  6. \n
\n
\n
\n
iOS Users
\n

Please use Safari to enable the Home Screen App feature on iOS.

\n
\n
\n \n \n
\n
Android Chrome Users
\n
\n

Please update Chrome to enable the Home Screen App feature.

\n
\n
72\">\n
\n
    \n
  1. \n

    If you see this bar at the bottom of the home page, tap on it.

    \n

    \"android

    \n

    If you don't see that bar at the bottom of the home page, then tap the menu icon to open the menu \"\" and tap\n Add to Home Screen.\n

    \n
  2. \n
  3. \n

    When prompted to install the app, tap Install.

    \n

    \"\"

    \n
    \n
  4. \n
  5. \n

    \n

    The icon will now be on your Home Screen, and you can open SkinPro by clicking on the icon. (You may be prompted to log in again, the first time you open it using the icon).

    \n
  6. \n
\n
\n
\n

Still Not Working?

\n
    \n
  1. \n

    Check to see if there's an \"X\" or left arrow at the top left of your screen. This means you're viewing the page from inside another app, instead of the Chrome browser.

    \n

    \n
  2. \n
  3. \n

    Tap the 3 dots on the right to open the menu.

    \n

    \n
  4. \n
  5. Select Open in browser, then follow the instructions above to add SkinPro to your home screen.
  6. \n
  7. \n

    Still can't install the app? Click on the \"Browser Detail\" link below and email it to getconnected@ascpskincare.com.

    \n
  8. \n
\n
\n
\n
\n
Android Firefox Users
\n
\n

Please update Firefox to enable the Home Screen App feature.

\n
\n
57\">\n
    \n
  1. \n

    To the right of the URL will be a More icon (three vertical dots).

    \n

    \"firefox

    \n
  2. \n
  3. \n

    Select \"Install\" from the pop-up menu.

    \n

    \"firefox

    \n
  4. \n
  5. \n

    On the next pop-up, select \"Add Automatically\".

    \n

    \"firefox

    \n
  6. \n
  7. \n

    Once added, the icon will provide a link to the website without ever opening the browser. This website will operate just like any other app that you were to install onto your device via the Google Play Store.

    \n

    \n
  8. \n
\n
\n
\n
\n

{{ devicebrowser }}

\n
We recommend using Chrome
\n

Please install Chrome or Firefox to enable Home Screen App feature.

\n
\n
\n
\n \n
\n
Chrome Desktop Users
\n
    \n
  1. \n

    Click the Download indicator at the top right of your browser window.

    \n

    \"\"

    \n
  2. \n
  3. \n

    Then click Install.

    \n

    \"\"

    \n
  4. \n
  5. \n
    \n

    If you don't see that option, click the menu icon at the top right of your browser window to open the Chrome menu. \"chrome\n

    \n
  6. \n
  7. \n

    Select Install ASCP SkinPro.

    \n

    \"chrome

    \n
  8. \n
  9. \n

    Then click Install.

    \n

    \"\"

    \n
  10. \n
  11. \n
    \n

    The icon will save to your Desktop, and you can open SkinPro by clicking on the icon. (You may be prompted to log in again, the first time you open it using the icon).\n

    \n
  12. \n
  13. \n
    \n

    Still can't install the app? Click on the \"Browser Detail\" link below and email it to getconnected@ascpskincare.com.\n

    \n

     

    \n
  14. \n
\n
\n
\n
Edge Desktop Users
\n
    \n
  1. \n

    Click the Plus indicator at the top right of your browser window.

    \n

    \"\"

    \n
  2. \n
  3. \n

    Then click Install.

    \n

    \"\"

    \n
  4. \n
  5. \n
    \n

    If you don't see that option, click the menu icon at the top right of your browser window to open the Edge menu. \"\"\n

    \n
  6. \n
  7. \n

    Select Install ASCP SkinPro.

    \n

    \"\"

    \n
  8. \n
  9. \n

    Then click Install.

    \n

    \"\"

    \n
  10. \n
  11. \n

    The app will install, and display another window with more options. You can select additional options here as desired. Select Allow.

    \n

    \"\"

    \n
  12. \n
  13. \n
    \n

    The icon will save to your Start Menu, and you can open SkinPro by clicking on the icon.\n (You may be prompted to log in again, the first time you open it using the icon).\n

    \n

    \"\"

    \n
  14. \n
  15. \n
    \n

    Still can't install the app? Click on the \"Browser Detail\" link below and email it to getconnected@ascpskincare.com.\n

    \n

     

    \n
  16. \n
\n
\n
\n
Firefox Desktop Users
\n
    \n
  1. \n

    We've detected you are using a desktop version of Firefox, which does not support Add to Home Screen. However, you can add SkinPro to your bookmarks by clicking the star in the address bar at the top right of your screen.

    \n

    \"\"

    \n
  2. \n
  3. \n

    On the pop-up window, click Save.

    \n

    \"\"

    \n
  4. \n
  5. \n

    You will now see a new bookmark called ASCP SkinPro in the bookmarks toolbar.

    \n

    \"\"

    \n
  6. \n
\n
\n
\n

{{ devicebrowser }}

\n
We recommend using Chrome
\n

Please install Chrome or Firefox to enable Home Screen App feature.

\n
\n
\n

\n (More info on how to install web apps)\n

\n
\n

Built for {{environment.name}} on {{environment.BuildTime}}

\n

Browser detail

\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { Condition } from '../../models/condition.model';\nimport { ConditionService } from '../../services/condition.service';\nimport { GetSingle } from 'src/app/services/helpers';\nimport { RecentContentService } from 'src/app/services/recent-content.service';\n\n@Component({\n templateUrl: './conditions.component.html',\n styleUrls: ['./conditions.component.scss']\n})\nexport class ConditionsComponent implements OnInit {\n\n public Condition$: Observable;\n\n constructor(\n private route: ActivatedRoute,\n private conditionService: ConditionService,\n private recentService: RecentContentService) {\n }\n\n ngOnInit(): void {\n this.Condition$ = this.route.paramMap.pipe(\n switchMap(param =>\n GetSingle(this.conditionService.Content$, param.get('name')),\n ),\n tap(condition => this.recentService.Add({\n nid: condition.nid,\n status: true,\n type: condition.Type,\n name: condition.name,\n alias: condition.alias,\n })),\n );\n }\n\n}\n","
\n
\n \n
\n \n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AllContent } from 'src/app/services/helpers';\nimport { ConditionService } from 'src/app/services/condition.service';\nimport { IngredientService } from 'src/app/services/ingredient.service';\n\n@Component({\n templateUrl: './content-list.component.html',\n styleUrls: ['./content-list.component.scss']\n})\nexport class ContentListComponent implements OnInit {\n\n private filter$: Subject = new BehaviorSubject([]);\n public Content$: Observable = new Observable();\n\n @Input()\n public type: string = '';\n\n constructor(\n private route: ActivatedRoute,\n private ingredientService: IngredientService, \n private conditionService: ConditionService) {\n }\n\n ngOnInit(): void {\n this.type = this.route.snapshot.params[\"type\"];\n\n if (this.type === 'ingredients') {\n this.Content$ = combineLatest([this.filter$, this.ingredientService.Content$]).pipe(\n map(([filter, nodes]) => {\n if (!filter || filter.length === 0) {\n return nodes;\n }\n return nodes.filter(node => filter.some(letter => node.name[0] === letter));\n })\n );\n } else if (this.type === 'conditions') {\n this.Content$ = combineLatest([this.filter$, this.conditionService.Content$]).pipe(\n map(([filter, nodes]) => {\n if (!filter || filter.length === 0) {\n return nodes;\n }\n return nodes.filter(node => filter.some(letter => node.name[0] === letter));\n })\n );\n }\n }\n\n public filter(...param: string[]): void {\n this.filter$.next(param);\n }\n\n}\n","

{{ type }}

\n\n
\n
\n \n
\n
\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\nimport { ISavedContent } from '../../../services/saved-content.service';\nimport { FavoriteContentService } from 'src/app/services/favorite-content.service';\nimport { RecentContentService } from 'src/app/services/recent-content.service';\n\n@Component({\n templateUrl: './content-saved.component.html',\n styleUrls: ['./content-saved.component.scss']\n})\nexport class ContentSavedComponent implements OnInit {\n\n private sink: SubSink = new SubSink();\n\n public faTimes = faTimes;\n public Title$: Observable<'favorite' | 'recent'> = this.route.data.pipe(map(data => data.title));\n public Type$: Observable<'favorite' | 'recent'> = this.route.data.pipe(map(data => data.type));\n\n public Content$: Observable = this.Type$.pipe(\n switchMap<'favorite' | 'recent', Observable>(type => this[type].Sorted$()),\n map(content => content.filter(item => item.status)),\n withLatestFrom(this.Type$),\n map(([content, type]) => type == 'recent' ? content.slice(0, 20) : content),\n );\n\n constructor(\n private route: ActivatedRoute,\n private recent: RecentContentService,\n private favorite: FavoriteContentService) {\n }\n\n public ngOnInit(): void {\n }\n\n public ngOnDestroy(): void {\n this.sink.unsubscribe();\n }\n\n public Remove(item: ISavedContent, type: 'favorite' | 'recent'): void {\n this[type].Remove(item);\n }\n\n public Clear(type: 'favorite' | 'recent'): void {\n this[type].Clear().subscribe();\n }\n\n public trackBy(index: number, item: ISavedContent): number {\n return item.nid;\n }\n\n}\n","
\n
\n
\n
\n

{{ Title$ | async }}

\n\n
\n

no {{ Type }} conditions or ingredients

\n
\n\n
0\" class=\"rowTest clearfix\">\n \n
\n\n \n
\n
\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AllContent, TitleMatch } from 'src/app/services/helpers';\nimport { ConditionService } from 'src/app/services/condition.service';\nimport { IngredientService } from 'src/app/services/ingredient.service';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n templateUrl: './content-search-box.component.html',\n styleUrls: ['./content-search-box.component.scss']\n})\nexport class ContentSearchBoxComponent implements OnInit {\n\n public ContentNodes$: Observable;\n public search$ = new BehaviorSubject<[string, boolean]>(null);\n\n constructor(@Inject(DEPLOY_URL) public deployUrl: string, private conditionService: ConditionService, private ingredientService: IngredientService) {\n \n }\n\n ngOnInit(): void {\n\n this.ContentNodes$ = combineLatest([this.search$, this.conditionService.Content$, this.ingredientService.Content$]).pipe(\n map(([search, conditions, ingredients]) => {\n\n if (!search) {\n return [];\n }\n\n const nodes = [...conditions, ...ingredients];\n const [term, deep] = search;\n let keywords: string[];\n\n if (term === null || term.length < 2) {\n return [];\n }\n\n if (deep) {\n keywords = term.split(/[\\,\\s]+/).map(word => word.replace(/[^\\w\\d]/, ''));\n }\n\n return nodes.filter(node => {\n let match = TitleMatch(node, term);\n\n if (deep) {\n let keywordMatch = false;\n for (const word of keywords) {\n keywordMatch = node.common_names.some(item => item.toString().indexOf(word) !== -1);\n if (keywordMatch) {\n break;\n }\n }\n\n match = match || keywordMatch;\n }\n\n return match;\n });\n })\n );\n }\n\n}\n","

 Search Ingredients or Conditions

\n\n\n\n\n\n
\n
\n

\n \"icon\"\n \n Save ASCP SkinPro to your phone or device so it works like an app!\n

\n
\n
\n\n\n \n
0\" class=\"jumbotron\">\n

No conditions or ingredients found...

\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { ToastrService } from 'ngx-toastr';\n\nimport { pwaToastGetter } from '../../../helpers/pwaToastGetter';\nimport { pwaToastSetter } from '../../../helpers/pwaToastSetter';\nimport { ConditionService } from '../../../services/condition.service';\nimport { IngredientService } from '../../../services/ingredient.service';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n templateUrl: './content-search.component.html',\n styleUrls: ['./content-search.component.scss']\n})\nexport class ContentSearchComponent implements OnInit {\n\n private deviceInfo = null;\n private deviceOS: string;\n\n public Loading$: Observable;\n\n constructor(\n @Inject(DEPLOY_URL) public deployUrl: string,\n private router: Router,\n private toastr: ToastrService,\n private conditionService: ConditionService,\n private ingredientService: IngredientService,\n private dd: DeviceDetectorService) {\n this.deviceInfo = this.dd.getDeviceInfo();\n this.deviceOS = this.deviceInfo.os;\n }\n\n ngOnInit(): void {\n this.Loading$ = this.ingredientService.Content$.pipe(switchMap(() => this.conditionService.Content$))\n\n if (this.deviceOS != 'Android' && pwaToastGetter() != 'yes') {\n this.toastr.info('Please click here for instructions to install ASCP SkinPro', '', {\n disableTimeOut: true,\n positionClass: 'toast-bottom-center',\n closeButton: true\n }).onTap.pipe(take(1)).subscribe(() => {\n pwaToastSetter('yes');\n this.router.navigate(['/add-to-home-screen']);\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
Loading...\n

please reload if you see this longer than several seconds

\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './faq.component.html',\n styleUrls: ['./faq.component.scss']\n})\nexport class FaqComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n

Using SkinPro

\n\n

How do estheticians use ASCP SkinPro?

\n \n

During consultation—Your client mentions a condition or ingredient allergy during the intake process. Need to be sure about contraindications?
\n During skin analysis—You observe a skin condition and want to make a quick decision about the best treatment.
\n While retailing—You're about to recommend a product for your client, but you want to confirm the contraindications and ensure the product will perform as needed.

\n \n

Simply open the app, search for the condition or ingredient, and identify important contraindications and best practices. With ASCP SkinPro, you've got the expert information you need to adjust your treatment plan on the spot.

\n \n

I'm looking for a condition or ingredient that isn't listed in SkinPro. Why isn't it there?

\n \n

ASCP SkinPro focuses on the most common conditions and ingredients estheticians might find while working in the treatment room. While this list was vetted to bring you information on conditions and ingredients you will see again and again throughout the course of your career, the list is always growing. Don't see what you are looking for? Go to the ASCP SkinPro home page and click “List All Ingredients” or “List All Conditions” to see if your term shows up in the program.

\n \n

Can I use the information in ASCP SkinPro to diagnose or treat a client who may have a condition that is considered outside my scope of practice as an esthetician?

\n \n

No. The information provided within ASCP SkinPro is not intended as medical advice. Care has been taken to confirm the accuracy of the information presented herein and to describe generally accepted practices. However, ASCP, the author, editors, and publishers involved in this project, are not responsible for omissions or errors or for any consequences from application of the information in this program, and make no warranty, expressed or implied, regarding the completeness or accuracy of the contents of this publication. Application of the information in a particular situation remains the practitioner's professional responsibility, as is their adherence to scope of practice.

\n \n

What are the system requirements for ASCP SkinPro?

\n \n

ASCP SkinPro is supported by mainstream Web browsers including Chrome, Safari, Firefox, and Microsoft Edge. If you are having trouble viewing ASCP SkinPro in one of these browsers, make sure you have a recent version of your browser installed.

\n \n

How do I add SkinPro to my home screen?

\n \n

Find the menu icon (top-right for desktop users, bottom navigation for mobile users). Click there and scroll down to \"Add App to Home Screen.\" This will give you the directions you need to add ASCP SkinPro to your specific computer or device.

\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\n\nimport { GetSingle } from 'src/app/services/helpers';\nimport { Ingredient } from '../../models/ingredient.model';\nimport { IngredientService } from '../../services/ingredient.service';\nimport { RecentContentService } from 'src/app/services/recent-content.service';\n\n@Component({\n templateUrl: './ingredients.component.html',\n styleUrls: ['./ingredients.component.scss']\n})\nexport class IngredientsComponent implements OnInit {\n\n public Ingredient$: Observable;\n\n constructor(\n private route: ActivatedRoute,\n private ingredientService: IngredientService,\n private recentService: RecentContentService) {\n }\n\n ngOnInit(): void {\n this.Ingredient$ = this.route.paramMap.pipe(\n switchMap(param =>\n GetSingle(this.ingredientService.Content$, param.get('name'))\n ),\n tap(ingredient => this.recentService.Add({\n nid: ingredient.nid,\n status: true,\n type: ingredient.Type,\n name: ingredient.name,\n alias: ingredient.alias,\n })),\n );\n }\n\n}\n","
\n
\n \n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\nimport { tokenGetter } from '../../../helpers/tokenGetter';\nimport { UserService } from '../../../../app/services/user.service';\n\n@Component({\n selector: 'app-login-form',\n templateUrl: './login-form.component.html',\n styleUrls: ['./login-form.component.scss']\n})\nexport class LoginFormComponent implements OnInit {\n\n private sink: SubSink = new SubSink();\n\n public form: FormGroup = new FormGroup({});\n public username: FormControl = new FormControl();\n public password: FormControl = new FormControl();\n\n public Busy$: Subject = new Subject();\n public Error$: Subject = new ReplaySubject(1);\n\n constructor(private userService: UserService, private jwtHelper: JwtHelperService) {\n }\n\n ngOnInit(): void {\n this.Busy$.next(false);\n\n this.username = new FormControl(null, [ Validators.required, Validators.email ]);\n this.password = new FormControl(null, [ Validators.required ]);\n\n this.form = new FormGroup({\n username: this.username,\n password: this.password,\n });\n\n const token = tokenGetter();\n if (token) {\n const isExpired = this.jwtHelper.isTokenExpired(token);\n if (isExpired) {\n this.Error$.next(new Error('Your login session has expired. Please log in again.'));\n }\n }\n }\n\n public ngOnDestroy(): void {\n this.sink.unsubscribe();\n }\n\n public Submit(): void {\n if (this.form.valid) {\n this.Busy$.next(true);\n this.Error$.next(null);\n\n this.sink.sink = this.userService.Login(this.username.value, this.password.value).pipe(take(1)).subscribe({\n next: user => {\n // Redirect handled by parent component\n this.sink.unsubscribe();\n },\n error: error => {\n this.sink.unsubscribe();\n this.Error$.next(error);\n this.Busy$.next(false);\n }\n });\n }\n }\n\n}\n","
\n

ASCP Account Login

\n\n
\n\n \n

\n
\n\n
\n \n \n \n

\n Email is required and must be a valid email address.\n

\n
\n
\n\n
\n \n \n \n

\n Password is required\n

\n
\n
\n\n
\n \n
\n\n
\n
\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Observable, timer } from 'rxjs';\nimport { filter, mapTo, shareReplay, take } from 'rxjs/operators';\n\nimport { User } from '../../../app/models/user.model';\nimport { UserService } from '../../../app/services/user.service';\nimport { DEPLOY_URL } from 'src/app/tokens/deploy-url';\n\n@Component({\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n\n public Timer$: Observable = timer(1500).pipe(shareReplay(1), mapTo(true));\n\n constructor(\n @Inject(DEPLOY_URL) public deployUrl: string,\n private router: Router,\n private userService: UserService) {\n }\n\n public ngOnInit(): void {\n this.userService.User$.pipe(filter(user => user instanceof User && user.IsLoggedIn()), take(1)).subscribe(user => {\n this.router.navigate(['/search']);\n });\n }\n\n}\n","
\n
\n
\n \n\n
\n

Not an ASCP Member?

\n

Join Now

\n
\n
\n
\n
\n\n\n
\n

Loading...

\n
\n
\n","import { animate, group, query, style, transition, trigger } from '@angular/animations';\n\nconst screen = query(':enter, :leave',\n style({\n position: 'fixed',\n width: '100%',\n height: 'calc(999px)'\n }),\n { optional: true });\n\nconst enterFromRight = query(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate('0.3s cubic-bezier(0.25, 0.1, 0.25, 1)',\n style({ transform: 'translateX(0%)' }))\n], { optional: true });\n\nconst leaveToRight = query(':leave', [\n style({ transform: 'translateX(0%)' }),\n animate('0.3s cubic-bezier(0.25, 0.1, 0.25, 1)',\n style({ transform: 'translateX(100%)' }))\n], { optional: true });\n\nconst leaveToLeft = query(':leave', [\n style({ transform: 'translateX(0%)' }),\n animate('0.3s cubic-bezier(0.25, 0.1, 0.25, 1)',\n style({ transform: 'translateX(-100%)' }))\n], { optional: true });\n\nconst enterFromLeft = query(':enter', [\n style({ transform: 'translateX(-100%)' }),\n animate('0.3s cubic-bezier(0.25, 0.1, 0.25, 1)',\n style({ transform: 'translateX(0%)' }))\n], { optional: true });\n\nconst enterFromLeftLeaveToRight = [\n screen,\n group([\n enterFromLeft,\n leaveToRight,\n ])\n];\nexport const slideInAnimation =\n trigger('routeAnimations', [\n transition('contentnode => *', [\n screen,\n group([\n enterFromRight,\n leaveToLeft,\n ])\n ]),\n transition('SlideFromLeft => *', enterFromLeftLeaveToRight),\n transition('* => *', enterFromLeftLeaveToRight),\n ]);\n","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { UserService } from './user.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuardService implements CanActivate {\n\n private loader$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private userService: UserService,\n private router: Router) {\n }\n\n public get Loader$(): Observable {\n return this.loader$;\n }\n\n public canActivate(): Observable {\n\n this.loader$.next(true);\n\n return this.userService.User$.pipe(\n map(user => {\n this.loader$.next(false);\n\n if (user === null || user.IsLoggedIn() === false) {\n this.router.navigate(['login']);\n return false;\n }\n\n return true;\n })\n );\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { Condition } from '../models/condition.model';\nimport { IContentAlias } from '../models/content.interface';\nimport { Environment, IEnvironment } from '../models/environment';\nimport { ContentService } from './content.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConditionService extends ContentService implements OnDestroy {\n\n public constructor(\n @Inject(Environment) environment: IEnvironment,\n http: HttpClient,\n modalService: BsModalService) {\n \n super('conditions', environment, http, modalService);\n }\n\n public ngOnDestroy(): void {\n this.sink.unsubscribe();\n }\n\n protected Instantiate(source: IContentAlias): Condition {\n return new Condition(source);\n }\n\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectionService implements OnDestroy {\n\n private connectionMonitor: BehaviorSubject = new BehaviorSubject((navigator && 'onLine' in navigator) ? navigator.onLine : true);\n private onOffline = ((event: any) => this.connectionMonitor.next(false));\n private onOnline = ((event: any) => this.connectionMonitor.next(true));\n\n public State$: Observable = this.connectionMonitor.asObservable();\n\n constructor() {\n window.addEventListener('offline', this.onOffline);\n window.addEventListener('online', this.onOnline);\n }\n\n public ngOnDestroy(): void {\n this.connectionMonitor.complete();\n window.removeEventListener('offline', this.onOffline);\n window.removeEventListener('online', this.onOnline);\n }\n\n public monitor(): Observable {\n return this.connectionMonitor;\n }\n\n public Offline(): Observable {\n return this.connectionMonitor.pipe(filter(status => !status), map(status => {}));\n }\n\n public Online(): Observable {\n return this.connectionMonitor.pipe(filter(status => status), map(status => {}));\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { Observable, ReplaySubject, Subject, throwError } from 'rxjs';\nimport { catchError, map, shareReplay } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\nimport { ModalErrorComponent } from '../components/modal-error/modal-error.component';\nimport { IContent, IContentAlias } from '../models/content.interface';\nimport { Environment, IEnvironment } from '../models/environment';\nimport { GetAlias } from './helpers';\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class ContentService {\n\n private modalRef?: BsModalRef;\n protected content$: Subject = new ReplaySubject(1);\n protected sink: SubSink = new SubSink();\n\n constructor(\n @Inject(String) protected readonly CONTENT_TYPE: 'ingredients' | 'conditions',\n @Inject(Environment) protected environment: IEnvironment,\n protected http: HttpClient,\n private modalService: BsModalService) {\n this.getJSON().subscribe(data => {\n this.content$.next(data.map(content => this.Instantiate(content)));\n });\n }\n\n private getJSON(): Observable {\n return this.http.get(this.environment.api + this.CONTENT_TYPE).pipe(\n map(results => results.map(ParseContent)),\n shareReplay(1),\n catchError(e => this.handleApiError(e) )\n );\n }\n\n private handleApiError(err: any) {\n let errorMessage = '';\n if (err.error instanceof ErrorEvent) {\n errorMessage = `Error: ${err.message}`;\n } else {\n errorMessage = `Error Code: ${err.status}\\nMessage: ${err.message}`;\n }\n\n this.modalRef = this.modalService.show(ModalErrorComponent);\n return throwError(errorMessage);\n }\n\n protected abstract Instantiate(source: IContentAlias): TYPE;\n\n public get Content$(): Observable {\n return this.content$.asObservable();\n }\n}\n\nfunction ParseContent(content: IContent): IContentAlias {\n const parse = {\n ...content,\n alias: GetAlias(content.name)\n };\n\n return parse;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { ApplicationRef, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\n\nimport { Environment, IEnvironment } from '../models/environment';\nimport { ConnectionService } from './connection.service';\nimport { ISavedContent, SavedContentService } from './saved-content.service';\nimport { UserService } from './user.service';\n\nexport interface FavoriteContent extends ISavedContent {\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FavoriteContentService extends SavedContentService implements OnDestroy {\n\n private endpoint = this.environment.api + 'user/favorite';\n protected bufferTime: number = 1000;\n\n constructor(\n @Inject(Environment) private environment: IEnvironment,\n private http: HttpClient,\n appRef: ApplicationRef,\n userService: UserService,\n connection: ConnectionService) {\n super('FavoriteContent', appRef, userService, connection);\n\n // Refresh the data from the server on first time\n this.getHttp().subscribe(state => this.server$.next(state));\n\n // Get things wired up\n combineLatest([this.appRef.isStable, this.connection.State$]).pipe(\n filter(([stable, connected]) => stable && connected),\n take(1),\n switchMap(() => this.wireEventStream()),\n ).subscribe(state => {\n this.server$.next(state);\n });\n }\n\n public ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n protected getHttp(): Observable {\n return combineLatest([this.userService.User$, this.connection.State$]).pipe(\n filter(([, connected]) => connected),\n switchMap(() => this.http.get(this.endpoint,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n })),\n );\n }\n\n protected updateHttp(state: any[]): Observable {\n return this.http.patch(this.endpoint, state,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n });\n }\n\n protected clearHttp(): Observable {\n return this.http.delete(this.endpoint,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n });\n }\n\n public Sorted$(): Observable {\n return this.state$.pipe(\n map(state => state.sort((a, b) => a.name.localeCompare(b.name))),\n );\n }\n}\n","import { Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nimport { Condition } from \"../models/condition.model\";\nimport { IContentAlias } from \"../models/content.interface\";\nimport { Ingredient } from \"../models/ingredient.model\";\n\nexport type AllContent = Condition | Ingredient;\n\nexport function GetSingle(data$: Observable, name: string): Observable {\n return data$.pipe(map(data => data.find(content =>\n content.alias == name\n )));\n}\n\nexport function TitleMatch(content: AllContent, term: string): boolean {\n let match: boolean;\n match = match || content.name.toLowerCase().indexOf(term) !== -1;\n\n if (content.common_names) {\n match = match || (content.common_names.some(item => item.indexOf(term) !== -1));\n }\n\n return match;\n}\n\nexport function GetAlias(name: string): string {\n return name.toLowerCase().trim().replace(/[^\\sa-z]/g, '').replace(/[\\s]/g, '-');\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\nimport { IContentAlias } from '../models/content.interface';\nimport { Environment, IEnvironment } from '../models/environment';\nimport { Ingredient } from '../models/ingredient.model';\nimport { ContentService } from './content.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IngredientService extends ContentService implements OnDestroy {\n\n public constructor(\n @Inject(Environment) environment: IEnvironment,\n http: HttpClient,\n modalService: BsModalService) {\n super('ingredients', environment, http, modalService);\n }\n\n public ngOnDestroy(): void {\n this.sink.unsubscribe();\n }\n\n protected Instantiate(source: IContentAlias): Ingredient {\n return new Ingredient(source);\n }\n\n}\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from \"@angular/common/http\";\nimport { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { tap } from \"rxjs/operators\";\n\nimport { tokenSetter } from \"../helpers/tokenSetter\";\n\n@Injectable()\nexport class JwtInterceptor implements HttpInterceptor {\n\n\tintercept(req: HttpRequest, next: HttpHandler): Observable> {\n\t\treturn next.handle(req).pipe(tap(response => {\n\t\t\tif (response instanceof HttpResponse) {\n\t\t\t\tif (response.headers.has('X-JWT')) {\n\t\t\t\t\ttokenSetter(response.headers.get('X-JWT') as string);\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\t}\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { ApplicationRef, Inject, Injectable, OnDestroy } from '@angular/core';\nimport { combineLatest, Observable } from 'rxjs';\nimport { filter, map, switchMap, take } from 'rxjs/operators';\n\nimport { Environment, IEnvironment } from '../models/environment';\nimport { ConnectionService } from './connection.service';\nimport { ISavedContent, SavedContentService } from './saved-content.service';\nimport { UserService } from './user.service';\n\nexport interface RecentContent extends ISavedContent {\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RecentContentService extends SavedContentService implements OnDestroy {\n\n private endpoint = this.environment.api + 'user/recent';\n protected bufferTime: number = 1000;\n \n constructor(\n @Inject(Environment) private environment: IEnvironment,\n private http: HttpClient,\n appRef: ApplicationRef,\n userService: UserService,\n connection: ConnectionService) {\n \n super('RecentContent', appRef, userService, connection);\n\n // Refresh the data from the server on first time\n this.getHttp().subscribe(state => this.server$.next(state));\n\n // Get things wired up\n combineLatest([this.appRef.isStable, this.connection.State$]).pipe(\n filter(([stable, connected]) => stable && connected),\n take(1),\n switchMap(() => this.wireEventStream()),\n ).subscribe(state => {\n this.server$.next(state);\n });\n }\n\n public ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n protected clearHttp(): Observable {\n return this.http.delete(this.endpoint,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n });\n }\n\n protected getHttp(): Observable {\n return combineLatest([this.userService.User$, this.connection.State$]).pipe(\n filter(([, connected]) => connected),\n switchMap(() => this.http.get(this.endpoint,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n })),\n );\n }\n\n protected updateHttp(state: any[]): Observable {\n return this.http.patch(this.endpoint, state,\n {\n headers: {\n \"Authorization\": \"Bearer \" + this.token\n }\n });\n }\n\n public Sorted$(): Observable {\n return this.state$.pipe(\n map(state => state.sort((a, b) => b.timestamp - a.timestamp)),\n );\n }\n \n}\n","import { Injectable } from '@angular/core';\nimport { Inject } from '@angular/core';\nimport { ApplicationRef, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, merge, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { catchError, concatMap, map, tap, withLatestFrom } from 'rxjs/operators';\nimport { SubSink } from 'subsink';\n\nimport { ConnectionService } from './connection.service';\nimport { UserService } from './user.service';\n\nexport interface ISavedContent {\n nid: number;\n status: boolean;\n type: 'condition' | 'ingredient';\n timestamp?: number;\n name?: string;\n alias?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport abstract class SavedContentService implements OnDestroy {\n\n protected abstract readonly bufferTime: number;\n\n protected token: string;\n\n /**\n * Stream of user-triggered state changes\n */\n protected user$: Subject;\n\n /**\n * Stream for server-triggered state changes\n */\n protected server$: Subject;\n\n /**\n * Combined stream of user and server trigger changes,\n * used by the ui to show immediate reactions to user interaction\n * while the changes are buffered before sent to the server\n */\n protected state$: Observable;\n\n /**\n * Stream of individual ui changes for queuing\n */\n protected changes$: Subject;\n\n /**\n * Sink for unsubscribing to subscripions\n */\n protected subs = new SubSink();\n\n constructor(\n @Inject(null)\n protected readonly storage: string,\n protected appRef: ApplicationRef,\n protected userService: UserService,\n protected connection: ConnectionService) {\n this.storage = storage;\n \n this.userService.User$.subscribe(u => this.token = u.jwt);\n\n // Initialize standard streams\n this.user$ = new Subject();\n this.changes$ = new Subject();\n\n // Get cached copy of data\n const initial = this.getStorage();\n\n // Server stream has a default state based from localStorage cache\n this.server$ = initial ? new BehaviorSubject(initial) : new ReplaySubject(1);\n\n // Merge the user and server triggered state change stream\n this.state$ = merge(this.user$, this.server$);\n }\n\n public ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n private getStorage(): T[] | false {\n if (localStorage && localStorage instanceof Storage) {\n const savedString = localStorage.getItem(this.storage);\n if (savedString) {\n try {\n const savedObject = JSON.parse(savedString);\n return savedObject;\n } catch {\n localStorage.removeItem(this.storage);\n }\n }\n }\n\n return false;\n }\n\n protected saveStorage(values: T[]): void {\n if (localStorage && localStorage instanceof Storage) {\n localStorage.setItem(this.storage, JSON.stringify(values));\n }\n }\n\n protected abstract getHttp(): Observable;\n\n protected abstract updateHttp(state: T[]): Observable;\n\n protected abstract clearHttp(): Observable;\n\n protected wireEventStream(): Observable {\n return this.changes$.pipe(\n /**\n * First we need to merge the current single update with the most\n * recent state so the ui can be updated immediately\n */\n withLatestFrom(this.state$),\n map(([update, oldState]) => {\n update.timestamp = (new Date()).getTime();\n\n let newState: T[];\n const index = oldState.findIndex(f => f.nid === update.nid);\n if (index !== -1) {\n newState = [...oldState];\n newState[index] = Object.assign(newState[index], update);\n } else {\n newState = [update, ...oldState];\n }\n\n // Push the state change to the user stream\n this.user$.next(newState);\n\n return update;\n }),\n\n /**\n * Get the latest state (in case it changed since we started) and\n * merge the array of changes into it\n */\n withLatestFrom(this.state$),\n map(([updates, oldState]) => {\n // This creates duplicates, but the changes should be at the end of list\n const combined = [...oldState, updates];\n\n // Reduce the array of duplicates down to an array w/o\n return combined.reduce((dedup: T[], item, i) => {\n\n // See if the item is already in the list\n const index = dedup.findIndex(f => f.nid === item.nid);\n\n // If it is already in the list\n if (index !== -1) {\n /**\n * Find the most recent instance from the timestamp,\n * and merge it into the other instance of the same record.\n */\n if (item.timestamp > dedup[index].timestamp) {\n dedup[index] = Object.assign(dedup[index], item);\n } else {\n dedup[index] = Object.assign(item, dedup[index]);\n }\n\n // Return the reduced array\n return dedup;\n } else {\n /**\n * Current item isn't already in the reduce array,\n * so just return it w/ the new item at the end\n */\n return [...dedup, item];\n }\n }, []);\n }),\n\n /**\n * Now that we have a merged array of the old state with the new state,\n * send it to the server to update the database\n */\n withLatestFrom(this.connection.State$, this.userService.User$),\n concatMap(([state, connected, user]) => connected ?\n this.updateHttp(state).pipe(catchError((error, caught) => of(state)))\n : of(state)),\n tap(state => this.saveStorage(state))\n ) as Observable;\n }\n\n public Has$(item: T): Observable {\n return this.state$.pipe(map(stubs => stubs.find(stub => stub.nid === item.nid && stub.status === item.status) !== undefined));\n }\n\n protected update(item: T): void {\n this.changes$.next(item);\n }\n\n public Add(item: T): void {\n item.status = true;\n this.update(item);\n }\n\n public Remove(item: T): void {\n item.status = false;\n this.update(item);\n }\n\n public Clear(): Observable {\n return this.clearHttp().pipe(\n withLatestFrom(this.state$),\n map(([, latest]) => latest.map(item => ({...item, status: false }))),\n tap(results => this.server$.next(results))\n );\n }\n\n public State$(): Observable {\n return this.state$;\n }\n\n public abstract Sorted$(): Observable;\n\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { JwtHelperService } from '@auth0/angular-jwt';\nimport { Observable, ReplaySubject, Subject, of } from 'rxjs';\nimport { catchError, map, switchMap, take, tap } from 'rxjs/operators';\n\nimport { tokenGetter } from '../helpers/tokenGetter';\nimport { Environment, IEnvironment } from '../models/environment';\nimport { IUser, JWTSSO, PACJwt, User } from '../models/user.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n\n private user$: Subject = new ReplaySubject(1);\n\n public get User$(): Observable {\n return this.user$.asObservable();\n }\n\n constructor(\n @Inject(Environment) private environment: IEnvironment,\n private router: Router,\n private httpClient: HttpClient,\n private jwtHelper: JwtHelperService) {\n\n this.CheckActiveSession();\n\n }\n\n private CheckActiveSession(): void {\n this.httpClient.get('/api/individual').subscribe((response: any) => {\n let token = response?.JWT;\n\n if(token) {\n let base64 = token.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\n let jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n let jwtObject = JSON.parse(jsonPayload);\n\n let user = new User(jwtObject as JWTSSO);\n user.jwt = token;\n this.PingApi(user).subscribe(user => {\n this.user$.next(user);\n console.log(user);\n });\n }\n });\n }\n\n public Login(Username: string, Password: string): Observable {\n return this.httpClient\n .post(this.environment.netforum + 'JWT',\n { UserName: Username, Password: Password },\n {\n params: {\n Site: 'ASCP'\n },\n }\n )\n .pipe(\n catchError((err) => this.HandleLoginError(err)),\n map(response => {\n if (response instanceof Error) {\n throw response;\n }\n const user = new User(response);\n return user;\n }),\n switchMap(user => this.PingApi(user)),\n tap(user => {\n if (user instanceof User) {\n this.user$.next(user);\n }\n }),\n );\n }\n\n private PingApi(user: User): Observable {\n return this.httpClient.get(this.environment.api + 'user',\n {\n headers: {\n \"Authorization\": \"Bearer \" + user.jwt\n }\n }).pipe(\n catchError((err) => this.pingHandleError(err)),\n map(response => {\n if (response instanceof Error) {\n return null;\n }\n return user;\n }),\n take(1),\n );\n }\n\n private pingHandleError(err) {\n if (err.status === 403) {\n this.router.navigate(['/access-denied']);\n }\n return this.HandleLoginError(err);\n }\n\n private HandleLoginError(error: HttpErrorResponse): Observable {\n if (error.status === 403) {\n if (error.error && 'message' in error.error) {\n \n if (error.error.message === 'Login Required') {\n return of(new Error('Login Required'));\n }\n if (error.error.message === 'LoginByEmail Failed') {\n return of(new Error('Sorry, unrecognized email address or password.'));\n }\n if (error.error.message.includes('permission is required')) {\n return of(new Error('Access to this resource is not included in your membership'));\n }\n\n return of(new Error(error.error.message));\n }\n }\n\n if (error.error && 'message' in error.error) {\n if (error.error.message === 'Failed to aquire read lock') {\n return of(new Error(error.error.message));\n }\n\n return of(new Error('Unknown error: ' + error.error.message));\n }\n\n return of(new Error(`Unknown error: ${error.status} ${error.statusText} ${error.error}`));\n }\n\n public authenticateFromToken(): void {\n try {\n const token = tokenGetter();\n if (!token) {\n this.user$.next(null);\n return;\n }\n\n const decodedToken = this.jwtHelper.decodeToken(token);\n const isExpired = this.jwtHelper.isTokenExpired(token);\n\n if (!isExpired) {\n if ('pac' in decodedToken) {\n const user = new User(decodedToken);\n user.jwt = token;\n user.fromCache = true;\n this.PingApi(user).subscribe(user => this.user$.next(user));\n return ;\n }\n }\n } catch (e) {\n console.error(e);\n }\n\n this.user$.next(null);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const DEPLOY_URL = new InjectionToken('deployUrl');\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nimport { IEnvironment } from \"../app/models/environment\";\n\nexport const environment: IEnvironment = {\n production: false,\n name: 'Test',\n api: '/',\n netforum: 'https://members.ascpskincare.com/nfPACTest/eWeb/',\n BuildTime: new Date()\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/plugins/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, IEnvironment } from './app/models/environment';\nimport { DEPLOY_URL } from './app/tokens/deploy-url';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nconst deployUrl = (function() {\n const script = document.querySelector('script[src*=\"main.\"]') as HTMLScriptElement;\n return script.getAttribute('src').replace(/main.*?\\.js$/, '');\n})();\n\nlet ENVIRONMENT: IEnvironment = environment;\n\nfetch('environment.json')\n .then(response => response.json())\n .then(environment => {\n ENVIRONMENT = {...environment};\n return platformBrowserDynamic([\n {\n provide: Environment,\n useValue: ENVIRONMENT\n },\n {\n provide: DEPLOY_URL,\n useValue: deployUrl\n }\n ]).bootstrapModule(AppModule)\n })\n .catch(err => console.error(err));\n"],"names":["NavigationEnd","ResolveEnd","Observable","filter","map","share","take","SubSink","slideInAnimation","tokenSetter","i0","AppComponent","constructor","element","router","user","guard","toastr","updates","events","pipe","event","url","startsWith","State$","state","token","nativeElement","getAttribute","subscribe","gtag","page_path","urlAfterRedirects","ngOnInit","authenticateFromToken","guardLoader$","Loader$","sink","htmlClass","User$","IsLoggedIn","hideMenu","versionUpdates","e","type","info","disableTimeOut","positionClass","closeButton","onTap","location","reload","ngOnDestroy","unsubscribe","selectors","hostVars","hostBindings","ctx","ElementRef","combineLatest","Subject","timer","shareReplay","faSearch","Condition","TitleMatch","User","DEPLOY_URL","NavSearchBarComponent","deployUrl","conditionService","ingredientService","userService","elRef","showAppMenuDropdown$","isLoggedIn","routeEvent","search$","searchIsSet","ContentNodes$","Content$","search_term","conditions","ingredients","nodes","node","match","onTransitionEnd","propertyName","parentElement","classList","contains","search","focus","blur","onSelect","next","contentType","item","navigate","alias","close","searchOpen","viewQuery","$event","toLowerCase","_r2","faBookmark","farBookmark","faBookmarkSolid","merge","ReplaySubject","debounceTime","switchMap","TitleComponent","favoriteService","content$","content","Has$","nid","status","Type","Favorite$","name","Content","subsink","Add","Remove","ToggleFaveStar","inputs","decls","vars","consts","template","faBars","faChevronLeft","faTimes","faWindowClose","faHistory","faUndo","faHome","faBookmarkRegular","ctx_r4","HeaderNavComponent","route","back","tap","GetSingle","Condition_r1","ConditionsComponent","recentService","Condition$","paramMap","param","get","condition","BehaviorSubject","ContentListComponent","snapshot","params","filter$","length","some","letter","withLatestFrom","ctx_r6","ctx_r10","ctx_r0","ContentSavedComponent","recent","favorite","data","title","Type$","Sorted$","slice","Clear","trackBy","index","ContentSearchBoxComponent","term","deep","keywords","split","word","replace","keywordMatch","common_names","toString","indexOf","pwaToastGetter","pwaToastSetter","ContentSearchComponent","dd","deviceInfo","getDeviceInfo","deviceOS","os","Loading$","_r1","Ingredient_r1","IngredientsComponent","Ingredient$","ingredient","FormControl","FormGroup","Validators","tokenGetter","LoginFormComponent","jwtHelper","Busy$","username","required","email","password","form","isExpired","isTokenExpired","Error$","Error","Submit","valid","Login","value","error","_r5","mapTo","LoginComponent"],"sourceRoot":"webpack:///"}