{"version":3,"file":"918.3d61d24e9ade7ffc.js","mappings":"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","names":["LoadLandingPages","createAction","LoadLandingPagesSuccess","props","LoadLandingPagesFail","LoadLandingPageBySlug","LoadLandingPageBySlugSuccess","LoadLandingPageBySlugFail","LoadLandingPageById","LoadLandingPageByIdSuccess","LoadLandingPageByIdFail","LandingPagesService","constructor","http","BASE_URL","this","getPages","get","getPageBySlug","slug","getPageById","id","static","t","i0","i1","core","Yz7","factory","ɵfac","providedIn","effects","LandingPagesEffects","actions$","PageService","LoadBugs$","createEffect","pipe","ofType","landingblockActions","switchMap","map","landingPages","catchError","error","of","LoadBySlug$","page","LoadById$","LoadBySlugFail$","Go","path","status","extras","skipLocationChange","LoadByIdFail$","i2","landingPageReducer","createReducer","entities","loaded","loading","initialState","on","pageActions","state","utility","toLowerCase","trim","filter","featureKey","reducers","fromLandingpages","getLandingState","createFeatureSelector","metaReducers","getLandingPageState","createSelector","fromFeature","getLandingPageEntities","getLandingPagesLoaded","getAllLandingPages","Object","keys","getLandingPagesLoading","getSelectedLandingPage","fromRoot","router","params","data","getSelectedLandingPageLoaded","getSelectedLandingPageLoading","slugs","includes","page_r1","header","ctx_r2","cookiePreferences$","title","subtitle","intro","button","routerLink","text","LandingPageComponent_article_0_ng_template_2_strong_1_Template","LandingPageComponent_article_0_ng_template_2_div_5_Template","LandingPageComponent_article_0_ng_template_2_button_6_Template","url","contentBlocks","LandingPageComponent_article_0_app_header_1_Template","LandingPageComponent_article_0_ng_template_2_Template","LandingPageComponent_article_0_main_4_Template","image","_r3","length","LandingPageComponent","store","cd","ngOnInit","landingPage$","select","fromStore","take","subscribe","dispatch","SetMetadata","metaData","navActions","theme","hide","getCookiePreferences","hasHeader","obj","values","every","value","ngOnDestroy","Xpm","selectors","decls","vars","consts","template","rf","ctx","LandingPageComponent_article_0_Template","LandingPageMetaGuard","lang","dict","FromDictionaryPipe","canActivate","checkStore","tap","SetTitle","transform","SetCanonical","canonical","SetTags","properties","description","StringUtility","Truncate","StripHTML","imageUrl","SetStructuredData","name","publisher","logo","a","LandingPageGuard","withLatestFrom","routes","pathMatch","component","LandingPagesRoutingModule","oAB","cJS","RouterModule","forChild","LandingPagesModule","CommonModule","CoreModule","ContentBlocksModule","DictionaryNgrxModule","TextUtilityModule","ThemeHeaderComponent","CookieNgrxModule","StoreModule","forFeature","EffectsModule"],"sourceRoot":"webpack:///","sources":["./src/app/landing-pages/store/actions/landing-pages.action.ts","./src/app/landing-pages/services/landing-pages.service.ts","./src/app/landing-pages/store/effects/index.ts","./src/app/landing-pages/store/effects/landing-pages.effect.ts","./src/app/landing-pages/store/reducers/landing-pages.reducer.ts","./src/app/landing-pages/store/reducers/index.ts","./src/app/landing-pages/store/selectors/landing-pages.selector.ts","./src/app/landing-pages/containers/landing-page/landing-page.component.html","./src/app/landing-pages/containers/landing-page/landing-page.component.ts","./src/app/landing-pages/guards/landing-page-meta.guard.ts","./src/app/landing-pages/guards/landing-page.guard.ts","./src/app/landing-pages/guards/index.ts","./src/app/landing-pages/landing-pages-routing.module.ts","./src/app/landing-pages/landing-pages.module.ts"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\r\nimport { LandingPage } from '../../models';\r\n\r\nexport const LoadLandingPages = createAction('[Landing] Load Landing Pages');\r\nexport const LoadLandingPagesSuccess = createAction('[Landing] Load Landing Pages Success', props<{ landingPages: LandingPage[] }>());\r\nexport const LoadLandingPagesFail = createAction('[Landing] Load Landing Pages Fail', props<{ error: any }>());\r\n\r\nexport const LoadLandingPageBySlug = createAction('[Landing] Load Landing Page by Slug', props<{ slug: string }>());\r\nexport const LoadLandingPageBySlugSuccess = createAction('[Landing] Load Landing Page by Slug Success', props<{ page: LandingPage }>());\r\nexport const LoadLandingPageBySlugFail = createAction('[Landing] Load Landing Page by Slug Fail', props<{ error: any; slug: string }>());\r\n\r\nexport const LoadLandingPageById = createAction('[Landing] Load Landing Page by Id', props<{ id: number }>());\r\nexport const LoadLandingPageByIdSuccess = createAction('[Landing] Load Landing Page by Id Success', props<{ page: LandingPage }>());\r\nexport const LoadLandingPageByIdFail = createAction('[Landing] Load Landing Page by Id Fail', props<{ error: any }>());\r\n","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LandingPage } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LandingPagesService {\r\n constructor(\r\n private http: HttpClient,\r\n @Optional()\r\n @Inject('BASE_URL')\r\n private BASE_URL: string\r\n ) {}\r\n\r\n getPages() {\r\n return this.http.get(`${this.BASE_URL}api/landing-pages`);\r\n }\r\n\r\n getPageBySlug(slug: string) {\r\n return this.http.get(`${this.BASE_URL}api/landing-pages/${slug}`);\r\n }\r\n\r\n getPageById(id: number) {\r\n return this.http.get(`${this.BASE_URL}api/landing-pages/${id}`);\r\n }\r\n}\r\n","import { LandingPagesEffects } from './landing-pages.effect';\r\n\r\nexport const effects = [LandingPagesEffects];\r\nexport * from './landing-pages.effect';\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as landingblockActions from '../actions/landing-pages.action';\r\nimport { switchMap, map, catchError } from 'rxjs/operators';\r\nimport { LandingPagesService } from '../../services';\r\nimport { Go } from 'src/app/store';\r\n\r\n@Injectable()\r\nexport class LandingPagesEffects {\r\n constructor(private actions$: Actions, private PageService: LandingPagesService) {}\r\n\r\n LoadBugs$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(landingblockActions.LoadLandingPages),\r\n switchMap(() =>\r\n this.PageService.getPages().pipe(\r\n map(landingPages => landingblockActions.LoadLandingPagesSuccess({ landingPages })),\r\n catchError(error => of(landingblockActions.LoadLandingPagesFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n\r\n LoadBySlug$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(landingblockActions.LoadLandingPageBySlug),\r\n switchMap(({ slug }) =>\r\n this.PageService.getPageBySlug(slug).pipe(\r\n map(page => landingblockActions.LoadLandingPageBySlugSuccess({ page })),\r\n catchError(error => of(landingblockActions.LoadLandingPageBySlugFail({ error, slug })))\r\n )\r\n )\r\n );\r\n });\r\n\r\n LoadById$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(landingblockActions.LoadLandingPageById),\r\n switchMap(({ id }) =>\r\n this.PageService.getPageById(id).pipe(\r\n map(page => landingblockActions.LoadLandingPageByIdSuccess({ page })),\r\n catchError(error => of(landingblockActions.LoadLandingPageByIdFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n\r\n LoadBySlugFail$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(landingblockActions.LoadLandingPageBySlugFail),\r\n map(({ error }) => {\r\n return Go({ path: ['/' + error?.status ? error.status : '404'], extras: { skipLocationChange: true } });\r\n })\r\n );\r\n });\r\n LoadByIdFail$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(landingblockActions.LoadLandingPageByIdFail),\r\n map(({ error }) => {\r\n return Go({ path: ['/' + error?.status ? error.status : '404'], extras: { skipLocationChange: true } });\r\n })\r\n );\r\n });\r\n}\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport { LandingPage } from '../../models';\r\nimport * as pageActions from '../actions/landing-pages.action';\r\nimport * as utility from '../../../utility';\r\n\r\nexport interface LandingPagesState {\r\n entities: { [slug: string]: LandingPage };\r\n loaded: string[];\r\n loading: string[];\r\n error?: any;\r\n}\r\n\r\nexport const initialState: LandingPagesState = {\r\n entities: {},\r\n loaded: [],\r\n loading: [],\r\n};\r\n\r\nexport const landingPageReducer = createReducer(\r\n initialState,\r\n on(pageActions.LoadLandingPages, (state: LandingPagesState) => {\r\n return {\r\n ...state,\r\n loading: [],\r\n };\r\n }),\r\n on(pageActions.LoadLandingPagesSuccess, (state: LandingPagesState, { landingPages }) => {\r\n const entities = utility.ToEntities(landingPages, 'slug', state.entities);\r\n return {\r\n ...state,\r\n entities,\r\n loading: [],\r\n loaded: landingPages.map(page => page.slug.toLowerCase().trim()),\r\n };\r\n }),\r\n on(pageActions.LoadLandingPagesFail, (state: LandingPagesState, { error }) => {\r\n return {\r\n ...state,\r\n loading: [],\r\n loaded: [],\r\n error,\r\n };\r\n }),\r\n on(pageActions.LoadLandingPageBySlug, (state: LandingPagesState, { slug }) => {\r\n slug = slug?.toLowerCase().trim();\r\n return {\r\n ...state,\r\n loading: [...state.loading, slug],\r\n };\r\n }),\r\n on(pageActions.LoadLandingPageBySlugSuccess, (state: LandingPagesState, { page }) => {\r\n const entities = { ...state.entities, [page.slug.toLowerCase().trim()]: page };\r\n return {\r\n ...state,\r\n entities,\r\n loading: state.loading.filter(slug => slug !== page.slug.toLowerCase().trim()),\r\n loaded: [...state.loaded, page.slug.toLowerCase().trim()],\r\n };\r\n }),\r\n on(pageActions.LoadLandingPageBySlugFail, (state: LandingPagesState, { error, slug }) => {\r\n slug = slug?.toLowerCase().trim();\r\n return {\r\n ...state,\r\n loading: state.loading.filter(slug => slug !== slug),\r\n loaded: state.loaded.filter(slug => slug !== slug),\r\n error,\r\n };\r\n })\r\n);\r\n\r\nexport const getLandingPagesEntities = (state: LandingPagesState) => state.entities;\r\nexport const getLandingPagesLoading = (state: LandingPagesState) => state.loading;\r\nexport const getLandingPagesLoaded = (state: LandingPagesState) => state.loaded;\r\n","import * as fromLandingpages from '../reducers/landing-pages.reducer';\r\nimport { ActionReducerMap, createFeatureSelector, MetaReducer } from '@ngrx/store';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\nexport const featureKey = 'landing-pages';\r\n\r\nexport interface LandingState {\r\n landingPages: fromLandingpages.LandingPagesState;\r\n}\r\n\r\nexport const reducers: ActionReducerMap = {\r\n landingPages: fromLandingpages.landingPageReducer,\r\n};\r\n\r\nexport const getLandingState = createFeatureSelector(featureKey);\r\n\r\nexport const metaReducers: MetaReducer[] = !environment.production ? [] : [];\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromLandingPages from '../reducers/landing-pages.reducer';\r\nimport { LandingPage } from '../../models';\r\nimport * as fromRoot from '../../../store';\r\n\r\nexport const getLandingPageState = createSelector(fromFeature.getLandingState, (state: fromFeature.LandingState) => state.landingPages);\r\n\r\nexport const getLandingPageEntities = createSelector(getLandingPageState, fromLandingPages.getLandingPagesEntities);\r\n\r\nexport const getAllLandingPages = createSelector(getLandingPageEntities, entities => {\r\n return Object.keys(entities).map(slug => entities[slug]);\r\n});\r\n\r\nexport const getLandingPagesLoaded = createSelector(getLandingPageState, fromLandingPages.getLandingPagesLoaded);\r\nexport const getLandingPagesLoading = createSelector(getLandingPageState, fromLandingPages.getLandingPagesLoading);\r\n\r\nexport const getSelectedLandingPage = createSelector(getLandingPageEntities, fromRoot.getRouterState, (entities, router): LandingPage => {\r\n return router.state && entities[router.state.params?.['slug'] || router.state.data?.['slug']];\r\n});\r\n\r\nexport const getSelectedLandingPageLoading = createSelector(getLandingPagesLoading, fromRoot.getRouterState, (slugs, router): boolean => {\r\n return router.state && slugs.includes(router.state.params?.['slug'] || router.state.data?.['slug']);\r\n});\r\n\r\nexport const getSelectedLandingPageLoaded = createSelector(getLandingPagesLoaded, fromRoot.getRouterState, (slugs, router): boolean => {\r\n return router.state && slugs.includes(router.state.params?.['slug'] || router.state.data?.['slug']);\r\n});\r\n","
\r\n \r\n\r\n \r\n
\r\n {{ page.header.subtitle }}\r\n

\r\n {{ page.title }}\r\n \r\n

\r\n
\r\n {{ page.header.intro }}\r\n
\r\n \r\n {{ page.header.button.text }}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef } from '@angular/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\nimport { LandingPage } from '../../models';\r\nimport { SetMetadata } from '../../../store';\r\nimport * as fromStore from '../../store';\r\nimport * as navActions from '../../../store/actions/nav.action';\r\n\r\nimport { CookiePreferences, getCookiePreferences } from '@teamfoster/sdk/cookie-ngrx';\r\n\r\n@Component({\r\n selector: 'app-landing-page',\r\n templateUrl: './landing-page.component.html',\r\n\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LandingPageComponent implements OnInit, OnDestroy {\r\n landingPage$!: Observable;\r\n cookiePreferences$?: Observable;\r\n\r\n constructor(private store: Store, private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.landingPage$ = this.store.select(fromStore.getSelectedLandingPage);\r\n this.landingPage$.pipe(take(1)).subscribe(page => {\r\n this.store.dispatch(SetMetadata({ data: page.metaData }));\r\n\r\n if (page.slug === 'home') {\r\n this.store.dispatch(navActions.SetTheme({ theme: 'palette-dark' }));\r\n this.store.dispatch(navActions.hideLogo({ hide: true }));\r\n }\r\n });\r\n\r\n this.cookiePreferences$ = this.store.select(getCookiePreferences);\r\n }\r\n\r\n hasHeader(obj: any) {\r\n return Object.values(obj).every(value => !!value) || !!obj?.image?.url;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.store.dispatch(navActions.SetTheme({ theme: 'palette-light' }));\r\n this.store.dispatch(navActions.hideLogo({ hide: false }));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Store } from '@ngrx/store';\r\nimport { tap, take, switchMap, catchError, map, filter } from 'rxjs/operators';\r\n\r\nimport * as fromStore from '../store';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SetTitle, SetTags, SetCanonical, SetStructuredData } from '../../store';\r\nimport { StringUtility } from '@teamfoster/sdk/text-utility';\r\nimport { FromDictionaryPipe, LanguageService } from '@teamfoster/sdk/dictionary-ngrx';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LandingPageMetaGuard {\r\n private dict = new FromDictionaryPipe(this.lang);\r\n\r\n constructor(private store: Store, private lang: LanguageService) {}\r\n\r\n canActivate(): Observable {\r\n return this.checkStore().pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(): Observable {\r\n return this.store.select(fromStore.getSelectedLandingPage).pipe(\r\n tap(page => {\r\n if (!page) {\r\n return;\r\n }\r\n this.store.dispatch(\r\n SetTitle({\r\n title: `${page?.metaData.title} ${\r\n this.dict.transform('meta-titel-suffix') ? '- ' + this.dict.transform('meta-titel-suffix') : ''\r\n }`,\r\n })\r\n );\r\n this.store.dispatch(SetCanonical({ url: page.canonical }));\r\n this.store.dispatch(\r\n SetTags({\r\n properties: {\r\n 'description': StringUtility.Truncate(StringUtility.StripHTML(page.metaData.description), 157, '...'),\r\n 'og:image': page.metaData.imageUrl ? `https:${page.metaData.imageUrl}` : '',\r\n 'og:title': `${page.metaData.title} ${this.dict.transform('meta-titel-suffix')}`,\r\n 'og:description': StringUtility.Truncate(StringUtility.StripHTML(page.metaData.description), 157, '...'),\r\n 'twitter:card': 'summary_large_image',\r\n 'twitter:image': page.metaData.imageUrl ? `https:${page.metaData.imageUrl}` : '',\r\n 'twitter:title': `${page.metaData.title} ${this.dict.transform('meta-titel-suffix')}`,\r\n 'twitter:description': StringUtility.Truncate(StringUtility.StripHTML(page.metaData.description), 157, '...'),\r\n },\r\n })\r\n );\r\n this.store.dispatch(\r\n SetStructuredData({\r\n data: {\r\n '@context': 'http://schema.org',\r\n '@type': 'WebPage',\r\n 'name': `${page.metaData.title} ${this.dict.transform('meta-titel-suffix')}`,\r\n 'description': StringUtility.Truncate(StringUtility.StripHTML(page.metaData.description), 157, '...'),\r\n 'image': page.metaData.imageUrl ? `https:${page.metaData.imageUrl}` : '',\r\n 'publisher': {\r\n '@type': 'Organization',\r\n 'name': 'Onze IJssel',\r\n 'logo': {\r\n '@type': 'ImageObject',\r\n 'url': `https://www.onzeijssel.nl/assets/gfx/onze-ijssel-logo.svg`,\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }),\r\n filter(a => a?.id > 0),\r\n map(a => true),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n\r\nimport { Store } from '@ngrx/store';\r\nimport { tap, filter, take, switchMap, catchError, withLatestFrom, map } from 'rxjs/operators';\r\n\r\nimport * as fromStore from '../store';\r\nimport * as fromRoot from '../../store';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LandingPageGuard {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(): Observable {\r\n return this.checkStore().pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(): Observable {\r\n return this.store.select(fromStore.getSelectedLandingPageLoaded).pipe(\r\n withLatestFrom(this.store.select(fromRoot.getRouterState)),\r\n tap(([loaded, router]) => {\r\n if (!loaded) {\r\n const slug = router.state.params['slug'] || router.state.data['slug'];\r\n this.store.dispatch(fromStore.LoadLandingPageBySlug({ slug }));\r\n }\r\n }),\r\n filter(([loaded, router]) => loaded),\r\n map(([loaded, router]) => loaded),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { LandingPageMetaGuard } from './landing-page-meta.guard';\r\nimport { LandingPageGuard } from './landing-page.guard';\r\n\r\nexport * from './landing-page.guard';\r\nexport * from './landing-page-meta.guard';\r\n\r\nexport const guards = [LandingPageGuard, LandingPageMetaGuard];\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LandingPageComponent } from './containers/landing-page/landing-page.component';\r\nimport { LandingPageGuard, LandingPageMetaGuard } from './guards';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n pathMatch: 'full',\r\n component: LandingPageComponent,\r\n data: {\r\n slug: 'home',\r\n },\r\n canActivate: [LandingPageGuard, LandingPageMetaGuard],\r\n },\r\n {\r\n path: ':slug',\r\n component: LandingPageComponent,\r\n canActivate: [LandingPageGuard, LandingPageMetaGuard],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class LandingPagesRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { LandingPagesRoutingModule } from './landing-pages-routing.module';\r\nimport { LandingPageComponent } from './containers/landing-page/landing-page.component';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\n\r\nimport * as fromStore from './store';\r\nimport { CoreModule } from '../core/core.module';\r\nimport { ContentBlocksModule } from '../content-blocks/content-blocks.module';\r\nimport { TextUtilityModule } from '@teamfoster/sdk/text-utility';\r\nimport { CookieNgrxModule } from '@teamfoster/sdk/cookie-ngrx';\r\nimport { DictionaryNgrxModule } from '@teamfoster/sdk/dictionary-ngrx';\r\nimport { ThemeHeaderComponent } from '../themes/components/theme-header/theme-header.component';\r\n\r\n@NgModule({\r\n declarations: [LandingPageComponent],\r\n imports: [\r\n CommonModule,\r\n CoreModule,\r\n LandingPagesRoutingModule,\r\n ContentBlocksModule,\r\n DictionaryNgrxModule,\r\n TextUtilityModule,\r\n ThemeHeaderComponent,\r\n CookieNgrxModule,\r\n StoreModule.forFeature(fromStore.featureKey, fromStore.reducers, {\r\n metaReducers: fromStore.metaReducers,\r\n }),\r\n EffectsModule.forFeature(fromStore.effects),\r\n ],\r\n})\r\nexport class LandingPagesModule {}\r\n"],"x_google_ignoreList":[]}