{"version":3,"file":"hslayers-ng-components-language.mjs","sources":["../../../projects/hslayers/components/language/language.component.ts","../../../projects/hslayers/components/language/language.component.html","../../../projects/hslayers/components/language/language.module.ts","../../../projects/hslayers/components/language/translate-testing.module.ts","../../../projects/hslayers/components/language/hslayers-ng-components-language.ts"],"sourcesContent":["import {Component, OnInit, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\n\nimport {HsConfig} from 'hslayers-ng/config';\nimport {HsLanguageService} from 'hslayers-ng/services/language';\nimport {HsPanelBaseComponent} from 'hslayers-ng/common/panels';\n\n@Component({\n  selector: 'hs-language',\n  templateUrl: './language.component.html',\n  standalone: false,\n})\nexport class HsLanguageComponent\n  extends HsPanelBaseComponent\n  implements OnInit\n{\n  private hsLanguageService = inject(HsLanguageService);\n  private hsConfig = inject(HsConfig);\n\n  availableLanguages: any;\n  name = 'language';\n\n  constructor() {\n    super();\n    this.hsConfig.configChanges.pipe(takeUntilDestroyed()).subscribe(() => {\n      if (this.hsConfig.additionalLanguages) {\n        this.availableLanguages =\n          this.hsLanguageService.listAvailableLanguages();\n      }\n    });\n  }\n\n  ngOnInit(): void {\n    this.availableLanguages = this.hsLanguageService.listAvailableLanguages();\n    super.ngOnInit();\n  }\n\n  /**\n   * Check if provided language is active language\n   * @param langCode - Language code\n   * @returns True, if current language is active\n   */\n  isCurrentLang(langCode: string): boolean {\n    return this.hsLanguageService.language?.endsWith(langCode.toLowerCase());\n  }\n\n  /**\n   * Set UI language to provided one\n   * @param langCode - Language code\n   */\n  setLanguage(langCode: string): void {\n    this.hsLanguageService.setLanguage(langCode);\n  }\n}\n","@if (isVisible$ | async) {\n  <div class=\"card hs-main-panel\" [ngClass]=\"panelWidthClass\">\n    <hs-panel-header name=\"language\" [panelTabs]=\"'LANGUAGE'\">\n    </hs-panel-header>\n    <div class=\"card-body\">\n      <ul class=\"m-3 list-group m-auto w-75 py-md-2\">\n        @for (lang of availableLanguages; track lang) {\n          <button class=\"btn m-2 m-md-1 p-4 p-md-2\"\n            [ngClass]=\"isCurrentLang(lang.key) ? ' btn-primary' : ' btn-secondary'\"\n          (click)=\"setLanguage(lang.key)\">{{lang.name}}</button>\n          }<!-- TODO: Remove function call from template -->\n        </ul>\n      </div>\n    </div>\n  }\n","import {CUSTOM_ELEMENTS_SCHEMA, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule} from '@angular/forms';\nimport {HttpClient} from '@angular/common/http';\nimport {\n  TranslateLoader,\n  TranslateModule,\n  TranslateStore,\n} from '@ngx-translate/core';\n\nimport {HsConfig} from 'hslayers-ng/config';\nimport {HsLanguageComponent} from './language.component';\nimport {HsLogService} from 'hslayers-ng/services/log';\nimport {\n  HsPanelHeaderComponent,\n  HsPanelHelpersModule,\n} from 'hslayers-ng/common/panels';\nimport {HsTranslateLoader} from 'hslayers-ng/services/language';\n\n@NgModule({\n  schemas: [CUSTOM_ELEMENTS_SCHEMA],\n  declarations: [HsLanguageComponent],\n  imports: [\n    FormsModule,\n    CommonModule,\n    HsPanelHelpersModule,\n    HsPanelHeaderComponent,\n    TranslateModule.forRoot({\n      loader: {\n        provide: TranslateLoader,\n        useClass: HsTranslateLoader,\n        multi: false,\n        deps: [HsConfig, HttpClient],\n      },\n    }),\n  ],\n  exports: [HsLanguageComponent],\n  providers: [TranslateStore],\n})\nexport class HsLanguageModule {}\n","import {NgModule} from '@angular/core';\nimport {TranslateModule} from '@ngx-translate/core';\n\n@NgModule({\n  imports: [TranslateModule.forRoot()],\n  exports: [TranslateModule],\n})\nexport class TranslateTestingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}