{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/breadcrumb/breadcrumb.component.ts","./src/app/components/breadcrumb/breadcrumb.component.html","./src/app/components/content-entry/content-entry.component.ts","./src/app/components/content-entry/content-entry.component.html","./src/app/components/content-tree/content-tree.component.ts","./src/app/components/content-tree/content-tree.component.html","./src/app/components/help-page/help-page.component.ts","./src/app/components/help-page/help-page.component.html","./src/app/components/language-select/language-select.component.ts","./src/app/components/language-select/language-select.component.html","./src/app/components/print-entry/print-entry.component.ts","./src/app/components/print-entry/print-entry.component.html","./src/app/components/print-page/print-page.component.ts","./src/app/components/print-page/print-page.component.html","./src/app/components/print/print.component.ts","./src/app/components/print/print.component.html","./src/app/components/search-result-entry/search-result-entry.component.ts","./src/app/components/search-result-entry/search-result-entry.component.html","./src/app/components/search-results/search-results.component.ts","./src/app/components/search-results/search-results.component.html","./src/app/components/search/search.component.ts","./src/app/components/search/search.component.html","./src/app/components/toggle-icon/toggle-icon.component.ts","./src/app/components/toggle-icon/toggle-icon.component.html","./src/app/components/topbar/topbar.component.ts","./src/app/components/topbar/topbar.component.html","./src/app/directives/root-entry.directive.ts","./src/app/injection-tokens/window.ts","./src/app/pipes/shorten-language.pipe.ts","./src/app/services/active-entry.service.ts","./src/app/services/authentication.service.ts","./src/app/services/breakpoint.service.ts","./src/app/services/clipboard.service.ts","./src/app/services/contentful.service.ts","./src/app/services/markdown-link.service.ts","./src/app/services/query-param.service.ts","./src/app/services/tenant.service.ts","./src/app/services/themes/helen.ts","./src/app/services/themes/lummeenergia.ts","./src/app/services/themes/oulunenegia.ts","./src/app/services/themes/sahkolaitos.ts","./src/app/services/themes/smartly.ts","./src/app/services/themes/tampuuri.ts","./src/app/services/themes/turkuenergia.ts","./src/app/shared/entry-indexer.ts","./src/app/shared/print-entry-indexer.ts","./src/app/transloco-root.module.ts","./src/environments/environment.ts","./src/main.ts","./src/vendor.ts","ignored|/agent/_work/1/s/node_modules/object-inspect|./util.inspect"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { HelpPageComponent } from './components/help-page/help-page.component';\nimport { SearchComponent } from './components/search/search.component';\nimport { PrintComponent } from './components/print/print.component';\n\nconst routes: Routes = [\n { path: 'print', component: PrintComponent },\n { path: '', component: HelpPageComponent },\n { path: 'search/:searchString', component: SearchComponent }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {})],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, HostListener, Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { ContentfulService } from './services/contentful.service';\nimport { MarkdownLinkService } from './services/markdown-link.service';\nimport { ActiveEntryService } from './services/active-entry.service';\nimport { BreakpointService } from './services/breakpoint.service';\nimport { ContentEntryCollection } from './shared/content-entry';\n\nenum KEY_CODE {\n RIGHT_ARROW = 39,\n LEFT_ARROW = 37\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n public readonly entries$: Observable;\n public readonly currentYear: number;\n\n public constructor(\n public markdownLinkService: MarkdownLinkService,\n public breakpointService: BreakpointService,\n private contentfulService: ContentfulService,\n private activeEntry: ActiveEntryService,\n private transloco: TranslocoService,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.entries$ = this.contentfulService.content;\n this.currentYear = new Date().getFullYear();\n\n this.setPageTitle();\n\n transloco.langChanges$.subscribe(() => {\n this.setPageTitle();\n });\n }\n\n @HostListener('window:keydown', ['$event']) public keyEvent(event: KeyboardEvent): void {\n if (\n (event.target as HTMLInputElement).type === 'text' ||\n event.altKey ||\n event.shiftKey ||\n event.ctrlKey\n ) {\n return;\n }\n if (event.keyCode === KEY_CODE.RIGHT_ARROW) {\n this.activeEntry.navigateNext();\n } else if (event.keyCode === KEY_CODE.LEFT_ARROW) {\n this.activeEntry.navigatePrevious();\n }\n }\n\n private setPageTitle(): void {\n this.transloco.selectTranslate('PAGE_TITLE').subscribe(translation => {\n this.document.title = translation;\n });\n }\n}\n","\n
\n
\n \n \n \n
\n
\n \n \n

© EnerKey {{ currentYear }}

\n
\n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { APP_INITIALIZER, LOCALE_ID, NgModule } from '@angular/core';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport localeFi from '@angular/common/locales/fi';\n\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ActivatedRoute } from '@angular/router';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { PlatformLocation, registerLocaleData } from '@angular/common';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HelpPageComponent } from './components/help-page/help-page.component';\nimport { ContentEntryComponent } from './components/content-entry/content-entry.component';\nimport { SearchComponent } from './components/search/search.component';\nimport { SearchResultsComponent } from './components/search-results/search-results.component';\nimport { SearchResultEntryComponent } from './components/search-result-entry/search-result-entry.component';\nimport { TranslocoRootModule } from './transloco-root.module';\nimport { TopbarComponent } from './components/topbar/topbar.component';\nimport { ContentTreeComponent } from './components/content-tree/content-tree.component';\nimport { RootEntryDirective } from './directives/root-entry.directive';\nimport { ToggleIconComponent } from './components/toggle-icon/toggle-icon.component';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { AuthenticationService } from './services/authentication.service';\nimport { LanguageSelectComponent } from './components/language-select/language-select.component';\nimport { ShortenLanguagePipe } from './pipes/shorten-language.pipe';\nimport { PrintComponent } from './components/print/print.component';\nimport { PrintEntryComponent } from './components/print-entry/print-entry.component';\nimport { PrintPageComponent } from './components/print-page/print-page.component';\nimport { TenantService } from './services/tenant.service';\nimport { ActiveEntryService } from './services/active-entry.service';\nimport { QueryParamService } from './services/query-param.service';\n\nexport function tenantInitializerFactory(tenantService: TenantService): () => Promise {\n return () => tenantService.setTenantStyles();\n}\n\nexport function authenticationInitializerFactory(authenticationService: AuthenticationService): () => Promise {\n return () => authenticationService.initUserAccess();\n}\n\n@NgModule({\n declarations: [\n AppComponent,\n HelpPageComponent,\n ContentEntryComponent,\n SearchComponent,\n SearchResultsComponent,\n SearchResultEntryComponent,\n TopbarComponent,\n ContentTreeComponent,\n RootEntryDirective,\n ToggleIconComponent,\n BreadcrumbComponent,\n LanguageSelectComponent,\n ShortenLanguagePipe,\n PrintComponent,\n PrintEntryComponent,\n PrintPageComponent\n ],\n imports: [\n AppRoutingModule,\n BrowserModule,\n ReactiveFormsModule,\n HttpClientModule,\n TranslocoRootModule,\n BrowserAnimationsModule,\n LayoutModule\n ],\n providers: [\n AuthenticationService,\n { provide: LOCALE_ID, useValue: 'fi-FI' },\n {\n provide: APP_INITIALIZER,\n useFactory: authenticationInitializerFactory,\n deps: [AuthenticationService, QueryParamService],\n multi: true\n },\n {\n provide: APP_INITIALIZER,\n useFactory: tenantInitializerFactory,\n deps: [TenantService, QueryParamService],\n multi: true\n }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {\n public constructor(\n route: ActivatedRoute,\n transloco: TranslocoService,\n location: PlatformLocation,\n activeEntry: ActiveEntryService\n ) {\n const defaultAngularLocale = 'fi-FI';\n registerLocaleData(localeFi, defaultAngularLocale);\n\n route.queryParamMap.pipe(\n map(params => params.get('locale')),\n distinctUntilChanged(),\n filter(language => !!language)\n ).subscribe(language => {\n transloco.setActiveLang(language);\n });\n\n location.onPopState(() => {\n // Set page index to null when navigating back or forward\n // Otherwise index tree won't show correct page after navigation\n activeEntry.setPageIndex(null);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BreadcrumbEntry } from '../content-entry/content-entry.component';\nimport { ActiveEntryService } from '../../services/active-entry.service';\n\n@Component({\n selector: 'breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BreadcrumbComponent {\n public readonly breadcrumb$: Observable;\n\n @Input() public breadcrumb: BreadcrumbEntry[] = [];\n\n public constructor(private activeEntry: ActiveEntryService) {\n this.breadcrumb$ = this.activeEntry.breadcrumb;\n }\n}\n","\n  > \n {{ item.title }}\n \n {{ item.title }}\n \n\n","import {\n ChangeDetectionStrategy,\n Component,\n Host,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n SkipSelf\n} from '@angular/core';\nimport {\n animate,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\nimport { Subscription } from 'rxjs';\nimport { delay, filter } from 'rxjs/operators';\nimport { ContentTreeComponent } from '../content-tree/content-tree.component';\nimport { RootEntryDirective } from '../../directives/root-entry.directive';\nimport { ActiveEntryService } from '../../services/active-entry.service';\nimport { ContentEntryIndexed } from '../../shared/content-entry';\nimport { BreakpointService } from '../../services/breakpoint.service';\nimport { ClipboardService } from '../../services/clipboard.service';\n\nexport interface BreadcrumbEntry {\n title: string;\n id: string;\n}\n\n@Component({\n selector: 'content-entry',\n templateUrl: './content-entry.component.html',\n styleUrls: ['./content-entry.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('visibilityChanged', [\n state('show', style({ opacity: 1 })),\n state('hide', style({ opacity: 0 })),\n transition('* => *', animate('.25s'))\n ])\n ]\n})\nexport class ContentEntryComponent implements OnInit, OnDestroy {\n @Input() public entry: ContentEntryIndexed;\n public breadcrumbPath: BreadcrumbEntry[] = [];\n\n private subscription: Subscription;\n\n public constructor(\n private contentTree: ContentTreeComponent,\n public contentRoot: RootEntryDirective,\n public activeEntry: ActiveEntryService,\n private breakpointService: BreakpointService,\n private clipboardService: ClipboardService,\n @Host() @Optional() public contentRootSelf: RootEntryDirective,\n @SkipSelf() @Optional() public parentEntry: ContentEntryComponent\n ) {\n }\n\n public ngOnInit(): void {\n if (this.entry && this.entry.fields) {\n const parentItems = this.parentEntry ? this.parentEntry.breadcrumbPath : [];\n this.breadcrumbPath = [...parentItems, {\n title: this.entry.fields.title,\n id: this.entry.sys.id\n }];\n }\n\n this.subscription = this.activeEntry.pageIndex\n .pipe(\n delay(0), // Without this delay, change detection does not work correctly with expanded\n filter(pageIndex => pageIndex === this.entry.index)\n )\n .subscribe(() => {\n this.showChildren();\n this.activeEntry.setBreadcrumb(this.breadcrumbPath);\n });\n }\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n public toggleChildren(): void {\n this.contentTree.hideAllBut(this.contentRoot);\n this.contentRoot.toggle();\n }\n\n public show(): void {\n this.breakpointService.isMobile\n .pipe(filter(isMobile => isMobile))\n .subscribe(() => {\n $('.navbar-collapse').collapse('hide');\n });\n this.showChildren();\n this.activeEntry.setPageIndex(this.entry.index);\n }\n\n public get stateName(): string {\n return this.contentRoot && this.contentRoot.expanded.value ? 'show' : 'hide';\n }\n\n public copyContentfulLink(): void {\n this.clipboardService.copy(`[${this.entry.fields.title}](${this.entry.sys.id})`);\n }\n\n private showChildren(): void {\n this.contentTree.hideAllBut(this.contentRoot);\n this.contentRoot.expanded.next(true);\n }\n}\n","\n
  • \n \n \n {{ entry.fields.title }}\n \n
  • \n \n \n \n \n
    \n\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n QueryList\n} from '@angular/core';\nimport { RootEntryDirective } from '../../directives/root-entry.directive';\n\n@Component({\n selector: 'content-tree',\n templateUrl: './content-tree.component.html',\n styleUrls: ['./content-tree.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ContentTreeComponent {\n @ContentChildren(RootEntryDirective) private rootEntries: QueryList;\n\n public hideAll(): void {\n this.rootEntries.forEach(rootEntry => {\n rootEntry.expanded.next(false);\n });\n }\n\n public hideAllBut(entryToNotHide: RootEntryDirective): void {\n if (this.rootEntries) {\n this.rootEntries.forEach(rootEntry => {\n if (rootEntry !== entryToNotHide) {\n rootEntry.expanded.next(false);\n }\n });\n }\n }\n}\n","
      \n \n
    \n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { Converter } from 'showdown';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { ContentfulService } from '../../services/contentful.service';\nimport { ActiveEntryService } from '../../services/active-entry.service';\nimport { ContentEntryIndexed } from '../../shared/content-entry';\nimport { BreakpointService } from '../../services/breakpoint.service';\nimport { MarkdownLinkService } from '../../services/markdown-link.service';\n\n@Component({\n selector: 'help-page',\n templateUrl: './help-page.component.html',\n styleUrls: ['./help-page.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class HelpPageComponent {\n public readonly htmlContent$: Observable;\n public title = '';\n\n private readonly converter: Converter;\n\n public constructor(\n public breakpointService: BreakpointService,\n private route: ActivatedRoute,\n private sanitizer: DomSanitizer,\n private activeEntry: ActiveEntryService,\n private contentfulService: ContentfulService,\n private markdownLinkService: MarkdownLinkService\n ) {\n this.converter = new Converter({ tables: true });\n this.htmlContent$ = this.route.queryParamMap.pipe(\n map(params => params.get('id')),\n distinctUntilChanged(),\n switchMap(\n (id: string) => id\n ? this.contentfulService.contentFlattened.pipe(\n map(entries => entries.find(entry => entry.sys.id === id))\n )\n : this.contentfulService.content.pipe(\n map(entries => entries.items[0])\n )\n ),\n tap(entry => {\n if (!entry) {\n this.activeEntry.setBreadcrumb([]);\n }\n }),\n map(entry => entry ? entry : { fields: { title: '', text: '' } } as ContentEntryIndexed),\n tap(entry => {\n this.activeEntry.setPageIndexFirstTime(entry.index);\n this.title = entry.fields.title;\n }),\n map(\n entry => entry.fields.text\n ? this.sanitizer.bypassSecurityTrustHtml(this.converter.makeHtml(entry.fields.text))\n : ''\n ),\n tap(() => {\n setTimeout(() => {\n this.markdownLinkService.setImages();\n });\n })\n );\n }\n\n public previous(): void {\n this.activeEntry.navigatePrevious();\n }\n\n public next(): void {\n this.activeEntry.navigateNext();\n }\n}\n","
    \n \n \n \n
    \n
    \n

    {{ title }}

    \n
    \n
    \n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Observable } from 'rxjs';\nimport { availableLanguages } from '../../transloco-root.module';\n\n@Component({\n selector: 'language-select',\n templateUrl: './language-select.component.html',\n styleUrls: ['./language-select.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LanguageSelectComponent {\n public readonly availableLanguages = availableLanguages as ReadonlyArray;\n public readonly currentLanguage$: Observable;\n\n public constructor(transloco: TranslocoService) {\n this.currentLanguage$ = transloco.langChanges$;\n }\n}\n","\n  | \n {{ language | shortenLanguage }}\n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'print-entry',\n templateUrl: './print-entry.component.html',\n styleUrls: ['./print-entry.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrintEntryComponent {\n @Input() public entry: ContentEntry;\n}\n","\n
  • \n

    {{ entry.fields.title }}

    \n
  • \n \n
      \n \n
    \n
    \n
    \n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { Converter } from 'showdown';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'print-page',\n templateUrl: './print-page.component.html',\n styleUrls: ['./print-page.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrintPageComponent implements OnChanges {\n @Input() public entry: ContentEntry;\n @Input() public isRoot = false;\n @Input() public pageBreak = false;\n\n private _htmlContent$ = new ReplaySubject();\n\n private readonly converter = new Converter({ tables: true });\n\n public constructor(\n private sanitizer: DomSanitizer\n ) {\n this.converter = new Converter({ tables: true });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.entry) {\n this._htmlContent$.next(\n this.entry.fields.text\n ? this.sanitizer.bypassSecurityTrustHtml(this.converter.makeHtml(this.entry.fields.text))\n : ''\n );\n }\n }\n\n public get htmlContent$(): Observable {\n return this._htmlContent$;\n }\n}\n","
    \n

    {{ entry?.fields?.title }}

    \n
    \n
    \n\n","import { AfterViewInit, ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ContentfulService } from '../../services/contentful.service';\nimport { ContentEntryCollection } from '../../shared/content-entry';\nimport { MarkdownLinkService } from '../../services/markdown-link.service';\n\n@Component({\n selector: 'print',\n templateUrl: './print.component.html',\n styleUrls: ['./print.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PrintComponent implements AfterViewInit {\n public readonly entries$: Observable;\n public readonly today = new Date();\n\n public constructor(\n private contentfulService: ContentfulService,\n private markdownLinkService: MarkdownLinkService\n ) {\n this.entries$ = this.contentfulService.printContent;\n }\n\n public ngAfterViewInit(): void {\n setTimeout(() => {\n this.markdownLinkService.setImages(true);\n }, 3000);\n }\n}\n","
    \n \n

    {{ 'DOWNLOADED' | transloco }}

    \n

    {{ today | date }}

    \n
    \n

    {{ 'TOC' | transloco }}

    \n
      \n \n
    \n\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'search-result-entry',\n templateUrl: './search-result-entry.component.html',\n styleUrls: ['./search-result-entry.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SearchResultEntryComponent {\n @Input() public entry: ContentEntry;\n}\n","{{ entry.fields.title }}\n
    \n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'search-results',\n templateUrl: './search-results.component.html',\n styleUrls: ['./search-results.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SearchResultsComponent {\n @Input() public items: ContentEntry[] = [];\n}\n","\n

    {{ items.length || 0 }} {{ \"SEARCH_RESULTS\" | transloco }}

    \n
    \n \n
    \n
    \n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { Converter } from 'showdown';\nimport { ActivatedRoute } from '@angular/router';\nimport { map, switchMap } from 'rxjs/operators';\nimport { ContentfulService } from '../../services/contentful.service';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'app-search-component',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SearchComponent {\n public readonly htmlContent$: Observable;\n private readonly converter: Converter;\n\n public constructor(\n private route: ActivatedRoute,\n private sanitizer: DomSanitizer,\n private contentfulService: ContentfulService\n ) {\n this.converter = new Converter({ tables: true });\n\n this.htmlContent$ = this.route.params.pipe(\n switchMap(value => this.getSearchEntries(value.searchString))\n );\n }\n\n private getSearchEntries(searchString: string): Observable {\n return this.contentfulService.search(searchString).pipe(\n map(entries => {\n const regexp = new RegExp(`(${searchString})`, 'gi');\n return entries.items.filter(entry => entry.fields.title && entry.fields.text).map(\n entry => {\n const asPlainText = $(this.converter.makeHtml(entry.fields.text)).text();\n const searchResult = this.boldMatches(\n this.getClausesWithMatch(asPlainText, regexp),\n regexp\n );\n (entry.fields as any).text = this.sanitizer.bypassSecurityTrustHtml(searchResult);\n return entry;\n }\n );\n })\n );\n }\n\n private boldMatches(text: string, regexp: RegExp): string {\n return text.replace(regexp, '$1');\n }\n\n private getClausesWithMatch(text: string, regexp: RegExp): string {\n return text.split('.').reduce(\n (accum: string, clause: string) => clause.search(regexp) >= 0\n ? accum.concat(clause, '. ')\n : accum\n , ''\n );\n }\n}\n","\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ContentEntry } from '../../shared/content-entry';\n\n@Component({\n selector: 'toggle-icon',\n templateUrl: './toggle-icon.component.html',\n styleUrls: ['./toggle-icon.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToggleIconComponent {\n @Input() public expanded: boolean;\n @Input() public entry: ContentEntry;\n}\n","\n \n \n \n \n\n\n \n\n","import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { ContentEntryCollection } from '../../shared/content-entry';\nimport { BreakpointService } from '../../services/breakpoint.service';\n\n@Component({\n selector: 'topbar',\n templateUrl: './topbar.component.html',\n styleUrls: ['./topbar.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TopbarComponent {\n public readonly searchForm: FormGroup<{ searchString: FormControl }>;\n public readonly isChrome: boolean;\n @Input() public entries: ContentEntryCollection;\n @HostBinding('class.navbar') public navbarClass = true;\n @HostBinding('class.navbar-expand-md') public navbarClassExpand = true;\n @HostBinding('class.navbar-dark') public navbarLight = true;\n @HostBinding('class.fixed-top') public fixedTop = true;\n @HostBinding('attr.role') public role = 'navigation';\n\n public constructor(\n private router: Router,\n public breakpointService: BreakpointService,\n formBuilder: FormBuilder\n ) {\n this.searchForm = formBuilder.group({\n searchString: new FormControl('', Validators.required)\n });\n\n this.isChrome = !!(window as any).chrome;\n }\n\n public onSearch(): void {\n this.router.navigate(['search', this.searchForm.value.searchString], { queryParamsHandling: 'merge' });\n }\n\n public print(): void {\n this.router.navigate(['print']);\n }\n}\n","{{ 'HELP' | transloco }}\n\n \n\n
    \n \n
    \n \n \n \n \n \n \n
    \n \n \n \n \n \n \n \n \n
    \n","import { Directive } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n selector: 'content-entry [rootEntry]'\n})\nexport class RootEntryDirective {\n public readonly expanded: BehaviorSubject = new BehaviorSubject(false);\n\n public toggle(): void {\n this.expanded.next(!this.expanded.value);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const WINDOW = new InjectionToken('Window object', {\n providedIn: 'root',\n factory: () => window\n});\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Lang } from '../transloco-root.module';\n\nconst languageShortForms: Record = {\n ['en-GB']: 'EN',\n ['fi-FI']: 'FI',\n ['sv-SE']: 'SE',\n ['nb-NO']: 'NO',\n ['da-DK']: 'DK',\n}\n\n@Pipe({\n name: 'shortenLanguage'\n})\nexport class ShortenLanguagePipe implements PipeTransform {\n public transform(language: string): string {\n return languageShortForms[language as Lang] ?? '';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map, skip, switchMap } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { ContentfulService } from './contentful.service';\nimport { BreadcrumbEntry } from '../components/content-entry/content-entry.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ActiveEntryService {\n private readonly _pageIndex: BehaviorSubject = new BehaviorSubject(null);\n private readonly _breadcrumb: ReplaySubject = new ReplaySubject();\n\n public constructor(\n private contentfulService: ContentfulService,\n private router: Router,\n transloco: TranslocoService\n ) {\n this._pageIndex.pipe(\n // Skip null that is set with behaviorsubject\n skip(1),\n switchMap(index => this.getPageIdByIndex(index)),\n debounceTime(250),\n filter(id => !!id)\n ).subscribe(id => {\n this.router.navigate([''], { queryParams: { id: id }, queryParamsHandling: 'merge' });\n });\n\n transloco.langChanges$.pipe(distinctUntilChanged()).subscribe(\n () => this._pageIndex.next(null)\n );\n }\n\n public setBreadcrumb(breadcrumb: BreadcrumbEntry[]): void {\n this._breadcrumb.next(breadcrumb);\n }\n\n public get breadcrumb(): Observable {\n return this._breadcrumb.pipe(\n distinctUntilChanged(),\n debounceTime(100)\n );\n }\n\n public setPageIndex(index: number): void {\n this._pageIndex.next(index);\n }\n\n public setPageIndexFirstTime(index: number): void {\n if (this._pageIndex.value === null) {\n this._pageIndex.next(index);\n }\n }\n\n public get pageIndex(): Observable {\n return this._pageIndex.pipe(distinctUntilChanged());\n }\n\n public navigateNext(): void {\n this._pageIndex.next(this._pageIndex.value + 1);\n }\n\n public navigatePrevious(): void {\n this._pageIndex.next(this._pageIndex.value > 0 ? this._pageIndex.value - 1 : this._pageIndex.value);\n }\n\n public getPageIdByIndex(index: number): Observable {\n return this.contentfulService.contentFlattened.pipe(\n map(entries => {\n const foundEntry = entries.find(entry => entry.index === index);\n return foundEntry ? foundEntry.sys.id : undefined;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { map, tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\nimport { ContentEntry } from '../shared/content-entry';\nimport { QueryParamService } from './query-param.service';\n\nexport enum ServiceLevel {\n Large = '0',\n Medium = '1',\n Small = '2'\n}\n\nconst rolesToCheckWhenNoUserInfo = ['UserAdministrator', 'MeterManagerUser'];\n\n@Injectable()\nexport class AuthenticationService {\n public readonly initialLanguage: string;\n private _roles: readonly string[] = [];\n private _services: readonly string[] = [];\n private _serviceLevel: ServiceLevel = ServiceLevel.Large;\n private _tenantId: string = '1';\n private userInfoAvailable = false;\n\n public constructor(private queryParamService: QueryParamService) {\n this.initialLanguage = this.queryParamService.getQueryParamValue('locale');\n }\n\n public initUserAccess(): Promise {\n this.queryParamService.paramsToSessionStorage();\n return of(null).pipe(\n map(() => this.queryParamService.getUserInfo()),\n tap(userInfo => {\n if (userInfo) {\n this.userInfoAvailable = true;\n this._roles = userInfo.roles;\n this._services = userInfo.services;\n this._tenantId = userInfo.tenantId || this._tenantId;\n this._serviceLevel = userInfo.serviceLevel || this._serviceLevel;\n }\n }),\n map((): void => undefined)\n ).toPromise();\n }\n\n public hasAccess(entry: ContentEntry): boolean {\n if (!entry.fields) {\n return true;\n }\n const role = entry.fields.role;\n const service = entry.fields.service;\n\n if (!this.hasAccessByServiceLevel(entry)) {\n return false;\n }\n\n if (!this.hasAccessByTenant(entry)) {\n return false;\n }\n\n if (rolesToCheckWhenNoUserInfo.includes(role)) {\n return this.hasRole(role);\n }\n\n if (entry.fields.doNotLocalize === 'DoNotLocalize') {\n return false;\n }\n if (!this.userInfoAvailable) {\n return true;\n }\n return this.hasRole(role) && this.hasService(service);\n }\n\n private hasRole(role: string): boolean {\n if (!role) {\n return true;\n }\n if (role === 'All') {\n return true;\n }\n return !!this._roles?.includes(role);\n }\n\n private hasService(service: string): boolean {\n if (!service) {\n return true;\n }\n return !!this._services?.includes(service);\n }\n\n private hasAccessByServiceLevel(entry: ContentEntry): boolean {\n if (this._serviceLevel === ServiceLevel.Large && !entry.fields.serviceLevel) {\n return true;\n }\n return entry.fields.serviceLevel && entry.fields.serviceLevel.includes(this._serviceLevel);\n }\n\n private hasAccessByTenant(entry: ContentEntry): boolean {\n if (!entry.fields.tenant) {\n return true;\n }\n\n return entry.fields.tenant && entry.fields.tenant.includes(this._tenantId);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreakpointService {\n public readonly isMobile: Observable;\n\n public constructor(private breakpointObserver: BreakpointObserver) {\n const breakpoint = this.getBreakpoint();\n\n this.isMobile = this.breakpointObserver\n .observe([`(min-width: ${breakpoint})`])\n .pipe(map(state => !state.matches));\n }\n\n private getBreakpoint(): string {\n const styles = getComputedStyle(document.documentElement);\n const breakpoint = styles.getPropertyValue('--breakpoint-md').trim();\n return breakpoint ? breakpoint : '768px';\n }\n}\n","import {\n Inject,\n Injectable,\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({ providedIn: 'root' })\nexport class ClipboardService {\n\n private get body(): HTMLBodyElement {\n return this.document.querySelector('body');\n }\n\n private get textArea(): HTMLTextAreaElement {\n if (!this._textArea) {\n // Using \"display:none\" prevents copying, probably a security measure\n this._textArea = this.document.createElement('textarea');\n this._textArea.style.position = 'fixed';\n this._textArea.style.opacity = '0';\n }\n\n return this._textArea;\n }\n\n private _textArea: HTMLTextAreaElement;\n\n public constructor(\n @Inject(DOCUMENT) private readonly document: Document\n ) { }\n\n /**\n * Returns a promise that resolves if the copy event succeeds.\n */\n public copy(text: string): Promise {\n if (!text) {\n return Promise.reject();\n }\n\n return new Promise((resolve, reject) => {\n this.body.appendChild(this.textArea);\n\n this.textArea.value = text;\n this.textArea.select();\n\n const result = this.document.execCommand('copy');\n\n this.textArea.value = '';\n this.textArea.remove();\n\n result ? resolve() : reject();\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Asset, ContentfulClientApi, ContentfulCollection, createClient } from 'contentful';\nimport { from, Observable, ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, skip, switchMap } from 'rxjs/operators';\nimport { WINDOW } from '../injection-tokens/window';\nimport {\n ContentEntry,\n ContentEntryCollection,\n ContentEntryIndexed,\n ContentEntryIndexedCollection\n} from '../shared/content-entry';\nimport { EntryIndexer } from '../shared/entry-indexer';\nimport { PrintEntryIndexer } from '../shared/print-entry-indexer';\nimport { AuthenticationService } from './authentication.service';\n\nconst pagesToIgnoreInPrint = ['5qsYrX3ZYcWmmi06ACAmUU', '1yvikU2jGU2g6kiey2eOea'];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContentfulService {\n private readonly contentfulClient: ContentfulClientApi;\n private readonly content$: Observable;\n private readonly printContent$: Observable;\n private readonly contentIndexed$: Observable;\n private readonly contentFlattened$: Observable;\n private readonly requestContent$: ReplaySubject = new ReplaySubject();\n\n public constructor(\n private authentication: AuthenticationService,\n private translocoService: TranslocoService,\n @Inject(WINDOW) windowObject: Window\n ) {\n let contentfulHost = '';\n let apiKey = '';\n\n switch (windowObject.location.hostname) {\n case 'help-test.enerkey.com':\n apiKey = '3f91b51872e4a421fa728482901d40b929934b9f5bd986e95b9eb26d09ac7654';\n contentfulHost = 'cdn.contentful.com';\n break;\n case 'help.enerkey.com':\n apiKey = '3f91b51872e4a421fa728482901d40b929934b9f5bd986e95b9eb26d09ac7654';\n contentfulHost = 'cdn.contentful.com';\n break;\n default:\n apiKey = 'ad45700a2ab1c52aa56f9f5157c56517c9c172171e1cceb1fe89995cd329c50a';\n contentfulHost = 'preview.contentful.com';\n }\n\n this.contentfulClient = createClient({\n space: 'd5y2pp46l9fr',\n accessToken: apiKey,\n host: contentfulHost\n });\n\n this.content$ = this.requestContent$.pipe(\n switchMap(() => this.requestContent()),\n shareReplay({\n refCount: true,\n bufferSize: 1\n })\n );\n\n this.contentIndexed$ = this.content$.pipe(\n map(entries => EntryIndexer.addIndexesToEntries(entries)),\n shareReplay({\n refCount: true,\n bufferSize: 1\n })\n );\n\n this.printContent$ = this.content$.pipe(\n // Clone because data is mutated. Otherwise titles are mutated globally.\n map(entries => JSON.parse(JSON.stringify(entries)) as ContentEntryCollection),\n map(entries => {\n entries.items = entries.items.filter(item => !pagesToIgnoreInPrint.includes(item.sys.id));\n return entries;\n }),\n map(entries => PrintEntryIndexer.addIndexesToEntries(entries)),\n shareReplay()\n );\n\n this.contentFlattened$ = this.contentIndexed$.pipe(\n map(entries => this.flattenEntries(entries.items)),\n shareReplay({\n refCount: true,\n bufferSize: 1\n })\n );\n\n this.requestContent$.next();\n\n this.translocoService.langChanges$\n .pipe(\n distinctUntilChanged(),\n // Skip initial language set to avoid requesting entries multiple times\n skip(1)\n )\n .subscribe(() => {\n this.requestContent$.next();\n });\n }\n\n public get content(): Observable {\n return this.contentIndexed$;\n }\n\n public get printContent(): Observable {\n return this.printContent$;\n }\n\n public get contentFlattened(): Observable {\n return this.contentFlattened$;\n }\n\n public getAsset(id: string, locale?: string): Promise {\n return this.contentfulClient.getAsset(id, { locale: locale ? locale : this.locale });\n }\n\n public getAssets(): Promise> {\n return this.contentfulClient.getAssets({ limit: 1000 });\n }\n\n public search(searchString: string): Observable {\n return from(this.contentfulClient.getEntries({\n // eslint-disable-next-line @typescript-eslint/camelcase\n content_type: 'helpPage',\n include: 1,\n locale: this.locale,\n order: 'fields.title',\n query: searchString\n })).pipe(\n map(entries => this.filterAllowedEntries(entries as ContentEntryCollection))\n );\n }\n\n private requestContent(): Observable {\n return from(this.contentfulClient.getEntries({\n // eslint-disable-next-line @typescript-eslint/camelcase\n content_type: 'rootHelp',\n include: 9,\n locale: this.locale,\n order: 'fields.sortOrder'\n })).pipe(\n // Clone entries to get rid of duplicate objects (same references)\n map(entries => JSON.parse(JSON.stringify(entries))),\n map(entries => this.filterAllowedEntries(entries))\n );\n }\n\n private filterAllowedEntries(entries: ContentEntryCollection): ContentEntryCollection {\n entries.items = this.filterItems(entries.items);\n return entries;\n }\n\n private filterItems(entries: ContentEntry[]): ContentEntry[] {\n const filteredEntries = entries.filter(\n item => item.fields && item.fields.title && this.authentication.hasAccess(item)\n );\n filteredEntries.forEach(entry => {\n if (entry.fields && entry.fields.subPages) {\n entry.fields.subPages = this.filterItems(entry.fields.subPages);\n }\n });\n return filteredEntries;\n }\n\n private flattenEntries(entries: T[]): T[] {\n return entries ? entries.map(entry => this.flattenEntry(entry)).flat() : [];\n }\n\n private flattenEntry(entry: T): T[] {\n return entry.fields\n ? [entry, ...this.flattenEntries(entry.fields.subPages)]\n : []\n ;\n }\n\n private get locale(): string {\n return this.translocoService.getActiveLang();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ContentfulService } from './contentful.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MarkdownLinkService {\n public constructor(private contentfulService: ContentfulService) {\n $(document).on('click', 'a', this.linkHandler);\n }\n\n public setImages(print = false): void {\n const images = $('#content img');\n let imagesLoaded = 0;\n const imageCount = images.length;\n\n function imageLoad(): void {\n imagesLoaded++;\n if (print && imagesLoaded === imageCount) {\n window.print();\n }\n }\n\n $.each(images, (_index, value) => {\n const copyImage = $('').on('load', imageLoad);\n const assetId = value.getAttribute('src');\n const img = value as HTMLImageElement;\n if (assetId !== '' && assetId.length <= 32) {\n this.contentfulService.getAsset(assetId)\n .then(asset => {\n img.src = asset.fields.file.url;\n copyImage.attr('src', asset.fields.file.url);\n })\n .catch(() => {\n /* For now we want to fallback to finnish, in future this should be english */\n this.contentfulService.getAsset(assetId, 'fi-FI')\n .then(asset => {\n img.src = asset.fields.file.url;\n copyImage.attr('src', asset.fields.file.url);\n });\n });\n } else {\n copyImage.attr('src', assetId);\n }\n });\n // Copied from old help\n $('img').one('load', event => {\n const image = event.target as HTMLImageElement;\n const imageElement = $(image);\n switch (true) {\n case (image.naturalWidth > 750):\n imageElement.wrap('
    ');\n imageElement.parent().attr('class', 'bigImage');\n imageElement.after(`
    ${ image.alt }
    `);\n break;\n case (image.naturalWidth < 750 && image.naturalHeight > 600):\n imageElement.wrap('
    ');\n imageElement.parent().attr('class', 'longImage');\n imageElement.after(`
    ${ image.alt }
    `);\n break;\n case ((image.naturalWidth <= 160) && (image.naturalHeight <= 150)):\n // check for tables\n if (imageElement.parent().get(0).tagName !== 'TD') {\n imageElement.addClass('smallImage');\n }\n break;\n default:\n imageElement.wrap('
    ');\n imageElement.parent().attr('class', 'normalImage');\n imageElement.after(`
    ${ image.alt }
    `);\n break;\n }\n });\n }\n\n private linkHandler(): boolean {\n // Without this handler links with href cause page reload\n const href = $(this).attr('href');\n let element = document.getElementById(href);\n if (element !== null) {\n element = element.getElementsByTagName('a')[0];\n element.click();\n return false;\n }\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Params, Router } from '@angular/router';\n\nimport { WINDOW } from '../injection-tokens/window';\nimport { ServiceLevel } from './authentication.service';\n\ninterface UserInfo {\n services?: string[];\n roles?: string[];\n serviceLevel?: ServiceLevel;\n tenantId?: string;\n}\n\nconst userInfoParamKeys = ['roles', 'services', 'serviceLevel', 'tenantId'];\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QueryParamService {\n public constructor(\n @Inject(WINDOW) private window: Window,\n private router: Router\n ) { }\n\n public getQueryParamValue(paramName: string): string {\n const httpParams = this.getParamsFromUrl();\n const paramValue = httpParams?.get(paramName) ?? '';\n return paramValue;\n }\n\n public paramsToSessionStorage(): void {\n const urlParams = this.getParamsFromUrl();\n for (const key of userInfoParamKeys) {\n if (urlParams?.has(key)) {\n sessionStorage.setItem(key, urlParams.get(key) || '');\n }\n }\n this.cleanQueryParams();\n }\n\n public getUserInfo(): UserInfo {\n const roles = sessionStorage.getItem('roles');\n const services = sessionStorage.getItem('services');\n const serviceLevel = sessionStorage.getItem('serviceLevel');\n const tenantId = sessionStorage.getItem('tenantId');\n\n if (!serviceLevel && !roles && !services && !tenantId) {\n return null;\n }\n\n return {\n roles: roles ? roles.split(',') : [],\n services: services ? services.split(',') : [],\n serviceLevel: serviceLevel as ServiceLevel,\n tenantId\n };\n }\n\n private cleanQueryParams(): void {\n const initialParams = this.getParamsFromUrl();\n if (!initialParams) {\n return;\n }\n const cleanedParams = initialParams.delete('roles').delete('services').delete('serviceLevel').delete('tenantId');\n const newParams: Params = {};\n cleanedParams.keys().forEach(key => {\n newParams[key] = cleanedParams.get(key) || '';\n });\n this.router.navigate([], {\n queryParams: { ...newParams },\n queryParamsHandling: 'merge',\n skipLocationChange: true\n });\n }\n\n private getParamsFromUrl(): HttpParams {\n const url = this.window.location.href;\n if (url.includes('?')) {\n return new HttpParams({ fromString: url.split('?')[1] });\n }\n return null;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\nimport { helenTheme } from './themes/helen';\nimport { sahkolaitosTheme } from './themes/sahkolaitos';\nimport { ThemeColors } from './themes/theme';\nimport { QueryParamService } from './query-param.service';\nimport { tampuuriTheme } from './themes/tampuuri';\nimport { oulunenergiaTheme } from './themes/oulunenegia';\nimport { lummeenergiaTheme } from './themes/lummeenergia';\nimport { smartlyTheme } from './themes/smartly';\nimport { turkuenergiaTheme } from './themes/turkuenergia';\n\nconst tenantNames = [\n 'helen',\n 'sahkolaitos',\n 'tampuuri',\n 'oe360',\n 'lumme-energia',\n 'smartly',\n 'turkuenergia',\n] as const;\n\ntype TenantName = typeof tenantNames[number];\n\nconst themes: Record = {\n helen: helenTheme,\n tampuuri: tampuuriTheme,\n sahkolaitos: sahkolaitosTheme,\n oe360: oulunenergiaTheme,\n 'lumme-energia': lummeenergiaTheme,\n smartly: smartlyTheme,\n turkuenergia: turkuenergiaTheme,\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TenantService {\n public constructor(\n @Inject(DOCUMENT) private document: Document,\n private queryParamService: QueryParamService\n ) {\n }\n\n public setTenantStyles(): Promise {\n const tenant = this.queryParamService.getQueryParamValue('tenant') as TenantName;\n const tenantColors = this.getThemeDefinitions(tenant);\n const root = this.document.documentElement;\n Object.entries(tenantColors).forEach(([color, value]) => {\n root.style.setProperty(color, value);\n });\n return Promise.resolve();\n }\n\n private getThemeDefinitions(tenant: TenantName): ThemeColors {\n return themes[tenant] || {};\n }\n}\n","import { ThemeColors } from './theme';\n\nexport const helenTheme: ThemeColors = {\n '--body-background': '#f5f5f5',\n '--topbar-background': '#ffc800',\n '--topbar-text': '#393939',\n '--button-background': '#ff3291',\n '--button-hover-background': '#bf307b',\n '--button-active-background': '#bf307b',\n '--link-color': '#ff3291',\n '--tree-item-color': '#393939',\n '--table-alt-row': '#e2e2e2',\n '--table-header-color': '#393939',\n '--language-not-active': '#737576',\n '--content-header-color': '#393939'\n};\n","import { ThemeColors } from './theme';\n\nexport const lummeenergiaTheme: ThemeColors = {\n '--topbar-background': '#7eb900',\n '--button-background': '#c0e300',\n '--button-hover-background': '#5b8600',\n '--button-active-background': '#5b8600',\n '--link-color': '#004107',\n '--content-header-color': '#004107',\n '--tree-item-color': '#004107',\n};\n","import { ThemeColors } from './theme';\n\nexport const oulunenergiaTheme: ThemeColors = {\n '--topbar-background': '#009eb5',\n '--button-background': '#94bb20',\n '--button-hover-background': '#728f19',\n '--button-active-background': '#728f19',\n '--link-color': '#0f5ea6',\n '--content-header-color': '#0f5ea6',\n '--tree-item-color': '#0f5ea6',\n};\n","import { ThemeColors } from './theme';\n\nexport const sahkolaitosTheme: ThemeColors = {\n '--topbar-background': '#1B4C86',\n '--button-background': '#E4312A',\n '--button-hover-background': '#C21F19',\n '--button-active-background': '#C21F19',\n '--link-color': '#0178AD',\n '--content-header-color': '#1B4C86',\n '--tree-item-color': '#0178AD',\n};\n","import { ThemeColors } from './theme';\n\nexport const smartlyTheme: ThemeColors = {\n '--topbar-background': '#3d3d3f',\n '--button-background': '#19a546',\n '--button-hover-background': '#127933',\n '--button-active-background': '#127933',\n '--link-color': '#19a546',\n '--content-header-color': '#0D5223',\n '--tree-item-color': '#19A546',\n};\n","import { ThemeColors } from './theme';\n\nexport const tampuuriTheme: ThemeColors = {\n '--topbar-background': '#007aca',\n '--button-background': '#4d8400',\n '--button-hover-background': '#2d660b',\n '--button-active-background': '#2d660b',\n '--link-color': '#007aca',\n '--content-header-color': '#1B4C86',\n '--tree-item-color': '#0178AD',\n '--topbar-text': '#fff',\n '--language-not-active': '#999'\n};\n","import { ThemeColors } from './theme';\n\nexport const turkuenergiaTheme: ThemeColors = {\n '--body-background': '#f5f5f5',\n '--topbar-background': '#f59b00',\n '--topbar-text': '#2c2c2c',\n '--button-background': '#ffcc33',\n '--button-hover-background': '#ffd966',\n '--button-active-background': '#ffd966',\n '--button-text-color': '#2c2c2c',\n '--link-color': '#245e7e',\n '--tree-item-color': '#245e7e',\n '--content-header-color': '#2c2c2c',\n};\n","import {\n ContentEntry,\n ContentEntryCollection,\n ContentEntryIndexed,\n ContentEntryIndexedCollection\n} from './content-entry';\n\nexport class EntryIndexer {\n public static addIndexesToEntries(entries: ContentEntryCollection): ContentEntryIndexedCollection {\n return new EntryIndexer(entries).entries as ContentEntryIndexedCollection;\n }\n\n private currentIndex = 0;\n\n private constructor(public entries: ContentEntryCollection) {\n this.setIndexes(entries.items);\n }\n\n private setIndexes(entries: ContentEntry[]): void {\n entries.forEach(entry => {\n (entry as ContentEntryIndexed).index = this.currentIndex++;\n if (entry.fields && entry.fields.subPages) {\n this.setIndexes(entry.fields.subPages);\n }\n });\n }\n}\n","import { ContentEntry, ContentEntryCollection } from './content-entry';\n\nexport class PrintEntryIndexer {\n public static addIndexesToEntries(entries: ContentEntryCollection): ContentEntryCollection {\n return new PrintEntryIndexer(entries).entries;\n }\n\n private indexLevels: number[] = [];\n\n private constructor(public entries: ContentEntryCollection) {\n this.setIndexes(entries.items);\n }\n\n private setIndexes(entries: ContentEntry[], level = 0): void {\n entries.forEach(entry => {\n this.indexLevels = this.indexLevels.slice(0, level + 1);\n if (!this.indexLevels[level]) {\n this.indexLevels[level] = 0;\n }\n this.indexLevels[level] = this.indexLevels[level] + 1;\n const prefix = this.getIndexPrefix();\n entry.fields.title = `${prefix} ${entry.fields.title}`;\n if (entry.fields && entry.fields.subPages) {\n this.setIndexes(entry.fields.subPages, level + 1);\n }\n });\n }\n\n private getIndexPrefix(): string {\n return this.indexLevels.reduce((prefix, currentNumber) => `${prefix}${currentNumber}.`, '');\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n provideTransloco,\n Translation,\n TranslocoLoader,\n TranslocoModule,\n TranslocoService\n} from '@jsverse/transloco';\nimport { APP_INITIALIZER, Injectable, NgModule } from '@angular/core';\nimport { firstValueFrom, Observable } from 'rxjs';\n\nimport { environment } from '../environments/environment';\nimport { AuthenticationService } from './services/authentication.service';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslocoHttpLoader implements TranslocoLoader {\n public constructor(private http: HttpClient) { }\n\n public getTranslation(lang: string): Observable {\n return this.http.get(`/assets/i18n/${lang}.json`);\n }\n}\n\nexport const availableLanguages = ['fi-FI', 'en-GB', 'sv-SE', 'nb-NO', 'da-DK'] as const;\n\nexport type Lang = typeof availableLanguages[number];\nconst DEFAULT_LANGUAGE = 'fi-FI';\nconst FALLBACK_LANGUAGE = 'en-GB';\n\nexport function preloadTranslation(transloco: TranslocoService, authenticationService: AuthenticationService) {\n return () => {\n const lang = availableLanguages.includes(authenticationService.initialLanguage as Lang)\n ? authenticationService.initialLanguage\n : DEFAULT_LANGUAGE;\n transloco.setActiveLang(lang);\n return firstValueFrom(transloco.load(lang));\n };\n}\n\n@NgModule({\n exports: [TranslocoModule],\n providers: [\n // https://stackoverflow.com/questions/76664886/angular-initialize-transloco-before-application\n provideTransloco({\n config: {\n defaultLang: DEFAULT_LANGUAGE,\n availableLangs: [...availableLanguages],\n reRenderOnLangChange: true,\n prodMode: environment.production,\n fallbackLang: FALLBACK_LANGUAGE,\n },\n loader: TranslocoHttpLoader,\n }),\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [TranslocoService, AuthenticationService],\n useFactory: preloadTranslation,\n },\n ]\n})\nexport class TranslocoRootModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport './vendor';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","import 'jquery';\nimport 'expose-loader?$!expose-loader?jQuery!jquery';\nimport 'bootstrap';\n","/* (ignored) */"],"names":["RouterModule","HelpPageComponent","SearchComponent","PrintComponent","routes","path","component","AppRoutingModule","forRoot","imports","i1","exports","DOCUMENT","i0","ɵɵelement","ɵɵproperty","entry_r1","ɵɵelementStart","ɵɵtemplate","AppComponent_div_3_content_entry_2_Template","ɵɵelementEnd","ɵɵadvance","tmp_1_0","ɵɵpipeBind1","ctx_r1","entries$","items","KEY_CODE","AppComponent","constructor","markdownLinkService","breakpointService","contentfulService","activeEntry","transloco","document","content","currentYear","Date","getFullYear","setPageTitle","langChanges$","subscribe","keyEvent","event","target","type","altKey","shiftKey","ctrlKey","keyCode","RIGHT_ARROW","navigateNext","LEFT_ARROW","navigatePrevious","selectTranslate","translation","title","ɵɵdirectiveInject","MarkdownLinkService","i2","BreakpointService","i3","ContentfulService","i4","ActiveEntryService","i5","TranslocoService","selectors","hostBindings","AppComponent_HostBindings","rf","ctx","ɵɵlistener","AppComponent_keydown_HostBindingHandler","$event","ɵɵresolveWindow","AppComponent_div_3_Template","ɵɵtext","isMobile","ɵɵtextInterpolate1","BrowserModule","BrowserAnimationsModule","APP_INITIALIZER","LOCALE_ID","LayoutModule","localeFi","ReactiveFormsModule","HttpClientModule","distinctUntilChanged","filter","map","registerLocaleData","ContentEntryComponent","SearchResultsComponent","SearchResultEntryComponent","TranslocoRootModule","TopbarComponent","ContentTreeComponent","RootEntryDirective","ToggleIconComponent","BreadcrumbComponent","AuthenticationService","LanguageSelectComponent","ShortenLanguagePipe","PrintEntryComponent","PrintPageComponent","TenantService","QueryParamService","tenantInitializerFactory","tenantService","setTenantStyles","authenticationInitializerFactory","authenticationService","initUserAccess","AppModule","route","location","defaultAngularLocale","queryParamMap","pipe","params","get","language","setActiveLang","onPopState","setPageIndex","ɵɵinject","ActivatedRoute","PlatformLocation","bootstrap","provide","useValue","useFactory","deps","multi","declarations","ɵɵpureFunction0","_c0","ɵɵpureFunction1","_c1","item_r1","id","ɵɵtextInterpolate","BreadcrumbComponent_span_0_span_1_Template","BreadcrumbComponent_span_0_a_2_Template","BreadcrumbComponent_span_0_ng_template_3_Template","ɵɵtemplateRefExtractor","first_r2","last_r3","lastItem_r4","breadcrumb","breadcrumb$","inputs","decls","vars","consts","template","BreadcrumbComponent_Template","BreadcrumbComponent_span_0_Template","animate","state","style","transition","trigger","delay","ContentEntryComponent_ng_container_0_toggle_icon_2_Template_toggle_icon_click_0_listener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","toggleChildren","contentRootSelf","expanded","entry","subPage_r4","ɵɵelementContainerStart","ContentEntryComponent_ng_container_0_ng_container_6_content_entry_3_Template","contentRoot","stateName","fields","subPages","ContentEntryComponent_ng_container_0_toggle_icon_2_Template","ContentEntryComponent_ng_container_0_Template_a_dblclick_3_listener","_r1","copyContentfulLink","ContentEntryComponent_ng_container_0_Template_a_click_3_listener","show","ContentEntryComponent_ng_container_0_ng_container_6_Template","sys","_c2","pageIndex","index","length","contentTree","clipboardService","parentEntry","breadcrumbPath","ngOnInit","parentItems","subscription","showChildren","setBreadcrumb","ngOnDestroy","unsubscribe","hideAllBut","toggle","$","collapse","value","copy","next","ClipboardService","ContentEntryComponent_Template","ContentEntryComponent_ng_container_0_Template","i8","i7","AsyncPipe","styles","data","animation","opacity","changeDetection","hideAll","rootEntries","forEach","rootEntry","entryToNotHide","contentQueries","ContentTreeComponent_ContentQueries","dirIndex","ɵɵprojection","Converter","switchMap","tap","sanitizer","converter","tables","htmlContent$","contentFlattened","entries","find","text","setPageIndexFirstTime","bypassSecurityTrustHtml","makeHtml","setTimeout","setImages","previous","DomSanitizer","i6","HelpPageComponent_Template","HelpPageComponent_Template_button_click_1_listener","HelpPageComponent_Template_button_click_3_listener","HelpPageComponent_breadcrumb_5_Template","ɵɵsanitizeHtml","availableLanguages","LanguageSelectComponent_span_0_span_1_Template","language_r1","currentLanguage$","LanguageSelectComponent_Template","LanguageSelectComponent_span_0_Template","subPage_r1","PrintEntryComponent_ng_container_0_ng_container_4_print_entry_2_Template","PrintEntryComponent_ng_container_0_ng_container_4_Template","PrintEntryComponent_Template","PrintEntryComponent_ng_container_0_Template","ReplaySubject","subEntry_r1","isRoot","pageBreak","_htmlContent$","ngOnChanges","changes","features","ɵɵNgOnChangesFeature","PrintPageComponent_Template","PrintPageComponent_print_page_5_Template","entry_r2","today","printContent","ngAfterViewInit","PrintComponent_Template","PrintComponent_print_entry_12_Template","PrintComponent_print_page_14_Template","tmp_3_0","tmp_4_0","SearchResultEntryComponent_Template","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","result_r1","SearchResultsComponent_ng_container_0_div_4_Template","ɵɵtextInterpolate2","SearchResultsComponent_Template","SearchResultsComponent_ng_container_0_Template","getSearchEntries","searchString","search","regexp","RegExp","asPlainText","searchResult","boldMatches","getClausesWithMatch","replace","split","reduce","accum","clause","concat","SearchComponent_Template","ToggleIconComponent_span_0_span_1_Template","ToggleIconComponent_span_0_ng_template_2_Template","collapse_r1","ToggleIconComponent_Template","ToggleIconComponent_span_0_Template","ToggleIconComponent_ng_template_1_Template","emptyIcon_r3","FormControl","Validators","TopbarComponent_button_15_Template_button_click_0_listener","print","entry_r3","TopbarComponent_content_tree_17_content_entry_1_Template","router","formBuilder","navbarClass","navbarClassExpand","navbarLight","fixedTop","role","searchForm","group","required","isChrome","window","chrome","onSearch","navigate","queryParamsHandling","Router","FormBuilder","hostVars","TopbarComponent_HostBindings","ɵɵclassProp","TopbarComponent_Template_form_ngSubmit_6_listener","TopbarComponent_language_select_13_Template","TopbarComponent_button_15_Template","TopbarComponent_content_tree_17_Template","ɵɵpropertyInterpolate1","BehaviorSubject","InjectionToken","WINDOW","providedIn","factory","languageShortForms","transform","pure","debounceTime","skip","_pageIndex","_breadcrumb","getPageIdByIndex","queryParams","foundEntry","undefined","ɵfac","of","ServiceLevel","rolesToCheckWhenNoUserInfo","queryParamService","_roles","_services","_serviceLevel","Large","_tenantId","userInfoAvailable","initialLanguage","getQueryParamValue","paramsToSessionStorage","getUserInfo","userInfo","roles","services","tenantId","serviceLevel","toPromise","hasAccess","service","hasAccessByServiceLevel","hasAccessByTenant","includes","hasRole","doNotLocalize","hasService","tenant","breakpointObserver","breakpoint","getBreakpoint","observe","matches","getComputedStyle","documentElement","getPropertyValue","trim","BreakpointObserver","body","querySelector","textArea","_textArea","createElement","position","Promise","reject","resolve","appendChild","select","result","execCommand","remove","createClient","from","shareReplay","EntryIndexer","PrintEntryIndexer","pagesToIgnoreInPrint","authentication","translocoService","windowObject","requestContent$","contentfulHost","apiKey","hostname","contentfulClient","space","accessToken","host","content$","requestContent","refCount","bufferSize","contentIndexed$","addIndexesToEntries","printContent$","JSON","parse","stringify","item","contentFlattened$","flattenEntries","getAsset","locale","getAssets","limit","getEntries","content_type","include","order","query","filterAllowedEntries","filterItems","filteredEntries","flattenEntry","flat","getActiveLang","on","linkHandler","images","imagesLoaded","imageCount","imageLoad","each","_index","copyImage","assetId","getAttribute","img","then","asset","src","file","url","attr","catch","one","image","imageElement","naturalWidth","wrap","parent","after","alt","naturalHeight","tagName","addClass","href","element","getElementById","getElementsByTagName","click","HttpParams","userInfoParamKeys","paramName","httpParams","getParamsFromUrl","paramValue","urlParams","key","has","sessionStorage","setItem","cleanQueryParams","getItem","initialParams","cleanedParams","delete","newParams","keys","skipLocationChange","fromString","helenTheme","sahkolaitosTheme","tampuuriTheme","oulunenergiaTheme","lummeenergiaTheme","smartlyTheme","turkuenergiaTheme","tenantNames","themes","helen","tampuuri","sahkolaitos","oe360","smartly","turkuenergia","tenantColors","getThemeDefinitions","root","Object","color","setProperty","currentIndex","setIndexes","indexLevels","level","slice","prefix","getIndexPrefix","currentNumber","provideTransloco","TranslocoModule","firstValueFrom","environment","TranslocoHttpLoader","http","getTranslation","lang","HttpClient","DEFAULT_LANGUAGE","FALLBACK_LANGUAGE","preloadTranslation","load","config","defaultLang","availableLangs","reRenderOnLangChange","prodMode","production","fallbackLang","loader","enableProdMode","__NgCli_bootstrap_1","platformBrowser","bootstrapModule","err","console","error"],"sourceRoot":"webpack:///","x_google_ignoreList":[54]}