{"version":3,"file":"42.4b646a6123ffc8a1.js","mappings":"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","names":["YoutubePlayerModule","static","this","ɵfac","t","ɵmod","i0","type","ɵinj","imports","CommonModule","ContentSliderModule","core","oAB","cJS","ImageModule","TextUtilityModule","StoreModule","forFeature","fromStore","metaReducers","EffectsModule","CoreModule","DictionaryNgrxModule","RouterModule","page_r1","intro","ContentPageComponent_article_0_div_3_Template","_c0","text","tmp_2_0","ctx_r0","cookiePreferences$","undefined","ContentPageComponent","constructor","platformId","store","ngOnInit","page$","select","selectors","getCookiePreferences","isPlatformBrowser","window","scrollTo","PLATFORM_ID","i1","Xpm","decls","vars","consts","template","rf","ctx","ContentPageComponent_article_0_Template","routes","path","component","canActivate","ContentPageDetailGuard","ContentPageMetaGuard","ContentRoutingModule","forChild","ContentStoryModule","ContentModule","fromContent","InViewModule","Html5VideoPlayerModule","IconModule","CookieNgrxModule","DynamicHooksModule","lang","dict","FromDictionaryPipe","checkStore","pipe","switchMap","of","catchError","tap","page","dispatch","SetTitle","title","metaData","transform","SetCanonical","url","canonical","SetTags","properties","description","StringUtility","Truncate","StripHTML","imageUrl","keywords","join","SetStructuredData","data","name","image","publisher","logo","filter","a","id","map","take","i2","_angular_core__WEBPACK_IMPORTED_MODULE_11__","Yz7","factory","providedIn","withLatestFrom","fromRoot","loaded","router","state","params","pageId","RelatedInitiativesGuard","route","loading","contentId","initiativeId","storyId","eventId","RelatedStoriesGuard","RelatedEventsGuard","RelatedContentGuard","LoadContentPages","createAction","LoadContentPagesSuccess","props","LoadContentPagesFail","LoadContentPageById","LoadContentPageByIdSuccess","LoadContentPageByIdFail","LoadRelatedContent","LoadRelatedContentSuccess","LoadRelatedContentFail","LoadRelatedEvents","LoadRelatedEventsSuccess","LoadRelatedEventsFail","LoadRelatedInitiatives","LoadRelatedInitiativesSuccess","LoadRelatedInitiativesFail","LoadRelatedStories","LoadRelatedStoriesSuccess","LoadRelatedStoriesFail","ContentPagesService","http","BASE_URL","getPages","get","getPageById","ContentPagesEffects","actions$","PageService","LoadPages$","createEffect","ofType","contentblockActions","contentPages","error","LoadById$","getRelatedContentState","createSelector","fromFeature","relatedContent","getAllRelatedContent","fromRelatedContent","getRelatedContentLoaded","getRelatedContentLoading","getEventState","relatedEvents","getRelatedEvents","fromEvent","getAllRelatedEvents","hits","slice","sort","b","score","source","getRelatedEventsLoaded","getRelatedEventsLoading","getInitiativeState","relatedInitiatives","getRelatedInitiatives","fromInitiative","getAllRelatedInitiatives","getRelatedInitiativesLoaded","getRelatedInitiativesLoading","getStoriesState","relatedStories","getRelatedStories","fromStories","getAllRelatedStories","getRelatedStoriesLoaded","getRelatedStoriesLoading","BaseContentService","getRelatedContent","likeContent","effects","StoriesEffects","service","LoadRelatedStories$","actions","i3","InitiativesEffects","LoadRelatedInitiatives$","EventsEffects","LoadRelatedEvents$","RelatedContentEffects","LoadRelatedContent$","items","contentPageReducer","createReducer","entities","overviewLoaded","overviewLoading","initialState","on","pageActions","utility","getContentPagesEntities","getContentPagesLoading","getContentPagesLoaded","getContentPagesOverviewLoading","getContentPagesOverviewLoaded","featureKey","reducers","fromPages","fromInitiatives","fromEvents","getContentState","createFeatureSelector","RelatedContentReducer","ContentActions","relatedContents","RelatedEventsReducer","EventActions","RelatedInitiativesReducer","InitiativeActions","RelatedStoriesReducer","StoryActions","getContentPageState","getContentPageEntities","fromContentPages","getAllContentPages","Object","keys","getSelectedContentPage","getSelectedContentPageLoaded","getSelectedContentPageLoading","includes","GeoLocationModule","_angular_core__WEBPACK_IMPORTED_MODULE_1__","RequestGeoLocation","RequestGeoLocationSuccess","RequestGeoLocationFail","WatchGeoLocation","UpdatePosition","GeoLocationService","RequestPosition","highAccuracy","Observable","observer","navigator","geolocation","getCurrentPosition","pos","next","complete","enableHighAccuracy","WatchPosition","watchPosition","GeoLocationEffects","geoService","requestPosition$","geolocationActions","position","watchPosition$","geoLocationReducer","message","code","geoLocation","getGeoLocationModuleState","getGeoLocationPosition","getGeoLocationLoaded","getGeoLocationError","getGeoLocationLoading","GeolocationPositionErrorLabels","const","placeholder","theme_r1","icon","ThemeFiltersComponent_li_7_app_icon_3_Template","ThemeFiltersComponent_li_7_app_icon_4_Template","activeTheme","_c1","ThemeFiltersComponent","themes","isActive","theme","inputs","standalone","features","ThemeFiltersComponent_li_7_Template","_c2","RouterLink","changeDetection","BUTTON_HOST_ATTRIBUTES","_MatButtonBase","mixinColor","mixinDisabled","mixinDisableRipple","_elementRef","MatLegacyButton","elementRef","_focusMonitor","_animationMode","super","isRoundButton","_hasHostAttributes","isIconButton","attr","_getHostElement","classList","add","nativeElement","color","ngAfterViewInit","monitor","ngOnDestroy","stopMonitoring","focus","origin","options","focusVia","_isRippleDisabled","disableRipple","disabled","attributes","some","attribute","hasAttribute","ANIMATION_MODULE_TYPE","ɵcmp","viewQuery","MatRipple","_t","ripple","first","hostAttrs","hostVars","hostBindings","exportAs","attrs","ngContentSelectors","dependencies","styles","encapsulation","MatLegacyButtonModule","MatRippleModule","MatCommonModule","LegacySimpleSnackBar_div_2_Template","_r2","ctx_r1","action","MatLegacySnackBarContainer_ng_template_1_Template","LegacySimpleSnackBar","snackBarRef","dismissWithAction","hasAction","MAT_SNACK_BAR_DATA","MatLegacySnackBarContainer","_MatSnackBarContainerBase","_afterPortalAttached","snackBarConfig","horizontalPosition","verticalPosition","ɵMatLegacySnackBarContainer_BaseFactory","$event","onAnimationEnd","_animationState","_live","_role","_liveElementId","i1$1","animation","matSnackBarAnimations","snackBarState","MatLegacySnackBarModule","OverlayModule","PortalModule","MatLegacySnackBar","_MatSnackBarBase","overlay","live","injector","breakpointObserver","parentSnackBar","defaultConfig","simpleSnackBarComponent","snackBarContainerComponent","handsetCssClass","i1$2","i2$1","i3$1","MAT_SNACK_BAR_DEFAULT_OPTIONS","ɵprov","token","MatProgressSpinner_ng_template_0_Template","_viewBox","_strokeCircumference","_circleStrokeWidth","_circleRadius","_MatProgressSpinnerBase","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","InjectionToken","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","diameter","BASE_SIZE","MatProgressSpinner","animationMode","defaults","mode","nodeName","toLowerCase","_value","_diameter","_noopAnimations","_forceAnimations","defaultColor","strokeWidth","value","v","Math","max","min","coerceNumberProperty","size","_strokeWidth","viewBox","PI","_strokeDashOffset","_determinateCircle","_r0","MatProgressSpinnerModule"],"sourceRoot":"webpack:///","sources":["./node_modules/@teamfoster/sdk/fesm2022/teamfoster-sdk-youtube-player.mjs","./src/app/content-slider/content-slider.module.ts","./src/app/content/containers/content-page/content-page.component.html","./src/app/content/containers/content-page/content-page.component.ts","./src/app/content/content-routing.module.ts","./src/app/content-story/content-story.module.ts","./src/app/content/content.module.ts","./src/app/content/guards/content-page-meta.guard.ts","./src/app/content/guards/content-page-detail.guard.ts","./src/app/content/guards/related-initiatives.guard.ts","./src/app/content/guards/related-stories.guard.ts","./src/app/content/guards/related-events.guard.ts","./src/app/content/guards/related-content.guard.ts","./src/app/content/store/actions/content-pages.action.ts","./src/app/content/store/actions/related-content.action.ts","./src/app/content/store/actions/related-events.action.ts","./src/app/content/store/actions/related-initiatives.action.ts","./src/app/content/store/actions/related-stories.action.ts","./src/app/content/services/content-pages.service.ts","./src/app/content/store/effects/content-pages.effect.ts","./src/app/content/store/selectors/related-content.selector.ts","./src/app/content/store/selectors/related-events.selector.ts","./src/app/content/store/selectors/related-initiatives.selector.ts","./src/app/content/store/selectors/related-stories.selector.ts","./src/app/content/services/base-content.service.ts","./src/app/content/store/effects/index.ts","./src/app/content/store/effects/related-stories.effect.ts","./src/app/content/store/effects/related-initiatives.effect.ts","./src/app/content/store/effects/related-events.effect.ts","./src/app/content/store/effects/related-content.effect.ts","./src/app/content/store/reducers/content-pages.reducer.ts","./src/app/content/store/reducers/index.ts","./src/app/content/store/reducers/related-content.reducer.ts","./src/app/content/store/reducers/related-events.reducer.ts","./src/app/content/store/reducers/related-initiatives.reducer.ts","./src/app/content/store/reducers/related-stories.reducer.ts","./src/app/content/store/selectors/content-pages.selector.ts","./src/app/geo-location/geo-location.module.ts","./src/app/geo-location/store/actions/geo-location.action.ts","./src/app/geo-location/services/geo-location.service.ts","./src/app/geo-location/store/effects/index.ts","./src/app/geo-location/store/effects/geo-location.effect.ts","./src/app/geo-location/store/reducers/geo-location.reducer.ts","./src/app/geo-location/store/reducers/index.ts","./src/app/geo-location/store/selectors/geo-location.selector.ts","./src/app/geo-location/util/error.ts","./src/app/standalone/theme-filters/theme-filters.component.html","./src/app/standalone/theme-filters/theme-filters.component.ts","./node_modules/@angular/material/fesm2022/legacy-button.mjs","./node_modules/@angular/material/fesm2022/legacy-snack-bar.mjs","./node_modules/@angular/material/fesm2022/progress-spinner.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { EventEmitter, PLATFORM_ID, Component, ChangeDetectionStrategy, Inject, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { isPlatformBrowser, CommonModule } from '@angular/common';\n\nvar YoutubeState;\n(function (YoutubeState) {\n YoutubeState[YoutubeState[\"Unstarted\"] = -1] = \"Unstarted\";\n YoutubeState[YoutubeState[\"Ended\"] = 0] = \"Ended\";\n YoutubeState[YoutubeState[\"Playing\"] = 1] = \"Playing\";\n YoutubeState[YoutubeState[\"Paused\"] = 2] = \"Paused\";\n YoutubeState[YoutubeState[\"Buffering\"] = 3] = \"Buffering\";\n YoutubeState[YoutubeState[\"Cued\"] = 5] = \"Cued\";\n})(YoutubeState || (YoutubeState = {}));\n\nclass YoutubeUtility {\n static VideoIdFromUrl(url) {\n const regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return match && match[7].length === 11 ? match[7] : url;\n }\n}\n\nclass YoutubePlayerComponent {\n get host() {\n return !this.cookies ? 'https://www.youtube-nocookie.com' : null;\n }\n constructor(platformId) {\n this.platformId = platformId;\n this.ready = new EventEmitter();\n this.play = new EventEmitter();\n this.end = new EventEmitter();\n this.pause = new EventEmitter();\n this.change = new EventEmitter();\n this.error = new EventEmitter();\n this.stateClassName = 'is--unloaded';\n }\n async ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const YT = await this.apiLoaded();\n this.player = new YT.Player(this.ref.nativeElement, {\n videoId: YoutubeUtility.VideoIdFromUrl(this.src),\n host: this.host,\n playerVars: this.config,\n events: {\n onReady: (e) => this.ready.emit(e),\n onError: (e) => this.error.emit(e),\n onStateChange: (e) => {\n const stateName = YoutubeState[e.data].toLowerCase();\n this.stateClassName = `is--${stateName}`;\n if (e.data === YoutubeState.Playing) {\n this.play.emit(e);\n }\n if (e.data === YoutubeState.Paused) {\n this.pause.emit(e);\n }\n if (e.data === YoutubeState.Ended) {\n this.end.emit(e);\n }\n this.change.emit(e);\n },\n },\n });\n }\n apiLoaded() {\n return new Promise((resolve, reject) => {\n const tag = document.createElement('script');\n tag.id = 'youtube-component-api';\n tag.src = 'https://www.youtube.com/iframe_api';\n const exist = document.getElementById(tag.id);\n if (!exist) {\n const firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n let timeout = 0;\n const maxTimeout = 30000;\n const interval = 100;\n const timer = setInterval(() => {\n const YT = window.YT;\n timeout += interval;\n if (timeout >= maxTimeout) {\n clearInterval(timer);\n reject(new Error('Youtube Api not loaded'));\n }\n else if (YT && YT.Player) {\n clearInterval(timer);\n resolve(YT);\n }\n }, interval);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.2\", type: YoutubePlayerComponent, selector: \"fstr-youtube-player\", inputs: { src: \"src\", config: \"config\", cookies: \"cookies\" }, outputs: { ready: \"ready\", play: \"play\", end: \"end\", pause: \"pause\", change: \"change\", error: \"error\" }, viewQueries: [{ propertyName: \"ref\", first: true, predicate: [\"ref\"], descendants: true, static: true }], ngImport: i0, template: \"
\\n
\\n
\\n\", styles: [\".fstr-youtube__container{width:100%;height:0;overflow:hidden;padding-bottom:56.25%;position:relative;display:block}::ng-deep .fstr-youtube__container__iframe{width:100%;height:100%;position:absolute;inset:0}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fstr-youtube-player', changeDetection: ChangeDetectionStrategy.OnPush, template: \"
\\n
\\n
\\n\", styles: [\".fstr-youtube__container{width:100%;height:0;overflow:hidden;padding-bottom:56.25%;position:relative;display:block}::ng-deep .fstr-youtube__container__iframe{width:100%;height:100%;position:absolute;inset:0}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.InjectionToken, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { src: [{\n type: Input\n }], config: [{\n type: Input\n }], cookies: [{\n type: Input\n }], ready: [{\n type: Output\n }], play: [{\n type: Output\n }], end: [{\n type: Output\n }], pause: [{\n type: Output\n }], change: [{\n type: Output\n }], error: [{\n type: Output\n }], ref: [{\n type: ViewChild,\n args: ['ref', { static: true }]\n }] } });\n\nclass YoutubePlayerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerModule, declarations: [YoutubePlayerComponent], imports: [CommonModule], exports: [YoutubePlayerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerModule, imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.2\", ngImport: i0, type: YoutubePlayerModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [YoutubePlayerComponent],\n imports: [CommonModule],\n exports: [YoutubePlayerComponent],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { YoutubePlayerComponent, YoutubePlayerModule, YoutubeState, YoutubeUtility };\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { YoutubePlayerModule } from '@teamfoster/sdk/youtube-player';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\n\r\nimport * as fromStore from './store';\r\nimport { TextUtilityModule } from '@teamfoster/sdk/text-utility';\r\nimport { ImageModule } from '@teamfoster/sdk/image';\r\nimport { ContentSliderComponent } from './components/content-slider/content-slider.component';\r\nimport { CoreModule } from '../core/core.module';\r\nimport { DictionaryNgrxModule } from '@teamfoster/sdk/dictionary-ngrx';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n declarations: [ContentSliderComponent],\r\n imports: [\r\n YoutubePlayerModule,\r\n ImageModule,\r\n CommonModule,\r\n TextUtilityModule,\r\n StoreModule.forFeature(fromStore.featureKey, fromStore.reducers, {\r\n metaReducers: fromStore.metaReducers,\r\n }),\r\n EffectsModule.forFeature(fromStore.effects),\r\n CoreModule,\r\n DictionaryNgrxModule,\r\n RouterModule,\r\n CoreModule,\r\n ],\r\n exports: [ContentSliderComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class ContentSliderModule {}\r\n","
\r\n \r\n\r\n
\r\n
\r\n
{{ page.intro }}
\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Inject, PLATFORM_ID, ChangeDetectionStrategy, InjectionToken } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ContentPage } from '../../models';\r\nimport { Store } from '@ngrx/store';\r\nimport { ContentState } from '../../store';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport * as selectors from '../../store/selectors/content-pages.selector';\r\nimport { CookiePreferences, getCookiePreferences } from '@teamfoster/sdk/cookie-ngrx';\r\n\r\n@Component({\r\n selector: 'app-content-page',\r\n templateUrl: './content-page.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ContentPageComponent implements OnInit {\r\n page$: Observable | undefined;\r\n cookiePreferences$?: Observable;\r\n\r\n constructor(@Inject(PLATFORM_ID) private platformId: InjectionToken, private store: Store) {}\r\n\r\n ngOnInit(): void {\r\n this.page$ = this.store.select(selectors.getSelectedContentPage);\r\n this.cookiePreferences$ = this.store.select(getCookiePreferences);\r\n\r\n if (isPlatformBrowser(this.platformId)) {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { ContentPageComponent } from './containers/content-page/content-page.component';\r\nimport { ContentPageDetailGuard } from './guards';\r\nimport { ContentPageMetaGuard } from './guards/content-page-meta.guard';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: ':pageId/:target',\r\n component: ContentPageComponent,\r\n canActivate: [ContentPageDetailGuard, ContentPageMetaGuard],\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n})\r\nexport class ContentRoutingModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ContentCardComponent } from './components/content-card/content-card.component';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport * as fromStore from './store';\r\nimport { ImageModule } from '@teamfoster/sdk/image';\r\n\r\n@NgModule({\r\n declarations: [ContentCardComponent],\r\n imports: [\r\n CommonModule,\r\n ImageModule,\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 exports: [ContentCardComponent],\r\n})\r\nexport class ContentStoryModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ContentRoutingModule } from './content-routing.module';\r\n\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport * as fromContent from './store';\r\nimport { InViewModule } from '@teamfoster/sdk/in-view';\r\nimport { TextUtilityModule } from '@teamfoster/sdk/text-utility';\r\nimport { Html5VideoPlayerModule } from '@teamfoster/sdk/html5-video-player';\r\nimport { IconModule } from '@teamfoster/sdk/icon';\r\nimport { ContentPageComponent } from './containers/content-page/content-page.component';\r\nimport { CoreModule } from '../core/core.module';\r\nimport { CookieNgrxModule } from '@teamfoster/sdk/cookie-ngrx';\r\nimport { DictionaryNgrxModule } from '@teamfoster/sdk/dictionary-ngrx';\r\nimport { ImageModule } from '@teamfoster/sdk/image';\r\nimport { ContentSliderModule } from '../content-slider/content-slider.module';\r\nimport { DynamicHooksModule } from 'ngx-dynamic-hooks';\r\nimport { ContentStoryModule } from '../content-story/content-story.module';\r\n\r\n@NgModule({\r\n declarations: [ContentPageComponent],\r\n imports: [\r\n CommonModule,\r\n ContentRoutingModule,\r\n StoreModule.forFeature(fromContent.featureKey, fromContent.reducers, {\r\n metaReducers: fromContent.metaReducers,\r\n }),\r\n EffectsModule.forFeature(fromContent.effects),\r\n InViewModule,\r\n DictionaryNgrxModule,\r\n TextUtilityModule,\r\n Html5VideoPlayerModule,\r\n IconModule,\r\n InViewModule,\r\n CoreModule,\r\n ImageModule,\r\n CookieNgrxModule,\r\n ContentSliderModule,\r\n ContentStoryModule,\r\n DynamicHooksModule,\r\n ],\r\n exports: [],\r\n})\r\nexport class ContentModule {}\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 ContentPageMetaGuard {\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.getSelectedContentPage).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 || page?.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 'keywords': `${page.metaData.keywords?.join(',')}`,\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 'twitter:card': 'summary_large_image',\r\n },\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 ContentPageDetailGuard {\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.getSelectedContentPageLoaded).pipe(\r\n withLatestFrom(this.store.select(fromRoot.getRouterState)),\r\n tap(([loaded, router]) => {\r\n if (!loaded) {\r\n const id = +router.state.params['pageId'] || +router.state.data['pageId'];\r\n this.store.dispatch(fromStore.LoadContentPageById({ id }));\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 { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\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 RelatedInitiativesGuard {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n return this.checkStore(route).pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(route: ActivatedRouteSnapshot): Observable {\r\n return this.store.select(fromStore.getRelatedInitiativesLoaded).pipe(\r\n withLatestFrom(this.store.select(fromStore.getRelatedInitiativesLoading)),\r\n tap(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n if (loaded !== contentId && loading !== contentId) {\r\n this.store.dispatch(fromStore.LoadRelatedInitiatives({ id: contentId }));\r\n }\r\n }),\r\n map(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n return loaded === contentId;\r\n }),\r\n filter(loaded => loaded),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\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 RelatedStoriesGuard {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n return this.checkStore(route).pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(route: ActivatedRouteSnapshot): Observable {\r\n return this.store.select(fromStore.getRelatedStoriesLoaded).pipe(\r\n withLatestFrom(this.store.select(fromStore.getRelatedStoriesLoading)),\r\n tap(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n if (loaded !== contentId && loading !== contentId) {\r\n this.store.dispatch(fromStore.LoadRelatedStories({ id: contentId }));\r\n }\r\n }),\r\n map(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n return loaded === contentId;\r\n }),\r\n filter(loaded => loaded),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\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 RelatedEventsGuard {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n return this.checkStore(route).pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(route: ActivatedRouteSnapshot): Observable {\r\n return this.store.select(fromStore.getRelatedEventsLoaded).pipe(\r\n withLatestFrom(this.store.select(fromStore.getRelatedEventsLoading)),\r\n tap(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n if (loaded !== contentId && loading !== contentId) {\r\n this.store.dispatch(fromStore.LoadRelatedEvents({ id: contentId }));\r\n }\r\n }),\r\n map(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n return loaded === contentId;\r\n }),\r\n filter(loaded => loaded),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot } from '@angular/router';\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 RelatedContentGuard {\r\n constructor(private store: Store) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot): Observable {\r\n return this.checkStore(route).pipe(\r\n switchMap(() => of(true)),\r\n catchError(() => of(false))\r\n );\r\n }\r\n\r\n checkStore(route: ActivatedRouteSnapshot): Observable {\r\n return this.store.select(fromStore.getRelatedContentLoaded).pipe(\r\n withLatestFrom(this.store.select(fromStore.getRelatedContentLoading)),\r\n tap(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n if (loaded !== contentId && loading !== contentId) {\r\n this.store.dispatch(fromStore.LoadRelatedContent({ id: contentId }));\r\n }\r\n }),\r\n map(([loaded, loading]) => {\r\n const contentId = +(route.params['initiativeId'] || route.params['storyId'] || route.params['eventId']);\r\n return loaded === contentId;\r\n }),\r\n filter(loaded => loaded),\r\n take(1)\r\n );\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\nimport { ContentPage } from '../../models';\r\n\r\nexport const LoadContentPages = createAction('[Content] Load Content Pages');\r\nexport const LoadContentPagesSuccess = createAction('[Content] Load Content Pages Success', props<{ contentPages: ContentPage[] }>());\r\nexport const LoadContentPagesFail = createAction('[Content] Load Content Pages Fail', props<{ error: any }>());\r\n\r\nexport const LoadContentPageById = createAction('[Content] Load Content Page by Id', props<{ id: number }>());\r\nexport const LoadContentPageByIdSuccess = createAction('[Content] Load Content Page by Id Success', props<{ page: ContentPage }>());\r\nexport const LoadContentPageByIdFail = createAction('[Content] Load Content Page by Id Fail', props<{ id: number; error: any }>());\r\n","// tslint:disable:max-line-length\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { BaseContent } from 'src/app/content/models';\r\n\r\nexport const LoadRelatedContent = createAction('[Content] Load Related Content', props<{ id: number }>());\r\nexport const LoadRelatedContentSuccess = createAction(\r\n '[Content] Load Related Content Success',\r\n props<{ items: BaseContent[]; id: number }>()\r\n);\r\nexport const LoadRelatedContentFail = createAction('[Content] Load Related Content Fail', props<{ error: any }>());\r\n","// tslint:disable:max-line-length\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { Event } from 'src/app/events/models';\r\n\r\nexport const LoadRelatedEvents = createAction('[Content] Load Related Events', props<{ id: number }>());\r\nexport const LoadRelatedEventsSuccess = createAction(\r\n '[Content] Load Related Events Success',\r\n props<{ hits: { score: number; source: Event }[]; id: number }>()\r\n);\r\nexport const LoadRelatedEventsFail = createAction('[Content] Load Related Events Fail', props<{ error: any }>());\r\n","// tslint:disable:max-line-length\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { Initiative } from 'src/app/initiatives/models';\r\n\r\nexport const LoadRelatedInitiatives = createAction('[Content] Load Related Initiatives', props<{ id: number }>());\r\nexport const LoadRelatedInitiativesSuccess = createAction(\r\n '[Content] Load Related Initiatives Success',\r\n props<{ hits: { score: number; source: Initiative }[]; id: number }>()\r\n);\r\nexport const LoadRelatedInitiativesFail = createAction('[Content] Load Related Initiatives Fail', props<{ error: any }>());\r\n","// tslint:disable:max-line-length\r\nimport { createAction, props } from '@ngrx/store';\r\nimport { Story } from 'src/app/stories/models';\r\n\r\nexport const LoadRelatedStories = createAction('[Content] Load Related Stories', props<{ id: number }>());\r\nexport const LoadRelatedStoriesSuccess = createAction(\r\n '[Content] Load Related Stories Success',\r\n props<{ hits: { score: number; source: Story }[]; id: number }>()\r\n);\r\nexport const LoadRelatedStoriesFail = createAction('[Content] Load Related Stories Fail', props<{ error: any }>());\r\n","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ContentPage } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ContentPagesService {\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/pages`);\r\n }\r\n\r\n getPageById(id: number) {\r\n return this.http.get(`${this.BASE_URL}api/pages/${id}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as contentblockActions from '../actions/content-pages.action';\r\nimport { switchMap, map, catchError } from 'rxjs/operators';\r\nimport { ContentPagesService } from '../../services';\r\n\r\n@Injectable()\r\nexport class ContentPagesEffects {\r\n constructor(private actions$: Actions, private PageService: ContentPagesService) {}\r\n\r\n LoadPages$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(contentblockActions.LoadContentPages),\r\n switchMap(() =>\r\n this.PageService.getPages().pipe(\r\n map(contentPages => contentblockActions.LoadContentPagesSuccess({ contentPages })),\r\n catchError(error => of(contentblockActions.LoadContentPagesFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n\r\n LoadById$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(contentblockActions.LoadContentPageById),\r\n switchMap(({ id }) =>\r\n this.PageService.getPageById(id).pipe(\r\n map(page => contentblockActions.LoadContentPageByIdSuccess({ page })),\r\n catchError(error => of(contentblockActions.LoadContentPageByIdFail({ id, error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromRelatedContent from '../reducers/related-content.reducer';\r\n\r\nexport const getRelatedContentState = createSelector(\r\n fromFeature.getContentState,\r\n (state: fromFeature.ContentState) => state.relatedContent\r\n);\r\n\r\nexport const getAllRelatedContent = createSelector(getRelatedContentState, fromRelatedContent.getRelatedContent);\r\nexport const getRelatedContentLoaded = createSelector(getRelatedContentState, fromRelatedContent.getRelatedContentLoaded);\r\nexport const getRelatedContentLoading = createSelector(getRelatedContentState, fromRelatedContent.getRelatedContentLoading);\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromEvent from '../reducers/related-events.reducer';\r\n\r\nexport const getEventState = createSelector(fromFeature.getContentState, (state: fromFeature.ContentState) => state.relatedEvents);\r\n\r\nexport const getRelatedEvents = createSelector(getEventState, fromEvent.getRelatedEvents);\r\nexport const getAllRelatedEvents = createSelector(getRelatedEvents, hits => {\r\n return hits\r\n .slice()\r\n .sort((a, b) => a.score - b.score)\r\n .map(a => a.source);\r\n});\r\nexport const getRelatedEventsLoaded = createSelector(getEventState, fromEvent.getRelatedEventsLoaded);\r\nexport const getRelatedEventsLoading = createSelector(getEventState, fromEvent.getRelatedEventsLoading);\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromInitiative from '../reducers/related-initiatives.reducer';\r\n\r\nexport const getInitiativeState = createSelector(\r\n fromFeature.getContentState,\r\n (state: fromFeature.ContentState) => state.relatedInitiatives\r\n);\r\n\r\nexport const getRelatedInitiatives = createSelector(getInitiativeState, fromInitiative.getRelatedInitiatives);\r\nexport const getAllRelatedInitiatives = createSelector(getRelatedInitiatives, hits => {\r\n return hits\r\n .slice()\r\n .sort((a, b) => a.score - b.score)\r\n .map(a => a.source);\r\n});\r\nexport const getRelatedInitiativesLoaded = createSelector(getInitiativeState, fromInitiative.getRelatedInitiativesLoaded);\r\nexport const getRelatedInitiativesLoading = createSelector(getInitiativeState, fromInitiative.getRelatedInitiativesLoading);\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromStories from '../reducers/related-stories.reducer';\r\n\r\nexport const getStoriesState = createSelector(fromFeature.getContentState, (state: fromFeature.ContentState) => state.relatedStories);\r\n\r\nexport const getRelatedStories = createSelector(getStoriesState, fromStories.getRelatedStories);\r\nexport const getAllRelatedStories = createSelector(getRelatedStories, hits => {\r\n return hits\r\n .slice()\r\n .sort((a, b) => b.score - a.score)\r\n .map(a => a.source);\r\n});\r\nexport const getRelatedStoriesLoaded = createSelector(getStoriesState, fromStories.getRelatedStoriesLoaded);\r\nexport const getRelatedStoriesLoading = createSelector(getStoriesState, fromStories.getRelatedStoriesLoading);\r\n","import { Injectable, Optional, Inject } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Story } from 'src/app/stories/models';\r\nimport { Initiative } from 'src/app/initiatives/models';\r\nimport { BaseContent } from '../models';\r\nimport { Event } from 'src/app/events/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BaseContentService {\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 getRelatedInitiatives(id: number) {\r\n return this.http.get<{ score: number; source: Initiative }[]>(`${this.BASE_URL}api/content/${id}/related-initiatives`);\r\n }\r\n getRelatedStories(id: number) {\r\n return this.http.get<{ score: number; source: Story }[]>(`${this.BASE_URL}api/content/${id}/related-stories`);\r\n }\r\n getRelatedEvents(id: number) {\r\n return this.http.get<{ score: number; source: Event }[]>(`${this.BASE_URL}api/content/${id}/related-events`);\r\n }\r\n getRelatedContent(id: number) {\r\n return this.http.get(`${this.BASE_URL}api/content/${id}/related-content`);\r\n }\r\n likeContent(id: number) {\r\n return this.http.get(`${this.BASE_URL}api/content/${id}/vote`);\r\n }\r\n}\r\n","import { ContentPagesEffects } from './content-pages.effect';\r\nimport { EventsEffects } from './related-events.effect';\r\nimport { InitiativesEffects } from './related-initiatives.effect';\r\nimport { StoriesEffects } from './related-stories.effect';\r\nimport { RelatedContentEffects } from './related-content.effect';\r\n\r\nexport const effects = [ContentPagesEffects, StoriesEffects, InitiativesEffects, EventsEffects, RelatedContentEffects];\r\nexport * from './content-pages.effect';\r\nexport * from './related-initiatives.effect';\r\nexport * from './related-stories.effect';\r\nexport * from './related-events.effect';\r\nexport * from './related-content.effect';\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as actions from '../actions/related-stories.action';\r\nimport { switchMap, map, catchError, withLatestFrom, filter } from 'rxjs/operators';\r\nimport { BaseContentService } from '../../services';\r\nimport { getRelatedStoriesLoaded, getRelatedStoriesLoading } from '../selectors';\r\nimport { Store } from '@ngrx/store';\r\n\r\n@Injectable()\r\nexport class StoriesEffects {\r\n constructor(private actions$: Actions, private service: BaseContentService, private store: Store) {}\r\n\r\n LoadRelatedStories$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(actions.LoadRelatedStories),\r\n withLatestFrom(this.store.select(getRelatedStoriesLoaded), this.store.select(getRelatedStoriesLoading)),\r\n filter(([{ id }, loaded, loading]) => loaded !== id && loading !== loaded),\r\n switchMap(([{ id }]) =>\r\n this.service.getRelatedStories(id).pipe(\r\n map(hits => actions.LoadRelatedStoriesSuccess({ hits, id })),\r\n catchError(error => of(actions.LoadRelatedStoriesFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as actions from '../actions/related-initiatives.action';\r\nimport { switchMap, map, catchError, withLatestFrom, filter } from 'rxjs/operators';\r\nimport { BaseContentService } from '../../services';\r\nimport { Store } from '@ngrx/store';\r\nimport { getRelatedInitiativesLoaded, getRelatedInitiativesLoading } from '../selectors';\r\n\r\n@Injectable()\r\nexport class InitiativesEffects {\r\n constructor(private actions$: Actions, private service: BaseContentService, private store: Store) {}\r\n\r\n LoadRelatedInitiatives$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(actions.LoadRelatedInitiatives),\r\n withLatestFrom(this.store.select(getRelatedInitiativesLoaded), this.store.select(getRelatedInitiativesLoading)),\r\n filter(([{ id }, loaded, loading]) => loaded !== id && loading !== loaded),\r\n switchMap(([{ id }]) =>\r\n this.service.getRelatedInitiatives(id).pipe(\r\n map(hits => actions.LoadRelatedInitiativesSuccess({ hits, id })),\r\n catchError(error => of(actions.LoadRelatedInitiativesFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as actions from '../actions/related-events.action';\r\nimport { switchMap, map, catchError, withLatestFrom, filter } from 'rxjs/operators';\r\nimport { BaseContentService } from '../../services';\r\nimport { Store } from '@ngrx/store';\r\nimport { getRelatedEventsLoaded, getRelatedEventsLoading } from '../selectors';\r\n\r\n@Injectable()\r\nexport class EventsEffects {\r\n constructor(private actions$: Actions, private service: BaseContentService, private store: Store) {}\r\n\r\n LoadRelatedEvents$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(actions.LoadRelatedEvents),\r\n withLatestFrom(this.store.select(getRelatedEventsLoaded), this.store.select(getRelatedEventsLoading)),\r\n filter(([{ id }, loaded, loading]) => loaded !== id && loading !== loaded),\r\n switchMap(([{ id }]) =>\r\n this.service.getRelatedEvents(id).pipe(\r\n map(hits => actions.LoadRelatedEventsSuccess({ hits, id })),\r\n catchError(error => of(actions.LoadRelatedEventsFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { of } from 'rxjs';\r\nimport * as actions from '../actions/related-content.action';\r\nimport { switchMap, map, catchError, withLatestFrom, filter } from 'rxjs/operators';\r\nimport { BaseContentService } from '../../services';\r\nimport { Store } from '@ngrx/store';\r\nimport { getRelatedContentLoaded, getRelatedContentLoading } from '../selectors';\r\n\r\n@Injectable()\r\nexport class RelatedContentEffects {\r\n constructor(private actions$: Actions, private service: BaseContentService, private store: Store) {}\r\n\r\n LoadRelatedContent$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(actions.LoadRelatedContent),\r\n withLatestFrom(this.store.select(getRelatedContentLoaded), this.store.select(getRelatedContentLoading)),\r\n filter(([{ id }, loaded, loading]) => loaded !== id && loading !== loaded),\r\n switchMap(([{ id }]) =>\r\n this.service.getRelatedContent(id).pipe(\r\n map(items => actions.LoadRelatedContentSuccess({ items, id })),\r\n catchError(error => of(actions.LoadRelatedContentFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport { ContentPage } from '../../models';\r\nimport * as pageActions from '../actions/content-pages.action';\r\nimport * as utility from '../../../utility';\r\n\r\nexport interface ContentPagesState {\r\n entities: { [id: number]: ContentPage };\r\n loaded: number[];\r\n loading: number[];\r\n overviewLoaded: boolean;\r\n overviewLoading: boolean;\r\n error?: any;\r\n}\r\n\r\nexport const initialState: ContentPagesState = {\r\n entities: {},\r\n loaded: [],\r\n loading: [],\r\n overviewLoaded: false,\r\n overviewLoading: false,\r\n};\r\n\r\nexport const contentPageReducer = createReducer(\r\n initialState,\r\n on(pageActions.LoadContentPages, (state: ContentPagesState) => {\r\n return {\r\n ...state,\r\n overviewLoading: true,\r\n };\r\n }),\r\n on(pageActions.LoadContentPagesSuccess, (state: ContentPagesState, { contentPages }) => {\r\n const entities = utility.ToEntities(contentPages, 'id', state.entities);\r\n return {\r\n ...state,\r\n entities,\r\n overviewLoading: false,\r\n overviewLoaded: true,\r\n };\r\n }),\r\n on(pageActions.LoadContentPagesFail, (state: ContentPagesState, { error }) => {\r\n return {\r\n ...state,\r\n overviewLoading: false,\r\n overviewLoaded: false,\r\n error,\r\n };\r\n }),\r\n on(pageActions.LoadContentPageById, (state: ContentPagesState, { id }) => {\r\n return {\r\n ...state,\r\n loading: [...state.loading, id],\r\n };\r\n }),\r\n on(pageActions.LoadContentPageByIdSuccess, (state: ContentPagesState, { page }) => {\r\n const entities = { ...state.entities, [page.id]: page };\r\n return {\r\n ...state,\r\n entities,\r\n loading: state.loading.filter(id => id !== page.id),\r\n loaded: [...state.loaded, page.id],\r\n };\r\n }),\r\n on(pageActions.LoadContentPageByIdFail, (state: ContentPagesState, { error, id }) => {\r\n return {\r\n ...state,\r\n loading: state.loading.filter(id => id !== id),\r\n loaded: state.loaded.filter(id => id !== id),\r\n error,\r\n };\r\n })\r\n);\r\n\r\nexport const getContentPagesEntities = (state: ContentPagesState) => state.entities;\r\nexport const getContentPagesLoading = (state: ContentPagesState) => state.loading;\r\nexport const getContentPagesLoaded = (state: ContentPagesState) => state.loaded;\r\nexport const getContentPagesOverviewLoading = (state: ContentPagesState) => state.overviewLoading;\r\nexport const getContentPagesOverviewLoaded = (state: ContentPagesState) => state.overviewLoaded;\r\n","import * as fromPages from '../reducers/content-pages.reducer';\r\nimport * as fromInitiatives from '../reducers/related-initiatives.reducer';\r\nimport * as fromStories from '../reducers/related-stories.reducer';\r\nimport * as fromEvents from '../reducers/related-events.reducer';\r\nimport * as fromRelatedContent from '../reducers/related-content.reducer';\r\nimport { ActionReducerMap, createFeatureSelector, MetaReducer } from '@ngrx/store';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\nexport const featureKey = 'content';\r\n\r\nexport interface ContentState {\r\n contentPages: fromPages.ContentPagesState;\r\n relatedInitiatives: fromInitiatives.RelatedInitiativesState;\r\n relatedStories: fromStories.RelatedStoriesState;\r\n relatedEvents: fromEvents.RelatedEventsState;\r\n relatedContent: fromRelatedContent.RelatedContentState;\r\n}\r\n\r\nexport const reducers: ActionReducerMap = {\r\n contentPages: fromPages.contentPageReducer,\r\n relatedInitiatives: fromInitiatives.RelatedInitiativesReducer,\r\n relatedStories: fromStories.RelatedStoriesReducer,\r\n relatedEvents: fromEvents.RelatedEventsReducer,\r\n relatedContent: fromRelatedContent.RelatedContentReducer,\r\n};\r\n\r\nexport const getContentState = createFeatureSelector('content');\r\n\r\nexport const metaReducers: MetaReducer[] = !environment.production ? [] : [];\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as ContentActions from '../actions/related-content.action';\r\nimport { BaseContent } from 'src/app/content/models';\r\n\r\nexport interface RelatedContentState {\r\n loading: number;\r\n loaded: number;\r\n relatedContent: BaseContent[];\r\n}\r\n\r\nexport const initialState: RelatedContentState = {\r\n loaded: 0,\r\n loading: 0,\r\n relatedContent: [],\r\n};\r\n\r\nexport const RelatedContentReducer = createReducer(\r\n initialState,\r\n on(ContentActions.LoadRelatedContent, (state: RelatedContentState, { id }) => {\r\n return {\r\n ...state,\r\n relatedContents: [],\r\n loading: id,\r\n loaded: 0,\r\n };\r\n }),\r\n on(ContentActions.LoadRelatedContentSuccess, (state: RelatedContentState, { items, id }) => {\r\n return {\r\n ...state,\r\n relatedContent: items,\r\n loaded: id,\r\n loading: 0,\r\n };\r\n })\r\n);\r\n\r\nexport const getRelatedContent = (state: RelatedContentState) => state.relatedContent;\r\nexport const getRelatedContentLoading = (state: RelatedContentState) => state.loading;\r\nexport const getRelatedContentLoaded = (state: RelatedContentState) => state.loaded;\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as utility from '../../../utility';\r\nimport * as EventActions from '../actions/related-events.action';\r\nimport { PageData } from 'src/app/core/models';\r\nimport { Event } from 'src/app/events/models';\r\n\r\nexport interface RelatedEventsState {\r\n loading: number;\r\n loaded: number;\r\n relatedEvents: { score: number; source: Event }[];\r\n}\r\n\r\nexport const initialState: RelatedEventsState = {\r\n loaded: 0,\r\n loading: 0,\r\n relatedEvents: [],\r\n};\r\n\r\nexport const RelatedEventsReducer = createReducer(\r\n initialState,\r\n on(EventActions.LoadRelatedEvents, (state: RelatedEventsState, { id }) => {\r\n return {\r\n ...state,\r\n relatedEvents: [],\r\n loading: id,\r\n loaded: 0,\r\n };\r\n }),\r\n on(EventActions.LoadRelatedEventsSuccess, (state: RelatedEventsState, { hits, id }) => {\r\n return {\r\n ...state,\r\n relatedEvents: hits,\r\n loaded: id,\r\n loading: 0,\r\n };\r\n })\r\n);\r\n\r\nexport const getRelatedEvents = (state: RelatedEventsState) => state.relatedEvents;\r\nexport const getRelatedEventsLoading = (state: RelatedEventsState) => state.loading;\r\nexport const getRelatedEventsLoaded = (state: RelatedEventsState) => state.loaded;\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as utility from '../../../utility';\r\nimport * as InitiativeActions from '../actions/related-initiatives.action';\r\nimport { PageData } from 'src/app/core/models';\r\nimport { Initiative } from 'src/app/initiatives/models';\r\n\r\nexport interface RelatedInitiativesState {\r\n loading: number;\r\n loaded: number;\r\n relatedInitiatives: { score: number; source: Initiative }[];\r\n}\r\n\r\nexport const initialState: RelatedInitiativesState = {\r\n loaded: 0,\r\n loading: 0,\r\n relatedInitiatives: [],\r\n};\r\n\r\nexport const RelatedInitiativesReducer = createReducer(\r\n initialState,\r\n on(InitiativeActions.LoadRelatedInitiatives, (state: RelatedInitiativesState, { id }) => {\r\n return {\r\n ...state,\r\n relatedInitiatives: [],\r\n loading: id,\r\n loaded: 0,\r\n };\r\n }),\r\n on(InitiativeActions.LoadRelatedInitiativesSuccess, (state: RelatedInitiativesState, { hits, id }) => {\r\n return {\r\n ...state,\r\n relatedInitiatives: hits,\r\n loaded: id,\r\n loading: 0,\r\n };\r\n })\r\n);\r\n\r\nexport const getRelatedInitiatives = (state: RelatedInitiativesState) => state.relatedInitiatives;\r\nexport const getRelatedInitiativesLoading = (state: RelatedInitiativesState) => state.loading;\r\nexport const getRelatedInitiativesLoaded = (state: RelatedInitiativesState) => state.loaded;\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as utility from '../../../utility';\r\nimport * as StoryActions from '../actions/related-stories.action';\r\nimport { PageData } from 'src/app/core/models';\r\nimport { Story } from 'src/app/stories/models';\r\n\r\nexport interface RelatedStoriesState {\r\n loading: number;\r\n loaded: number;\r\n relatedStories: { score: number; source: Story }[];\r\n}\r\n\r\nexport const initialState: RelatedStoriesState = {\r\n loaded: 0,\r\n loading: 0,\r\n relatedStories: [],\r\n};\r\n\r\nexport const RelatedStoriesReducer = createReducer(\r\n initialState,\r\n on(StoryActions.LoadRelatedStories, (state: RelatedStoriesState, { id }) => {\r\n return {\r\n ...state,\r\n relatedStories: [],\r\n loading: id,\r\n loaded: 0,\r\n };\r\n }),\r\n on(StoryActions.LoadRelatedStoriesSuccess, (state: RelatedStoriesState, { hits, id }) => {\r\n return {\r\n ...state,\r\n relatedStories: hits,\r\n loaded: id,\r\n loading: 0,\r\n };\r\n })\r\n);\r\n\r\nexport const getRelatedStories = (state: RelatedStoriesState) => state.relatedStories;\r\nexport const getRelatedStoriesLoading = (state: RelatedStoriesState) => state.loading;\r\nexport const getRelatedStoriesLoaded = (state: RelatedStoriesState) => state.loaded;\r\n","import { createSelector } from '@ngrx/store';\r\n\r\nimport * as fromFeature from '../reducers';\r\nimport * as fromContentPages from '../reducers/content-pages.reducer';\r\nimport { ContentPage } from '../../models';\r\nimport * as fromRoot from '../../../store';\r\n\r\nexport const getContentPageState = createSelector(fromFeature.getContentState, (state: fromFeature.ContentState) => state.contentPages);\r\n\r\nexport const getContentPageEntities = createSelector(getContentPageState, fromContentPages.getContentPagesEntities);\r\n\r\nexport const getAllContentPages = createSelector(getContentPageEntities, entities => {\r\n return Object.keys(entities).map(id => entities[id as unknown as number]);\r\n});\r\n\r\nexport const getContentPagesOverviewLoaded = createSelector(getContentPageState, fromContentPages.getContentPagesOverviewLoaded);\r\nexport const getContentPagesOverviewLoading = createSelector(getContentPageState, fromContentPages.getContentPagesOverviewLoading);\r\n\r\nexport const getContentPagesLoaded = createSelector(getContentPageState, fromContentPages.getContentPagesLoaded);\r\nexport const getContentPagesLoading = createSelector(getContentPageState, fromContentPages.getContentPagesLoading);\r\n\r\nexport const getSelectedContentPage = createSelector(getContentPageEntities, fromRoot.getRouterState, (entities, router): ContentPage => {\r\n return router.state && entities[+router.state.params?.['pageId'] || +router.state.data?.['pageId']];\r\n});\r\n\r\nexport const getSelectedContentPageLoading = createSelector(getContentPagesLoading, fromRoot.getRouterState, (loading, router): boolean => {\r\n return router.state && loading.includes(+router.state.params?.['pageId'] || +router.state.data?.['pageId']);\r\n});\r\n\r\nexport const getSelectedContentPageLoaded = createSelector(getContentPagesLoaded, fromRoot.getRouterState, (loaded, router): boolean => {\r\n return router.state && loaded.includes(+router.state.params?.['pageId'] || +router.state.data?.['pageId']);\r\n});\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { EffectsModule } from '@ngrx/effects';\r\n\r\nimport * as fromStore from './store';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\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 GeoLocationModule {}\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport const RequestGeoLocation = createAction('[Geo Location] Request Geo Location', props<{ highAccuracy?: boolean }>());\r\n\r\nexport const RequestGeoLocationSuccess = createAction(\r\n '[Geo Location] Request Geo Location Success',\r\n props<{ position: GeolocationPosition }>()\r\n);\r\nexport const RequestGeoLocationFail = createAction('[Geo Location] Request Geo Location Fail', props<{ error: any }>());\r\n\r\nexport const WatchGeoLocation = createAction('[Geo Location] Watch Geo Location', props<{ highAccuracy?: boolean }>());\r\nexport const UpdatePosition = createAction('[Geo Location] Update Geo Location', props<{ position: GeolocationPosition }>());\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class GeoLocationService {\r\n constructor() {}\r\n\r\n RequestPosition(highAccuracy: boolean = true) {\r\n return new Observable(observer => {\r\n navigator.geolocation.getCurrentPosition(\r\n (pos: GeolocationPosition) => {\r\n observer.next(pos);\r\n observer.complete();\r\n },\r\n error => {\r\n observer.error(error || 'Unknown error');\r\n observer.complete();\r\n },\r\n {\r\n enableHighAccuracy: highAccuracy,\r\n }\r\n );\r\n });\r\n }\r\n\r\n WatchPosition(highAccuracy: boolean = true) {\r\n return new Observable(observer => {\r\n navigator.geolocation.watchPosition(\r\n (pos: GeolocationPosition) => {\r\n observer.next(pos);\r\n },\r\n error => {\r\n observer.error(error);\r\n observer.complete();\r\n },\r\n {\r\n enableHighAccuracy: highAccuracy,\r\n }\r\n );\r\n });\r\n }\r\n}\r\n","import { GeoLocationEffects } from './geo-location.effect';\r\n\r\nexport const effects = [GeoLocationEffects];\r\nexport * from './geo-location.effect';\r\n","import { Injectable } from '@angular/core';\r\nimport { createEffect, ofType, Actions } from '@ngrx/effects';\r\nimport { Observable, of } from 'rxjs';\r\nimport * as geolocationActions from '../actions/geo-location.action';\r\nimport { switchMap, map, catchError } from 'rxjs/operators';\r\nimport { GeoLocationService } from '../../services/geo-location.service';\r\n\r\n@Injectable()\r\nexport class GeoLocationEffects {\r\n constructor(private actions$: Actions, private geoService: GeoLocationService) {}\r\n\r\n requestPosition$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(geolocationActions.RequestGeoLocation),\r\n switchMap(({ highAccuracy }) =>\r\n this.geoService.RequestPosition(highAccuracy).pipe(\r\n map(position => geolocationActions.RequestGeoLocationSuccess({ position })),\r\n catchError(error => of(geolocationActions.RequestGeoLocationFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n\r\n watchPosition$ = createEffect(() => {\r\n return this.actions$.pipe(\r\n ofType(geolocationActions.WatchGeoLocation),\r\n switchMap(({ highAccuracy }) =>\r\n this.geoService.WatchPosition(highAccuracy).pipe(\r\n map(position => geolocationActions.UpdatePosition({ position })),\r\n catchError(error => of(geolocationActions.RequestGeoLocationFail({ error })))\r\n )\r\n )\r\n );\r\n });\r\n}\r\n","import { createReducer, on } from '@ngrx/store';\r\nimport * as pageActions from '../actions/geo-location.action';\r\nimport * as utility from '../../../utility';\r\n\r\nexport interface GeoLocationState {\r\n position?: GeolocationPosition;\r\n loaded: boolean;\r\n loading: boolean;\r\n error:\r\n | {\r\n message: string;\r\n code: number;\r\n }\r\n | undefined;\r\n}\r\n\r\nexport const initialState: GeoLocationState = {\r\n position: undefined,\r\n loaded: false,\r\n loading: false,\r\n error: undefined,\r\n};\r\n\r\nexport const geoLocationReducer = createReducer(\r\n initialState,\r\n on(pageActions.RequestGeoLocation, (state: GeoLocationState) => {\r\n return {\r\n ...state,\r\n loading: true,\r\n error: undefined,\r\n };\r\n }),\r\n on(pageActions.RequestGeoLocationSuccess, (state: GeoLocationState, { position }) => {\r\n return {\r\n ...state,\r\n position,\r\n loading: false,\r\n loaded: true,\r\n };\r\n }),\r\n on(pageActions.RequestGeoLocationFail, (state: GeoLocationState, { error }) => {\r\n return {\r\n ...state,\r\n loading: false,\r\n loaded: false,\r\n error: { message: error?.message || 'Unknown error', code: error?.code || 4 },\r\n };\r\n }),\r\n on(pageActions.UpdatePosition, (state: GeoLocationState, { position }) => {\r\n return {\r\n ...state,\r\n position,\r\n loading: false,\r\n loaded: true,\r\n };\r\n })\r\n);\r\n\r\nexport const getGeoLocationPosition = (state: GeoLocationState) => state.position;\r\nexport const getGeoLocationLoading = (state: GeoLocationState) => state.loading;\r\nexport const getGeoLocationLoaded = (state: GeoLocationState) => state.loaded;\r\nexport const getGeoLocationError = (state: GeoLocationState) => state.error;\r\n","import * as fromPages from './geo-location.reducer';\r\nimport { ActionReducerMap, createFeatureSelector, MetaReducer } from '@ngrx/store';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\nexport const featureKey = 'geo-location';\r\n\r\nexport interface GeoLocationModuleState {\r\n geoLocation: fromPages.GeoLocationState;\r\n}\r\n\r\nexport const reducers: ActionReducerMap = {\r\n geoLocation: fromPages.geoLocationReducer,\r\n};\r\n\r\nexport const getGeoLocationModuleState = 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 fromGeolocation from '../reducers/geo-location.reducer';\r\n\r\nexport const getContentPageState = createSelector(\r\n fromFeature.getGeoLocationModuleState,\r\n (state: fromFeature.GeoLocationModuleState) => state.geoLocation\r\n);\r\n\r\nexport const getGeoLocationPosition = createSelector(getContentPageState, fromGeolocation.getGeoLocationPosition);\r\nexport const getGeoLocationLoaded = createSelector(getContentPageState, fromGeolocation.getGeoLocationLoaded);\r\nexport const getGeoLocationLoading = createSelector(getContentPageState, fromGeolocation.getGeoLocationLoading);\r\nexport const getGeoLocationError = createSelector(getContentPageState, fromGeolocation.getGeoLocationError);\r\n","export const GeolocationPositionErrorLabels: {\r\n [key: number]: {\r\n const: string;\r\n placeholder: string;\r\n };\r\n} = {\r\n 1: {\r\n const: 'PERMISSION_DENIED',\r\n placeholder: 'geolocatie-error-permission-denied',\r\n },\r\n 2: {\r\n const: 'POSITION_UNAVAILABLE',\r\n placeholder: 'geolocatie-error-unavailable',\r\n },\r\n 3: {\r\n const: 'TIMEOUT',\r\n placeholder: 'geolocatie-error-timeout',\r\n },\r\n 4: {\r\n const: 'UNKNOWN',\r\n placeholder: 'geolocatie-error-onbekend',\r\n },\r\n};\r\n","Ontdek een thema\r\n\r\n\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Theme } from 'src/app/themes/models';\r\nimport { CoreModule } from 'src/app/core/core.module';\r\nimport { RouterLink, RouterLinkActive } from '@angular/router';\r\nimport { DictionaryNgrxModule } from '@teamfoster/sdk/dictionary-ngrx';\r\n\r\n@Component({\r\n selector: 'app-theme-filters',\r\n standalone: true,\r\n imports: [CommonModule, CoreModule, RouterLink, RouterLinkActive, DictionaryNgrxModule],\r\n templateUrl: './theme-filters.component.html',\r\n styleUrls: ['./theme-filters.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ThemeFiltersComponent {\r\n @Input() themes: Theme[] = [];\r\n @Input() loading = false;\r\n @Input() activeTheme: string = '';\r\n\r\n isActive(theme: Theme) {\r\n return false;\r\n }\r\n}\r\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';\nimport * as i2 from '@angular/material/core';\nimport { mixinColor, mixinDisabled, mixinDisableRipple, MatRipple, MatRippleModule, MatCommonModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/** Default color palette for round buttons (mat-fab and mat-mini-fab) */\nconst DEFAULT_ROUND_BUTTON_COLOR = 'accent';\n/**\n * List of classes to add to button instances based on host attributes to\n * style as different variants.\n */\nconst BUTTON_HOST_ATTRIBUTES = [\n 'mat-button',\n 'mat-flat-button',\n 'mat-icon-button',\n 'mat-raised-button',\n 'mat-stroked-button',\n 'mat-mini-fab',\n 'mat-fab',\n];\n// Boilerplate for applying mixins to button.\nconst _MatButtonBase = mixinColor(mixinDisabled(mixinDisableRipple(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n})));\n/**\n * Material design button.\n * @deprecated Use `MatButton` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyButton extends _MatButtonBase {\n constructor(elementRef, _focusMonitor, _animationMode) {\n super(elementRef);\n this._focusMonitor = _focusMonitor;\n this._animationMode = _animationMode;\n /** Whether the button is round. */\n this.isRoundButton = this._hasHostAttributes('mat-fab', 'mat-mini-fab');\n /** Whether the button is icon button. */\n this.isIconButton = this._hasHostAttributes('mat-icon-button');\n // For each of the variant selectors that is present in the button's host\n // attributes, add the correct corresponding class.\n for (const attr of BUTTON_HOST_ATTRIBUTES) {\n if (this._hasHostAttributes(attr)) {\n this._getHostElement().classList.add(attr);\n }\n }\n // Add a class that applies to all buttons. This makes it easier to target if somebody\n // wants to target all Material buttons. We do it here rather than `host` to ensure that\n // the class is applied to derived classes.\n elementRef.nativeElement.classList.add('mat-button-base');\n if (this.isRoundButton) {\n this.color = DEFAULT_ROUND_BUTTON_COLOR;\n }\n }\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._elementRef, true);\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /** Focuses the button. */\n focus(origin, options) {\n if (origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n }\n else {\n this._getHostElement().focus(options);\n }\n }\n _getHostElement() {\n return this._elementRef.nativeElement;\n }\n _isRippleDisabled() {\n return this.disableRipple || this.disabled;\n }\n /** Gets whether the button has one of the given attributes. */\n _hasHostAttributes(...attributes) {\n return attributes.some(attribute => this._getHostElement().hasAttribute(attribute));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButton, deps: [{ token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: ANIMATION_MODULE_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatLegacyButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button],\\n button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],\\n button[mat-flat-button]\", inputs: { disabled: \"disabled\", disableRipple: \"disableRipple\", color: \"color\" }, host: { properties: { \"attr.disabled\": \"disabled || null\", \"class._mat-animation-noopable\": \"_animationMode === \\\"NoopAnimations\\\"\", \"class.mat-button-disabled\": \"disabled\" }, classAttribute: \"mat-focus-indicator\" }, viewQueries: [{ propertyName: \"ripple\", first: true, predicate: MatRipple, descendants: true }], exportAs: [\"matButton\"], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\", styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"], dependencies: [{ kind: \"directive\", type: i2.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButton, decorators: [{\n type: Component,\n args: [{ selector: `button[mat-button], button[mat-raised-button], button[mat-icon-button],\n button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],\n button[mat-flat-button]`, exportAs: 'matButton', host: {\n '[attr.disabled]': 'disabled || null',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n // Add a class for disabled button styling instead of the using attribute\n // selector or pseudo-selector. This allows users to create focusable\n // disabled buttons without recreating the styles.\n '[class.mat-button-disabled]': 'disabled',\n 'class': 'mat-focus-indicator',\n }, inputs: ['disabled', 'disableRipple', 'color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n\\n\", styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }]; }, propDecorators: { ripple: [{\n type: ViewChild,\n args: [MatRipple]\n }] } });\n/**\n * Material design anchor button.\n * @deprecated Use `MatAnchor` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyAnchor extends MatLegacyButton {\n constructor(focusMonitor, elementRef, animationMode, \n /** @breaking-change 14.0.0 _ngZone will be required. */\n _ngZone) {\n super(elementRef, focusMonitor, animationMode);\n this._ngZone = _ngZone;\n this._haltDisabledEvents = (event) => {\n // A disabled button shouldn't apply any actions\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n /** @breaking-change 14.0.0 _ngZone will be required. */\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n });\n }\n else {\n this._elementRef.nativeElement.addEventListener('click', this._haltDisabledEvents);\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this._elementRef.nativeElement.removeEventListener('click', this._haltDisabledEvents);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyAnchor, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: i0.NgZone, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatLegacyAnchor, selector: \"a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],\\n a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]\", inputs: { disabled: \"disabled\", disableRipple: \"disableRipple\", color: \"color\", tabIndex: \"tabIndex\" }, host: { properties: { \"attr.tabindex\": \"disabled ? -1 : tabIndex\", \"attr.disabled\": \"disabled || null\", \"attr.aria-disabled\": \"disabled.toString()\", \"class._mat-animation-noopable\": \"_animationMode === \\\"NoopAnimations\\\"\", \"class.mat-button-disabled\": \"disabled\" }, classAttribute: \"mat-focus-indicator\" }, exportAs: [\"matButton\", \"matAnchor\"], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\", styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"], dependencies: [{ kind: \"directive\", type: i2.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyAnchor, decorators: [{\n type: Component,\n args: [{ selector: `a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab],\n a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]`, exportAs: 'matButton, matAnchor', host: {\n // Note that we ignore the user-specified tabindex when it's disabled for\n // consistency with the `mat-button` applied on native buttons where even\n // though they have an index, they're not tabbable.\n '[attr.tabindex]': 'disabled ? -1 : tabIndex',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled.toString()',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n '[class.mat-button-disabled]': 'disabled',\n 'class': 'mat-focus-indicator',\n }, inputs: ['disabled', 'disableRipple', 'color'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n\\n\", styles: [\".mat-button .mat-button-focus-overlay,.mat-icon-button .mat-button-focus-overlay{opacity:0}.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:.04}@media(hover: none){.mat-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay,.mat-stroked-button:hover:not(.mat-button-disabled) .mat-button-focus-overlay{opacity:0}}.mat-button,.mat-icon-button,.mat-stroked-button,.mat-flat-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-button.mat-button-disabled,.mat-icon-button.mat-button-disabled,.mat-stroked-button.mat-button-disabled,.mat-flat-button.mat-button-disabled{cursor:default}.mat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-button.cdk-program-focused .mat-button-focus-overlay,.mat-icon-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-icon-button.cdk-program-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-stroked-button.cdk-program-focused .mat-button-focus-overlay,.mat-flat-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-flat-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-button::-moz-focus-inner,.mat-icon-button::-moz-focus-inner,.mat-stroked-button::-moz-focus-inner,.mat-flat-button::-moz-focus-inner{border:0}.mat-raised-button{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button.mat-button-disabled{cursor:default}.mat-raised-button.cdk-keyboard-focused .mat-button-focus-overlay,.mat-raised-button.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-raised-button::-moz-focus-inner{border:0}.mat-raised-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-stroked-button{border:1px solid currentColor;padding:0 15px;line-height:34px}.mat-stroked-button .mat-button-ripple.mat-ripple,.mat-stroked-button .mat-button-focus-overlay{top:-1px;left:-1px;right:-1px;bottom:-1px}.mat-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:56px;height:56px;padding:0;flex-shrink:0}.mat-fab::-moz-focus-inner{border:0}.mat-fab.mat-button-disabled{cursor:default}.mat-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-fab::-moz-focus-inner{border:0}.mat-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-fab .mat-button-wrapper{padding:16px 0;display:inline-block;line-height:24px}.mat-mini-fab{box-sizing:border-box;position:relative;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;border:none;-webkit-tap-highlight-color:rgba(0,0,0,0);display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:64px;line-height:36px;padding:0 16px;border-radius:4px;overflow:visible;transform:translate3d(0, 0, 0);transition:background 400ms cubic-bezier(0.25, 0.8, 0.25, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);min-width:0;border-radius:50%;width:40px;height:40px;padding:0;flex-shrink:0}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab.mat-button-disabled{cursor:default}.mat-mini-fab.cdk-keyboard-focused .mat-button-focus-overlay,.mat-mini-fab.cdk-program-focused .mat-button-focus-overlay{opacity:.12}.mat-mini-fab::-moz-focus-inner{border:0}.mat-mini-fab._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mini-fab .mat-button-wrapper{padding:8px 0;display:inline-block;line-height:24px}.mat-icon-button{padding:0;min-width:0;width:40px;height:40px;flex-shrink:0;line-height:40px;border-radius:50%}.mat-icon-button i,.mat-icon-button .mat-icon{line-height:24px}.mat-button-ripple.mat-ripple,.mat-button-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-button-ripple.mat-ripple:not(:empty){transform:translateZ(0)}.mat-button-focus-overlay{opacity:0;transition:opacity 200ms cubic-bezier(0.35, 0, 0.25, 1),background-color 200ms cubic-bezier(0.35, 0, 0.25, 1)}._mat-animation-noopable .mat-button-focus-overlay{transition:none}.mat-button-ripple-round{border-radius:50%;z-index:1}.mat-button .mat-button-wrapper>*,.mat-flat-button .mat-button-wrapper>*,.mat-stroked-button .mat-button-wrapper>*,.mat-raised-button .mat-button-wrapper>*,.mat-icon-button .mat-button-wrapper>*,.mat-fab .mat-button-wrapper>*,.mat-mini-fab .mat-button-wrapper>*{vertical-align:middle}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button{display:inline-flex;justify-content:center;align-items:center;font-size:inherit;width:2.5em;height:2.5em}.mat-flat-button::before,.mat-raised-button::before,.mat-fab::before,.mat-mini-fab::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px) * -1)}.mat-stroked-button::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px) * -1)}.cdk-high-contrast-active .mat-button,.cdk-high-contrast-active .mat-flat-button,.cdk-high-contrast-active .mat-raised-button,.cdk-high-contrast-active .mat-icon-button,.cdk-high-contrast-active .mat-fab,.cdk-high-contrast-active .mat-mini-fab{outline:solid 1px}.mat-datepicker-toggle .mat-mdc-button-base{width:40px;height:40px;padding:8px 0}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\"] }]\n }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }, { type: i0.NgZone, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { tabIndex: [{\n type: Input\n }] } });\n\n/**\n * @deprecated Use `MatButtonModule` from `@angular/material/button` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacyButtonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButtonModule, declarations: [MatLegacyButton, MatLegacyAnchor], imports: [MatRippleModule, MatCommonModule], exports: [MatLegacyButton, MatLegacyAnchor, MatCommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButtonModule, imports: [MatRippleModule, MatCommonModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacyButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MatRippleModule, MatCommonModule],\n exports: [MatLegacyButton, MatLegacyAnchor, MatCommonModule],\n declarations: [MatLegacyButton, MatLegacyAnchor],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatLegacyAnchor, MatLegacyButton, MatLegacyButtonModule };\n","import * as i1$2 from '@angular/cdk/overlay';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport * as i1$1 from '@angular/cdk/portal';\nimport { PortalModule } from '@angular/cdk/portal';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Inject, NgModule, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { MatCommonModule } from '@angular/material/core';\nimport * as i3 from '@angular/material/legacy-button';\nimport { MatLegacyButtonModule } from '@angular/material/legacy-button';\nimport * as i1 from '@angular/material/snack-bar';\nimport { MAT_SNACK_BAR_DATA, _MatSnackBarContainerBase, matSnackBarAnimations, _MatSnackBarBase, MAT_SNACK_BAR_DEFAULT_OPTIONS } from '@angular/material/snack-bar';\nexport { MAT_SNACK_BAR_DATA as MAT_LEGACY_SNACK_BAR_DATA, MAT_SNACK_BAR_DEFAULT_OPTIONS as MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY as MAT_LEGACY_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MatSnackBarConfig as MatLegacySnackBarConfig, MatSnackBarRef as MatLegacySnackBarRef, _MatSnackBarBase as _MatLegacySnackBarBase, _MatSnackBarContainerBase as _MatLegacySnackBarContainerBase, matSnackBarAnimations as matLegacySnackBarAnimations } from '@angular/material/snack-bar';\nimport * as i2$1 from '@angular/cdk/a11y';\nimport * as i3$1 from '@angular/cdk/layout';\n\n/**\n * A component used to open as the default snack bar, matching material spec.\n * This should only be used internally by the snack bar service.\n * @deprecated Use `SimpleSnackBar` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass LegacySimpleSnackBar {\n constructor(snackBarRef, data) {\n this.snackBarRef = snackBarRef;\n this.data = data;\n }\n /** Performs the action on the snack bar. */\n action() {\n this.snackBarRef.dismissWithAction();\n }\n /** If the action button should be shown. */\n get hasAction() {\n return !!this.data.action;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: LegacySimpleSnackBar, deps: [{ token: i1.MatSnackBarRef }, { token: MAT_SNACK_BAR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: LegacySimpleSnackBar, selector: \"simple-snack-bar\", host: { classAttribute: \"mat-simple-snackbar\" }, ngImport: i0, template: \"{{data.message}}\\n
\\n \\n
\\n\", styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}.mat-simple-snack-bar-content{overflow:hidden;text-overflow:ellipsis}\"], dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i3.MatLegacyButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: LegacySimpleSnackBar, decorators: [{\n type: Component,\n args: [{ selector: 'simple-snack-bar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n 'class': 'mat-simple-snackbar',\n }, template: \"{{data.message}}\\n
\\n \\n
\\n\", styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}.mat-simple-snack-bar-content{overflow:hidden;text-overflow:ellipsis}\"] }]\n }], ctorParameters: function () { return [{ type: i1.MatSnackBarRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DATA]\n }] }]; } });\n\n/**\n * Internal component that wraps user-provided snack bar content.\n * @docs-private\n * @deprecated Use `MatSnackBarContainer` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBarContainer extends _MatSnackBarContainerBase {\n _afterPortalAttached() {\n super._afterPortalAttached();\n if (this.snackBarConfig.horizontalPosition === 'center') {\n this._elementRef.nativeElement.classList.add('mat-snack-bar-center');\n }\n if (this.snackBarConfig.verticalPosition === 'top') {\n this._elementRef.nativeElement.classList.add('mat-snack-bar-top');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarContainer, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatLegacySnackBarContainer, selector: \"snack-bar-container\", host: { listeners: { \"@state.done\": \"onAnimationEnd($event)\" }, properties: { \"@state\": \"_animationState\" }, classAttribute: \"mat-snack-bar-container\" }, usesInheritance: true, ngImport: i0, template: \"\\n
\\n \\n
\\n\\n\\n
\\n\", styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\"], dependencies: [{ kind: \"directive\", type: i1$1.CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }], animations: [matSnackBarAnimations.snackBarState], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarContainer, decorators: [{\n type: Component,\n args: [{ selector: 'snack-bar-container', changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, animations: [matSnackBarAnimations.snackBarState], host: {\n 'class': 'mat-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)',\n }, template: \"\\n
\\n \\n
\\n\\n\\n
\\n\", styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}.cdk-high-contrast-active .mat-snack-bar-container{border:solid 1px}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\"] }]\n }] });\n\n/**\n * @deprecated Use `MatSnackBarModule` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBarModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarModule, declarations: [MatLegacySnackBarContainer, LegacySimpleSnackBar], imports: [OverlayModule, PortalModule, CommonModule, MatLegacyButtonModule, MatCommonModule], exports: [MatLegacySnackBarContainer, MatCommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarModule, imports: [OverlayModule, PortalModule, CommonModule, MatLegacyButtonModule, MatCommonModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBarModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [OverlayModule, PortalModule, CommonModule, MatLegacyButtonModule, MatCommonModule],\n exports: [MatLegacySnackBarContainer, MatCommonModule],\n declarations: [MatLegacySnackBarContainer, LegacySimpleSnackBar],\n }]\n }] });\n\n/**\n * Service to dispatch Material Design snack bar messages.\n * @deprecated Use `MatSnackBar` from `@angular/material/snack-bar` instead. See https://material.angular.io/guide/mdc-migration for information about migrating.\n * @breaking-change 17.0.0\n */\nclass MatLegacySnackBar extends _MatSnackBarBase {\n constructor(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig) {\n super(overlay, live, injector, breakpointObserver, parentSnackBar, defaultConfig);\n this.simpleSnackBarComponent = LegacySimpleSnackBar;\n this.snackBarContainerComponent = MatLegacySnackBarContainer;\n this.handsetCssClass = 'mat-snack-bar-handset';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBar, deps: [{ token: i1$2.Overlay }, { token: i2$1.LiveAnnouncer }, { token: i0.Injector }, { token: i3$1.BreakpointObserver }, { token: MatLegacySnackBar, optional: true, skipSelf: true }, { token: MAT_SNACK_BAR_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBar, providedIn: MatLegacySnackBarModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatLegacySnackBar, decorators: [{\n type: Injectable,\n args: [{ providedIn: MatLegacySnackBarModule }]\n }], ctorParameters: function () { return [{ type: i1$2.Overlay }, { type: i2$1.LiveAnnouncer }, { type: i0.Injector }, { type: i3$1.BreakpointObserver }, { type: MatLegacySnackBar, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: i1.MatSnackBarConfig, decorators: [{\n type: Inject,\n args: [MAT_SNACK_BAR_DEFAULT_OPTIONS]\n }] }]; } });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LegacySimpleSnackBar, MatLegacySnackBar, MatLegacySnackBarContainer, MatLegacySnackBarModule };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, ViewChild, Input, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n// Boilerplate for applying mixins to MatProgressBar.\nconst _MatProgressSpinnerBase = mixinColor(class {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}, 'primary');\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = new InjectionToken('mat-progress-spinner-default-options', {\n providedIn: 'root',\n factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY,\n});\n/** @docs-private */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n return { diameter: BASE_SIZE };\n}\n/**\n * Base reference size of the spinner.\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n */\nconst BASE_STROKE_WIDTH = 10;\nclass MatProgressSpinner extends _MatProgressSpinnerBase {\n constructor(elementRef, animationMode, defaults) {\n super(elementRef);\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n this.mode = this._elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner'\n ? 'indeterminate'\n : 'determinate';\n this._value = 0;\n this._diameter = BASE_SIZE;\n this._noopAnimations =\n animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n if (defaults) {\n if (defaults.color) {\n this.color = this.defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n }\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v) {\n this._value = Math.max(0, Math.min(100, coerceNumberProperty(v)));\n }\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = coerceNumberProperty(size);\n }\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = coerceNumberProperty(value);\n }\n /** The radius of the spinner, adjusted for stroke width. */\n _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n /** The dash offset of the svg circle. */\n _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return (this._strokeCircumference() * (100 - this._value)) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _circleStrokeWidth() {\n return (this.strokeWidth / this.diameter) * 100;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinner, deps: [{ token: i0.ElementRef }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: { color: \"color\", mode: \"mode\", value: \"value\", diameter: \"diameter\", strokeWidth: \"strokeWidth\" }, host: { attributes: { \"role\": \"progressbar\", \"tabindex\": \"-1\" }, properties: { \"class._mat-animation-noopable\": \"_noopAnimations\", \"class.mdc-circular-progress--indeterminate\": \"mode === \\\"indeterminate\\\"\", \"style.width.px\": \"diameter\", \"style.height.px\": \"diameter\", \"style.--mdc-circular-progress-size\": \"diameter + \\\"px\\\"\", \"style.--mdc-circular-progress-active-indicator-width\": \"diameter + \\\"px\\\"\", \"attr.aria-valuemin\": \"0\", \"attr.aria-valuemax\": \"100\", \"attr.aria-valuenow\": \"mode === \\\"determinate\\\" ? value : null\", \"attr.mode\": \"mode\" }, classAttribute: \"mat-mdc-progress-spinner mdc-circular-progress\" }, viewQueries: [{ propertyName: \"_determinateCircle\", first: true, predicate: [\"determinateSpinner\"], descendants: true }], exportAs: [\"matProgressSpinner\"], usesInheritance: true, ngImport: i0, template: \"\\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\", styles: [\"@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}\"], dependencies: [{ kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinner, decorators: [{\n type: Component,\n args: [{ selector: 'mat-progress-spinner, mat-spinner', exportAs: 'matProgressSpinner', host: {\n 'role': 'progressbar',\n 'class': 'mat-mdc-progress-spinner mdc-circular-progress',\n // set tab index to -1 so screen readers will read the aria-label\n // Note: there is a known issue with JAWS that does not read progressbar aria labels on FireFox\n 'tabindex': '-1',\n '[class._mat-animation-noopable]': `_noopAnimations`,\n '[class.mdc-circular-progress--indeterminate]': 'mode === \"indeterminate\"',\n '[style.width.px]': 'diameter',\n '[style.height.px]': 'diameter',\n '[style.--mdc-circular-progress-size]': 'diameter + \"px\"',\n '[style.--mdc-circular-progress-active-indicator-width]': 'diameter + \"px\"',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': '100',\n '[attr.aria-valuenow]': 'mode === \"determinate\" ? value : null',\n '[attr.mode]': 'mode',\n }, inputs: ['color'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\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\", styles: [\"@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-color-1-fade-in-out{from{opacity:.99}25%{opacity:.99}26%{opacity:0}89%{opacity:0}90%{opacity:.99}to{opacity:.99}}@keyframes mdc-circular-progress-color-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:.99}50%{opacity:.99}51%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:.99}75%{opacity:.99}76%{opacity:0}to{opacity:0}}@keyframes mdc-circular-progress-color-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:.99}90%{opacity:.99}to{opacity:0}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}.mdc-circular-progress{display:inline-flex;position:relative;direction:ltr;line-height:0;transition:opacity 250ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-1{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-2{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-3{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__color-4{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both,mdc-circular-progress-color-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--closed{opacity:0}.mat-mdc-progress-spinner{--mdc-circular-progress-active-indicator-width:4px;--mdc-circular-progress-size:48px}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width)}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-1 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-2 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-3 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}@media screen and (forced-colors: active),(-ms-high-contrast: active){.mat-mdc-progress-spinner .mdc-circular-progress--four-color .mdc-circular-progress__color-4 .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mat-mdc-progress-spinner .mdc-circular-progress{width:var(--mdc-circular-progress-size) !important;height:var(--mdc-circular-progress-size) !important}.mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.cdk-high-contrast-active .mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS]\n }] }]; }, propDecorators: { _determinateCircle: [{\n type: ViewChild,\n args: ['determinateSpinner']\n }], mode: [{\n type: Input\n }], value: [{\n type: Input\n }], diameter: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }] } });\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 16.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatSpinner = MatProgressSpinner;\n\nclass MatProgressSpinnerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinnerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinnerModule, declarations: [MatProgressSpinner, MatSpinner], imports: [CommonModule], exports: [MatProgressSpinner, MatSpinner, MatCommonModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinnerModule, imports: [CommonModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatProgressSpinnerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [MatProgressSpinner, MatSpinner, MatCommonModule],\n declarations: [MatProgressSpinner, MatSpinner],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n"],"x_google_ignoreList":[0,48,49,50]}