@smartsoft001-mobilems/angular 2.78.0 → 2.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartsoft001-mobilems-angular.mjs","sources":["../../../../../packages/shared/angular/src/lib/translations.ts","../../../../../packages/shared/angular/src/lib/environments/environment.ts","../../../../../packages/shared/angular/src/lib/services/auth-storage/auth-storage.service.ts","../../../../../packages/shared/angular/src/lib/shared.config.ts","../../../../../packages/shared/angular/src/lib/services/configs/configs.service.ts","../../../../../packages/shared/angular/src/lib/services/contrast/contrast.service.ts","../../../../../packages/shared/angular/src/lib/services/dictionary/dictionary.service.ts","../../../../../packages/shared/angular/src/lib/services/file-url/file-url.service.ts","../../../../../packages/shared/angular/src/lib/services/global/global.service.ts","../../../../../packages/shared/angular/src/lib/services/translation/translation.service.ts","../../../../../packages/shared/angular/src/lib/services/meta/meta.service.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal-container.component.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal-ref.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal.service.ts","../../../../../packages/shared/angular/src/lib/services/search/search.service.ts","../../../../../packages/shared/angular/src/lib/services/seo/seo.service.ts","../../../../../packages/shared/angular/src/lib/services/settings/settings.service.ts","../../../../../packages/shared/angular/src/lib/services/style/style.service.ts","../../../../../packages/shared/angular/src/lib/services/wcag/wcag.service.ts","../../../../../packages/shared/angular/src/lib/services/crud/crud-base.service.ts","../../../../../packages/shared/angular/src/lib/services/query-filter/query-filter.service.ts","../../../../../packages/shared/angular/src/lib/services/index.ts","../../../../../packages/shared/angular/src/lib/+state/configs.facade.ts","../../../../../packages/shared/angular/src/lib/components/app/app.component.ts","../../../../../packages/shared/angular/src/lib/components/app/app.component.html","../../../../../packages/shared/angular/src/lib/components/page/page.component.ts","../../../../../packages/shared/angular/src/lib/components/filters/filters.component.ts","../../../../../packages/shared/angular/src/lib/components/scroll-top/scroll-top.component.ts","../../../../../packages/shared/angular/src/lib/components/footer/footer.component.ts","../../../../../packages/shared/angular/src/lib/components/header/header.component.ts","../../../../../packages/shared/angular/src/lib/components/masonry-grid/masonry-grid.component.ts","../../../../../packages/shared/angular/src/lib/components/menu/menu.component.ts","../../../../../packages/shared/angular/src/lib/components/menu/menu.component.html","../../../../../packages/shared/angular/src/lib/components/widget/base.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/text/text.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/text/text.component.html","../../../../../packages/shared/angular/src/lib/components/widget/widget.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/widget.component.html","../../../../../packages/shared/angular/src/lib/components/index.ts","../../../../../packages/shared/angular/src/lib/directives/hover.directive.ts","../../../../../packages/shared/angular/src/lib/directives/scrollable.directive.ts","../../../../../packages/shared/angular/src/lib/directives/click-outside.directive.ts","../../../../../packages/shared/angular/src/lib/directives/index.ts","../../../../../packages/shared/angular/src/lib/shared.module.ts","../../../../../packages/shared/angular/src/lib/interfaces.ts","../../../../../packages/shared/angular/src/lib/guards/authentication.guard.ts","../../../../../packages/shared/angular/src/lib/guards/unauthorized.guard.ts","../../../../../packages/shared/angular/src/lib/pages/home/home.component.ts","../../../../../packages/shared/angular/src/lib/pages/not-found/not-found.component.ts","../../../../../packages/shared/angular/src/lib/pages/page/page.component.ts","../../../../../packages/shared/angular/src/smartsoft001-mobilems-angular.ts"],"sourcesContent":["import { TranslateService } from '@ngx-translate/core';\n\nexport function setTranslationsAndLang(service: TranslateService) {\n const map = {\n pl: TRANSLATE_DATA_PL,\n };\n\n Object.keys(map).forEach((key) => {\n service.setTranslation(key, (map as any)[key], true);\n });\n\n if (!service.currentLang) {\n const lang = service.getBrowserLang();\n service.use(lang ?? 'en');\n }\n}\n\nexport interface ITranslateData {\n MODEL: object;\n //..\n}\n\nexport const TRANSLATE_DATA_PL: ITranslateData = {\n MODEL: {\n //..\n },\n //..\n};\n","export const environment = {\n production: false,\n apiUrl: '',\n multimediaUrl: '',\n mainLogoPath: '/assets/gfx/logo/main-logo.png',\n};\n","import { Injectable } from '@angular/core';\n\nimport { IUser } from '@smartsoft001-mobilems/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthStorageService {\n private readonly STORAGE_KEY = 'user';\n\n setUser(user: IUser): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.STORAGE_KEY, JSON.stringify(user));\n }\n }\n\n getUser(): IUser | null {\n if (typeof localStorage !== 'undefined') {\n const item = localStorage.getItem(this.STORAGE_KEY);\n if (item) {\n try {\n return JSON.parse(item) as IUser;\n } catch (error) {\n console.error('Failed to parse user from localStorage', error);\n return null;\n }\n }\n }\n return null;\n }\n\n removeUser(): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n }\n\n hasUser(): boolean {\n return this.getUser() !== null;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SharedConfig {\n apiUrl = '';\n multimediaUrl = '';\n mainLogoPath = '/assets/gfx/logo/main-logo.png';\n styleVariables?: Record<string, any>;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport moment from 'moment';\nimport { combineLatest, firstValueFrom, lastValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Config, ITheme, Page } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigsService {\n private readonly httpClient = inject(HttpClient);\n private readonly config = inject(SharedConfig);\n\n get(): Promise<Config> {\n const date = moment().format('YYYY-MM-DD');\n\n return lastValueFrom(\n combineLatest([\n this.httpClient.post<{\n data: unknown & { current: { objectId: string; title: string } };\n }>(this.config.apiUrl + 'object/object-of-the-week', {\n dateStart: date,\n dateEnd: date,\n }),\n this.httpClient.get<{ data: unknown }>(\n this.config.apiUrl + 'setting/theme',\n ),\n ]).pipe(\n map(([r1, r2]) => {\n return {\n id: '',\n objectOfTheDay: {\n id: Number(r1?.data?.current?.objectId),\n title: r1?.data?.current?.title,\n },\n theme: r2.data as ITheme,\n };\n }),\n ),\n );\n }\n\n getPage(id: number | 'home'): Promise<Page> {\n return firstValueFrom(\n this.httpClient\n .get<{ data: any }>(this.config.apiUrl + 'page/' + id)\n .pipe(map((r) => r.data)),\n );\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, signal, effect, PLATFORM_ID, inject } from '@angular/core';\n\ninterface ContrastColors {\n black: string;\n yellow: string;\n white: string;\n transparentBlack: string;\n wcagColor1: string;\n wcagColor2: string;\n}\n\nconst DEFAULT_COLORS: ContrastColors = {\n black: 'black',\n yellow: 'yellow',\n white: 'white',\n transparentBlack: 'rgba(0, 0, 0, 0.9)',\n wcagColor1: '#F4B735',\n wcagColor2: '#1B1B1B',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ContrastService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n readonly isActive = signal(false);\n\n constructor() {\n // Apply contrast changes to DOM\n effect(() => {\n if (this.isBrowser) {\n this.applyContrast(this.isActive());\n }\n });\n }\n\n changeTheme(active: boolean): void {\n this.isActive.set(active);\n }\n\n toggle(): void {\n this.isActive.update((value) => !value);\n }\n\n private applyContrast(active: boolean): void {\n if (!this.isBrowser) return;\n\n const docElement = document.documentElement;\n\n if (active) {\n this.setProperties(docElement);\n docElement.classList.add('cv');\n } else {\n this.removeProperties(docElement);\n docElement.classList.remove('cv');\n }\n }\n\n private setProperties(element: HTMLElement): void {\n element.style.setProperty('--cv-black', DEFAULT_COLORS.black);\n element.style.setProperty('--cv-yellow', DEFAULT_COLORS.yellow);\n element.style.setProperty('--cv-white', DEFAULT_COLORS.white);\n element.style.setProperty(\n '--cv-black-transparent',\n DEFAULT_COLORS.transparentBlack,\n );\n element.style.setProperty('--cv-wcag-color-1', DEFAULT_COLORS.wcagColor1);\n element.style.setProperty('--cv-wcag-color-2', DEFAULT_COLORS.wcagColor2);\n }\n\n private removeProperties(element: HTMLElement): void {\n element.style.removeProperty('--cv-black');\n element.style.removeProperty('--cv-yellow');\n element.style.removeProperty('--cv-white');\n element.style.removeProperty('--cv-black-transparent');\n element.style.removeProperty('--cv-wcag-color-1');\n element.style.removeProperty('--cv-wcag-color-2');\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SharedConfig } from '../../shared.config';\n\nexport interface IDictionaryItem {\n id: number;\n name: string;\n hasChildren?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DictionaryService<T> {\n private readonly httpClient = inject(HttpClient);\n private readonly config = inject(SharedConfig);\n\n get(\n type: T,\n query: {\n searchText?: string;\n page: number;\n pageSize?: number;\n context?: string;\n } = { page: 1 },\n ): Observable<IDictionaryItem[]> {\n let url =\n this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/search/page/${query.page}?sort=random`;\n\n if (query.pageSize) {\n url += `&maxPerPage=${query.pageSize}`;\n }\n\n if (query.searchText) {\n url += `&q=${query.searchText}`;\n }\n\n return this.httpClient\n .get<{ data: { items: IDictionaryItem[] } }>(url)\n .pipe(map((r) => r.data.items));\n }\n\n getNode(\n type: T,\n query: {\n nodeId?: number;\n context?: string;\n } = {},\n ): Observable<IDictionaryItem[]> {\n let url =\n this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/tree`;\n\n if (query.nodeId !== null && query.nodeId !== undefined) {\n //In case the nodeId is 0 or is cast to false\n url += `?id=${query.nodeId}`;\n }\n\n return this.httpClient\n .get<{ data: IDictionaryItem[] }>(url)\n .pipe(map((r) => r.data));\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { MsFile } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\n\nexport type FileUrlMode = 'cache' | 'big' | 'noCache';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileUrlService {\n private readonly config = inject(SharedConfig);\n\n get(\n fileOrPath?: MsFile | string,\n mode: FileUrlMode = 'cache',\n noImagePlaceholder = 'assets/no-image.svg',\n ): string {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl) {\n return noImagePlaceholder;\n }\n\n let path: string;\n let isStringPath = false;\n\n if (typeof fileOrPath === 'string') {\n path = fileOrPath;\n isStringPath = true;\n } else {\n if (!fileOrPath || !fileOrPath.filePath) {\n return noImagePlaceholder;\n }\n\n // Check if it's an upload path (direct URL)\n if (fileOrPath.filePath.indexOf('upload') === -1) {\n return (\n multimediaUrl + this.getPath(mode) + this.getFileName(fileOrPath)\n );\n }\n\n path = fileOrPath.filePath;\n }\n\n // Remove leading slash if present\n if (path[0] === '/') {\n path = path.substring(1);\n }\n\n const shouldSkipExtensionReplacement =\n isStringPath || path.includes('media/dictionaries') || path.includes('media/articles');\n if (!shouldSkipExtensionReplacement) {\n path = this.replaceExtensionIfCache(path, mode);\n }\n\n return multimediaUrl + path;\n }\n\n private replaceExtensionIfCache(path: string, mode: FileUrlMode): string {\n if (mode === 'cache') {\n const lastDotIndex = path.lastIndexOf('.');\n if (lastDotIndex > -1) {\n return path.substring(0, lastDotIndex) + '.jpg';\n }\n return path + '.jpg';\n }\n\n if (mode === 'big' && path.toLowerCase().endsWith('.png')) {\n return path.substring(0, path.lastIndexOf('.')) + '.jpg';\n }\n\n return path;\n }\n\n private getFileName(file: MsFile): string {\n if (\n file.filePath &&\n file.extension &&\n file.filePath.indexOf(file.extension) > -1\n ) {\n return file.filePath;\n }\n\n return file.filePath + '.' + file.extension;\n }\n\n private getPath(mode: FileUrlMode): string {\n switch (mode) {\n case 'big':\n return 'upload/cache/multimedia_big/';\n case 'cache':\n return 'upload/cache/multimedia_detail/';\n case 'noCache':\n return 'upload/multimedia/';\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalService {\n readonly showHeader = signal(true);\n readonly showFooter = signal(true);\n\n setHeaderVisibility(visible: boolean): void {\n this.showHeader.set(visible);\n }\n\n setFooterVisibility(visible: boolean): void {\n this.showFooter.set(visible);\n }\n\n hexToRgb(hex: string): number[] | null {\n if (!hex) return null;\n\n // Remove # if present\n let cleanHex = hex.replace(/^#/, '');\n\n // Expand 3-character hex to 6-character (#abc -> #aabbcc)\n if (cleanHex.length === 3) {\n cleanHex = cleanHex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n\n // Parse 6-character hex\n const result = cleanHex.match(/.{2}/g);\n\n if (!result || result.length !== 3) return null;\n\n return result.map((x) => parseInt(x, 16));\n }\n\n rgbToHex(r: number, g: number, b: number): string {\n return (\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join('')\n );\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Injectable,\n inject,\n signal,\n computed,\n PLATFORM_ID,\n} from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\nconst TRANSLATION_CONFIG_KEY = 'TRANSLATION_CONFIG';\n\nexport interface ITranslationConfig {\n language: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private readonly translateService = inject(NgxTranslateService);\n private readonly platformId = inject(PLATFORM_ID);\n\n private readonly _config = signal<ITranslationConfig>({\n language: this.getInitialLanguage(),\n });\n\n readonly config = this._config.asReadonly();\n readonly config$ = this.translateService.onLangChange.pipe() as Observable<{\n lang: string;\n }>;\n\n readonly currentLanguage = computed(() => this._config().language);\n\n get(key: string, params?: any): string {\n return this.translateService.instant(key, params);\n }\n\n async init(\n defaultLang = 'en',\n availableLangs: string[] = ['en', 'pl'],\n ): Promise<void> {\n this.translateService.setDefaultLang(defaultLang);\n this.translateService.addLangs(availableLangs);\n\n let lang = this._config().language;\n\n if (!availableLangs.includes(lang)) {\n lang = defaultLang;\n this._config.set({ language: lang });\n }\n\n await this.translateService.use(lang).toPromise();\n }\n\n setLanguage(language: string): void {\n this._config.set({ language });\n this.save();\n this.translateService.use(language);\n }\n\n private save(): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(\n TRANSLATION_CONFIG_KEY,\n JSON.stringify(this._config()),\n );\n }\n }\n\n private getInitialLanguage(): string {\n if (isPlatformBrowser(this.platformId)) {\n const stored = localStorage.getItem(TRANSLATION_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored) as ITranslationConfig;\n return parsed.language;\n } catch (error) {\n console.warn('Failed to parse translation config', error);\n }\n }\n }\n return this.translateService.getBrowserLang() || 'en';\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Meta, MetaDefinition, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { MsFile } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MetaService {\n private readonly meta = inject(Meta);\n private readonly title = inject(Title);\n private readonly translationService = inject(TranslationService);\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly config = inject(SharedConfig);\n\n private routerSubscription?: Subscription;\n\n constructor() {\n this.resetMetadata();\n }\n\n keepUpdatingPageTitle(onRouteChange: boolean): Subscription | void {\n if (onRouteChange) {\n this.routerSubscription = this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getRouteTitle()),\n )\n .subscribe((dynamicTitle: string) => {\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n });\n\n return this.routerSubscription;\n } else {\n const dynamicTitle = this.getRouteTitle();\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n }\n }\n\n setPageMetadata(title = '', description = ''): void {\n if (title) {\n this.setTitle(title);\n }\n if (description) {\n this.setDescription(description);\n }\n }\n\n setObjectMetadata(objectData: {\n image?: MsFile;\n title?: string;\n description?: string;\n type?: string;\n }): void {\n if (objectData.image) {\n this.setImageMetadata(\n objectData.image,\n objectData.title,\n objectData.type,\n );\n }\n if (objectData.title) {\n this.setTitle(objectData.title);\n }\n if (objectData.description) {\n this.setDescription(objectData.description);\n }\n }\n\n setImageMetadata(image: MsFile, imageAlt?: string, type?: string): void {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl || !image?.filePath) {\n return;\n }\n\n try {\n const imageUrl = this.buildImageUrl(multimediaUrl, image, type);\n this.meta.updateTag({ property: 'og:image', content: imageUrl });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '600' });\n this.meta.updateTag({ property: 'og:image:height', content: '600' });\n\n if (imageAlt) {\n this.meta.updateTag({\n property: 'og:image:alt',\n content: this.removeHtmlTags(imageAlt),\n });\n } else {\n this.meta.removeTag(\"property='og:image:alt'\");\n }\n } catch (error) {\n console.warn('Failed to set image metadata', error);\n }\n }\n\n resetMetadata(): void {\n const baseTitle =\n this.translationService.get('base-portal-title') || 'Portal';\n\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n this.meta.updateTag({ property: 'og:title', content: baseTitle });\n this.meta.updateTag({ property: 'og:description', content: '' });\n this.meta.updateTag({ name: 'description', content: '' });\n this.meta.updateTag({\n property: 'og:image',\n content: 'assets/gfx/no-img/no-img-header.jpg',\n });\n this.meta.updateTag({ property: 'og:image:alt', content: baseTitle });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '250' });\n this.meta.updateTag({ property: 'og:image:height', content: '250' });\n }\n\n updateTag(tag: MetaDefinition): void {\n this.meta.updateTag(tag);\n }\n\n setTitle(titleText: string): void {\n const plainTitle = this.removeHtmlTags(titleText);\n this.title.setTitle(plainTitle);\n this.meta.updateTag({ property: 'og:title', content: plainTitle });\n }\n\n setDescription(description: string): void {\n const plainDesc = this.removeHtmlTags(description);\n this.meta.updateTag({ property: 'og:description', content: plainDesc });\n this.meta.updateTag({ name: 'description', content: plainDesc });\n }\n\n destroy(): void {\n this.routerSubscription?.unsubscribe();\n }\n\n private buildImageUrl(baseUrl: string, image: MsFile, type?: string): string {\n const cleanBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n\n if (type === 'object' && image.filePath) {\n return `${cleanBaseUrl}/${image.filePath}.jpg`;\n }\n\n return `${cleanBaseUrl}/${image.filePath}`;\n }\n\n private removeHtmlTags(value: string): string {\n if (!value) return '';\n\n return value\n .replace(/<.*?>/g, '')\n .replace(/ /g, ' ')\n .replace(/‐/g, '-')\n .replace(/–/g, '-')\n .replace(/—/g, '-')\n .replace(/–/g, '-')\n .replace(/—/g, '-')\n .replace(/„/g, '\"')\n .replace(/ó/g, 'ó')\n .replace(/”/g, '\"')\n .replace(/"/g, '\"');\n }\n\n private getRouteTitle(): string {\n let child = this.activatedRoute.firstChild;\n\n while (child?.firstChild) {\n child = child.firstChild;\n }\n\n if (!child) return '';\n\n const snapshot = child.snapshot;\n\n if (snapshot.data['subtitle']) {\n return snapshot.data['subtitle'];\n }\n\n if (snapshot.data['title']) {\n return snapshot.data['title'];\n }\n\n return '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n input,\n output,\n TemplateRef,\n HostListener,\n} from '@angular/core';\n\n/**\n * Container component for modal overlay and content.\n * Handles backdrop clicks and ESC key press.\n */\n@Component({\n selector: 'smart-mobilems-modal-container',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `,\n})\nexport class ModalContainerComponent {\n /**\n * Template to render inside the modal content area.\n */\n contentTemplate = input.required<TemplateRef<any>>();\n\n /**\n * Emits when backdrop is clicked or ESC key is pressed.\n */\n backdropClick = output<void>();\n\n /**\n * Listens for ESC key press on document level.\n */\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.backdropClick.emit();\n }\n\n /**\n * Handles backdrop click event.\n * @param _event Mouse click event\n */\n onBackdropClick(_event: MouseEvent): void {\n this.backdropClick.emit();\n }\n}\n","import { Subject } from 'rxjs';\n\n/**\n * Reference to an opened modal.\n * Provides methods to close the modal and observe its lifecycle.\n */\nexport class ModalRef {\n private readonly _afterClosed = new Subject<void>();\n\n /**\n * Observable that emits when the modal has been closed.\n * Completes after emission.\n */\n readonly afterClosed$ = this._afterClosed.asObservable();\n\n constructor(private readonly closeCallback: () => void) {}\n\n /**\n * Closes the modal and triggers cleanup.\n * Safe to call multiple times.\n */\n close(): void {\n this.closeCallback();\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Injectable,\n ApplicationRef,\n createComponent,\n EnvironmentInjector,\n inject,\n TemplateRef,\n ComponentRef,\n} from '@angular/core';\n\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalRef } from './modal-ref';\n\n/**\n * Service for managing modal dialogs.\n * Provides methods to open, close, and manage modal instances.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n\n private activeModals: ComponentRef<ModalContainerComponent>[] = [];\n\n /**\n * Opens a modal with the provided template.\n * @param template TemplateRef to render inside the modal\n * @returns ModalRef instance for controlling the modal\n */\n open(template: TemplateRef<any>): ModalRef {\n const componentRef = createComponent(ModalContainerComponent, {\n environmentInjector: this.injector,\n });\n\n componentRef.setInput('contentTemplate', template);\n\n const modalRef = new ModalRef(() => this.closeModal(componentRef));\n\n componentRef.instance.backdropClick.subscribe(() => {\n modalRef.close();\n });\n\n this.appRef.attachView(componentRef.hostView);\n\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n this.document.body.appendChild(domElem);\n\n componentRef.changeDetectorRef.detectChanges();\n\n this.activeModals.push(componentRef);\n\n return modalRef;\n }\n\n /**\n * Closes a specific modal instance.\n * @param componentRef Component reference to close\n */\n private closeModal(\n componentRef: ComponentRef<ModalContainerComponent>,\n ): void {\n const index = this.activeModals.indexOf(componentRef);\n if (index > -1) {\n this.activeModals.splice(index, 1);\n }\n\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /**\n * Closes all currently open modals.\n */\n closeAll(): void {\n const modals = [...this.activeModals];\n modals.forEach((componentRef) => this.closeModal(componentRef));\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken, inject, signal } from '@angular/core';\nimport {\n CrudSearchService,\n ICrudFilter,\n} from '@smartsoft001/crud-shell-angular';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nexport type SearchSource =\n | 'objects'\n | 'publicCollections'\n | 'articles'\n | 'creators'\n | 'imprints';\n\nexport interface ISearchData {\n cycleId?: number;\n keywordId?: number;\n seriesTitleId?: number;\n}\n\nexport interface ISearchResults {\n objects: number;\n publicCollections: number;\n articles: number;\n}\n\ninterface ApiResponse {\n data?: {\n paginatorDetails?: {\n totalItemsCount: number;\n };\n };\n}\n\nexport interface ISearchConfig {\n apiUrl: string;\n searchMap?: (txt: string, data: ISearchData) => Record<string, string>;\n}\n\nexport const SEARCH_CONFIG_TOKEN = new InjectionToken<ISearchConfig>(\n 'SEARCH_CONFIG_TOKEN',\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SearchService extends CrudSearchService {\n private readonly http = inject(HttpClient);\n private _currentSearchText = signal<string>('');\n private readonly config = inject(SEARCH_CONFIG_TOKEN);\n\n searchText = this._currentSearchText.asReadonly();\n\n constructor() {\n super();\n }\n\n get currentSearchText(): string {\n return this._currentSearchText();\n }\n\n override setFilter(val: Partial<ICrudFilter>): void {\n super.setFilter(val);\n }\n\n override setEnabled(val: boolean): void {\n super.setEnabled(val);\n\n if (!val) {\n this.setFilter({});\n this._currentSearchText.set('');\n }\n }\n\n setCurrentSearchText(txt: string): void {\n this._currentSearchText.set(txt);\n }\n\n search(txt: string, data: ISearchData = {}): Observable<ISearchResults> {\n this.setFilter({\n searchText: txt,\n });\n\n this._currentSearchText.set(txt);\n\n const urlsMap = this.getUrlsMap(txt, data);\n const requests = Object.entries(urlsMap)\n .filter(([key, url]) => !!key && !!url)\n .map(([key, url]) =>\n this.http.get<ApiResponse>(url).pipe(\n catchError(() => of(null as ApiResponse | null)),\n map((response) => ({\n key,\n count: response?.data?.paginatorDetails?.totalItemsCount ?? 0,\n })),\n ),\n );\n\n return combineLatest(requests).pipe(\n map((array) => {\n const result = {} as any;\n array.forEach(({ key, count }) => {\n result[key] = count;\n });\n return result as ISearchResults;\n }),\n );\n }\n\n getFilterQuery(\n type: SearchSource,\n txt: string,\n data: ISearchData = {},\n ): string {\n return getSearchFilterQuery(type, txt, data);\n }\n\n private getUrlsMap(\n txt: string,\n data: ISearchData = {},\n ): Record<string, string> {\n let map = {\n objects: `${this.config.apiUrl}search/Object/page/1?maxPerPage=1&${this.getFilterQuery('objects', txt, data)}`,\n publicCollections: `${this.config.apiUrl}public-collections/page/1?maxPerPage=1&${this.getFilterQuery('publicCollections', txt, data)}`,\n articles: `${this.config.apiUrl}search/Article/page/1?maxPerPage=1&${this.getFilterQuery('articles', txt, data)}`,\n };\n\n if (this.config.searchMap) {\n const customMap = this.config.searchMap(txt, data);\n map = { ...map, ...customMap };\n }\n\n return map;\n }\n}\n\nexport function getSearchFilterQuery(\n type: SearchSource,\n txt: string,\n data: ISearchData = {},\n): string {\n const result: Array<string> = [];\n\n if (txt && type !== 'creators' && type !== 'imprints') {\n result.push(`filter[phrase]=${encodeURIComponent(txt)}`);\n } else if (txt) {\n result.push(`q=${encodeURIComponent(txt)}`);\n }\n\n if (data.keywordId) {\n result.push(`filter[keywords][]=${data.keywordId}`);\n }\n\n if (data.cycleId) {\n result.push(`filter[cycles][]=${data.cycleId}`);\n }\n\n if (data.seriesTitleId) {\n result.push(`filter[cycles][]=${data.seriesTitleId}`);\n }\n\n return result.join('&');\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, inject, PLATFORM_ID } from '@angular/core';\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeoService {\n private readonly title = inject(Title);\n private readonly meta = inject(Meta);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n updateTitle(titleText: string): void {\n if (!titleText) {\n console.warn('Title text is empty or undefined.');\n return;\n }\n\n const decodedTitle = this.decodeHtml(titleText);\n if (decodedTitle) {\n this.title.setTitle(decodedTitle);\n }\n }\n\n updateMetaTags(metaTags: MetaDefinition[]): void {\n metaTags.forEach((tag) => this.meta.updateTag(tag));\n }\n\n updateDescription(description: string): void {\n if (!description) {\n console.warn('Description text is empty or undefined.');\n return;\n }\n\n const decodedDesc = this.decodeHtml(description);\n if (decodedDesc) {\n this.meta.updateTag({ name: 'description', content: decodedDesc });\n }\n }\n\n updateOgTags(\n title?: string,\n description?: string,\n image?: string,\n url?: string,\n ): void {\n const tags: MetaDefinition[] = [];\n\n if (title) {\n tags.push({\n property: 'og:title',\n content: this.decodeHtml(title) || title,\n });\n }\n\n if (description) {\n tags.push({\n property: 'og:description',\n content: this.decodeHtml(description) || description,\n });\n }\n\n if (image) {\n tags.push({ property: 'og:image', content: image });\n }\n\n if (url) {\n tags.push({ property: 'og:url', content: url });\n }\n\n this.updateMetaTags(tags);\n }\n\n private decodeHtml(encodedStr: string): string | null {\n if (!encodedStr) return encodedStr;\n\n // Use DOMParser only in browser environments\n if (this.isBrowser) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(encodedStr, 'text/html');\n return doc.documentElement.textContent;\n } catch (error) {\n console.warn(\n 'DOMParser decode failed, falling back to server-safe decoder',\n error,\n );\n }\n }\n\n // Server / SSR fallback: decode numeric entities and common named entities\n try {\n let decoded = encodedStr\n .replace(/&#x([0-9A-Fa-f]+);?/g, (_m, hex) =>\n String.fromCharCode(parseInt(hex, 16)),\n )\n .replace(/&#([0-9]+);?/g, (_m, num) =>\n String.fromCharCode(parseInt(num, 10)),\n );\n\n const entities: Record<string, string> = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00A0',\n };\n\n decoded = decoded.replace(/&([a-zA-Z]+);?/g, (_m, name) =>\n Object.prototype.hasOwnProperty.call(entities, name)\n ? entities[name]\n : `&${name};`,\n );\n\n return decoded;\n } catch (error) {\n console.warn('Failed to decode HTML with fallback', error);\n return encodedStr;\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsService {\n private readonly translationService = inject(TranslationService);\n private readonly config = inject(SharedConfig);\n\n getMediaUrl(): string {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl) {\n return '';\n }\n\n // Remove trailing slash if present\n return multimediaUrl.endsWith('/')\n ? multimediaUrl.substring(0, multimediaUrl.length - 1)\n : multimediaUrl;\n }\n\n getBaseTitle(): string {\n return this.translationService.get('base-portal-title');\n }\n\n getCanLink(): boolean {\n // Could be extended with preview mode config in the future\n return true;\n }\n\n getMainLogo(): string {\n return this.config.mainLogoPath;\n }\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { StyleService as SmartStyleService } from '@smartsoft001/angular';\n\nimport { SharedConfig } from '../../shared.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StyleService {\n private readonly smartStyleService = inject(SmartStyleService);\n private readonly config = inject(SharedConfig);\n\n init(elementRef: ElementRef, customVariables?: Record<string, any>): void {\n const variables = {\n ...this.config.styleVariables,\n ...customVariables,\n };\n\n this.smartStyleService.init(elementRef, variables);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Injectable,\n PLATFORM_ID,\n inject,\n signal,\n computed,\n effect,\n} from '@angular/core';\n\nimport { TranslationService } from '../translation/translation.service';\n\nconst WCAG_CONFIG_KEY = 'WCAG_CONFIG';\n\nexport type WcagContrast = 'high' | 'normal';\nexport type WcagText = 'small' | 'normal' | 'large';\nexport type WcagLetterSpacing = 'small' | 'normal' | 'large';\nexport type WcagWordSpacing = 'small' | 'normal' | 'large';\nexport type WcagGrayscale = 'true' | 'false';\n\nexport interface IWcagConfig {\n contrast: WcagContrast;\n text: WcagText;\n letterSpacing: WcagLetterSpacing;\n wordSpacing: WcagWordSpacing;\n grayscale: WcagGrayscale;\n}\n\nexport type WcagChangeType =\n | 'setContrast'\n | 'setText'\n | 'setLetterSpacing'\n | 'setWordSpacing'\n | 'setGrayscale';\n\nconst DEFAULT_CONFIG: IWcagConfig = {\n contrast: 'normal',\n text: 'normal',\n letterSpacing: 'small',\n wordSpacing: 'small',\n grayscale: 'false',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WcagService {\n private readonly translationService = inject(TranslationService);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _config = signal<IWcagConfig>(this.loadConfig());\n\n readonly config = this._config.asReadonly();\n readonly wordSpacingValue = computed(() =>\n this.getSpacingValue(this._config().wordSpacing),\n );\n readonly letterSpacingValue = computed(() =>\n this.getSpacingValue(this._config().letterSpacing),\n );\n\n constructor() {\n // Apply config changes to DOM\n effect(() => {\n const config = this._config();\n this.applyConfigToDOM(config);\n });\n }\n\n async init(): Promise<void> {\n // Config is already loaded in constructor\n // This method kept for backward compatibility\n }\n\n setContrast(value: WcagContrast): void {\n this._config.update((config) => ({ ...config, contrast: value }));\n this.announceChange('setContrast', value);\n this.save();\n }\n\n setText(value: WcagText): void {\n this._config.update((config) => ({ ...config, text: value }));\n this.announceChange('setText', value);\n this.save();\n }\n\n setLetterSpacing(value: WcagLetterSpacing): void {\n this._config.update((config) => ({ ...config, letterSpacing: value }));\n this.announceChange('setLetterSpacing', value);\n this.save();\n }\n\n setWordSpacing(value: WcagWordSpacing): void {\n this._config.update((config) => ({ ...config, wordSpacing: value }));\n this.announceChange('setWordSpacing', value);\n this.save();\n }\n\n setGrayscale(value: WcagGrayscale): void {\n this._config.update((config) => ({\n ...config,\n grayscale: value,\n }));\n this.announceChange('setGrayscale', value);\n this.save();\n }\n\n reset(): void {\n this._config.set(DEFAULT_CONFIG);\n this.save();\n }\n\n private getSpacingValue(\n spacing: WcagLetterSpacing | WcagWordSpacing,\n ): number {\n switch (spacing) {\n case 'normal':\n return 1;\n case 'large':\n return 2;\n default:\n return 0;\n }\n }\n\n private loadConfig(): IWcagConfig {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(WCAG_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...DEFAULT_CONFIG, ...parsed };\n } catch (error) {\n console.warn('Failed to parse WCAG config', error);\n }\n }\n }\n return DEFAULT_CONFIG;\n }\n\n private save(): void {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n localStorage.setItem(WCAG_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n\n private applyConfigToDOM(config: IWcagConfig): void {\n if (!this.isBrowser) return;\n\n const body = document.getElementsByTagName('body')[0];\n if (!body) return;\n\n body.className = '';\n body.className += ` contrast-${config.contrast}`;\n body.className += ` text-${config.text}`;\n body.className += ` letter-spacing-${config.letterSpacing}`;\n body.className += ` word-spacing-${config.wordSpacing}`;\n body.className += ` ${config.grayscale === 'true' ? 'grayscale' : ''}`;\n }\n\n private announceChange(\n type: WcagChangeType,\n value:\n | WcagContrast\n | WcagText\n | WcagLetterSpacing\n | WcagWordSpacing\n | WcagGrayscale,\n ): void {\n if (!this.isBrowser) return;\n\n let announceElement = document.getElementById('wcag-change');\n\n if (!announceElement) {\n announceElement = document.createElement('span');\n announceElement.id = 'wcag-change';\n announceElement.className = 'sr-only';\n announceElement.setAttribute('aria-atomic', 'true');\n announceElement.setAttribute('aria-live', 'polite');\n document.body.appendChild(announceElement);\n }\n\n const translationKey = `WCAG.${type}.${value}`;\n announceElement.innerHTML = this.translationService.get(translationKey);\n }\n}\n","import { PaginationMode } from '@smartsoft001/angular';\nimport {\n CrudService,\n ICrudFilter,\n ICrudFilterQueryItem,\n} from '@smartsoft001/crud-shell-angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { firstValueFrom, Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nexport abstract class CrudBaseService<\n T extends IEntity<string>,\n> extends CrudService<T> {\n private sortSeed = Math.floor(Math.random() * 100000);\n\n abstract getUrlNameForDetails(): string;\n abstract getUrlNameForList(): string;\n\n downloadPdf(name: string, id: string): Promise<void> {\n return fetch(\n this.config.apiUrl + this.getUrlNameForDetails() + '/' + id + '/pdf',\n )\n .then((resp) => resp.arrayBuffer())\n .then((resp) => {\n const file = new Blob([resp], { type: 'application/pdf' });\n\n const fileURL = URL.createObjectURL(file);\n const link = document.createElement('a');\n link.href = fileURL;\n link.download = name + '.pdf';\n link.click();\n });\n }\n\n getById(id: string): Promise<T> {\n return firstValueFrom(\n this.http\n .get<{\n data: T;\n }>(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id)\n .pipe(map((r) => (r as { data: T })?.data)),\n );\n }\n\n getList<T>(\n filter?: ICrudFilter,\n ): Promise<{ data: T[]; totalCount: number; links: unknown }> {\n let page = 1;\n\n if (filter?.offset && filter?.limit) {\n page = filter.offset / filter.limit;\n }\n\n let url = this.getBaseListUrl(page, filter as { limit: number });\n url = this.initFilters(filter as ICrudFilter, url);\n\n return firstValueFrom(\n this.http\n .get<{\n data: unknown & {\n items: unknown;\n paginatorDetails: {\n totalItemsCount: number;\n };\n };\n }>(url)\n .pipe(\n map((r) => {\n const response = r as {\n data?: {\n items?: T[];\n paginatorDetails?: {\n totalItemsCount?: number;\n };\n };\n };\n return {\n data: response.data?.items ?? [],\n totalCount: response.data?.paginatorDetails?.totalItemsCount ?? 0,\n links: {},\n };\n }),\n catchError(this.handleError),\n ),\n );\n }\n\n private initFilters(\n filter:\n | {\n searchText?: string | undefined;\n sortBy?: string | undefined;\n sortDesc?: boolean | undefined;\n offset?: number | undefined;\n limit?: number | undefined;\n paginationMode?: PaginationMode | undefined;\n query?: Array<ICrudFilterQueryItem> | undefined;\n }\n | ICrudFilter,\n url: string,\n ) {\n if (filter?.searchText) {\n url += `&filter[phrase]=${filter.searchText}`;\n }\n\n if (filter?.sortBy) {\n url += `&sort=${filter.sortBy}-${filter.sortDesc ? 'desc' : 'asc'}`;\n } else {\n url += `&sort=random&sortSeed=${this.sortSeed}`;\n }\n\n filter?.query?.forEach((q: ICrudFilterQueryItem) => {\n const isArray = Array.isArray(q.value);\n\n if (isArray) {\n q.value.forEach((value: unknown & { id: string }) => {\n url += `&filter[${q.key}]${this.getQueryType(q.type, true)}=${\n value.id\n }`;\n });\n } else {\n url += `&filter[${q.key}]${this.getQueryType(q.type, false)}=${\n q.value\n }`;\n }\n });\n return url;\n }\n\n protected getBaseListUrl(\n page: number,\n filter: {\n limit: number;\n },\n ) {\n return `${this.config.apiUrl}${\n this.getUrlNameForList() !== 'public-collections'\n ? 'search/' + this.getUrlNameForList()\n : 'public-collections'\n }/page/${page}?maxPerPage=${filter?.limit}`;\n }\n\n protected handleError(err: unknown & { status: number }): Observable<any> {\n if (err.status === 404 || err.status === 406) {\n return of({\n data: [],\n totalCount: 0,\n links: {},\n });\n }\n\n return throwError(() => new Error(`There was an error: ${err.status}`));\n }\n\n protected getQueryType(\n type: '=' | '!=' | '>=' | '<=' | '<' | '>',\n isArray: boolean,\n ) {\n switch (type) {\n case '>=':\n return '[from]';\n case '<=':\n return '[to]';\n case '=':\n return isArray ? '[]' : '';\n default:\n throw 'Type not supported!';\n }\n }\n}\n","import { ICrudFilter } from '@smartsoft001/crud-shell-angular';\n\nexport class QueryFilterService {\n static map(\n filter: ICrudFilter,\n queryParams: any,\n data: {\n id: string;\n key: string;\n text: string;\n },\n ): ICrudFilter {\n if (!queryParams[data.id]) return filter;\n\n const ids = queryParams[data.id].split(',');\n const texts = queryParams[data.text].split(',');\n\n filter.offset = 0;\n filter.query = [\n ...(filter?.query ? filter.query : []).filter((q) => q.key !== data.key),\n {\n key: data.key,\n type: '=',\n value: ids.map((id: string, i: number) => {\n return {\n id: id,\n text: texts[i],\n selected: true,\n };\n }),\n hidden: true,\n },\n ];\n\n return filter;\n }\n}\n","import { ConfigsFacade } from '../+state/configs.facade';\nimport { AuthStorageService } from './auth-storage/auth-storage.service';\nimport { ConfigsService } from './configs/configs.service';\nimport { ContrastService } from './contrast/contrast.service';\nimport { DictionaryService } from './dictionary/dictionary.service';\nimport { FileUrlService } from './file-url/file-url.service';\nimport { GlobalService } from './global/global.service';\nimport { MetaService } from './meta/meta.service';\nimport { ModalService } from './modal/modal.service';\nimport { SearchService } from './search/search.service';\nimport { SeoService } from './seo/seo.service';\nimport { SettingsService } from './settings/settings.service';\nimport { StyleService } from './style/style.service';\nimport { TranslationService } from './translation/translation.service';\nimport { WcagService } from './wcag/wcag.service';\n\nexport * from './dictionary/dictionary.service';\nexport * from './configs/configs.service';\nexport * from './crud/crud-base.service';\nexport * from './auth-storage/auth-storage.service';\nexport * from './translation/translation.service';\nexport * from './global/global.service';\nexport * from './file-url/file-url.service';\nexport * from './settings/settings.service';\nexport * from './wcag/wcag.service';\nexport * from './contrast/contrast.service';\nexport * from './meta/meta.service';\nexport * from './seo/seo.service';\nexport * from './style/style.service';\nexport * from './modal/modal.service';\nexport * from './modal/modal-ref';\nexport * from './search/search.service';\nexport * from './query-filter/query-filter.service';\n\nexport const SERVICES = [\n DictionaryService,\n ConfigsService,\n ConfigsFacade,\n AuthStorageService,\n TranslationService,\n GlobalService,\n FileUrlService,\n SettingsService,\n WcagService,\n ContrastService,\n MetaService,\n SeoService,\n StyleService,\n ModalService,\n SearchService,\n];\n","import { inject, Injectable, signal, WritableSignal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ReduxAction } from '@smartsoft001/angular';\n\nimport { Config, Page } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsService } from '../services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigsFacade {\n private service = inject(ConfigsService);\n private sanitizer = inject(DomSanitizer);\n\n private static _source: WritableSignal<Config | null> = signal<Config | null>(\n null,\n );\n\n get data(): Config | null {\n return ConfigsFacade._source();\n }\n\n @ReduxAction()\n getPage(id: number | 'home'): Promise<Page> {\n return this.service.getPage(id).then((page: Page) => {\n if (!page) return page;\n\n return {\n ...page,\n content: this.sanitizer.bypassSecurityTrustHtml(page.content),\n };\n });\n }\n\n @ReduxAction()\n init(): Promise<Config> {\n return this.service.get().then((config: Config) => {\n ConfigsFacade._source.set(config);\n return config;\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { AppBaseComponent } from '@smartsoft001/angular';\n\n@Component({\n selector: 'smart-mobilems-app',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n})\nexport class AppComponent extends AppBaseComponent {}\n","<ng-content select=\"header\"></ng-content>\n\n<main>\n <router-outlet></router-outlet>\n</main>\n\n<ng-content select=\"footer\"></ng-content>\n","import { Directive } from '@angular/core';\nimport { PageBaseComponent } from '@smartsoft001/angular';\n\n@Directive()\nexport class PageComponent extends PageBaseComponent {}\n","import {\n AfterContentInit,\n computed,\n contentChild,\n Directive,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport { BaseComponent } from '@smartsoft001/angular';\nimport {\n CrudFacade,\n ICrudFilter,\n ICrudFilterQueryItem,\n} from '@smartsoft001/crud-shell-angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport * as _ from 'lodash';\nimport { Debounce } from 'lodash-decorators';\n\nimport { MenuItem } from '@smartsoft001-mobilems/models';\n\nexport type FilterType = string | string[] | MenuItem | MenuItem[] | undefined;\n\nexport class FiltersContext<T extends IEntity<string>> extends BaseComponent {\n set searchText(val: string | undefined) {\n if (this.facade.filter() && this.facade.filter()?.searchText === val)\n return;\n this.refresh({\n searchText: val,\n offset: 0,\n });\n }\n get searchText() {\n return this.facade.filter()?.searchText;\n }\n\n set page(val: number) {\n const filter = this.facade.filter();\n const offset = filter?.limit ? filter?.limit * val : 0;\n if (filter && filter.offset === offset) return;\n this.refresh({\n offset: offset,\n });\n }\n get page() {\n const filter = this.facade.filter();\n if (!filter) return 1;\n if (!filter.offset || !filter.limit) return 1;\n\n return filter.offset / filter.limit;\n }\n\n set limit(val: number) {\n const filter = this.facade.filter();\n if (filter && filter.limit === val) return;\n this.refresh({\n limit: val,\n offset: 0,\n });\n }\n get limit() {\n const filter = this.facade.filter();\n if (!filter) return 20;\n if (!filter.limit) return 20;\n\n return filter.limit;\n }\n\n set sortBy(val: string | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortBy === val) return;\n this.refresh({\n sortBy: val,\n });\n }\n get sortBy() {\n return this.facade.filter()?.sortBy;\n }\n\n set query(val: ICrudFilterQueryItem[] | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.query === val) return;\n this.refresh({\n query: val,\n });\n }\n get query() {\n return this.facade.filter()?.query;\n }\n\n set sortDesc(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortDesc === val) return;\n this.refresh({\n sortDesc: val,\n });\n }\n get sortDesc() {\n return this.facade.filter()?.sortDesc;\n }\n\n set sort(val: { by?: string; desc?: boolean } | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortBy === val) return;\n this.refresh({\n sortBy: val?.by,\n sortDesc: val?.desc,\n });\n }\n\n get sort() {\n return {\n by: this.facade.filter()?.sortBy,\n desc: this.facade.filter()?.sortDesc,\n };\n }\n\n set onlyImage(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (!val && this.onlyImage && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(q.type === '=' && q.key === 'onlyImage'),\n )\n : [];\n\n this.refresh({\n query: [...result],\n });\n }\n\n if (val && !this.onlyImage && filter) {\n const result = filter.query\n ? filter.query.filter(\n (q: ICrudFilterQueryItem) =>\n !(q.type === '=' && q.key === 'onlyImage'),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'onlyImage',\n value: 1,\n hidden: true,\n },\n ],\n });\n }\n }\n get onlyImage() {\n return this.facade\n .filter()\n ?.query?.some(\n (q: ICrudFilterQueryItem) =>\n q.type === '=' && q.key === 'onlyImage' && q.value === 1,\n );\n }\n\n set exposure(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (!val && this.exposure && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'\n ),\n )\n : [];\n\n this.refresh({\n query: [...result],\n });\n }\n\n if (val && !this.exposure && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'\n ),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'locationType',\n value: 'Ekspozycja',\n hidden: true,\n },\n ],\n });\n }\n }\n get exposure() {\n return this.facade\n .filter()\n ?.query?.some(\n (q: ICrudFilterQueryItem) =>\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja',\n );\n }\n\n set creators(val: FilterType) {\n this.filterSet(this.creators, val, 'creators', '=');\n }\n get creators() {\n return this.filterGet('=', 'creators');\n }\n\n set createDatesFrom(val: FilterType) {\n this.filterSet(this.createDatesFrom, val, 'createDates', '>=');\n }\n get createDatesFrom() {\n return this.filterGet('>=', 'createDates');\n }\n\n set createDatesTo(val: FilterType) {\n this.filterSet(this.createDatesTo, val, 'createDates', '<=');\n }\n get createDatesTo() {\n return this.filterGet('<=', 'createDates');\n }\n\n set publicationDateFrom(val: FilterType) {\n this.filterSet(this.publicationDateFrom, val, 'publicationDate', '>=');\n }\n get publicationDateFrom() {\n return this.filterGet('>=', 'publicationDate');\n }\n\n set publicationDateTo(val: FilterType) {\n this.filterSet(this.publicationDateTo, val, 'publicationDate', '<=');\n }\n get publicationDateTo() {\n return this.filterGet('<=', 'publicationDate');\n }\n\n set createPlaces(val: FilterType) {\n this.filterSet(this.createPlaces, val, 'createPlaces', '=');\n }\n get createPlaces() {\n return this.filterGet('=', 'createPlaces');\n }\n\n set keywords(val: FilterType) {\n this.filterSet(this.keywords, val, 'keywords', '=');\n }\n get keywords() {\n return this.filterGet('=', 'keywords');\n }\n\n set techniques(val: FilterType) {\n this.filterSet(this.techniques, val, 'techniques', '=');\n }\n get techniques() {\n return this.filterGet('=', 'techniques');\n }\n\n set materials(val: FilterType) {\n this.filterSet(this.materials, val, 'materials', '=');\n }\n get materials() {\n return this.filterGet('=', 'materials');\n }\n\n set category(val: FilterType) {\n this.filterSet(this.category, val, 'category', '=');\n }\n get category() {\n return this.filterGet('=', 'category');\n }\n\n set department(val: FilterType) {\n this.filterSet(this.department, val, 'department', '=');\n }\n get department() {\n return this.filterGet('=', 'department');\n }\n\n set location(val: FilterType) {\n this.filterSet(this.category, val, 'location', '=');\n }\n get location() {\n return this.filterGet('=', 'location');\n }\n\n set locationType(val: FilterType) {\n this.filterSet(this.category, val, 'locationType', '=');\n }\n get locationType() {\n return this.filterGet('=', 'locationType');\n }\n\n set cycles(val: FilterType) {\n this.filterSet(this.cycles, val, 'cycles', '=');\n }\n get cycles() {\n return this.filterGet('=', 'cycles');\n }\n\n set authors(val: FilterType) {\n this.filterSet(this.authors, val, 'authors', '=');\n }\n get authors() {\n return this.filterGet('=', 'authors');\n }\n\n set targetGroups(val: FilterType) {\n this.filterSet(this.targetGroups, val, 'targetGroups', '=');\n }\n get targetGroups() {\n return this.filterGet('=', 'targetGroups');\n }\n\n set template(val: FilterType) {\n this.filterSet(this.template, val, 'template', '=');\n }\n get template() {\n return this.filterGet('=', 'template');\n }\n\n set types(val: FilterType) {\n this.filterSet(this.types, val, 'types', '=');\n }\n get types() {\n return this.filterGet('=', 'types');\n }\n\n set extraNumbersValue(val: FilterType) {\n this.filterSet(this.creators, val, 'extraNumbersValue', '=');\n }\n get extraNumbersValue() {\n return this.filterGet('=', 'extraNumbersValue');\n }\n\n set filters(\n filters:\n | Array<{\n val: FilterType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>';\n }>\n | undefined,\n ) {\n this.multipleFilterSet(\n filters?.map(({ val, key, type }) => ({\n currentValue: this.filterGet(type, key),\n val,\n key,\n type,\n })) ?? undefined,\n );\n }\n\n totalCount = computed(() => this.facade.totalCount() || 0);\n\n constructor(private readonly facade: CrudFacade<T>) {\n super();\n }\n\n @Debounce(500)\n private refresh(filter: ICrudFilter): void {\n let change = false;\n\n Object.keys(filter).forEach((key) => {\n if (\n !_.isEqual(\n this.facade.filter()?.[key as keyof ICrudFilter],\n filter?.[key as keyof ICrudFilter],\n )\n )\n change = true;\n });\n\n if (!change) return;\n\n this.facade.read({\n ...this.facade.filter(),\n ...filter,\n });\n }\n\n private filterGet(key: string, type: string) {\n return this.facade\n .filter()\n ?.query?.find(\n (q: ICrudFilterQueryItem) => q.type === key && q.key === type,\n )?.value;\n }\n\n private filterSet(\n currentValue: FilterType,\n val: FilterType,\n key: string,\n type: '=' | '!=' | '>=' | '<=' | '<' | '>',\n ) {\n const filter = this.facade.filter();\n if (!val && filter) {\n const result = filter?.query\n ? filter?.query?.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n )\n : [];\n\n this.refresh({\n offset: 0,\n query: [...result],\n });\n }\n\n if (val && currentValue !== val && filter) {\n const result = filter?.query\n ? filter?.query?.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: type,\n key: key,\n value: val,\n hidden: true,\n },\n ],\n });\n }\n }\n\n private multipleFilterSet(\n filters:\n | Array<{\n currentValue: FilterType;\n val: FilterType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>';\n }>\n | undefined,\n ) {\n const filter = this.facade.filter();\n if (!filter) return;\n if (!filters) return;\n\n let resultQuery = filter.query ? [...filter.query] : [];\n let hasChanges = false;\n\n for (const { currentValue, val, key, type } of filters) {\n if (!val) {\n const newQuery = resultQuery.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n );\n if (newQuery.length !== resultQuery.length) {\n resultQuery = newQuery;\n hasChanges = true;\n }\n } else if (val && currentValue !== val) {\n resultQuery = resultQuery.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n );\n resultQuery.push({\n type: type,\n key: key,\n value: val,\n hidden: true,\n });\n hasChanges = true;\n }\n }\n\n if (hasChanges) {\n this.refresh({\n offset: 0,\n query: resultQuery,\n });\n }\n }\n}\n\n@Directive({\n selector: 'smart-mobilems-filters',\n})\nexport abstract class FiltersBaseComponent<T extends IEntity<string>>\n implements AfterContentInit\n{\n private facade = inject(CrudFacade<T>);\n context?: FiltersContext<T>;\n\n contentTpl = contentChild<TemplateRef<unknown> | undefined>('contentTpl');\n\n ngAfterContentInit(): void {\n this.context = new FiltersContext(this.facade);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject } from '@angular/core';\n\n@Directive()\nexport class ScrollTopComponent {\n windowScrolled!: boolean;\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll(): void {\n if (\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 200\n ) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 50\n ) {\n this.windowScrolled = false;\n }\n }\n\n scrollToTop(): void {\n const scrollOptions: ScrollToOptions = {\n top: 0,\n left: 0,\n behavior: 'smooth',\n };\n\n window.scrollTo(scrollOptions);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\n\nimport { ConfigPageType, ConfigMenuItem } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IFooterStaticPage {\n type: ConfigPageType.static;\n title: string;\n page: {\n id: number;\n title: string;\n };\n}\n\nexport interface IFooterConfig {\n theme?: {\n footer?: {\n menu?: ConfigMenuItem[];\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-footer',\n standalone: true,\n imports: [],\n template: ``,\n styles: [],\n})\nexport class FooterComponent {\n private configsFacade = inject(ConfigsFacade);\n\n readonly config = computed(() => this.configsFacade.data);\n readonly currentYear = computed(() => new Date().getFullYear());\n\n readonly staticPages = computed<IFooterStaticPage[]>(() => {\n const config = this.config();\n if (!config?.theme?.footer?.menu) return [];\n\n return config.theme.footer.menu.filter(\n (item): item is IFooterStaticPage => item.type === ConfigPageType.static,\n );\n });\n\n readonly hasStaticPages = computed(() => this.staticPages().length > 0);\n\n readonly menuItems = computed(() => {\n const config = this.config();\n return config?.theme?.footer?.menu ?? [];\n });\n\n readonly hasMenuItems = computed(() => this.menuItems().length > 0);\n\n getStaticPageById(id: number): IFooterStaticPage | undefined {\n return this.staticPages().find((page) => page.page.id === id);\n }\n\n getStaticPageTitle(id: number): string | undefined {\n return this.getStaticPageById(id)?.page.title;\n }\n\n updateConfig(_config: IFooterConfig): void {\n const current = this.config();\n if (!current) return;\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n inject,\n signal,\n PLATFORM_ID,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IHeaderUser {\n userID: string;\n [key: string]: unknown;\n}\n\nexport interface IHeaderConfig {\n theme?: {\n header?: {\n showWcagConfig?: boolean;\n showSearch?: boolean;\n showLocalCollection?: boolean;\n showLanguageSelector?: boolean;\n showUserAccount?: boolean;\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-header',\n standalone: true,\n imports: [],\n template: ``,\n styles: [],\n})\nexport class HeaderComponent {\n private configsFacade = inject(ConfigsFacade);\n private router = inject(Router);\n private platformId = inject(PLATFORM_ID);\n\n readonly config = computed(() => this.configsFacade.data);\n readonly isMobile = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return typeof window !== 'undefined' && window.innerWidth <= 640;\n });\n\n readonly showWcagConfig = signal<boolean>(false);\n readonly showSearchPanel = signal<boolean>(false);\n readonly user = signal<IHeaderUser | null>(null);\n readonly localCollectionCount = signal<number>(0);\n\n readonly headerConfig = computed(() => {\n const config = this.config();\n return (config?.theme as IHeaderConfig['theme']) ?? {};\n });\n\n readonly isWcagVisible = computed(() => {\n return (\n this.showWcagConfig() &&\n this.headerConfig()?.header?.showWcagConfig !== false\n );\n });\n\n readonly isSearchVisible = computed(() => {\n return this.headerConfig()?.header?.showSearch !== false;\n });\n\n readonly isLocalCollectionVisible = computed(() => {\n return this.headerConfig()?.header?.showLocalCollection !== false;\n });\n\n readonly isLanguageSelectorVisible = computed(() => {\n return this.headerConfig()?.header?.showLanguageSelector !== false;\n });\n\n readonly isUserAccountVisible = computed(() => {\n return this.headerConfig()?.header?.showUserAccount !== false;\n });\n\n toggleWcagConfig(): void {\n this.showWcagConfig.update((value) => !value);\n }\n\n toggleSearchPanel(): void {\n this.showSearchPanel.update((value) => !value);\n }\n\n onWcagCloseButtonEvent(closed: boolean): void {\n this.showWcagConfig.set(!closed);\n }\n\n onSearchPanelButtonEvent(opened: boolean): void {\n this.showSearchPanel.set(opened);\n }\n\n routeToLogin(): void {\n this.router.navigate(['/login']);\n }\n\n routeToUserAccount(): void {\n this.router.navigate(['/profile']);\n }\n\n routeToLocalCollection(): void {\n this.router.navigate(['/my-collection']);\n }\n\n setUser(user: IHeaderUser | null): void {\n this.user.set(user);\n }\n\n setLocalCollectionCount(count: number): void {\n this.localCollectionCount.set(count);\n }\n\n getUser(): IHeaderUser | null {\n return this.user();\n }\n\n getLocalCollectionCount(): number {\n return this.localCollectionCount();\n }\n\n updateConfig(): void {\n const current = this.config();\n if (!current) return;\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport {\n Masonry,\n MasonryInstance,\n MasonryOptions,\n} from '@thisissoon/angular-masonry';\n\n@Component({\n selector: 'smart-mobilems-masonry-grid',\n template: `\n <div\n #masonryGrid\n class=\"smart-container\"\n [ngClass]=\"classes()\"\n [class.smart-opacity-0]=\"!masonryReady()\"\n [class.smart-opacity-100]=\"masonryReady()\"\n >\n <ng-container *ngTemplateOutlet=\"masonryContentTpl()\"></ng-container>\n </div>\n `,\n imports: [NgTemplateOutlet, NgClass],\n})\nexport class MasonryGridComponent {\n list = input<Array<unknown>>();\n options = input<MasonryOptions>({});\n classes = input<string | string[]>('smart-my-4');\n\n private masonryInstance?: MasonryInstance;\n private masonryGridRef = viewChild<ElementRef>('masonryGrid');\n masonryContentTpl = contentChild<TemplateRef<unknown> | undefined>(\n 'masonryContentTpl',\n );\n\n masonryReady = signal<boolean>(false);\n\n private masonry: any = inject(Masonry);\n\n private defaultOptions: MasonryOptions = {\n itemSelector: '.masonry-item',\n columnWidth: '.masonry-grid-sizer',\n percentPosition: false,\n gutter: 24,\n horizontalOrder: false,\n };\n\n constructor() {\n // Re-layout masonry when list changes\n effect(() => {\n const items = this.list();\n\n if (items?.length) {\n // Mark as not ready while reinitializing\n this.masonryReady.set(false);\n\n // Destroy existing instance to force fresh layout with new items\n this.destroyMasonry();\n\n // Defer initialization to ensure DOM is fully updated with new items\n setTimeout(() => {\n const gridEl = this.masonryGridRef();\n if (gridEl?.nativeElement) {\n this.initMasonry();\n }\n }, 150);\n }\n });\n\n // Watch for grid ref changes (when component initializes or navigates)\n effect(() => {\n const gridEl = this.masonryGridRef();\n const items = this.list();\n\n if (gridEl?.nativeElement && items?.length) {\n // Initialize masonry when grid appears if not already initialized\n if (!this.masonryInstance) {\n setTimeout(() => this.initMasonry(), 250);\n }\n }\n });\n }\n\n initMasonry() {\n if (!this.masonry) {\n return;\n }\n\n const gridEl = this.masonryGridRef();\n if (!gridEl?.nativeElement) {\n return;\n }\n\n // Responsive gutter: 0 on mobile, 24 on tablet+\n const gutter =\n window.innerWidth < 768\n ? 0\n : (this.options()?.gutter ?? this.defaultOptions.gutter);\n\n const options: MasonryOptions = {\n ...this.defaultOptions,\n ...this.options(),\n gutter: gutter,\n };\n\n try {\n this.masonryInstance = new this.masonry(gridEl.nativeElement, options);\n\n // Wait for images to load, then layout and mark as ready\n this.waitForImagesToLoad(gridEl.nativeElement).then(() => {\n this.layoutMasonry();\n // Small delay to ensure smooth transition\n setTimeout(() => this.masonryReady.set(true), 250);\n });\n } catch (error) {\n console.warn('Masonry initialization failed:', error);\n this.masonryReady.set(true); // Show items even on error\n }\n }\n\n destroyMasonry() {\n if (this.masonryInstance) {\n try {\n this.masonryInstance.destroy();\n } catch (error) {\n console.warn('Masonry destroy failed:', error);\n }\n this.masonryInstance = undefined;\n }\n this.masonryReady.set(false);\n }\n\n private async waitForImagesToLoad(container: HTMLElement): Promise<void> {\n const images = Array.from(container.querySelectorAll('img'));\n\n if (images.length === 0) {\n return Promise.resolve();\n }\n\n const imagePromises = images.map((img) => {\n return new Promise<void>((resolve) => {\n if (img.complete) {\n resolve();\n } else {\n img.onload = () => resolve();\n img.onerror = () => resolve(); // resolve even on error to not block layout\n }\n });\n });\n\n await Promise.all(imagePromises);\n }\n\n private layoutMasonry() {\n if (this.masonryInstance) {\n try {\n this.masonryInstance.reloadItems();\n this.masonryInstance.layout();\n } catch (error) {\n console.warn('Masonry layout failed:', error);\n }\n }\n }\n}\n","import { isPlatformBrowser, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input, PLATFORM_ID } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IMenuItem {\n label: string;\n route: string;\n icon?: string;\n title?: string;\n ariaLabel?: string;\n}\n\nexport interface IMenuConfig {\n theme?: {\n menu?: {\n enabled?: boolean;\n mobileBreakpoint?: number;\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-menu',\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive],\n templateUrl: './menu.component.html',\n})\nexport class MenuComponent {\n private configsFacade = inject(ConfigsFacade);\n private router = inject(Router);\n private platformId = inject(PLATFORM_ID);\n\n readonly menuItems = input<IMenuItem[]>([]);\n readonly searchEnabled = input<boolean>(false);\n\n readonly config = computed(() => this.configsFacade.data);\n\n readonly menuConfig = computed(() => {\n const config = this.config();\n return (config?.theme as IMenuConfig['theme']) ?? {};\n });\n\n readonly mobileBreakpoint = computed(() => {\n return this.menuConfig()?.menu?.mobileBreakpoint ?? 960;\n });\n\n readonly isMobileMenu = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n window.innerWidth <= this.mobileBreakpoint()\n );\n });\n\n private _menuOpenState = false;\n\n toggleMenu(): void {\n this._menuOpenState = !this._menuOpenState;\n }\n\n closeMenu(): void {\n this._menuOpenState = false;\n }\n\n isOpened(): boolean {\n return this._menuOpenState;\n }\n\n isRouteActive(route: string): boolean {\n return this.router.isActive(route, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n\n getMenuItemTitle(item: IMenuItem): string {\n if (item.title) {\n return item.title;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} (active)`\n : item.label;\n }\n\n getMenuItemAriaLabel(item: IMenuItem): string {\n if (item.ariaLabel) {\n return item.ariaLabel;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} - Current page`\n : item.label;\n }\n}\n","@if (!searchEnabled()) {\n <h2 class=\"smart-sr-only\">Main Menu</h2>\n\n @if (isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\"\n [ngClass]=\"isOpened() ? '' : ''\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <button\n class=\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\"\n (click)=\"toggleMenu()\"\n attr.aria-expanded=\"{{ isOpened() }}\"\n attr.aria-label=\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\"\n >\n @if (!isOpened()) {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >menu</span\n >\n } @else {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >close</span\n >\n }\n </button>\n </div>\n }\n\n @if (!isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <div role=\"menubar\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n\n @if (isMobileMenu() && isOpened()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\"\n >\n <div role=\"navigation\" aria-label=\"Main\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n}\n\n<ng-template #menuTemplate>\n <ul\n id=\"main-menu\"\n role=\"menu\"\n class=\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\"\n [ngClass]=\"\n isMobileMenu()\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\n : ''\n \"\n >\n @for (item of menuItems(); track item.route) {\n <li\n class=\"smart-inline-flex smart-relative smart-w-auto smart-m-0\"\n [ngClass]=\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\"\n >\n <a\n class=\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\"\n role=\"menuitem\"\n [routerLink]=\"[item.route]\"\n routerLinkActive=\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\"\n (click)=\"closeMenu()\"\n [attr.title]=\"getMenuItemTitle(item)\"\n [attr.aria-label]=\"getMenuItemAriaLabel(item)\"\n >\n @if (item.icon) {\n <span\n class=\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\"\n >{{ item.icon }}</span\n >\n }\n <span class=\"smart-inline-block\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n","import { Directive, input } from '@angular/core';\n\nimport { IArticleWidget } from '@smartsoft001-mobilems/models';\n\n@Directive()\nexport class WidgetBaseComponent<T extends IArticleWidget> {\n item = input<T>();\n}\n","import { Component } from '@angular/core';\n\nimport { IArticleWidgetText } from '@smartsoft001-mobilems/models';\n\nimport { WidgetBaseComponent } from '../base.component';\n\n@Component({\n selector: 'smart-widget-text',\n templateUrl: './text.component.html',\n standalone: true,\n})\nexport class WidgetTextComponent extends WidgetBaseComponent<IArticleWidgetText> {}\n","@if (item(); as item) {\n <div [innerHTML]=\"item.text\"></div>\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n Component,\n input,\n computed,\n InjectionToken,\n inject,\n} from '@angular/core';\n\nimport {\n ArticleWidget,\n ArticleWidgetType,\n} from '@smartsoft001-mobilems/models';\n\nimport { WidgetTextComponent } from './text/text.component';\n\nexport type ArticlesWidgetComponentsToken = {\n [key in ArticleWidgetType]: any;\n};\n\nexport const ARTICLES_WIDGET_COMPONENTS_TOKEN =\n new InjectionToken<ArticlesWidgetComponentsToken>(\n 'ARTICLES_WIDGET_COMPONENTS_TOKEN',\n );\n\nconst baseMap: any = {\n [ArticleWidgetType.TEXT]: WidgetTextComponent,\n};\n\n@Component({\n selector: 'smart-widget',\n templateUrl: './widget.component.html',\n imports: [NgComponentOutlet],\n standalone: true,\n})\nexport class WidgetComponent {\n item = input.required<ArticleWidget>();\n\n extendMap = inject(ARTICLES_WIDGET_COMPONENTS_TOKEN, {\n optional: true,\n });\n\n component = computed(() => {\n const item = this.item();\n\n const map = { ...baseMap, ...this.extendMap };\n\n const component = map[item.widget];\n return component;\n });\n inputs = computed(() => {\n const item = this.item();\n return {\n item: item,\n };\n });\n}\n","<ng-container *ngComponentOutlet=\"component(); inputs: inputs()\" />\n","import { AppComponent } from './app/app.component';\n\nexport * from './app/app.component';\nexport * from './page/page.component';\nexport * from './filters/filters.component';\nexport * from './scroll-top/scroll-top.component';\nexport * from '../services/modal/modal-container.component';\nexport * from './footer';\nexport * from './header';\nexport * from './masonry-grid';\nexport * from './menu';\nexport * from './widget';\n\nexport const COMPONENTS = [AppComponent];\n","import { Directive, HostListener, inject, ElementRef } from '@angular/core';\n\n/**\n * Directive that adds a \"hover\" CSS class to the host element on mouse enter\n * and removes it on mouse leave.\n *\n * @example\n * ```html\n * <div smartHover>Hover me</div>\n * ```\n */\n@Directive({\n selector: '[smartHover]',\n standalone: true,\n})\nexport class HoverDirective {\n private readonly el = inject(ElementRef);\n\n /**\n * Adds the \"hover\" class when the mouse enters the element\n */\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.el.nativeElement.classList.add('hover');\n }\n\n /**\n * Removes the \"hover\" class when the mouse leaves the element\n */\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.el.nativeElement.classList.remove('hover');\n }\n}\n","import {\n Directive,\n input,\n inject,\n ElementRef,\n OnInit,\n signal,\n effect,\n} from '@angular/core';\n\n/**\n * Directive that provides programmatic scrolling and overflow detection\n * for horizontally or vertically scrollable containers.\n *\n * @example\n * ```html\n * <div smartScrollable [scrollUnit]=\"200\" #scroll=\"smartScrollable\">\n * <!-- scrollable content -->\n * </div>\n * <button (click)=\"scroll.scrollHorizontal(1)\" [disabled]=\"!scroll.canScrollEndHorizontal\">\n * Next →\n * </button>\n * ```\n */\n@Directive({\n selector: '[smartScrollable]',\n standalone: true,\n exportAs: 'smartScrollable',\n})\nexport class ScrollableDirective implements OnInit {\n private readonly el = inject(ElementRef);\n\n /**\n * The number of pixels to scroll per unit when using scroll methods.\n * Can be updated dynamically to change scroll behavior.\n */\n readonly scrollUnit = input.required<number>();\n\n /** Indicates if the container can scroll further to the right */\n canScrollEndHorizontal = signal<boolean>(false);\n\n /** Indicates if the container can scroll further to the left */\n canScrollStartHorizontal = signal<boolean>(false);\n\n /** Indicates if the container can scroll further down */\n canScrollEndVertical = signal<boolean>(false);\n\n /** Indicates if the container can scroll further up */\n canScrollStartVertical = signal<boolean>(false);\n\n /** Current horizontal scroll position */\n scrollLeftPosition = signal<number>(0);\n\n /** Current vertical scroll position */\n scrollTopPosition = signal<number>(0);\n\n constructor() {\n // Update overflow detection when scrollUnit changes\n effect(() => {\n this.scrollUnit();\n this.updateOverflow();\n });\n }\n\n ngOnInit(): void {\n this.updateOverflow();\n this.addScrollListener();\n this.addResizeListener();\n }\n\n /**\n * Scrolls the container horizontally by the specified number of units.\n * @param units Number of scroll units (can be negative for backward scroll)\n */\n scrollHorizontal(units: number): void {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollLeft += scrollAmount;\n this.updateOverflow();\n }\n\n /**\n * Scrolls the container vertically by the specified number of units.\n * @param units Number of scroll units (can be negative for upward scroll)\n */\n scrollVertical(units: number): void {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollTop += scrollAmount;\n this.updateOverflow();\n }\n\n /**\n * Updates all overflow detection signals based on current scroll position\n */\n private updateOverflow(): void {\n const element = this.el.nativeElement;\n\n // Horizontal overflow detection\n const scrollLeft = element.scrollLeft;\n const scrollWidth = element.scrollWidth;\n const clientWidth = element.clientWidth;\n\n this.scrollLeftPosition.set(scrollLeft);\n this.canScrollStartHorizontal.set(scrollLeft > 0);\n this.canScrollEndHorizontal.set(scrollLeft + clientWidth < scrollWidth);\n\n // Vertical overflow detection\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n\n this.scrollTopPosition.set(scrollTop);\n this.canScrollStartVertical.set(scrollTop > 0);\n this.canScrollEndVertical.set(scrollTop + clientHeight < scrollHeight);\n }\n\n /**\n * Adds scroll event listener to track scroll position changes\n */\n private addScrollListener(): void {\n this.el.nativeElement.addEventListener('scroll', () => {\n this.updateOverflow();\n });\n }\n\n /**\n * Adds window resize listener to recalculate overflow on resize\n */\n private addResizeListener(): void {\n window.addEventListener('resize', () => {\n this.updateOverflow();\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { ClickOutsideEvent } from '../models/click-outside-event.model';\n\n/**\n * Directive that detects when a click occurs outside of an element.\n *\n * When a click is detected outside the element, the `smartClickOutside` output\n * signal emits a `ClickOutsideEvent` containing the click event and target element.\n *\n * The directive respects the `isActive` input signal. When `isActive` is false,\n * outside clicks are not detected.\n *\n * @example\n * ```typescript\n * import { Component, signal } from '@angular/core';\n * import { ClickOutsideDirective } from '@smartsoft001-mobilems/angular';\n *\n * @Component({\n * selector: 'app-example',\n * imports: [ClickOutsideDirective],\n * template: `\\n * <div\n * smartClickOutside\n * [isActive]=\"isActive()\"\n * (smartClickOutside)=\"onClickOutside()\"\n * class=\"smart-border smart-p-4\"\n * >\n * Content inside\n * </div>\n * `,\n * })\n * export class ExampleComponent {\n * isActive = signal(true);\n *\n * onClickOutside(): void {\n * console.log('Clicked outside!');\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[smartClickOutside]',\n})\nexport class ClickOutsideDirective {\n private readonly elementRef = inject(ElementRef);\n\n /**\n * Controls whether the directive responds to click events.\n * When false, no outside clicks are detected.\n */\n readonly isActive = input<boolean>(true);\n\n /**\n * Emits when a click outside the element is detected while isActive is true.\n */\n readonly smartClickOutside = output<ClickOutsideEvent>();\n\n private readonly clickEffect = effect(() => {\n // Access the isActive signal to track changes\n this.isActive();\n });\n\n /**\n * Handles document click events and checks if the click was outside the element.\n */\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent | null): void {\n if (!event) {\n return;\n }\n\n if (!this.isActive()) {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n const isClickInsideElement = this.elementRef.nativeElement.contains(target);\n\n if (!isClickInsideElement) {\n this.smartClickOutside.emit({\n event,\n target: event.target,\n });\n }\n }\n}\n","export * from './hover.directive';\nexport * from './scrollable.directive';\nexport * from './click-outside.directive';\n\nexport const DIRECTIVES = [];\n","import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ConfigsFacade } from './+state/configs.facade';\nimport { COMPONENTS } from './components';\nimport { DIRECTIVES } from './directives';\nimport { SharedConfig } from './shared.config';\n\nfunction initializeApp(configsFacade: ConfigsFacade): () => void {\n return () => {\n setTimeout(() => {\n configsFacade.init().then();\n });\n };\n}\n\n@NgModule({\n declarations: [...DIRECTIVES],\n imports: [RouterModule, COMPONENTS],\n exports: [...DIRECTIVES, ...COMPONENTS], // Export our own components instead of SmartSharedModule\n})\nexport class SharedModule {\n static forFeature(config: SharedConfig): ModuleWithProviders<SharedModule> {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n ],\n };\n }\n\n static forRoot(config: SharedConfig): ModuleWithProviders<SharedModule> {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n multi: true,\n deps: [ConfigsFacade],\n },\n ],\n };\n }\n}\n","import { MsFile } from '@smartsoft001-mobilems/models';\n\nexport enum ListMode {\n mobile = 'mobile',\n desktop = 'desktop',\n masonryGrid = 'masonryGrid',\n timeline = 'timeline',\n map = 'map',\n}\n\nexport interface IQuickMenu {\n elementId: string;\n name: string;\n}\n\nexport interface IGame {\n scores: any;\n gameType: GameType;\n difficulty: number;\n puzzleImage: MsFile;\n image: MsFile;\n images: IImages[];\n coverImage: MsFile;\n questions?: IGameQuestion[];\n objects: any[];\n name: string;\n description: string;\n id: number;\n published: boolean;\n userId: number;\n}\n\nexport interface IGameQuestion {\n question: string;\n answers: IGameAnswer[];\n file?: MsFile;\n hint: string;\n}\n\nexport interface IGameAnswer {\n userChoice?: boolean;\n class?: string;\n answer: string;\n correct: boolean;\n id?: number;\n position?: number;\n}\n\nexport enum GameType {\n puzzle = 1,\n memo = 2,\n quiz = 3,\n}\n\nexport interface IObjectGallery {\n id: number;\n name: string;\n items: IObjectGalleryItem[];\n}\n\nexport interface IObjectGalleryItem {\n id: number;\n position: number;\n object: IObjectGallerySingleObject;\n}\n\nexport interface IObjectGallerySingleObject {\n id: number;\n inventoryNumber: string;\n name: string;\n multimedium: ISingleObjectMultimedia;\n}\n\nexport interface ISingleObjectMultimedia {\n altTextEn: string;\n extension: string;\n altText: string;\n filePath: string;\n id: number;\n}\n\nexport interface IGameMemoConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel?: boolean;\n buttonStyle?: string;\n gameNameStyle?: string;\n textStyle: string;\n mediaBaseUrl?: string;\n}\n\nexport interface IGamePuzzleConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel: boolean;\n startButtonStyle: string;\n gameNameStyle: string;\n imageStyle: string;\n noImagePlaceholderSrc: string;\n mediaBaseUrl?: string;\n}\n\nexport interface IGameQuizConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel: boolean;\n buttonStyle: string;\n gameNameStyle: string;\n answerStyle: string;\n questionStyle: string;\n textStyle: string;\n progressStyle: string;\n hintStyle: string;\n noImagePlaceholderSrc: string;\n mediaBaseUrl: string;\n}\n\nexport interface IImages {\n file: MsFile;\n id: number;\n position: number;\n}\n\nexport class ImageBox {\n xPos!: string;\n yPos!: string;\n index!: string;\n}\n\nexport interface IAudio {\n image?: MsFile;\n audio?: MsFile;\n title: string;\n text: string;\n}\n\nexport interface IVideo {\n image?: MsFile;\n video?: MsFile;\n title: string;\n text: string;\n}\n\nexport interface IErrorMessages {\n loginErrorMessage?: string | null;\n forgotPasswordErrorMessage?: ForgotPasswordErrorMessage | null;\n registerErrorMessage?: RegisterErrorMessage | null;\n changePasswordErrorMessage?: ChangePasswordErrorMessage | null;\n modifyUserErrorMessage?: ModifyUserErrorMessage | null;\n}\n\nexport interface ChangePasswordErrorMessage {\n first: string;\n second: string;\n}\n\nexport interface ForgotPasswordErrorMessage {\n userNotFound: boolean;\n}\n\nexport interface ModifyUserErrorMessage {\n authenticationError: {\n email?: string;\n login?: string;\n avatar?: string;\n };\n}\n\nexport interface RegisterErrorMessage {\n email: string[] | null;\n login: string[] | null;\n password: {\n first: string[] | null;\n second: string[] | null;\n };\n status: number;\n message: string;\n}\n\nexport interface IUserRegister {\n username: string;\n email: string;\n password?: string;\n password2?: string;\n termsAcceptance: boolean;\n}\n\nexport interface IUser {\n email: string;\n password?: string;\n userID: string;\n token: string;\n avatar?: string;\n newsletterAcceptance?: boolean;\n refreshToken?: string;\n}\n\nexport interface IUserInfo {\n email: string;\n userID: string;\n avatar?: string;\n newsletterAcceptance: boolean;\n}\n\nexport interface ILoginResponse {\n /**\n * JWTToken\n */\n token: string;\n refresh_token: string;\n}\n\nexport interface ILoginResponse {\n /**\n * JWTToken\n */\n token: string;\n refresh_token: string;\n}\n\nexport interface IUserModify {\n email?: string;\n username?: string;\n}\n\nexport interface IFilterOne {\n active: boolean;\n name: string;\n desc: any;\n value: any;\n}\n\nexport interface IFilterItem {\n title: string;\n searchText?: string;\n value: string;\n filter: IFilterOne;\n}\n\nexport interface IUserQuery {\n id?: number;\n createdAt?: string;\n sortBy?: string;\n filterList?: {\n query?: IFilterItem[];\n searchText?: string;\n sortBy?: string;\n };\n jobs?: any[];\n name: string;\n type: string;\n query: any;\n}\n\nexport interface IUserQueryList {\n items: IUserQuery[];\n}\n\nexport interface SearchQuery {\n deleteInProgress: boolean;\n // filtersList: FilterItem[];\n // profileQuery: ProfileQuery;\n searchDate: string;\n searchTitle: string;\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\n\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\n\nexport const authenticationGuard: CanActivateFn = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n\n if (authStorageService.hasUser()) {\n return true;\n }\n\n router.navigate(['/logowanie']);\n return false;\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\n\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\n\nexport const unauthorizedGuard: CanActivateFn = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n\n if (!authStorageService.hasUser()) {\n return true;\n }\n\n router.navigate(['/strona-glowna']);\n return false;\n};\n","import {\n AfterViewInit,\n Directive,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { PageSlide } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class HomeComponent implements OnInit, AfterViewInit {\n private readonly seoService = inject(SeoService);\n private readonly translateService = inject(TranslateService);\n private configsFacade = inject(ConfigsFacade);\n\n slides = signal<Array<PageSlide>>([]);\n\n async ngOnInit(): Promise<void> {\n this.setTitle();\n }\n\n async ngAfterViewInit(): Promise<void> {\n await this.initSlides();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n\n private async initSlides(): Promise<void> {\n const page = await this.configsFacade.getPage('home' as any);\n this.slides.set(page?.slides || []);\n }\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class NotFoundComponent implements OnInit {\n private readonly seoService = inject(SeoService);\n private readonly translateService = inject(TranslateService);\n\n async ngOnInit(): Promise<void> {\n this.setTitle();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { Page } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class PageStaticComponent {\n protected readonly configsFacade = inject(ConfigsFacade);\n protected readonly route = inject(ActivatedRoute);\n protected readonly seoService = inject(SeoService);\n protected readonly translateService = inject(TranslateService);\n protected readonly params = toSignal(this.route.params);\n\n config = this.configsFacade.data;\n data = signal<Page | null>(null);\n\n loading = signal(false);\n\n constructor() {\n effect(() => {\n const params = this.params();\n if (params && params['id']) {\n this.loadData(+params['id']).then();\n }\n });\n }\n\n async loadData(id: number): Promise<void> {\n this.loading.set(true);\n this.data.set((await this.configsFacade.getPage(id)) as Page);\n this.loading.set(false);\n\n this.setTitle();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.data()?.title as string)} - ${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgxTranslateService","SmartStyleService","i1.AppComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"smartsoft001-mobilems-angular.mjs","sources":["../../../../../packages/shared/angular/src/lib/translations.ts","../../../../../packages/shared/angular/src/lib/environments/environment.ts","../../../../../packages/shared/angular/src/lib/services/auth-storage/auth-storage.service.ts","../../../../../packages/shared/angular/src/lib/shared.config.ts","../../../../../packages/shared/angular/src/lib/services/configs/configs.service.ts","../../../../../packages/shared/angular/src/lib/services/contrast/contrast.service.ts","../../../../../packages/shared/angular/src/lib/services/dictionary/dictionary.service.ts","../../../../../packages/shared/angular/src/lib/services/file-url/file-url.service.ts","../../../../../packages/shared/angular/src/lib/services/global/global.service.ts","../../../../../packages/shared/angular/src/lib/services/translation/translation.service.ts","../../../../../packages/shared/angular/src/lib/services/meta/meta.service.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal-container.component.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal-ref.ts","../../../../../packages/shared/angular/src/lib/services/modal/modal.service.ts","../../../../../packages/shared/angular/src/lib/services/search/search.service.ts","../../../../../packages/shared/angular/src/lib/services/seo/seo.service.ts","../../../../../packages/shared/angular/src/lib/services/settings/settings.service.ts","../../../../../packages/shared/angular/src/lib/services/style/style.service.ts","../../../../../packages/shared/angular/src/lib/services/wcag/wcag.service.ts","../../../../../packages/shared/angular/src/lib/services/crud/crud-base.service.ts","../../../../../packages/shared/angular/src/lib/services/query-filter/query-filter.service.ts","../../../../../packages/shared/angular/src/lib/services/index.ts","../../../../../packages/shared/angular/src/lib/+state/configs.facade.ts","../../../../../packages/shared/angular/src/lib/components/app/app.component.ts","../../../../../packages/shared/angular/src/lib/components/app/app.component.html","../../../../../packages/shared/angular/src/lib/components/page/page.component.ts","../../../../../packages/shared/angular/src/lib/components/filters/filters.component.ts","../../../../../packages/shared/angular/src/lib/components/scroll-top/scroll-top.component.ts","../../../../../packages/shared/angular/src/lib/components/slider/slider.component.ts","../../../../../packages/shared/angular/src/lib/components/search/search.component.ts","../../../../../packages/shared/angular/src/lib/components/media-tab/media-tab.component.ts","../../../../../packages/shared/angular/src/lib/components/gallery-fullscreen/gallery-fullscreen.component.ts","../../../../../packages/shared/angular/src/lib/components/footer/footer.component.ts","../../../../../packages/shared/angular/src/lib/components/header/header.component.ts","../../../../../packages/shared/angular/src/lib/components/masonry-grid/masonry-grid.component.ts","../../../../../packages/shared/angular/src/lib/components/menu/menu.component.ts","../../../../../packages/shared/angular/src/lib/components/menu/menu.component.html","../../../../../packages/shared/angular/src/lib/components/widget/base.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/text/text.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/text/text.component.html","../../../../../packages/shared/angular/src/lib/components/widget/widget.component.ts","../../../../../packages/shared/angular/src/lib/components/widget/widget.component.html","../../../../../packages/shared/angular/src/lib/components/index.ts","../../../../../packages/shared/angular/src/lib/directives/hover.directive.ts","../../../../../packages/shared/angular/src/lib/directives/scrollable.directive.ts","../../../../../packages/shared/angular/src/lib/directives/click-outside.directive.ts","../../../../../packages/shared/angular/src/lib/directives/index.ts","../../../../../packages/shared/angular/src/lib/shared.module.ts","../../../../../packages/shared/angular/src/lib/interfaces.ts","../../../../../packages/shared/angular/src/lib/guards/authentication.guard.ts","../../../../../packages/shared/angular/src/lib/guards/unauthorized.guard.ts","../../../../../packages/shared/angular/src/lib/pages/home/home.component.ts","../../../../../packages/shared/angular/src/lib/pages/not-found/not-found.component.ts","../../../../../packages/shared/angular/src/lib/pages/page/page.component.ts","../../../../../packages/shared/angular/src/smartsoft001-mobilems-angular.ts"],"sourcesContent":["import { TranslateService } from '@ngx-translate/core';\n\nexport function setTranslationsAndLang(service: TranslateService) {\n const map = {\n pl: TRANSLATE_DATA_PL,\n };\n\n Object.keys(map).forEach((key) => {\n service.setTranslation(key, (map as any)[key], true);\n });\n\n if (!service.currentLang) {\n const lang = service.getBrowserLang();\n service.use(lang ?? 'en');\n }\n}\n\nexport interface ITranslateData {\n MODEL: object;\n //..\n}\n\nexport const TRANSLATE_DATA_PL: ITranslateData = {\n MODEL: {\n //..\n },\n //..\n};\n","export const environment = {\n production: false,\n apiUrl: '',\n multimediaUrl: '',\n mainLogoPath: '/assets/gfx/logo/main-logo.png',\n};\n","import { Injectable } from '@angular/core';\n\nimport { IUser } from '@smartsoft001-mobilems/models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthStorageService {\n private readonly STORAGE_KEY = 'user';\n\n setUser(user: IUser): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.STORAGE_KEY, JSON.stringify(user));\n }\n }\n\n getUser(): IUser | null {\n if (typeof localStorage !== 'undefined') {\n const item = localStorage.getItem(this.STORAGE_KEY);\n if (item) {\n try {\n return JSON.parse(item) as IUser;\n } catch (error) {\n console.error('Failed to parse user from localStorage', error);\n return null;\n }\n }\n }\n return null;\n }\n\n removeUser(): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n }\n\n hasUser(): boolean {\n return this.getUser() !== null;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SharedConfig {\n apiUrl = '';\n multimediaUrl = '';\n mainLogoPath = '/assets/gfx/logo/main-logo.png';\n styleVariables?: Record<string, any>;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport moment from 'moment';\nimport { combineLatest, firstValueFrom, lastValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Config, ITheme, Page } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigsService {\n private readonly httpClient = inject(HttpClient);\n private readonly config = inject(SharedConfig);\n\n get(): Promise<Config> {\n const date = moment().format('YYYY-MM-DD');\n\n return lastValueFrom(\n combineLatest([\n this.httpClient.post<{\n data: unknown & { current: { objectId: string; title: string } };\n }>(this.config.apiUrl + 'object/object-of-the-week', {\n dateStart: date,\n dateEnd: date,\n }),\n this.httpClient.get<{ data: unknown }>(\n this.config.apiUrl + 'setting/theme',\n ),\n ]).pipe(\n map(([r1, r2]) => {\n return {\n id: '',\n objectOfTheDay: {\n id: Number(r1?.data?.current?.objectId),\n title: r1?.data?.current?.title,\n },\n theme: r2.data as ITheme,\n };\n }),\n ),\n );\n }\n\n getPage(id: number | 'home'): Promise<Page> {\n return firstValueFrom(\n this.httpClient\n .get<{ data: any }>(this.config.apiUrl + 'page/' + id)\n .pipe(map((r) => r.data)),\n );\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, signal, effect, PLATFORM_ID, inject } from '@angular/core';\n\ninterface ContrastColors {\n black: string;\n yellow: string;\n white: string;\n transparentBlack: string;\n wcagColor1: string;\n wcagColor2: string;\n}\n\nconst DEFAULT_COLORS: ContrastColors = {\n black: 'black',\n yellow: 'yellow',\n white: 'white',\n transparentBlack: 'rgba(0, 0, 0, 0.9)',\n wcagColor1: '#F4B735',\n wcagColor2: '#1B1B1B',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ContrastService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n readonly isActive = signal(false);\n\n constructor() {\n // Apply contrast changes to DOM\n effect(() => {\n if (this.isBrowser) {\n this.applyContrast(this.isActive());\n }\n });\n }\n\n changeTheme(active: boolean): void {\n this.isActive.set(active);\n }\n\n toggle(): void {\n this.isActive.update((value) => !value);\n }\n\n private applyContrast(active: boolean): void {\n if (!this.isBrowser) return;\n\n const docElement = document.documentElement;\n\n if (active) {\n this.setProperties(docElement);\n docElement.classList.add('cv');\n } else {\n this.removeProperties(docElement);\n docElement.classList.remove('cv');\n }\n }\n\n private setProperties(element: HTMLElement): void {\n element.style.setProperty('--cv-black', DEFAULT_COLORS.black);\n element.style.setProperty('--cv-yellow', DEFAULT_COLORS.yellow);\n element.style.setProperty('--cv-white', DEFAULT_COLORS.white);\n element.style.setProperty(\n '--cv-black-transparent',\n DEFAULT_COLORS.transparentBlack,\n );\n element.style.setProperty('--cv-wcag-color-1', DEFAULT_COLORS.wcagColor1);\n element.style.setProperty('--cv-wcag-color-2', DEFAULT_COLORS.wcagColor2);\n }\n\n private removeProperties(element: HTMLElement): void {\n element.style.removeProperty('--cv-black');\n element.style.removeProperty('--cv-yellow');\n element.style.removeProperty('--cv-white');\n element.style.removeProperty('--cv-black-transparent');\n element.style.removeProperty('--cv-wcag-color-1');\n element.style.removeProperty('--cv-wcag-color-2');\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { SharedConfig } from '../../shared.config';\n\nexport interface IDictionaryItem {\n id: number;\n name: string;\n hasChildren?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DictionaryService<T> {\n private readonly httpClient = inject(HttpClient);\n private readonly config = inject(SharedConfig);\n\n get(\n type: T,\n query: {\n searchText?: string;\n page: number;\n pageSize?: number;\n context?: string;\n } = { page: 1 },\n ): Observable<IDictionaryItem[]> {\n let url =\n this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/search/page/${query.page}?sort=random`;\n\n if (query.pageSize) {\n url += `&maxPerPage=${query.pageSize}`;\n }\n\n if (query.searchText) {\n url += `&q=${query.searchText}`;\n }\n\n return this.httpClient\n .get<{ data: { items: IDictionaryItem[] } }>(url)\n .pipe(map((r) => r.data.items));\n }\n\n getNode(\n type: T,\n query: {\n nodeId?: number;\n context?: string;\n } = {},\n ): Observable<IDictionaryItem[]> {\n let url =\n this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/tree`;\n\n if (query.nodeId !== null && query.nodeId !== undefined) {\n //In case the nodeId is 0 or is cast to false\n url += `?id=${query.nodeId}`;\n }\n\n return this.httpClient\n .get<{ data: IDictionaryItem[] }>(url)\n .pipe(map((r) => r.data));\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { MsFile } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\n\nexport type FileUrlMode = 'cache' | 'big' | 'noCache';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FileUrlService {\n private readonly config = inject(SharedConfig);\n\n get(\n fileOrPath?: MsFile | string,\n mode: FileUrlMode = 'cache',\n noImagePlaceholder = 'assets/no-image.svg',\n ): string {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl) {\n return noImagePlaceholder;\n }\n\n let path: string;\n let isStringPath = false;\n\n if (typeof fileOrPath === 'string') {\n path = fileOrPath;\n isStringPath = true;\n } else {\n if (!fileOrPath || !fileOrPath.filePath) {\n return noImagePlaceholder;\n }\n\n // Check if it's an upload path (direct URL)\n if (fileOrPath.filePath.indexOf('upload') === -1) {\n return (\n multimediaUrl + this.getPath(mode) + this.getFileName(fileOrPath)\n );\n }\n\n path = fileOrPath.filePath;\n }\n\n // Remove leading slash if present\n if (path[0] === '/') {\n path = path.substring(1);\n }\n\n const shouldSkipExtensionReplacement =\n isStringPath ||\n path.includes('media/dictionaries') ||\n path.includes('media/articles');\n if (!shouldSkipExtensionReplacement) {\n path = this.replaceExtensionIfCache(path, mode);\n }\n\n return multimediaUrl + path;\n }\n\n private replaceExtensionIfCache(path: string, mode: FileUrlMode): string {\n if (mode === 'cache') {\n const lastDotIndex = path.lastIndexOf('.');\n if (lastDotIndex > -1) {\n return path.substring(0, lastDotIndex) + '.jpg';\n }\n return path + '.jpg';\n }\n\n if (mode === 'big' && path.toLowerCase().endsWith('.png')) {\n return path.substring(0, path.lastIndexOf('.')) + '.jpg';\n }\n\n return path;\n }\n\n private getFileName(file: MsFile): string {\n if (\n file.filePath &&\n file.extension &&\n file.filePath.indexOf(file.extension) > -1\n ) {\n return file.filePath;\n }\n\n return file.filePath + '.' + file.extension;\n }\n\n private getPath(mode: FileUrlMode): string {\n switch (mode) {\n case 'big':\n return 'upload/cache/multimedia_big/';\n case 'cache':\n return 'upload/cache/multimedia_detail/';\n case 'noCache':\n return 'upload/multimedia/';\n }\n }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalService {\n readonly showHeader = signal(true);\n readonly showFooter = signal(true);\n\n setHeaderVisibility(visible: boolean): void {\n this.showHeader.set(visible);\n }\n\n setFooterVisibility(visible: boolean): void {\n this.showFooter.set(visible);\n }\n\n hexToRgb(hex: string): number[] | null {\n if (!hex) return null;\n\n // Remove # if present\n let cleanHex = hex.replace(/^#/, '');\n\n // Expand 3-character hex to 6-character (#abc -> #aabbcc)\n if (cleanHex.length === 3) {\n cleanHex = cleanHex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n\n // Parse 6-character hex\n const result = cleanHex.match(/.{2}/g);\n\n if (!result || result.length !== 3) return null;\n\n return result.map((x) => parseInt(x, 16));\n }\n\n rgbToHex(r: number, g: number, b: number): string {\n return (\n '#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join('')\n );\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Injectable,\n inject,\n signal,\n computed,\n PLATFORM_ID,\n} from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\nconst TRANSLATION_CONFIG_KEY = 'TRANSLATION_CONFIG';\n\nexport interface ITranslationConfig {\n language: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TranslationService {\n private readonly translateService = inject(NgxTranslateService);\n private readonly platformId = inject(PLATFORM_ID);\n\n private readonly _config = signal<ITranslationConfig>({\n language: this.getInitialLanguage(),\n });\n\n readonly config = this._config.asReadonly();\n readonly config$ = this.translateService.onLangChange.pipe() as Observable<{\n lang: string;\n }>;\n\n readonly currentLanguage = computed(() => this._config().language);\n\n get(key: string, params?: any): string {\n return this.translateService.instant(key, params);\n }\n\n async init(\n defaultLang = 'en',\n availableLangs: string[] = ['en', 'pl'],\n ): Promise<void> {\n this.translateService.setDefaultLang(defaultLang);\n this.translateService.addLangs(availableLangs);\n\n let lang = this._config().language;\n\n if (!availableLangs.includes(lang)) {\n lang = defaultLang;\n this._config.set({ language: lang });\n }\n\n await this.translateService.use(lang).toPromise();\n }\n\n setLanguage(language: string): void {\n this._config.set({ language });\n this.save();\n this.translateService.use(language);\n }\n\n private save(): void {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(\n TRANSLATION_CONFIG_KEY,\n JSON.stringify(this._config()),\n );\n }\n }\n\n private getInitialLanguage(): string {\n if (isPlatformBrowser(this.platformId)) {\n const stored = localStorage.getItem(TRANSLATION_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored) as ITranslationConfig;\n return parsed.language;\n } catch (error) {\n console.warn('Failed to parse translation config', error);\n }\n }\n }\n return this.translateService.getBrowserLang() || 'en';\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Meta, MetaDefinition, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { MsFile } from '@smartsoft001-mobilems/models';\n\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MetaService {\n private readonly meta = inject(Meta);\n private readonly title = inject(Title);\n private readonly translationService = inject(TranslationService);\n private readonly router = inject(Router);\n private readonly activatedRoute = inject(ActivatedRoute);\n private readonly config = inject(SharedConfig);\n\n private routerSubscription?: Subscription;\n\n constructor() {\n this.resetMetadata();\n }\n\n keepUpdatingPageTitle(onRouteChange: boolean): Subscription | void {\n if (onRouteChange) {\n this.routerSubscription = this.router.events\n .pipe(\n filter((event) => event instanceof NavigationEnd),\n map(() => this.getRouteTitle()),\n )\n .subscribe((dynamicTitle: string) => {\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n });\n\n return this.routerSubscription;\n } else {\n const dynamicTitle = this.getRouteTitle();\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n }\n }\n\n setPageMetadata(title = '', description = ''): void {\n if (title) {\n this.setTitle(title);\n }\n if (description) {\n this.setDescription(description);\n }\n }\n\n setObjectMetadata(objectData: {\n image?: MsFile;\n title?: string;\n description?: string;\n type?: string;\n }): void {\n if (objectData.image) {\n this.setImageMetadata(\n objectData.image,\n objectData.title,\n objectData.type,\n );\n }\n if (objectData.title) {\n this.setTitle(objectData.title);\n }\n if (objectData.description) {\n this.setDescription(objectData.description);\n }\n }\n\n setImageMetadata(image: MsFile, imageAlt?: string, type?: string): void {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl || !image?.filePath) {\n return;\n }\n\n try {\n const imageUrl = this.buildImageUrl(multimediaUrl, image, type);\n this.meta.updateTag({ property: 'og:image', content: imageUrl });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '600' });\n this.meta.updateTag({ property: 'og:image:height', content: '600' });\n\n if (imageAlt) {\n this.meta.updateTag({\n property: 'og:image:alt',\n content: this.removeHtmlTags(imageAlt),\n });\n } else {\n this.meta.removeTag(\"property='og:image:alt'\");\n }\n } catch (error) {\n console.warn('Failed to set image metadata', error);\n }\n }\n\n resetMetadata(): void {\n const baseTitle =\n this.translationService.get('base-portal-title') || 'Portal';\n\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n this.meta.updateTag({ property: 'og:title', content: baseTitle });\n this.meta.updateTag({ property: 'og:description', content: '' });\n this.meta.updateTag({ name: 'description', content: '' });\n this.meta.updateTag({\n property: 'og:image',\n content: 'assets/gfx/no-img/no-img-header.jpg',\n });\n this.meta.updateTag({ property: 'og:image:alt', content: baseTitle });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '250' });\n this.meta.updateTag({ property: 'og:image:height', content: '250' });\n }\n\n updateTag(tag: MetaDefinition): void {\n this.meta.updateTag(tag);\n }\n\n setTitle(titleText: string): void {\n const plainTitle = this.removeHtmlTags(titleText);\n this.title.setTitle(plainTitle);\n this.meta.updateTag({ property: 'og:title', content: plainTitle });\n }\n\n setDescription(description: string): void {\n const plainDesc = this.removeHtmlTags(description);\n this.meta.updateTag({ property: 'og:description', content: plainDesc });\n this.meta.updateTag({ name: 'description', content: plainDesc });\n }\n\n destroy(): void {\n this.routerSubscription?.unsubscribe();\n }\n\n private buildImageUrl(baseUrl: string, image: MsFile, type?: string): string {\n const cleanBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n\n if (type === 'object' && image.filePath) {\n return `${cleanBaseUrl}/${image.filePath}.jpg`;\n }\n\n return `${cleanBaseUrl}/${image.filePath}`;\n }\n\n private removeHtmlTags(value: string): string {\n if (!value) return '';\n\n return value\n .replace(/<.*?>/g, '')\n .replace(/ /g, ' ')\n .replace(/‐/g, '-')\n .replace(/–/g, '-')\n .replace(/—/g, '-')\n .replace(/–/g, '-')\n .replace(/—/g, '-')\n .replace(/„/g, '\"')\n .replace(/ó/g, 'ó')\n .replace(/”/g, '\"')\n .replace(/"/g, '\"');\n }\n\n private getRouteTitle(): string {\n let child = this.activatedRoute.firstChild;\n\n while (child?.firstChild) {\n child = child.firstChild;\n }\n\n if (!child) return '';\n\n const snapshot = child.snapshot;\n\n if (snapshot.data['subtitle']) {\n return snapshot.data['subtitle'];\n }\n\n if (snapshot.data['title']) {\n return snapshot.data['title'];\n }\n\n return '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n input,\n output,\n TemplateRef,\n HostListener,\n} from '@angular/core';\n\n/**\n * Container component for modal overlay and content.\n * Handles backdrop clicks and ESC key press.\n */\n@Component({\n selector: 'smart-mobilems-modal-container',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `,\n})\nexport class ModalContainerComponent {\n /**\n * Template to render inside the modal content area.\n */\n contentTemplate = input.required<TemplateRef<any>>();\n\n /**\n * Emits when backdrop is clicked or ESC key is pressed.\n */\n backdropClick = output<void>();\n\n /**\n * Listens for ESC key press on document level.\n */\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n this.backdropClick.emit();\n }\n\n /**\n * Handles backdrop click event.\n * @param _event Mouse click event\n */\n onBackdropClick(_event: MouseEvent): void {\n this.backdropClick.emit();\n }\n}\n","import { Subject } from 'rxjs';\n\n/**\n * Reference to an opened modal.\n * Provides methods to close the modal and observe its lifecycle.\n */\nexport class ModalRef {\n private readonly _afterClosed = new Subject<void>();\n\n /**\n * Observable that emits when the modal has been closed.\n * Completes after emission.\n */\n readonly afterClosed$ = this._afterClosed.asObservable();\n\n constructor(private readonly closeCallback: () => void) {}\n\n /**\n * Closes the modal and triggers cleanup.\n * Safe to call multiple times.\n */\n close(): void {\n this.closeCallback();\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Injectable,\n ApplicationRef,\n createComponent,\n EnvironmentInjector,\n inject,\n TemplateRef,\n ComponentRef,\n} from '@angular/core';\n\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalRef } from './modal-ref';\n\n/**\n * Service for managing modal dialogs.\n * Provides methods to open, close, and manage modal instances.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private readonly appRef = inject(ApplicationRef);\n private readonly injector = inject(EnvironmentInjector);\n private readonly document = inject(DOCUMENT);\n\n private activeModals: ComponentRef<ModalContainerComponent>[] = [];\n\n /**\n * Opens a modal with the provided template.\n * @param template TemplateRef to render inside the modal\n * @returns ModalRef instance for controlling the modal\n */\n open(template: TemplateRef<any>): ModalRef {\n const componentRef = createComponent(ModalContainerComponent, {\n environmentInjector: this.injector,\n });\n\n componentRef.setInput('contentTemplate', template);\n\n const modalRef = new ModalRef(() => this.closeModal(componentRef));\n\n componentRef.instance.backdropClick.subscribe(() => {\n modalRef.close();\n });\n\n this.appRef.attachView(componentRef.hostView);\n\n const domElem = (componentRef.hostView as any).rootNodes[0] as HTMLElement;\n this.document.body.appendChild(domElem);\n\n componentRef.changeDetectorRef.detectChanges();\n\n this.activeModals.push(componentRef);\n\n return modalRef;\n }\n\n /**\n * Closes a specific modal instance.\n * @param componentRef Component reference to close\n */\n private closeModal(\n componentRef: ComponentRef<ModalContainerComponent>,\n ): void {\n const index = this.activeModals.indexOf(componentRef);\n if (index > -1) {\n this.activeModals.splice(index, 1);\n }\n\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n\n /**\n * Closes all currently open modals.\n */\n closeAll(): void {\n const modals = [...this.activeModals];\n modals.forEach((componentRef) => this.closeModal(componentRef));\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, InjectionToken, inject, signal } from '@angular/core';\nimport {\n CrudSearchService,\n ICrudFilter,\n} from '@smartsoft001/crud-shell-angular';\nimport { Observable, combineLatest, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nexport type SearchSource =\n | 'objects'\n | 'publicCollections'\n | 'articles'\n | 'creators'\n | 'imprints';\n\nexport interface ISearchData {\n cycleId?: number;\n keywordId?: number;\n seriesTitleId?: number;\n}\n\nexport interface ISearchResults {\n objects: number;\n publicCollections: number;\n articles: number;\n}\n\ninterface ApiResponse {\n data?: {\n paginatorDetails?: {\n totalItemsCount: number;\n };\n };\n}\n\nexport interface ISearchConfig {\n apiUrl: string;\n searchMap?: (txt: string, data: ISearchData) => Record<string, string>;\n}\n\nexport const SEARCH_CONFIG_TOKEN = new InjectionToken<ISearchConfig>(\n 'SEARCH_CONFIG_TOKEN',\n);\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SearchService extends CrudSearchService {\n private readonly http = inject(HttpClient);\n private _currentSearchText = signal<string>('');\n private readonly config = inject(SEARCH_CONFIG_TOKEN);\n\n searchText = this._currentSearchText.asReadonly();\n\n constructor() {\n super();\n }\n\n get currentSearchText(): string {\n return this._currentSearchText();\n }\n\n override setFilter(val: Partial<ICrudFilter>): void {\n super.setFilter(val);\n }\n\n override setEnabled(val: boolean): void {\n super.setEnabled(val);\n\n if (!val) {\n this.setFilter({});\n this._currentSearchText.set('');\n }\n }\n\n setCurrentSearchText(txt: string): void {\n this._currentSearchText.set(txt);\n }\n\n search(txt: string, data: ISearchData = {}): Observable<ISearchResults> {\n this.setFilter({\n searchText: txt,\n });\n\n this._currentSearchText.set(txt);\n\n const urlsMap = this.getUrlsMap(txt, data);\n const requests = Object.entries(urlsMap)\n .filter(([key, url]) => !!key && !!url)\n .map(([key, url]) =>\n this.http.get<ApiResponse>(url).pipe(\n catchError(() => of(null as ApiResponse | null)),\n map((response) => ({\n key,\n count: response?.data?.paginatorDetails?.totalItemsCount ?? 0,\n })),\n ),\n );\n\n return combineLatest(requests).pipe(\n map((array) => {\n const result = {} as any;\n array.forEach(({ key, count }) => {\n result[key] = count;\n });\n return result as ISearchResults;\n }),\n );\n }\n\n getFilterQuery(\n type: SearchSource,\n txt: string,\n data: ISearchData = {},\n ): string {\n return getSearchFilterQuery(type, txt, data);\n }\n\n private getUrlsMap(\n txt: string,\n data: ISearchData = {},\n ): Record<string, string> {\n let map = {\n objects: `${this.config.apiUrl}search/Object/page/1?maxPerPage=1&${this.getFilterQuery('objects', txt, data)}`,\n publicCollections: `${this.config.apiUrl}public-collections/page/1?maxPerPage=1&${this.getFilterQuery('publicCollections', txt, data)}`,\n articles: `${this.config.apiUrl}search/Article/page/1?maxPerPage=1&${this.getFilterQuery('articles', txt, data)}`,\n };\n\n if (this.config.searchMap) {\n const customMap = this.config.searchMap(txt, data);\n map = { ...map, ...customMap };\n }\n\n return map;\n }\n}\n\nexport function getSearchFilterQuery(\n type: SearchSource,\n txt: string,\n data: ISearchData = {},\n): string {\n const result: Array<string> = [];\n\n if (txt && type !== 'creators' && type !== 'imprints') {\n result.push(`filter[phrase]=${encodeURIComponent(txt)}`);\n } else if (txt) {\n result.push(`q=${encodeURIComponent(txt)}`);\n }\n\n if (data.keywordId) {\n result.push(`filter[keywords][]=${data.keywordId}`);\n }\n\n if (data.cycleId) {\n result.push(`filter[cycles][]=${data.cycleId}`);\n }\n\n if (data.seriesTitleId) {\n result.push(`filter[cycles][]=${data.seriesTitleId}`);\n }\n\n return result.join('&');\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, inject, PLATFORM_ID } from '@angular/core';\nimport { Title, Meta, MetaDefinition } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeoService {\n private readonly title = inject(Title);\n private readonly meta = inject(Meta);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n updateTitle(titleText: string): void {\n if (!titleText) {\n console.warn('Title text is empty or undefined.');\n return;\n }\n\n const decodedTitle = this.decodeHtml(titleText);\n if (decodedTitle) {\n this.title.setTitle(decodedTitle);\n }\n }\n\n updateMetaTags(metaTags: MetaDefinition[]): void {\n metaTags.forEach((tag) => this.meta.updateTag(tag));\n }\n\n updateDescription(description: string): void {\n if (!description) {\n console.warn('Description text is empty or undefined.');\n return;\n }\n\n const decodedDesc = this.decodeHtml(description);\n if (decodedDesc) {\n this.meta.updateTag({ name: 'description', content: decodedDesc });\n }\n }\n\n updateOgTags(\n title?: string,\n description?: string,\n image?: string,\n url?: string,\n ): void {\n const tags: MetaDefinition[] = [];\n\n if (title) {\n tags.push({\n property: 'og:title',\n content: this.decodeHtml(title) || title,\n });\n }\n\n if (description) {\n tags.push({\n property: 'og:description',\n content: this.decodeHtml(description) || description,\n });\n }\n\n if (image) {\n tags.push({ property: 'og:image', content: image });\n }\n\n if (url) {\n tags.push({ property: 'og:url', content: url });\n }\n\n this.updateMetaTags(tags);\n }\n\n private decodeHtml(encodedStr: string): string | null {\n if (!encodedStr) return encodedStr;\n\n // Use DOMParser only in browser environments\n if (this.isBrowser) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(encodedStr, 'text/html');\n return doc.documentElement.textContent;\n } catch (error) {\n console.warn(\n 'DOMParser decode failed, falling back to server-safe decoder',\n error,\n );\n }\n }\n\n // Server / SSR fallback: decode numeric entities and common named entities\n try {\n let decoded = encodedStr\n .replace(/&#x([0-9A-Fa-f]+);?/g, (_m, hex) =>\n String.fromCharCode(parseInt(hex, 16)),\n )\n .replace(/&#([0-9]+);?/g, (_m, num) =>\n String.fromCharCode(parseInt(num, 10)),\n );\n\n const entities: Record<string, string> = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00A0',\n };\n\n decoded = decoded.replace(/&([a-zA-Z]+);?/g, (_m, name) =>\n Object.prototype.hasOwnProperty.call(entities, name)\n ? entities[name]\n : `&${name};`,\n );\n\n return decoded;\n } catch (error) {\n console.warn('Failed to decode HTML with fallback', error);\n return encodedStr;\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SettingsService {\n private readonly translationService = inject(TranslationService);\n private readonly config = inject(SharedConfig);\n\n getMediaUrl(): string {\n const multimediaUrl = this.config.multimediaUrl;\n\n if (!multimediaUrl) {\n return '';\n }\n\n // Remove trailing slash if present\n return multimediaUrl.endsWith('/')\n ? multimediaUrl.substring(0, multimediaUrl.length - 1)\n : multimediaUrl;\n }\n\n getBaseTitle(): string {\n return this.translationService.get('base-portal-title');\n }\n\n getCanLink(): boolean {\n // Could be extended with preview mode config in the future\n return true;\n }\n\n getMainLogo(): string {\n return this.config.mainLogoPath;\n }\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { StyleService as SmartStyleService } from '@smartsoft001/angular';\n\nimport { SharedConfig } from '../../shared.config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class StyleService {\n private readonly smartStyleService = inject(SmartStyleService);\n private readonly config = inject(SharedConfig);\n\n init(elementRef: ElementRef, customVariables?: Record<string, any>): void {\n const variables = {\n ...this.config.styleVariables,\n ...customVariables,\n };\n\n this.smartStyleService.init(elementRef, variables);\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Injectable,\n PLATFORM_ID,\n inject,\n signal,\n computed,\n effect,\n} from '@angular/core';\n\nimport { TranslationService } from '../translation/translation.service';\n\nconst WCAG_CONFIG_KEY = 'WCAG_CONFIG';\n\nexport type WcagContrast = 'high' | 'normal';\nexport type WcagText = 'small' | 'normal' | 'large';\nexport type WcagLetterSpacing = 'small' | 'normal' | 'large';\nexport type WcagWordSpacing = 'small' | 'normal' | 'large';\nexport type WcagGrayscale = 'true' | 'false';\n\nexport interface IWcagConfig {\n contrast: WcagContrast;\n text: WcagText;\n letterSpacing: WcagLetterSpacing;\n wordSpacing: WcagWordSpacing;\n grayscale: WcagGrayscale;\n}\n\nexport type WcagChangeType =\n | 'setContrast'\n | 'setText'\n | 'setLetterSpacing'\n | 'setWordSpacing'\n | 'setGrayscale';\n\nconst DEFAULT_CONFIG: IWcagConfig = {\n contrast: 'normal',\n text: 'normal',\n letterSpacing: 'small',\n wordSpacing: 'small',\n grayscale: 'false',\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WcagService {\n private readonly translationService = inject(TranslationService);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n private readonly _config = signal<IWcagConfig>(this.loadConfig());\n\n readonly config = this._config.asReadonly();\n readonly wordSpacingValue = computed(() =>\n this.getSpacingValue(this._config().wordSpacing),\n );\n readonly letterSpacingValue = computed(() =>\n this.getSpacingValue(this._config().letterSpacing),\n );\n\n constructor() {\n // Apply config changes to DOM\n effect(() => {\n const config = this._config();\n this.applyConfigToDOM(config);\n });\n }\n\n async init(): Promise<void> {\n // Config is already loaded in constructor\n // This method kept for backward compatibility\n }\n\n setContrast(value: WcagContrast): void {\n this._config.update((config) => ({ ...config, contrast: value }));\n this.announceChange('setContrast', value);\n this.save();\n }\n\n setText(value: WcagText): void {\n this._config.update((config) => ({ ...config, text: value }));\n this.announceChange('setText', value);\n this.save();\n }\n\n setLetterSpacing(value: WcagLetterSpacing): void {\n this._config.update((config) => ({ ...config, letterSpacing: value }));\n this.announceChange('setLetterSpacing', value);\n this.save();\n }\n\n setWordSpacing(value: WcagWordSpacing): void {\n this._config.update((config) => ({ ...config, wordSpacing: value }));\n this.announceChange('setWordSpacing', value);\n this.save();\n }\n\n setGrayscale(value: WcagGrayscale): void {\n this._config.update((config) => ({\n ...config,\n grayscale: value,\n }));\n this.announceChange('setGrayscale', value);\n this.save();\n }\n\n reset(): void {\n this._config.set(DEFAULT_CONFIG);\n this.save();\n }\n\n private getSpacingValue(\n spacing: WcagLetterSpacing | WcagWordSpacing,\n ): number {\n switch (spacing) {\n case 'normal':\n return 1;\n case 'large':\n return 2;\n default:\n return 0;\n }\n }\n\n private loadConfig(): IWcagConfig {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(WCAG_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...DEFAULT_CONFIG, ...parsed };\n } catch (error) {\n console.warn('Failed to parse WCAG config', error);\n }\n }\n }\n return DEFAULT_CONFIG;\n }\n\n private save(): void {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n localStorage.setItem(WCAG_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n\n private applyConfigToDOM(config: IWcagConfig): void {\n if (!this.isBrowser) return;\n\n const body = document.getElementsByTagName('body')[0];\n if (!body) return;\n\n body.className = '';\n body.className += ` contrast-${config.contrast}`;\n body.className += ` text-${config.text}`;\n body.className += ` letter-spacing-${config.letterSpacing}`;\n body.className += ` word-spacing-${config.wordSpacing}`;\n body.className += ` ${config.grayscale === 'true' ? 'grayscale' : ''}`;\n }\n\n private announceChange(\n type: WcagChangeType,\n value:\n | WcagContrast\n | WcagText\n | WcagLetterSpacing\n | WcagWordSpacing\n | WcagGrayscale,\n ): void {\n if (!this.isBrowser) return;\n\n let announceElement = document.getElementById('wcag-change');\n\n if (!announceElement) {\n announceElement = document.createElement('span');\n announceElement.id = 'wcag-change';\n announceElement.className = 'sr-only';\n announceElement.setAttribute('aria-atomic', 'true');\n announceElement.setAttribute('aria-live', 'polite');\n document.body.appendChild(announceElement);\n }\n\n const translationKey = `WCAG.${type}.${value}`;\n announceElement.innerHTML = this.translationService.get(translationKey);\n }\n}\n","import { PaginationMode } from '@smartsoft001/angular';\nimport {\n CrudService,\n ICrudFilter,\n ICrudFilterQueryItem,\n} from '@smartsoft001/crud-shell-angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { firstValueFrom, Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\nexport abstract class CrudBaseService<\n T extends IEntity<string>,\n> extends CrudService<T> {\n private sortSeed = Math.floor(Math.random() * 100000);\n\n abstract getUrlNameForDetails(): string;\n abstract getUrlNameForList(): string;\n\n downloadPdf(name: string, id: string): Promise<void> {\n return fetch(\n this.config.apiUrl + this.getUrlNameForDetails() + '/' + id + '/pdf',\n )\n .then((resp) => resp.arrayBuffer())\n .then((resp) => {\n const file = new Blob([resp], { type: 'application/pdf' });\n\n const fileURL = URL.createObjectURL(file);\n const link = document.createElement('a');\n link.href = fileURL;\n link.download = name + '.pdf';\n link.click();\n });\n }\n\n getById(id: string): Promise<T> {\n return firstValueFrom(\n this.http\n .get<{\n data: T;\n }>(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id)\n .pipe(map((r) => (r as { data: T })?.data)),\n );\n }\n\n getList<T>(\n filter?: ICrudFilter,\n ): Promise<{ data: T[]; totalCount: number; links: unknown }> {\n let page = 1;\n\n if (filter?.offset && filter?.limit) {\n page = filter.offset / filter.limit;\n }\n\n let url = this.getBaseListUrl(page, filter as { limit: number });\n url = this.initFilters(filter as ICrudFilter, url);\n\n return firstValueFrom(\n this.http\n .get<{\n data: unknown & {\n items: unknown;\n paginatorDetails: {\n totalItemsCount: number;\n };\n };\n }>(url)\n .pipe(\n map((r) => {\n const response = r as {\n data?: {\n items?: T[];\n paginatorDetails?: {\n totalItemsCount?: number;\n };\n };\n };\n return {\n data: response.data?.items ?? [],\n totalCount: response.data?.paginatorDetails?.totalItemsCount ?? 0,\n links: {},\n };\n }),\n catchError(this.handleError),\n ),\n );\n }\n\n private initFilters(\n filter:\n | {\n searchText?: string | undefined;\n sortBy?: string | undefined;\n sortDesc?: boolean | undefined;\n offset?: number | undefined;\n limit?: number | undefined;\n paginationMode?: PaginationMode | undefined;\n query?: Array<ICrudFilterQueryItem> | undefined;\n }\n | ICrudFilter,\n url: string,\n ) {\n if (filter?.searchText) {\n url += `&filter[phrase]=${filter.searchText}`;\n }\n\n if (filter?.sortBy) {\n url += `&sort=${filter.sortBy}-${filter.sortDesc ? 'desc' : 'asc'}`;\n } else {\n url += `&sort=random&sortSeed=${this.sortSeed}`;\n }\n\n filter?.query?.forEach((q: ICrudFilterQueryItem) => {\n const isArray = Array.isArray(q.value);\n\n if (isArray) {\n q.value.forEach((value: unknown & { id: string }) => {\n url += `&filter[${q.key}]${this.getQueryType(q.type, true)}=${\n value.id\n }`;\n });\n } else {\n url += `&filter[${q.key}]${this.getQueryType(q.type, false)}=${\n q.value\n }`;\n }\n });\n return url;\n }\n\n protected getBaseListUrl(\n page: number,\n filter: {\n limit: number;\n },\n ) {\n return `${this.config.apiUrl}${\n this.getUrlNameForList() !== 'public-collections'\n ? 'search/' + this.getUrlNameForList()\n : 'public-collections'\n }/page/${page}?maxPerPage=${filter?.limit}`;\n }\n\n protected handleError(err: unknown & { status: number }): Observable<any> {\n if (err.status === 404 || err.status === 406) {\n return of({\n data: [],\n totalCount: 0,\n links: {},\n });\n }\n\n return throwError(() => new Error(`There was an error: ${err.status}`));\n }\n\n protected getQueryType(\n type: '=' | '!=' | '>=' | '<=' | '<' | '>',\n isArray: boolean,\n ) {\n switch (type) {\n case '>=':\n return '[from]';\n case '<=':\n return '[to]';\n case '=':\n return isArray ? '[]' : '';\n default:\n throw 'Type not supported!';\n }\n }\n}\n","import { ICrudFilter } from '@smartsoft001/crud-shell-angular';\n\nexport class QueryFilterService {\n static map(\n filter: ICrudFilter,\n queryParams: any,\n data: {\n id: string;\n key: string;\n text: string;\n },\n ): ICrudFilter {\n if (!queryParams[data.id]) return filter;\n\n const ids = queryParams[data.id].split(',');\n const texts = queryParams[data.text].split(',');\n\n filter.offset = 0;\n filter.query = [\n ...(filter?.query ? filter.query : []).filter((q) => q.key !== data.key),\n {\n key: data.key,\n type: '=',\n value: ids.map((id: string, i: number) => {\n return {\n id: id,\n text: texts[i],\n selected: true,\n };\n }),\n hidden: true,\n },\n ];\n\n return filter;\n }\n}\n","import { ConfigsFacade } from '../+state/configs.facade';\nimport { AuthStorageService } from './auth-storage/auth-storage.service';\nimport { ConfigsService } from './configs/configs.service';\nimport { ContrastService } from './contrast/contrast.service';\nimport { DictionaryService } from './dictionary/dictionary.service';\nimport { FileUrlService } from './file-url/file-url.service';\nimport { GlobalService } from './global/global.service';\nimport { MetaService } from './meta/meta.service';\nimport { ModalService } from './modal/modal.service';\nimport { SearchService } from './search/search.service';\nimport { SeoService } from './seo/seo.service';\nimport { SettingsService } from './settings/settings.service';\nimport { StyleService } from './style/style.service';\nimport { TranslationService } from './translation/translation.service';\nimport { WcagService } from './wcag/wcag.service';\n\nexport * from './dictionary/dictionary.service';\nexport * from './configs/configs.service';\nexport * from './crud/crud-base.service';\nexport * from './auth-storage/auth-storage.service';\nexport * from './translation/translation.service';\nexport * from './global/global.service';\nexport * from './file-url/file-url.service';\nexport * from './settings/settings.service';\nexport * from './wcag/wcag.service';\nexport * from './contrast/contrast.service';\nexport * from './meta/meta.service';\nexport * from './seo/seo.service';\nexport * from './style/style.service';\nexport * from './modal/modal.service';\nexport * from './modal/modal-ref';\nexport * from './search/search.service';\nexport * from './query-filter/query-filter.service';\n\nexport const SERVICES = [\n DictionaryService,\n ConfigsService,\n ConfigsFacade,\n AuthStorageService,\n TranslationService,\n GlobalService,\n FileUrlService,\n SettingsService,\n WcagService,\n ContrastService,\n MetaService,\n SeoService,\n StyleService,\n ModalService,\n SearchService,\n];\n","import { inject, Injectable, signal, WritableSignal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ReduxAction } from '@smartsoft001/angular';\n\nimport { Config, Page } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsService } from '../services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ConfigsFacade {\n private service = inject(ConfigsService);\n private sanitizer = inject(DomSanitizer);\n\n private static _source: WritableSignal<Config | null> = signal<Config | null>(\n null,\n );\n\n get data(): Config | null {\n return ConfigsFacade._source();\n }\n\n @ReduxAction()\n getPage(id: number | 'home'): Promise<Page> {\n return this.service.getPage(id).then((page: Page) => {\n if (!page) return page;\n\n return {\n ...page,\n content: this.sanitizer.bypassSecurityTrustHtml(page.content),\n };\n });\n }\n\n @ReduxAction()\n init(): Promise<Config> {\n return this.service.get().then((config: Config) => {\n ConfigsFacade._source.set(config);\n return config;\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { AppBaseComponent } from '@smartsoft001/angular';\n\n@Component({\n selector: 'smart-mobilems-app',\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n})\nexport class AppComponent extends AppBaseComponent {}\n","<ng-content select=\"header\"></ng-content>\n\n<main>\n <router-outlet></router-outlet>\n</main>\n\n<ng-content select=\"footer\"></ng-content>\n","import { Directive } from '@angular/core';\nimport { PageBaseComponent } from '@smartsoft001/angular';\n\n@Directive()\nexport class PageComponent extends PageBaseComponent {}\n","import {\n AfterContentInit,\n computed,\n contentChild,\n Directive,\n inject,\n TemplateRef,\n} from '@angular/core';\nimport { BaseComponent } from '@smartsoft001/angular';\nimport {\n CrudFacade,\n ICrudFilter,\n ICrudFilterQueryItem,\n} from '@smartsoft001/crud-shell-angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport * as _ from 'lodash';\nimport { Debounce } from 'lodash-decorators';\n\nimport { MenuItem } from '@smartsoft001-mobilems/models';\n\nexport type FilterType = string | string[] | MenuItem | MenuItem[] | undefined;\n\nexport class FiltersContext<T extends IEntity<string>> extends BaseComponent {\n set searchText(val: string | undefined) {\n if (this.facade.filter() && this.facade.filter()?.searchText === val)\n return;\n this.refresh({\n searchText: val,\n offset: 0,\n });\n }\n get searchText() {\n return this.facade.filter()?.searchText;\n }\n\n set page(val: number) {\n const filter = this.facade.filter();\n const offset = filter?.limit ? filter?.limit * val : 0;\n if (filter && filter.offset === offset) return;\n this.refresh({\n offset: offset,\n });\n }\n get page() {\n const filter = this.facade.filter();\n if (!filter) return 1;\n if (!filter.offset || !filter.limit) return 1;\n\n return filter.offset / filter.limit;\n }\n\n set limit(val: number) {\n const filter = this.facade.filter();\n if (filter && filter.limit === val) return;\n this.refresh({\n limit: val,\n offset: 0,\n });\n }\n get limit() {\n const filter = this.facade.filter();\n if (!filter) return 20;\n if (!filter.limit) return 20;\n\n return filter.limit;\n }\n\n set sortBy(val: string | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortBy === val) return;\n this.refresh({\n sortBy: val,\n });\n }\n get sortBy() {\n return this.facade.filter()?.sortBy;\n }\n\n set query(val: ICrudFilterQueryItem[] | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.query === val) return;\n this.refresh({\n query: val,\n });\n }\n get query() {\n return this.facade.filter()?.query;\n }\n\n set sortDesc(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortDesc === val) return;\n this.refresh({\n sortDesc: val,\n });\n }\n get sortDesc() {\n return this.facade.filter()?.sortDesc;\n }\n\n set sort(val: { by?: string; desc?: boolean } | undefined) {\n const filter = this.facade.filter();\n if (filter && filter.sortBy === val) return;\n this.refresh({\n sortBy: val?.by,\n sortDesc: val?.desc,\n });\n }\n\n get sort() {\n return {\n by: this.facade.filter()?.sortBy,\n desc: this.facade.filter()?.sortDesc,\n };\n }\n\n set onlyImage(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (!val && this.onlyImage && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(q.type === '=' && q.key === 'onlyImage'),\n )\n : [];\n\n this.refresh({\n query: [...result],\n });\n }\n\n if (val && !this.onlyImage && filter) {\n const result = filter.query\n ? filter.query.filter(\n (q: ICrudFilterQueryItem) =>\n !(q.type === '=' && q.key === 'onlyImage'),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'onlyImage',\n value: 1,\n hidden: true,\n },\n ],\n });\n }\n }\n get onlyImage() {\n return this.facade\n .filter()\n ?.query?.some(\n (q: ICrudFilterQueryItem) =>\n q.type === '=' && q.key === 'onlyImage' && q.value === 1,\n );\n }\n\n set exposure(val: boolean | undefined) {\n const filter = this.facade.filter();\n if (!val && this.exposure && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'\n ),\n )\n : [];\n\n this.refresh({\n query: [...result],\n });\n }\n\n if (val && !this.exposure && filter) {\n const result = filter.query\n ? filter.query?.filter(\n (q: ICrudFilterQueryItem) =>\n !(\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'\n ),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'locationType',\n value: 'Ekspozycja',\n hidden: true,\n },\n ],\n });\n }\n }\n get exposure() {\n return this.facade\n .filter()\n ?.query?.some(\n (q: ICrudFilterQueryItem) =>\n q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja',\n );\n }\n\n set creators(val: FilterType) {\n this.filterSet(this.creators, val, 'creators', '=');\n }\n get creators() {\n return this.filterGet('=', 'creators');\n }\n\n set createDatesFrom(val: FilterType) {\n this.filterSet(this.createDatesFrom, val, 'createDates', '>=');\n }\n get createDatesFrom() {\n return this.filterGet('>=', 'createDates');\n }\n\n set createDatesTo(val: FilterType) {\n this.filterSet(this.createDatesTo, val, 'createDates', '<=');\n }\n get createDatesTo() {\n return this.filterGet('<=', 'createDates');\n }\n\n set publicationDateFrom(val: FilterType) {\n this.filterSet(this.publicationDateFrom, val, 'publicationDate', '>=');\n }\n get publicationDateFrom() {\n return this.filterGet('>=', 'publicationDate');\n }\n\n set publicationDateTo(val: FilterType) {\n this.filterSet(this.publicationDateTo, val, 'publicationDate', '<=');\n }\n get publicationDateTo() {\n return this.filterGet('<=', 'publicationDate');\n }\n\n set createPlaces(val: FilterType) {\n this.filterSet(this.createPlaces, val, 'createPlaces', '=');\n }\n get createPlaces() {\n return this.filterGet('=', 'createPlaces');\n }\n\n set keywords(val: FilterType) {\n this.filterSet(this.keywords, val, 'keywords', '=');\n }\n get keywords() {\n return this.filterGet('=', 'keywords');\n }\n\n set techniques(val: FilterType) {\n this.filterSet(this.techniques, val, 'techniques', '=');\n }\n get techniques() {\n return this.filterGet('=', 'techniques');\n }\n\n set materials(val: FilterType) {\n this.filterSet(this.materials, val, 'materials', '=');\n }\n get materials() {\n return this.filterGet('=', 'materials');\n }\n\n set category(val: FilterType) {\n this.filterSet(this.category, val, 'category', '=');\n }\n get category() {\n return this.filterGet('=', 'category');\n }\n\n set department(val: FilterType) {\n this.filterSet(this.department, val, 'department', '=');\n }\n get department() {\n return this.filterGet('=', 'department');\n }\n\n set location(val: FilterType) {\n this.filterSet(this.category, val, 'location', '=');\n }\n get location() {\n return this.filterGet('=', 'location');\n }\n\n set locationType(val: FilterType) {\n this.filterSet(this.category, val, 'locationType', '=');\n }\n get locationType() {\n return this.filterGet('=', 'locationType');\n }\n\n set cycles(val: FilterType) {\n this.filterSet(this.cycles, val, 'cycles', '=');\n }\n get cycles() {\n return this.filterGet('=', 'cycles');\n }\n\n set authors(val: FilterType) {\n this.filterSet(this.authors, val, 'authors', '=');\n }\n get authors() {\n return this.filterGet('=', 'authors');\n }\n\n set formFeature(val: FilterType) {\n this.filterSet(this.formFeature, val, 'formFeature', '=');\n }\n get formFeature() {\n return this.filterGet('=', 'formFeature');\n }\n\n set targetGroups(val: FilterType) {\n this.filterSet(this.targetGroups, val, 'targetGroups', '=');\n }\n get targetGroups() {\n return this.filterGet('=', 'targetGroups');\n }\n\n set template(val: FilterType) {\n this.filterSet(this.template, val, 'template', '=');\n }\n get template() {\n return this.filterGet('=', 'template');\n }\n\n set types(val: FilterType) {\n this.filterSet(this.types, val, 'types', '=');\n }\n get types() {\n return this.filterGet('=', 'types');\n }\n\n set extraNumbersValue(val: FilterType) {\n this.filterSet(this.creators, val, 'extraNumbersValue', '=');\n }\n get extraNumbersValue() {\n return this.filterGet('=', 'extraNumbersValue');\n }\n\n set inventoryNumber(val: FilterType) {\n this.filterSet(this.inventoryNumber, val, 'inventoryNumber', '=');\n }\n get inventoryNumber() {\n return this.filterGet('=', 'inventoryNumber');\n }\n\n set filters(\n filters:\n | Array<{\n val: FilterType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>';\n }>\n | undefined,\n ) {\n this.multipleFilterSet(\n filters?.map(({ val, key, type }) => ({\n currentValue: this.filterGet(type, key),\n val,\n key,\n type,\n })) ?? undefined,\n );\n }\n\n totalCount = computed(() => this.facade.totalCount() || 0);\n\n constructor(private readonly facade: CrudFacade<T>) {\n super();\n }\n\n @Debounce(500)\n private refresh(filter: ICrudFilter): void {\n let change = false;\n\n Object.keys(filter).forEach((key) => {\n if (\n !_.isEqual(\n this.facade.filter()?.[key as keyof ICrudFilter],\n filter?.[key as keyof ICrudFilter],\n )\n )\n change = true;\n });\n\n if (!change) return;\n\n this.facade.read({\n ...this.facade.filter(),\n ...filter,\n });\n }\n\n private filterGet(key: string, type: string) {\n return this.facade\n .filter()\n ?.query?.find(\n (q: ICrudFilterQueryItem) => q.type === key && q.key === type,\n )?.value;\n }\n\n private filterSet(\n currentValue: FilterType,\n val: FilterType,\n key: string,\n type: '=' | '!=' | '>=' | '<=' | '<' | '>',\n ) {\n const filter = this.facade.filter();\n if (!val && filter) {\n const result = filter?.query\n ? filter?.query?.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n )\n : [];\n\n this.refresh({\n offset: 0,\n query: [...result],\n });\n }\n\n if (val && currentValue !== val && filter) {\n const result = filter?.query\n ? filter?.query?.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n )\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: type,\n key: key,\n value: val,\n hidden: true,\n },\n ],\n });\n }\n }\n\n private multipleFilterSet(\n filters:\n | Array<{\n currentValue: FilterType;\n val: FilterType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>';\n }>\n | undefined,\n ) {\n const filter = this.facade.filter();\n if (!filter) return;\n if (!filters) return;\n\n let resultQuery = filter.query ? [...filter.query] : [];\n let hasChanges = false;\n\n for (const { currentValue, val, key, type } of filters) {\n if (!val) {\n const newQuery = resultQuery.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n );\n if (newQuery.length !== resultQuery.length) {\n resultQuery = newQuery;\n hasChanges = true;\n }\n } else if (val && currentValue !== val) {\n resultQuery = resultQuery.filter(\n (q: ICrudFilterQueryItem) => !(q.type === type && q.key === key),\n );\n resultQuery.push({\n type: type,\n key: key,\n value: val,\n hidden: true,\n });\n hasChanges = true;\n }\n }\n\n if (hasChanges) {\n this.refresh({\n offset: 0,\n query: resultQuery,\n });\n }\n }\n}\n\n@Directive({\n selector: 'smart-mobilems-filters',\n})\nexport abstract class FiltersBaseComponent<T extends IEntity<string>>\n implements AfterContentInit\n{\n private facade = inject(CrudFacade<T>);\n context?: FiltersContext<T>;\n\n contentTpl = contentChild<TemplateRef<unknown> | undefined>('contentTpl');\n\n ngAfterContentInit(): void {\n this.context = new FiltersContext(this.facade);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject } from '@angular/core';\n\n@Directive()\nexport class ScrollTopComponent {\n windowScrolled!: boolean;\n\n constructor(@Inject(DOCUMENT) private document: Document) {}\n\n @HostListener('window:scroll', [])\n onWindowScroll(): void {\n if (\n window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 200\n ) {\n this.windowScrolled = true;\n } else if (\n (this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 50\n ) {\n this.windowScrolled = false;\n }\n }\n\n scrollToTop(): void {\n const scrollOptions: ScrollToOptions = {\n top: 0,\n left: 0,\n behavior: 'smooth',\n };\n\n window.scrollTo(scrollOptions);\n }\n}\n","import {\n input,\n signal,\n effect,\n inject,\n OnDestroy,\n ElementRef,\n viewChild,\n OnInit,\n NgZone,\n computed,\n Directive,\n} from '@angular/core';\nimport Swiper from 'swiper';\nimport { Navigation, Autoplay } from 'swiper/modules';\n\nimport { FileUrlService } from '../../services';\n\nexport declare class PageSlide {\n id: number;\n title: string;\n subTitle?: string;\n textPosition: 'left' | 'right';\n imageDesktop: string;\n imageTablet: string;\n imageMobile: string;\n}\n\n@Directive()\nexport class SliderBaseComponent implements OnDestroy, OnInit {\n private readonly fileUrlService = inject(FileUrlService);\n\n readonly slides = input<PageSlide[]>([]);\n\n readonly autoplayEnabled = signal(true);\n readonly windowWidth = signal(\n typeof window !== 'undefined' ? window.innerWidth : 1024,\n );\n\n // Computed signal that recalculates images when windowWidth or slides change\n readonly slideImages = computed(() => {\n const width = this.windowWidth();\n const slides = this.slides();\n\n return slides.map((slide) => {\n let imageSource: string;\n\n if (width < 768) {\n imageSource =\n slide.imageMobile || slide.imageTablet || slide.imageDesktop;\n } else if (width < 1024) {\n imageSource =\n slide.imageTablet || slide.imageDesktop || slide.imageMobile;\n } else {\n imageSource =\n slide.imageDesktop || slide.imageTablet || slide.imageMobile;\n }\n\n if (!imageSource) {\n return '/gfx/no-image.png';\n }\n\n return this.fileUrlService.get(imageSource);\n });\n });\n\n private readonly ngZone = inject(NgZone);\n private resizeListener?: () => void;\n\n private readonly swiperContainer =\n viewChild<ElementRef<HTMLElement>>('swiperContainer');\n private swiper?: Swiper;\n\n constructor() {\n effect(() => {\n const slides = this.slides();\n if (this.swiper && slides.length > 0) {\n this.swiper.update();\n }\n });\n }\n\n ngOnInit(): void {\n this.initSwiper();\n\n // Listen to window resize to recreate swiper completely\n this.resizeListener = () => {\n this.ngZone.run(() => {\n this.windowWidth.set(window.innerWidth);\n this.recreateSwiper();\n });\n };\n window.addEventListener('resize', this.resizeListener);\n }\n\n ngOnDestroy(): void {\n if (this.resizeListener && typeof window !== 'undefined') {\n window.removeEventListener('resize', this.resizeListener);\n }\n if (this.swiper) {\n this.swiper.destroy(true, true);\n }\n }\n\n toggleAutoplay(): void {\n this.autoplayEnabled.update((current) => !current);\n\n if (this.swiper) {\n if (this.autoplayEnabled()) {\n this.swiper.params.autoplay = {\n delay: 5000,\n disableOnInteraction: false,\n };\n this.swiper.autoplay.start();\n } else {\n this.swiper.autoplay.stop();\n }\n }\n }\n\n getImage(slide: PageSlide): string {\n let imageSource: string;\n\n if (typeof window !== 'undefined') {\n const width = window.innerWidth;\n if (width < 768) {\n imageSource =\n slide.imageMobile || slide.imageTablet || slide.imageDesktop;\n } else if (width < 1024) {\n imageSource =\n slide.imageTablet || slide.imageDesktop || slide.imageMobile;\n } else {\n imageSource =\n slide.imageDesktop || slide.imageTablet || slide.imageMobile;\n }\n } else {\n imageSource =\n slide.imageDesktop || slide.imageTablet || slide.imageMobile;\n }\n\n // Return the image source directly if it's a URL, otherwise use FileUrlService\n if (!imageSource) {\n return '/gfx/no-image.png';\n }\n\n return this.fileUrlService.get(imageSource);\n }\n\n private initSwiper(): void {\n const container = this.swiperContainer();\n if (!container) return;\n // if (isPlatformServer(this.platformId)) return;\n\n this.swiper = new Swiper(container.nativeElement, {\n modules: [Navigation, Autoplay],\n loop: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n slidesPerView: 1,\n spaceBetween: 0,\n });\n }\n\n private recreateSwiper(): void {\n const container = this.swiperContainer();\n if (!container) return;\n\n // Destroy existing swiper\n if (this.swiper) {\n this.swiper.destroy(true, true);\n this.swiper = undefined;\n }\n\n // Small delay to ensure DOM is updated after signal change\n setTimeout(() => {\n this.createSwiper(container.nativeElement);\n }, 0);\n }\n\n private createSwiper(element: HTMLElement): void {\n this.swiper = new Swiper(element, {\n modules: [Navigation, Autoplay],\n loop: true,\n autoplay: {\n delay: 5000,\n disableOnInteraction: false,\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n slidesPerView: 1,\n spaceBetween: 0,\n });\n }\n}\n","import {\n effect,\n inject,\n OnDestroy,\n signal,\n OnInit,\n Directive,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\n\nimport { ITab } from '@smartsoft001-mobilems/models';\n\nimport { SearchService } from '../../services';\n\n@Directive()\nexport class SearchBaseComponent<SEARCH_PATH extends string | 'obiekty'>\n implements OnDestroy, OnInit\n{\n private readonly route = inject(ActivatedRoute);\n private readonly router = inject(Router);\n private readonly service = inject(SearchService);\n private readonly params = toSignal(this.route.params);\n\n text = signal<string>('');\n data = signal<any>(null);\n tabs = signal<ITab[]>([]);\n searchMap: {\n fallbackId: string;\n fallbackLabel: string;\n fallbackProperty: string;\n searchTabs: Array<{\n id: string;\n label: string;\n property: string;\n }>;\n } = {\n fallbackId: 'obiekty',\n fallbackLabel: 'Obiekty',\n fallbackProperty: 'objects',\n searchTabs: [],\n };\n\n readonly activeTab = signal<SEARCH_PATH>(\n this.searchMap.fallbackId as SEARCH_PATH,\n );\n\n constructor() {\n effect(async () => {\n const { text } = this.params() as any;\n this.text.set(text);\n\n const data: any = await firstValueFrom(\n this.service.search(text ? text : '_'),\n );\n\n let path = this.searchMap.fallbackId as SEARCH_PATH;\n\n const tabs: ITab[] = [];\n\n for (const tab of this.searchMap.searchTabs) {\n if (data[tab.property]) {\n tabs.push({\n id: tab.id,\n label: `${tab.label} (${data[tab.property]})`,\n });\n }\n }\n\n if (!tabs.length) {\n tabs.push({\n id: this.searchMap.fallbackId,\n label: `${this.searchMap.fallbackLabel} (${data[this.searchMap.fallbackProperty]})`,\n });\n }\n\n for (const tab of this.searchMap.searchTabs) {\n if (data[tab.property]) {\n path = tab.id as SEARCH_PATH;\n break;\n }\n }\n\n this.data.set(data);\n this.tabs.set(tabs);\n this.activeTab.set(path);\n\n await this.router.navigate([`/wyszukaj/${text}/${path}`]);\n });\n\n effect(() => {\n const activeTab = this.activeTab();\n const text = this.text();\n\n this.router.navigate([`/wyszukaj/${text}/${activeTab}`]);\n });\n }\n\n ngOnInit() {\n this.service.setEnabled(true);\n }\n\n ngOnDestroy() {\n this.service.setEnabled(false);\n }\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport { MsFileFromFeature } from '@smartsoft001-mobilems/models';\nimport { MsObject } from '@smartsoft001-mobilems/objects-domain';\n\n@Directive()\nexport class MediaTabBaseComponent<MediaType> {\n item = input.required<MsObject>();\n formFeatureTypes = input.required<MsFileFromFeature[]>();\n\n readonly models = computed<MediaType[]>(() => {\n const obj = this.item();\n let filtered: MediaType[] = [];\n\n if (obj.additionalImages && Array.isArray(obj.additionalImages)) {\n filtered = obj.additionalImages\n .filter((file) =>\n file?.formFeature\n ? this.formFeatureTypes().includes(file.formFeature)\n : false,\n )\n .sort(\n (a, b) => (a?.position ?? 0) - (b?.position ?? 0),\n ) as unknown as MediaType[];\n }\n\n return filtered;\n });\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n AfterViewInit,\n computed,\n Directive,\n effect,\n inject,\n input,\n model,\n NgZone,\n OnDestroy,\n output,\n signal,\n} from '@angular/core';\n\nimport { MsFile } from '@smartsoft001-mobilems/models';\n\nimport { FileUrlService } from '../../services';\n\n@Directive({\n host: {\n '(document:keydown)': 'handleKeyboardEvent($event)',\n '(mousedown)': 'handleMouseDown($event)',\n '(mousemove)': 'handleMouseMove($event)',\n '(mouseup)': 'handleMouseUp()',\n },\n})\nexport class GalleryFullscreenBaseComponent\n implements AfterViewInit, OnDestroy\n{\n private readonly fileUrlService = inject(FileUrlService);\n private readonly document = inject(DOCUMENT);\n private readonly ngZone = inject(NgZone);\n\n readonly items =\n input<Array<{ title?: string; image?: MsFile; file?: MsFile }>>();\n readonly alt = input<string>('');\n readonly id = input<string>('imagePreview');\n readonly selectedIndex = model(0);\n\n closeChange = output();\n\n // Touch pinch gesture tracking\n private touchStartDistance = 0;\n private touchStartZoom = 1;\n // Pinch midpoint (client coords) and transform at start of pinch\n private pinchStartClientX = 0;\n private pinchStartClientY = 0;\n private pinchStartTransformX = 0;\n private pinchStartTransformY = 0;\n\n // Pan/drag gesture tracking\n readonly isPanning = signal(false);\n private panStartX = 0;\n private panStartY = 0;\n private panStartTransformX = 0;\n private panStartTransformY = 0;\n private touchStartedOnButton = false;\n readonly canGoPrevious = computed(() => this.fullscreenIndex() > 0);\n readonly canGoNext = computed(() => {\n const items = this.items();\n return items && this.fullscreenIndex() < items.length - 1;\n });\n\n // Fullscreen state\n readonly fullscreenIndex = signal(0);\n readonly zoomLevel = signal(1);\n readonly rotation = signal(0);\n\n readonly transform = computed(() => {\n const trans = this.imageTransform();\n return `\n translate(${trans.x}px, ${trans.y}px)\n scale(${this.zoomLevel()})\n rotate(${this.rotation()}deg)\n `;\n });\n readonly imageTransform = signal({ x: 0, y: 0 });\n\n // Loading indicator for fullscreen image\n readonly isFullscreenLoading = signal(true);\n\n readonly fullscreenItem = computed(() => {\n const items = this.items();\n const index = this.fullscreenIndex();\n if (!items) return null;\n return items[index] || null;\n });\n\n // OpenSeadragon viewer instance\n private osdViewer: any = null;\n private openseadragonModule: any = null;\n readonly osdContainerId = computed(() => `osd-viewer-${this.id()}`);\n\n constructor() {\n // Reset fullscreen zoom when changing images\n effect(() => {\n this.fullscreenIndex();\n this.zoomLevel.set(1);\n this.imageTransform.set({ x: 0, y: 0 });\n this.rotation.set(0);\n\n // Load new image in OpenSeadragon if viewer exists\n if (this.osdViewer) {\n const item = this.fullscreenItem();\n if (item?.image) {\n this.loadOsdImage(item.image);\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initFullscreen();\n }\n\n ngOnDestroy(): void {\n this.stopLoading();\n this.zoomLevel.set(1);\n this.imageTransform.set({ x: 0, y: 0 });\n this.document.body.classList.remove('smart-gallery-fullscreen-active');\n\n // Destroy OpenSeadragon viewer\n if (this.osdViewer) {\n this.ngZone.runOutsideAngular(() => {\n try {\n this.osdViewer.destroy();\n } catch (e) {\n // Ignore errors\n }\n });\n this.osdViewer = null;\n }\n }\n\n async initFullscreen(): Promise<void> {\n this.fullscreenIndex.set(this.selectedIndex());\n this.document.body.classList.add('smart-gallery-fullscreen-active');\n\n const item = this.fullscreenItem();\n if (!item?.image) return;\n\n try {\n // Lazy load OpenSeadragon\n if (!this.openseadragonModule) {\n this.openseadragonModule = await import('openseadragon');\n }\n\n // Wait for template to render\n await new Promise((resolve) => setTimeout(resolve, 0));\n\n const container = this.document.getElementById(this.osdContainerId());\n if (!container) {\n this.startLoading();\n return;\n }\n\n // Create viewer outside Angular zone for better performance\n if (!this.osdViewer) {\n this.osdViewer = this.ngZone.runOutsideAngular(() => {\n const viewer = this.openseadragonModule.default({\n element: container,\n prefixUrl: 'https://openseadragon.github.io/openseadragon/images/',\n animationTime: 0.5,\n blendTime: 0.1,\n constrainDuringPan: true,\n maxZoomPixelRatio: 2,\n minZoomLevel: 0,\n visibilityRatio: 1,\n zoomPerScroll: 1.2,\n showNavigator: false,\n showNavigationControl: false,\n gestureSettingsMouse: {\n scrollToZoom: true,\n clickToZoom: false,\n dblClickToZoom: true,\n pinchToZoom: true,\n flickEnabled: true,\n flickMinSpeed: 0.5,\n flickMomentum: 0.25,\n },\n gestureSettingsTouch: {\n scrollToZoom: false,\n clickToZoom: false,\n dblClickToZoom: true,\n pinchToZoom: true,\n flickEnabled: true,\n flickMinSpeed: 0.5,\n flickMomentum: 0.25,\n },\n });\n\n // Sync zoom level with component state (run inside Angular zone)\n viewer.addHandler('open', () => {\n this.ngZone.run(() => {\n this.stopLoading();\n try {\n const viewport = viewer.viewport;\n viewport.setRotation(0);\n viewport.goHome(true);\n\n this.rotation.set(0);\n const homeZoom = viewer.viewport.getHomeZoom();\n\n // Dynamically set minZoomLevel to 50% of home zoom\n // This ensures all images can zoom out to exactly 50% regardless of aspect ratio\n viewer.viewport.minZoomLevel = homeZoom * 0.5;\n\n const currentZoom = viewer.viewport.getZoom();\n // Normalize: 100% = fit to screen (home zoom)\n const normalizedZoom = currentZoom / homeZoom;\n this.zoomLevel.set(normalizedZoom);\n } catch (e) {\n this.zoomLevel.set(1);\n this.rotation.set(0);\n }\n });\n });\n\n viewer.addHandler('zoom', () => {\n this.ngZone.run(() => {\n try {\n const homeZoom = viewer.viewport.getHomeZoom();\n const currentZoom = viewer.viewport.getZoom();\n const normalizedZoom = currentZoom / homeZoom;\n this.zoomLevel.set(normalizedZoom);\n } catch (e) {\n // Ignore errors\n }\n });\n });\n\n return viewer;\n });\n }\n\n // Load image into OpenSeadragon\n await this.loadOsdImage(item.image);\n } catch (error) {\n console.error('Failed to initialize OpenSeadragon:', error);\n this.startLoading();\n }\n }\n\n // Called from template when fullscreen image loads or fails\n onFullscreenImageLoad(): void {\n this.stopLoading();\n }\n\n startLoading(): void {\n this.isFullscreenLoading.set(true);\n }\n\n stopLoading(): void {\n this.isFullscreenLoading.set(false);\n }\n\n closeFullscreen() {\n this.closeChange.emit();\n }\n\n rotateRight(): void {\n this.rotation.update((r) => (r + 90) % 360);\n\n if (this.osdViewer) {\n this.ngZone.runOutsideAngular(() => {\n try {\n const viewport = this.osdViewer.viewport;\n\n viewport.setRotation(this.rotation());\n viewport.applyConstraints();\n } catch (e) {\n return;\n }\n });\n }\n }\n\n handleKeyboardEvent(event: KeyboardEvent): void {\n switch (event.key) {\n case 'Escape':\n this.closeFullscreen();\n event.preventDefault();\n break;\n case 'ArrowLeft':\n this.previousImage();\n event.preventDefault();\n break;\n case 'ArrowRight':\n this.nextImage();\n event.preventDefault();\n break;\n case '+':\n case '=':\n this.zoomIn();\n event.preventDefault();\n break;\n case '-':\n this.zoomOut();\n event.preventDefault();\n break;\n case '0':\n this.resetZoom();\n event.preventDefault();\n break;\n }\n }\n\n handleTouchStart(event: TouchEvent): boolean {\n // Check if touch started on a button\n const target = event.target as HTMLElement;\n this.touchStartedOnButton = !!target.closest('button');\n\n if (this.touchStartedOnButton) return true;\n\n // If OpenSeadragon is active, let it handle gestures\n if (this.osdViewer) return false;\n\n event.preventDefault();\n event.stopPropagation();\n\n // Handle pinch gesture (two fingers)\n if (event.touches.length === 2) {\n const touch1 = event.touches[0];\n const touch2 = event.touches[1];\n\n this.touchStartDistance = this.getDistance(touch1, touch2);\n this.touchStartZoom = this.zoomLevel();\n this.isPanning.set(false);\n\n // store pinch midpoint (client coordinates) and current transform to keep the midpoint fixed while scaling\n const midX = (touch1.clientX + touch2.clientX) / 2;\n const midY = (touch1.clientY + touch2.clientY) / 2;\n this.pinchStartClientX = midX;\n this.pinchStartClientY = midY;\n this.pinchStartTransformX = this.imageTransform().x;\n this.pinchStartTransformY = this.imageTransform().y;\n } else if (event.touches.length === 1 && this.zoomLevel() > 1) {\n // Handle pan gesture only if zoomed in\n this.isPanning.set(true);\n this.panStartX = event.touches[0].clientX;\n this.panStartY = event.touches[0].clientY;\n this.panStartTransformX = this.imageTransform().x;\n this.panStartTransformY = this.imageTransform().y;\n }\n\n return false;\n }\n\n handleTouchMove(event: TouchEvent): boolean {\n if (this.touchStartedOnButton) return true;\n\n // If OpenSeadragon is active, let it handle gestures\n if (this.osdViewer) return false;\n\n event.preventDefault();\n event.stopPropagation();\n\n // Handle pinch zoom (two fingers)\n if (event.touches.length === 2 && this.touchStartDistance > 0) {\n const touch1 = event.touches[0];\n const touch2 = event.touches[1];\n\n const currentDistance = this.getDistance(touch1, touch2);\n const scale = currentDistance / this.touchStartDistance;\n const newZoom = Math.max(0.5, Math.min(5, this.touchStartZoom * scale));\n\n // adjust transform so the pinch midpoint remains under the same screen point\n const el = this.document.getElementById(this.id());\n if (el) {\n const rect = el.getBoundingClientRect();\n\n // relative point inside the element (in element pixels) at start of pinch\n const relX =\n (this.pinchStartClientX - rect.left - this.pinchStartTransformX) /\n this.touchStartZoom;\n const relY =\n (this.pinchStartClientY - rect.top - this.pinchStartTransformY) /\n this.touchStartZoom;\n\n const newTx = this.pinchStartClientX - rect.left - relX * newZoom;\n const newTy = this.pinchStartClientY - rect.top - relY * newZoom;\n\n this.imageTransform.set({ x: newTx, y: newTy });\n }\n\n this.zoomLevel.set(newZoom);\n }\n // Handle pan/drag (one finger while zoomed)\n else if (\n event.touches.length === 1 &&\n this.isPanning() &&\n this.zoomLevel() > 1\n ) {\n const deltaX = event.touches[0].clientX - this.panStartX;\n const deltaY = event.touches[0].clientY - this.panStartY;\n\n this.imageTransform.set({\n x: this.panStartTransformX + deltaX,\n y: this.panStartTransformY + deltaY,\n });\n }\n\n return false;\n }\n\n handleTouchEnd(): void {\n this.touchStartDistance = 0;\n this.touchStartZoom = 1;\n this.isPanning.set(false);\n }\n\n handleMouseDown(event: MouseEvent): false {\n if (this.zoomLevel() <= 1) return false;\n\n event.preventDefault();\n this.isPanning.set(true);\n this.panStartX = event.clientX;\n this.panStartY = event.clientY;\n this.panStartTransformX = this.imageTransform().x;\n this.panStartTransformY = this.imageTransform().y;\n return false;\n }\n\n handleMouseMove(event: MouseEvent): false {\n if (!this.isPanning() || this.zoomLevel() <= 1) return false;\n\n event.preventDefault();\n const deltaX = event.clientX - this.panStartX;\n const deltaY = event.clientY - this.panStartY;\n\n requestAnimationFrame(() => {\n this.imageTransform.set({\n x: this.panStartTransformX + deltaX,\n y: this.panStartTransformY + deltaY,\n });\n });\n\n return false;\n }\n\n handleMouseUp(): void {\n this.isPanning.set(false);\n }\n\n handleWheel(event: WheelEvent): false {\n // If OpenSeadragon is active, let it handle wheel events\n if (this.osdViewer) {\n event.preventDefault();\n event.stopPropagation();\n return false;\n }\n return false;\n }\n\n previousImage(): void {\n if (this.canGoPrevious()) {\n // start loading when navigating\n this.startLoading();\n this.fullscreenIndex.update((i) => i - 1);\n }\n }\n\n nextImage(): void {\n if (this.canGoNext()) {\n // start loading when navigating\n this.startLoading();\n this.fullscreenIndex.update((i) => i + 1);\n }\n }\n\n selectThumbnail(index: number): void {\n if (index === this.fullscreenIndex()) {\n // same index — no navigation, but ensure loading is false\n this.stopLoading();\n return;\n }\n // start loading when selecting thumbnail\n this.startLoading();\n this.fullscreenIndex.set(index);\n }\n\n zoomIn(): void {\n if (this.osdViewer) {\n this.ngZone.runOutsideAngular(() => {\n try {\n const viewport = this.osdViewer.viewport;\n viewport.zoomBy(1.2);\n viewport.applyConstraints();\n this.ngZone.run(() => {\n const homeZoom = viewport.getHomeZoom();\n const currentZoom = viewport.getZoom();\n this.zoomLevel.set(currentZoom / homeZoom);\n });\n } catch (e) {\n // Fallback to manual zoom\n this.ngZone.run(() => {\n this.zoomLevel.update((z) => Math.min(z + 0.5, 5));\n });\n }\n });\n return;\n }\n this.zoomLevel.update((z) => Math.min(z + 0.5, 5));\n }\n\n zoomOut(): void {\n if (this.osdViewer) {\n this.ngZone.runOutsideAngular(() => {\n try {\n const viewport = this.osdViewer.viewport;\n viewport.zoomBy(1 / 1.2);\n viewport.applyConstraints();\n this.ngZone.run(() => {\n const homeZoom = viewport.getHomeZoom();\n const currentZoom = viewport.getZoom();\n this.zoomLevel.set(currentZoom / homeZoom);\n });\n } catch (e) {\n // Fallback to manual zoom\n this.ngZone.run(() => {\n this.zoomLevel.update((z) => Math.max(z - 0.5, 0.5));\n });\n }\n });\n return;\n }\n this.zoomLevel.update((z) => Math.max(z - 0.5, 0.5));\n }\n\n resetZoom(): void {\n this.rotation.set(0);\n\n if (this.osdViewer) {\n this.ngZone.runOutsideAngular(() => {\n try {\n const viewport = this.osdViewer.viewport;\n // First reset rotation, then go home - order matters!\n viewport.setRotation(0);\n viewport.applyConstraints();\n viewport.goHome(true);\n viewport.applyConstraints();\n\n this.ngZone.run(() => {\n this.zoomLevel.set(1); // Home = 100%\n });\n } catch (e) {\n // Fallback to manual reset\n this.ngZone.run(() => {\n this.zoomLevel.set(1);\n this.imageTransform.set({ x: 0, y: 0 });\n });\n }\n });\n return;\n }\n this.zoomLevel.set(1);\n this.imageTransform.set({ x: 0, y: 0 });\n }\n\n async downloadImage(): Promise<void> {\n const item = this.fullscreenItem();\n if (!item?.image) return;\n\n const url = this.fileUrlService.get(item.image, 'noCache');\n const filename = `${item.image.id || 'image'}.${item.image.extension || 'jpg'}`;\n\n try {\n const response = await fetch(url);\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n\n const link = this.document.createElement('a');\n link.href = blobUrl;\n link.download = filename;\n link.click();\n\n URL.revokeObjectURL(blobUrl);\n } catch (error) {\n console.error('Failed to download image:', error);\n }\n }\n\n private async loadOsdImage(image: MsFile): Promise<void> {\n if (!this.osdViewer) return;\n\n const url = this.fileUrlService.get(image, 'noCache');\n\n this.ngZone.runOutsideAngular(() => {\n try {\n // Close any existing image\n try {\n this.osdViewer.close();\n } catch (e) {\n // Ignore errors\n }\n\n // Open the new image\n this.osdViewer.open({\n type: 'image',\n url: url,\n });\n } catch (error) {\n console.error('Failed to load image in OpenSeadragon:', error);\n this.ngZone.run(() => {\n this.stopLoading();\n });\n }\n });\n }\n\n private getDistance(touch1: Touch, touch2: Touch): number {\n const dx = touch1.clientX - touch2.clientX;\n const dy = touch1.clientY - touch2.clientY;\n return Math.sqrt(dx * dx + dy * dy);\n }\n}\n","import { Component, computed, inject } from '@angular/core';\n\nimport { ConfigPageType, ConfigMenuItem } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IFooterStaticPage {\n type: ConfigPageType.static;\n title: string;\n page: {\n id: number;\n title: string;\n };\n}\n\nexport interface IFooterConfig {\n theme?: {\n footer?: {\n menu?: ConfigMenuItem[];\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-footer',\n standalone: true,\n imports: [],\n template: ``,\n styles: [],\n})\nexport class FooterComponent {\n private configsFacade = inject(ConfigsFacade);\n\n readonly config = computed(() => this.configsFacade.data);\n readonly currentYear = computed(() => new Date().getFullYear());\n\n readonly staticPages = computed<IFooterStaticPage[]>(() => {\n const config = this.config();\n if (!config?.theme?.footer?.menu) return [];\n\n return config.theme.footer.menu.filter(\n (item): item is IFooterStaticPage => item.type === ConfigPageType.static,\n );\n });\n\n readonly hasStaticPages = computed(() => this.staticPages().length > 0);\n\n readonly menuItems = computed(() => {\n const config = this.config();\n return config?.theme?.footer?.menu ?? [];\n });\n\n readonly hasMenuItems = computed(() => this.menuItems().length > 0);\n\n getStaticPageById(id: number): IFooterStaticPage | undefined {\n return this.staticPages().find((page) => page.page.id === id);\n }\n\n getStaticPageTitle(id: number): string | undefined {\n return this.getStaticPageById(id)?.page.title;\n }\n\n updateConfig(_config: IFooterConfig): void {\n const current = this.config();\n if (!current) return;\n }\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport {\n Component,\n computed,\n inject,\n signal,\n PLATFORM_ID,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IHeaderUser {\n userID: string;\n [key: string]: unknown;\n}\n\nexport interface IHeaderConfig {\n theme?: {\n header?: {\n showWcagConfig?: boolean;\n showSearch?: boolean;\n showLocalCollection?: boolean;\n showLanguageSelector?: boolean;\n showUserAccount?: boolean;\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-header',\n standalone: true,\n imports: [],\n template: ``,\n styles: [],\n})\nexport class HeaderComponent {\n private configsFacade = inject(ConfigsFacade);\n private router = inject(Router);\n private platformId = inject(PLATFORM_ID);\n\n readonly config = computed(() => this.configsFacade.data);\n readonly isMobile = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return typeof window !== 'undefined' && window.innerWidth <= 640;\n });\n\n readonly showWcagConfig = signal<boolean>(false);\n readonly showSearchPanel = signal<boolean>(false);\n readonly user = signal<IHeaderUser | null>(null);\n readonly localCollectionCount = signal<number>(0);\n\n readonly headerConfig = computed(() => {\n const config = this.config();\n return (config?.theme as IHeaderConfig['theme']) ?? {};\n });\n\n readonly isWcagVisible = computed(() => {\n return (\n this.showWcagConfig() &&\n this.headerConfig()?.header?.showWcagConfig !== false\n );\n });\n\n readonly isSearchVisible = computed(() => {\n return this.headerConfig()?.header?.showSearch !== false;\n });\n\n readonly isLocalCollectionVisible = computed(() => {\n return this.headerConfig()?.header?.showLocalCollection !== false;\n });\n\n readonly isLanguageSelectorVisible = computed(() => {\n return this.headerConfig()?.header?.showLanguageSelector !== false;\n });\n\n readonly isUserAccountVisible = computed(() => {\n return this.headerConfig()?.header?.showUserAccount !== false;\n });\n\n toggleWcagConfig(): void {\n this.showWcagConfig.update((value) => !value);\n }\n\n toggleSearchPanel(): void {\n this.showSearchPanel.update((value) => !value);\n }\n\n onWcagCloseButtonEvent(closed: boolean): void {\n this.showWcagConfig.set(!closed);\n }\n\n onSearchPanelButtonEvent(opened: boolean): void {\n this.showSearchPanel.set(opened);\n }\n\n routeToLogin(): void {\n this.router.navigate(['/login']);\n }\n\n routeToUserAccount(): void {\n this.router.navigate(['/profile']);\n }\n\n routeToLocalCollection(): void {\n this.router.navigate(['/my-collection']);\n }\n\n setUser(user: IHeaderUser | null): void {\n this.user.set(user);\n }\n\n setLocalCollectionCount(count: number): void {\n this.localCollectionCount.set(count);\n }\n\n getUser(): IHeaderUser | null {\n return this.user();\n }\n\n getLocalCollectionCount(): number {\n return this.localCollectionCount();\n }\n\n updateConfig(): void {\n const current = this.config();\n if (!current) return;\n }\n}\n","import { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n contentChild,\n effect,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef,\n viewChild,\n} from '@angular/core';\nimport {\n Masonry,\n MasonryInstance,\n MasonryOptions,\n} from '@thisissoon/angular-masonry';\n\n@Component({\n selector: 'smart-mobilems-masonry-grid',\n template: `\n <div\n #masonryGrid\n class=\"smart-container\"\n [ngClass]=\"classes()\"\n [class.smart-opacity-0]=\"!masonryReady()\"\n [class.smart-opacity-100]=\"masonryReady()\"\n >\n <ng-container *ngTemplateOutlet=\"masonryContentTpl()\"></ng-container>\n </div>\n `,\n imports: [NgTemplateOutlet, NgClass],\n})\nexport class MasonryGridComponent {\n list = input<Array<unknown>>();\n options = input<MasonryOptions>({});\n classes = input<string | string[]>('smart-my-4');\n\n private masonryInstance?: MasonryInstance;\n private masonryGridRef = viewChild<ElementRef>('masonryGrid');\n masonryContentTpl = contentChild<TemplateRef<unknown> | undefined>(\n 'masonryContentTpl',\n );\n\n masonryReady = signal<boolean>(false);\n\n private masonry: any = inject(Masonry);\n\n private defaultOptions: MasonryOptions = {\n itemSelector: '.masonry-item',\n columnWidth: '.masonry-grid-sizer',\n percentPosition: false,\n gutter: 24,\n horizontalOrder: false,\n };\n\n constructor() {\n // Re-layout masonry when list changes\n effect(() => {\n const items = this.list();\n\n if (items?.length) {\n // Mark as not ready while reinitializing\n this.masonryReady.set(false);\n\n // Destroy existing instance to force fresh layout with new items\n this.destroyMasonry();\n\n // Defer initialization to ensure DOM is fully updated with new items\n setTimeout(() => {\n const gridEl = this.masonryGridRef();\n if (gridEl?.nativeElement) {\n this.initMasonry();\n }\n }, 150);\n }\n });\n\n // Watch for grid ref changes (when component initializes or navigates)\n effect(() => {\n const gridEl = this.masonryGridRef();\n const items = this.list();\n\n if (gridEl?.nativeElement && items?.length) {\n // Initialize masonry when grid appears if not already initialized\n if (!this.masonryInstance) {\n setTimeout(() => this.initMasonry(), 250);\n }\n }\n });\n }\n\n initMasonry() {\n if (!this.masonry) {\n return;\n }\n\n const gridEl = this.masonryGridRef();\n if (!gridEl?.nativeElement) {\n return;\n }\n\n // Responsive gutter: 0 on mobile, 24 on tablet+\n const gutter =\n window.innerWidth < 768\n ? 0\n : (this.options()?.gutter ?? this.defaultOptions.gutter);\n\n const options: MasonryOptions = {\n ...this.defaultOptions,\n ...this.options(),\n gutter: gutter,\n };\n\n try {\n this.masonryInstance = new this.masonry(gridEl.nativeElement, options);\n\n // Wait for images to load, then layout and mark as ready\n this.waitForImagesToLoad(gridEl.nativeElement).then(() => {\n this.layoutMasonry();\n // Small delay to ensure smooth transition\n setTimeout(() => this.masonryReady.set(true), 250);\n });\n } catch (error) {\n console.warn('Masonry initialization failed:', error);\n this.masonryReady.set(true); // Show items even on error\n }\n }\n\n destroyMasonry() {\n if (this.masonryInstance) {\n try {\n this.masonryInstance.destroy();\n } catch (error) {\n console.warn('Masonry destroy failed:', error);\n }\n this.masonryInstance = undefined;\n }\n this.masonryReady.set(false);\n }\n\n private async waitForImagesToLoad(container: HTMLElement): Promise<void> {\n const images = Array.from(container.querySelectorAll('img'));\n\n if (images.length === 0) {\n return Promise.resolve();\n }\n\n const imagePromises = images.map((img) => {\n return new Promise<void>((resolve) => {\n if (img.complete) {\n resolve();\n } else {\n img.onload = () => resolve();\n img.onerror = () => resolve(); // resolve even on error to not block layout\n }\n });\n });\n\n await Promise.all(imagePromises);\n }\n\n private layoutMasonry() {\n if (this.masonryInstance) {\n try {\n this.masonryInstance.reloadItems();\n this.masonryInstance.layout();\n } catch (error) {\n console.warn('Masonry layout failed:', error);\n }\n }\n }\n}\n","import { isPlatformBrowser, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input, PLATFORM_ID } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\n\nexport interface IMenuItem {\n label: string;\n route: string;\n icon?: string;\n title?: string;\n ariaLabel?: string;\n}\n\nexport interface IMenuConfig {\n theme?: {\n menu?: {\n enabled?: boolean;\n mobileBreakpoint?: number;\n };\n };\n}\n\n@Component({\n selector: 'smart-mobilems-menu',\n standalone: true,\n imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive],\n templateUrl: './menu.component.html',\n})\nexport class MenuComponent {\n private configsFacade = inject(ConfigsFacade);\n private router = inject(Router);\n private platformId = inject(PLATFORM_ID);\n\n readonly menuItems = input<IMenuItem[]>([]);\n readonly searchEnabled = input<boolean>(false);\n\n readonly config = computed(() => this.configsFacade.data);\n\n readonly menuConfig = computed(() => {\n const config = this.config();\n return (config?.theme as IMenuConfig['theme']) ?? {};\n });\n\n readonly mobileBreakpoint = computed(() => {\n return this.menuConfig()?.menu?.mobileBreakpoint ?? 960;\n });\n\n readonly isMobileMenu = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n window.innerWidth <= this.mobileBreakpoint()\n );\n });\n\n private _menuOpenState = false;\n\n toggleMenu(): void {\n this._menuOpenState = !this._menuOpenState;\n }\n\n closeMenu(): void {\n this._menuOpenState = false;\n }\n\n isOpened(): boolean {\n return this._menuOpenState;\n }\n\n isRouteActive(route: string): boolean {\n return this.router.isActive(route, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n\n getMenuItemTitle(item: IMenuItem): string {\n if (item.title) {\n return item.title;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} (active)`\n : item.label;\n }\n\n getMenuItemAriaLabel(item: IMenuItem): string {\n if (item.ariaLabel) {\n return item.ariaLabel;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} - Current page`\n : item.label;\n }\n}\n","@if (!searchEnabled()) {\n <h2 class=\"smart-sr-only\">Main Menu</h2>\n\n @if (isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\"\n [ngClass]=\"isOpened() ? '' : ''\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <button\n class=\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\"\n (click)=\"toggleMenu()\"\n attr.aria-expanded=\"{{ isOpened() }}\"\n attr.aria-label=\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\"\n >\n @if (!isOpened()) {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >menu</span\n >\n } @else {\n <span\n class=\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\"\n >close</span\n >\n }\n </button>\n </div>\n }\n\n @if (!isMobileMenu()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\"\n role=\"navigation\"\n attr.aria-label=\"Main Menu\"\n >\n <div role=\"menubar\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n\n @if (isMobileMenu() && isOpened()) {\n <div\n class=\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\"\n >\n <div role=\"navigation\" aria-label=\"Main\">\n <ng-container *ngTemplateOutlet=\"menuTemplate\"></ng-container>\n </div>\n </div>\n }\n}\n\n<ng-template #menuTemplate>\n <ul\n id=\"main-menu\"\n role=\"menu\"\n class=\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\"\n [ngClass]=\"\n isMobileMenu()\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\n : ''\n \"\n >\n @for (item of menuItems(); track item.route) {\n <li\n class=\"smart-inline-flex smart-relative smart-w-auto smart-m-0\"\n [ngClass]=\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\"\n >\n <a\n class=\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\"\n role=\"menuitem\"\n [routerLink]=\"[item.route]\"\n routerLinkActive=\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\"\n (click)=\"closeMenu()\"\n [attr.title]=\"getMenuItemTitle(item)\"\n [attr.aria-label]=\"getMenuItemAriaLabel(item)\"\n >\n @if (item.icon) {\n <span\n class=\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\"\n >{{ item.icon }}</span\n >\n }\n <span class=\"smart-inline-block\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n</ng-template>\n","import { Directive, input } from '@angular/core';\n\nimport { IArticleWidget } from '@smartsoft001-mobilems/models';\n\n@Directive()\nexport class WidgetBaseComponent<T extends IArticleWidget> {\n item = input<T>();\n}\n","import { Component } from '@angular/core';\n\nimport { IArticleWidgetText } from '@smartsoft001-mobilems/models';\n\nimport { WidgetBaseComponent } from '../base.component';\n\n@Component({\n selector: 'smart-widget-text',\n templateUrl: './text.component.html',\n standalone: true,\n})\nexport class WidgetTextComponent extends WidgetBaseComponent<IArticleWidgetText> {}\n","@if (item(); as item) {\n <div [innerHTML]=\"item.text\"></div>\n}\n","import { NgComponentOutlet } from '@angular/common';\nimport {\n Component,\n input,\n computed,\n InjectionToken,\n inject,\n} from '@angular/core';\n\nimport {\n ArticleWidget,\n ArticleWidgetType,\n} from '@smartsoft001-mobilems/models';\n\nimport { WidgetTextComponent } from './text/text.component';\n\nexport type ArticlesWidgetComponentsToken = {\n [key in ArticleWidgetType]: any;\n};\n\nexport const ARTICLES_WIDGET_COMPONENTS_TOKEN =\n new InjectionToken<ArticlesWidgetComponentsToken>(\n 'ARTICLES_WIDGET_COMPONENTS_TOKEN',\n );\n\nconst baseMap: any = {\n [ArticleWidgetType.TEXT]: WidgetTextComponent,\n};\n\n@Component({\n selector: 'smart-widget',\n templateUrl: './widget.component.html',\n imports: [NgComponentOutlet],\n standalone: true,\n})\nexport class WidgetComponent {\n item = input.required<ArticleWidget>();\n\n extendMap = inject(ARTICLES_WIDGET_COMPONENTS_TOKEN, {\n optional: true,\n });\n\n component = computed(() => {\n const item = this.item();\n\n const map = { ...baseMap, ...this.extendMap };\n\n const component = map[item.widget];\n return component;\n });\n inputs = computed(() => {\n const item = this.item();\n return {\n item: item,\n };\n });\n}\n","<ng-container *ngComponentOutlet=\"component(); inputs: inputs()\" />\n","import { AppComponent } from './app/app.component';\n\nexport * from './app/app.component';\nexport * from './page/page.component';\nexport * from './filters/filters.component';\nexport * from './scroll-top/scroll-top.component';\nexport * from './slider/slider.component';\nexport * from './search/search.component';\nexport * from './media-tab/media-tab.component';\nexport * from './gallery-fullscreen/gallery-fullscreen.component';\nexport * from '../services/modal/modal-container.component';\nexport * from './footer';\nexport * from './header';\nexport * from './masonry-grid';\nexport * from './menu';\nexport * from './widget';\n\nexport const COMPONENTS = [AppComponent];\n","import { Directive, HostListener, inject, ElementRef } from '@angular/core';\n\n/**\n * Directive that adds a \"hover\" CSS class to the host element on mouse enter\n * and removes it on mouse leave.\n *\n * @example\n * ```html\n * <div smartHover>Hover me</div>\n * ```\n */\n@Directive({\n selector: '[smartHover]',\n standalone: true,\n})\nexport class HoverDirective {\n private readonly el = inject(ElementRef);\n\n /**\n * Adds the \"hover\" class when the mouse enters the element\n */\n @HostListener('mouseenter')\n onMouseEnter(): void {\n this.el.nativeElement.classList.add('hover');\n }\n\n /**\n * Removes the \"hover\" class when the mouse leaves the element\n */\n @HostListener('mouseleave')\n onMouseLeave(): void {\n this.el.nativeElement.classList.remove('hover');\n }\n}\n","import {\n Directive,\n input,\n inject,\n ElementRef,\n OnInit,\n signal,\n effect,\n} from '@angular/core';\n\n/**\n * Directive that provides programmatic scrolling and overflow detection\n * for horizontally or vertically scrollable containers.\n *\n * @example\n * ```html\n * <div smartScrollable [scrollUnit]=\"200\" #scroll=\"smartScrollable\">\n * <!-- scrollable content -->\n * </div>\n * <button (click)=\"scroll.scrollHorizontal(1)\" [disabled]=\"!scroll.canScrollEndHorizontal\">\n * Next →\n * </button>\n * ```\n */\n@Directive({\n selector: '[smartScrollable]',\n standalone: true,\n exportAs: 'smartScrollable',\n})\nexport class ScrollableDirective implements OnInit {\n private readonly el = inject(ElementRef);\n\n /**\n * The number of pixels to scroll per unit when using scroll methods.\n * Can be updated dynamically to change scroll behavior.\n */\n readonly scrollUnit = input.required<number>();\n\n /** Indicates if the container can scroll further to the right */\n canScrollEndHorizontal = signal<boolean>(false);\n\n /** Indicates if the container can scroll further to the left */\n canScrollStartHorizontal = signal<boolean>(false);\n\n /** Indicates if the container can scroll further down */\n canScrollEndVertical = signal<boolean>(false);\n\n /** Indicates if the container can scroll further up */\n canScrollStartVertical = signal<boolean>(false);\n\n /** Current horizontal scroll position */\n scrollLeftPosition = signal<number>(0);\n\n /** Current vertical scroll position */\n scrollTopPosition = signal<number>(0);\n\n constructor() {\n // Update overflow detection when scrollUnit changes\n effect(() => {\n this.scrollUnit();\n this.updateOverflow();\n });\n }\n\n ngOnInit(): void {\n this.updateOverflow();\n this.addScrollListener();\n this.addResizeListener();\n }\n\n /**\n * Scrolls the container horizontally by the specified number of units.\n * @param units Number of scroll units (can be negative for backward scroll)\n */\n scrollHorizontal(units: number): void {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollLeft += scrollAmount;\n this.updateOverflow();\n }\n\n /**\n * Scrolls the container vertically by the specified number of units.\n * @param units Number of scroll units (can be negative for upward scroll)\n */\n scrollVertical(units: number): void {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollTop += scrollAmount;\n this.updateOverflow();\n }\n\n /**\n * Updates all overflow detection signals based on current scroll position\n */\n private updateOverflow(): void {\n const element = this.el.nativeElement;\n\n // Horizontal overflow detection\n const scrollLeft = element.scrollLeft;\n const scrollWidth = element.scrollWidth;\n const clientWidth = element.clientWidth;\n\n this.scrollLeftPosition.set(scrollLeft);\n this.canScrollStartHorizontal.set(scrollLeft > 0);\n this.canScrollEndHorizontal.set(scrollLeft + clientWidth < scrollWidth);\n\n // Vertical overflow detection\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n\n this.scrollTopPosition.set(scrollTop);\n this.canScrollStartVertical.set(scrollTop > 0);\n this.canScrollEndVertical.set(scrollTop + clientHeight < scrollHeight);\n }\n\n /**\n * Adds scroll event listener to track scroll position changes\n */\n private addScrollListener(): void {\n this.el.nativeElement.addEventListener('scroll', () => {\n this.updateOverflow();\n });\n }\n\n /**\n * Adds window resize listener to recalculate overflow on resize\n */\n private addResizeListener(): void {\n window.addEventListener('resize', () => {\n this.updateOverflow();\n });\n }\n}\n","import {\n Directive,\n ElementRef,\n HostListener,\n effect,\n inject,\n input,\n output,\n} from '@angular/core';\n\nimport { ClickOutsideEvent } from '../models/click-outside-event.model';\n\n/**\n * Directive that detects when a click occurs outside of an element.\n *\n * When a click is detected outside the element, the `smartClickOutside` output\n * signal emits a `ClickOutsideEvent` containing the click event and target element.\n *\n * The directive respects the `isActive` input signal. When `isActive` is false,\n * outside clicks are not detected.\n *\n * @example\n * ```typescript\n * import { Component, signal } from '@angular/core';\n * import { ClickOutsideDirective } from '@smartsoft001-mobilems/angular';\n *\n * @Component({\n * selector: 'app-example',\n * imports: [ClickOutsideDirective],\n * template: `\\n * <div\n * smartClickOutside\n * [isActive]=\"isActive()\"\n * (smartClickOutside)=\"onClickOutside()\"\n * class=\"smart-border smart-p-4\"\n * >\n * Content inside\n * </div>\n * `,\n * })\n * export class ExampleComponent {\n * isActive = signal(true);\n *\n * onClickOutside(): void {\n * console.log('Clicked outside!');\n * }\n * }\n * ```\n */\n@Directive({\n selector: '[smartClickOutside]',\n})\nexport class ClickOutsideDirective {\n private readonly elementRef = inject(ElementRef);\n\n /**\n * Controls whether the directive responds to click events.\n * When false, no outside clicks are detected.\n */\n readonly isActive = input<boolean>(true);\n\n /**\n * Emits when a click outside the element is detected while isActive is true.\n */\n readonly smartClickOutside = output<ClickOutsideEvent>();\n\n private readonly clickEffect = effect(() => {\n // Access the isActive signal to track changes\n this.isActive();\n });\n\n /**\n * Handles document click events and checks if the click was outside the element.\n */\n @HostListener('document:click', ['$event'])\n onClick(event: MouseEvent | null): void {\n if (!event) {\n return;\n }\n\n if (!this.isActive()) {\n return;\n }\n\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n const isClickInsideElement = this.elementRef.nativeElement.contains(target);\n\n if (!isClickInsideElement) {\n this.smartClickOutside.emit({\n event,\n target: event.target,\n });\n }\n }\n}\n","export * from './hover.directive';\nexport * from './scrollable.directive';\nexport * from './click-outside.directive';\n\nexport const DIRECTIVES = [];\n","import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { ConfigsFacade } from './+state/configs.facade';\nimport { COMPONENTS } from './components';\nimport { DIRECTIVES } from './directives';\nimport { SharedConfig } from './shared.config';\n\nfunction initializeApp(configsFacade: ConfigsFacade): () => void {\n return () => {\n setTimeout(() => {\n configsFacade.init().then();\n });\n };\n}\n\n@NgModule({\n declarations: [...DIRECTIVES],\n imports: [RouterModule, COMPONENTS],\n exports: [...DIRECTIVES, ...COMPONENTS], // Export our own components instead of SmartSharedModule\n})\nexport class SharedModule {\n static forFeature(config: SharedConfig): ModuleWithProviders<SharedModule> {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n ],\n };\n }\n\n static forRoot(config: SharedConfig): ModuleWithProviders<SharedModule> {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n multi: true,\n deps: [ConfigsFacade],\n },\n ],\n };\n }\n}\n","import { MsFile } from '@smartsoft001-mobilems/models';\n\nexport enum ListMode {\n mobile = 'mobile',\n desktop = 'desktop',\n masonryGrid = 'masonryGrid',\n timeline = 'timeline',\n map = 'map',\n}\n\nexport interface IQuickMenu {\n elementId: string;\n name: string;\n}\n\nexport interface IGame {\n scores: any;\n gameType: GameType;\n difficulty: number;\n puzzleImage: MsFile;\n image: MsFile;\n images: IImages[];\n coverImage: MsFile;\n questions?: IGameQuestion[];\n objects: any[];\n name: string;\n description: string;\n id: number;\n published: boolean;\n userId: number;\n}\n\nexport interface IGameQuestion {\n question: string;\n answers: IGameAnswer[];\n file?: MsFile;\n hint: string;\n}\n\nexport interface IGameAnswer {\n userChoice?: boolean;\n class?: string;\n answer: string;\n correct: boolean;\n id?: number;\n position?: number;\n}\n\nexport enum GameType {\n puzzle = 1,\n memo = 2,\n quiz = 3,\n}\n\nexport interface IObjectGallery {\n id: number;\n name: string;\n items: IObjectGalleryItem[];\n}\n\nexport interface IObjectGalleryItem {\n id: number;\n position: number;\n object: IObjectGallerySingleObject;\n}\n\nexport interface IObjectGallerySingleObject {\n id: number;\n inventoryNumber: string;\n name: string;\n multimedium: ISingleObjectMultimedia;\n}\n\nexport interface ISingleObjectMultimedia {\n altTextEn: string;\n extension: string;\n altText: string;\n filePath: string;\n id: number;\n}\n\nexport interface IGameMemoConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel?: boolean;\n buttonStyle?: string;\n gameNameStyle?: string;\n textStyle: string;\n mediaBaseUrl?: string;\n}\n\nexport interface IGamePuzzleConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel: boolean;\n startButtonStyle: string;\n gameNameStyle: string;\n imageStyle: string;\n noImagePlaceholderSrc: string;\n mediaBaseUrl?: string;\n}\n\nexport interface IGameQuizConfig {\n headerStyle: string;\n boxStyle: string;\n hiddenLabel: boolean;\n buttonStyle: string;\n gameNameStyle: string;\n answerStyle: string;\n questionStyle: string;\n textStyle: string;\n progressStyle: string;\n hintStyle: string;\n noImagePlaceholderSrc: string;\n mediaBaseUrl: string;\n}\n\nexport interface IImages {\n file: MsFile;\n id: number;\n position: number;\n}\n\nexport class ImageBox {\n xPos!: string;\n yPos!: string;\n index!: string;\n}\n\nexport interface IAudio {\n image?: MsFile;\n audio?: MsFile;\n title: string;\n text: string;\n}\n\nexport interface IVideo {\n image?: MsFile;\n video?: MsFile;\n title: string;\n text: string;\n}\n\nexport interface IErrorMessages {\n loginErrorMessage?: string | null;\n forgotPasswordErrorMessage?: ForgotPasswordErrorMessage | null;\n registerErrorMessage?: RegisterErrorMessage | null;\n changePasswordErrorMessage?: ChangePasswordErrorMessage | null;\n modifyUserErrorMessage?: ModifyUserErrorMessage | null;\n}\n\nexport interface ChangePasswordErrorMessage {\n first: string;\n second: string;\n}\n\nexport interface ForgotPasswordErrorMessage {\n userNotFound: boolean;\n}\n\nexport interface ModifyUserErrorMessage {\n authenticationError: {\n email?: string;\n login?: string;\n avatar?: string;\n };\n}\n\nexport interface RegisterErrorMessage {\n email: string[] | null;\n login: string[] | null;\n password: {\n first: string[] | null;\n second: string[] | null;\n };\n status: number;\n message: string;\n}\n\nexport interface IUserRegister {\n username: string;\n email: string;\n password?: string;\n password2?: string;\n termsAcceptance: boolean;\n}\n\nexport interface IUser {\n email: string;\n password?: string;\n userID: string;\n token: string;\n avatar?: string;\n newsletterAcceptance?: boolean;\n refreshToken?: string;\n}\n\nexport interface IUserInfo {\n email: string;\n userID: string;\n avatar?: string;\n newsletterAcceptance: boolean;\n}\n\nexport interface ILoginResponse {\n /**\n * JWTToken\n */\n token: string;\n refresh_token: string;\n}\n\nexport interface ILoginResponse {\n /**\n * JWTToken\n */\n token: string;\n refresh_token: string;\n}\n\nexport interface IUserModify {\n email?: string;\n username?: string;\n}\n\nexport interface IFilterOne {\n active: boolean;\n name: string;\n desc: any;\n value: any;\n}\n\nexport interface IFilterItem {\n title: string;\n searchText?: string;\n value: string;\n filter: IFilterOne;\n}\n\nexport interface IUserQuery {\n id?: number;\n createdAt?: string;\n sortBy?: string;\n filterList?: {\n query?: IFilterItem[];\n searchText?: string;\n sortBy?: string;\n };\n jobs?: any[];\n name: string;\n type: string;\n query: any;\n}\n\nexport interface IUserQueryList {\n items: IUserQuery[];\n}\n\nexport interface SearchQuery {\n deleteInProgress: boolean;\n // filtersList: FilterItem[];\n // profileQuery: ProfileQuery;\n searchDate: string;\n searchTitle: string;\n}\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\n\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\n\nexport const authenticationGuard: CanActivateFn = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n\n if (authStorageService.hasUser()) {\n return true;\n }\n\n router.navigate(['/logowanie']);\n return false;\n};\n","import { inject } from '@angular/core';\nimport { CanActivateFn, Router } from '@angular/router';\n\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\n\nexport const unauthorizedGuard: CanActivateFn = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n\n if (!authStorageService.hasUser()) {\n return true;\n }\n\n router.navigate(['/strona-glowna']);\n return false;\n};\n","import {\n AfterViewInit,\n Directive,\n inject,\n OnInit,\n signal,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { PageSlide } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class HomeComponent implements OnInit, AfterViewInit {\n private readonly seoService = inject(SeoService);\n private readonly translateService = inject(TranslateService);\n private configsFacade = inject(ConfigsFacade);\n\n slides = signal<Array<PageSlide>>([]);\n\n async ngOnInit(): Promise<void> {\n this.setTitle();\n }\n\n async ngAfterViewInit(): Promise<void> {\n await this.initSlides();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n\n private async initSlides(): Promise<void> {\n const page = await this.configsFacade.getPage('home' as any);\n this.slides.set(page?.slides || []);\n }\n}\n","import { Directive, inject, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class NotFoundComponent implements OnInit {\n private readonly seoService = inject(SeoService);\n private readonly translateService = inject(TranslateService);\n\n async ngOnInit(): Promise<void> {\n this.setTitle();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n}\n","import { Directive, effect, inject, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { capitalize } from '@smartsoft001/utils';\n\nimport { Page } from '@smartsoft001-mobilems/models';\n\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport { SeoService } from '../../services';\n\n@Directive()\nexport abstract class PageStaticComponent {\n protected readonly configsFacade = inject(ConfigsFacade);\n protected readonly route = inject(ActivatedRoute);\n protected readonly seoService = inject(SeoService);\n protected readonly translateService = inject(TranslateService);\n protected readonly params = toSignal(this.route.params);\n\n config = this.configsFacade.data;\n data = signal<Page | null>(null);\n\n loading = signal(false);\n\n constructor() {\n effect(() => {\n const params = this.params();\n if (params && params['id']) {\n this.loadData(+params['id']).then();\n }\n });\n }\n\n async loadData(id: number): Promise<void> {\n this.loading.set(true);\n this.data.set((await this.configsFacade.getPage(id)) as Page);\n this.loading.set(false);\n\n this.setTitle();\n }\n\n protected setTitle(): void {\n this.seoService.updateTitle(\n `${capitalize(this.data()?.title as string)} - ${capitalize(this.translateService.instant('MODEL.mainTitle'))}`,\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgxTranslateService","SmartStyleService","i1.AppComponent"],"mappings":"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"}
|