{"version":3,"file":"tc-libs-angular.mjs","sources":["../../../projects/shared/src/lib/authentication/constants/password.constant.ts","../../../projects/shared/src/lib/authentication/constants/role.enum.ts","../../../projects/shared/src/lib/configuration.interface.ts","../../../projects/shared/src/lib/authentication/services/auth.service.ts","../../../projects/shared/src/lib/authentication/guards/already-auth.guard.ts","../../../projects/shared/src/lib/authentication/guards/auth.guard.ts","../../../projects/shared/src/lib/authentication/guards/is-granted.guard.ts","../../../projects/shared/src/lib/authentication/interceptor/cookie-credential.interceptor.class.ts","../../../projects/shared/src/lib/authentication/interceptor/token.interceptor.class.ts","../../../projects/shared/src/lib/authentication/authentication.configuration.ts","../../../projects/shared/src/lib/authentication/directive/is-granted.directive.ts","../../../projects/shared/src/lib/authentication/public-api.ts","../../../projects/shared/src/lib/base/service/interface/iservice.ts","../../../projects/shared/src/lib/base/db/i18n.model.ts","../../../projects/shared/src/lib/base/service/storage/constants/acl.enum.ts","../../../projects/shared/src/lib/base/service/storage/constants/file-extensions.constant.ts","../../../projects/shared/src/lib/base/service/storage/models/storage.model.ts","../../../projects/shared/src/lib/base/service/_base.service.ts","../../../projects/shared/src/lib/base/service/_base.admin.service.ts","../../../projects/shared/src/lib/base/service/storage/service/storage.admin.service.ts","../../../projects/shared/src/lib/base/service/storage/service/storage.service.ts","../../../projects/shared/src/lib/base/service/_base.public.service.ts","../../../projects/shared/src/lib/base/public-api.ts","../../../projects/shared/src/lib/utils/services/device/device.service.ts","../../../projects/shared/src/lib/utils/services/error/error.service.ts","../../../projects/shared/src/lib/utils/services/image/image.service.ts","../../../projects/shared/src/lib/utils/services/pagination/pagination.service.ts","../../../projects/shared/src/lib/utils/services/seo/seo.service.ts","../../../projects/shared/src/lib/utils/services/validation/validation.service.ts","../../../projects/shared/src/lib/utils/services/validation/file.validator.ts","../../../projects/shared/src/lib/utils/services/i18n/translation.configuration.ts","../../../projects/shared/src/lib/utils/services/i18n/i18n.service.ts","../../../projects/shared/src/lib/components/longdash/longdash.component.ts","../../../projects/shared/src/lib/components/longdash/longdash.component.html","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/tc-libs-angular.ts"],"sourcesContent":["export const StrongPasswordRegx: RegExp =\r\n  /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/;\r\n\r\nexport const StrongPasswordErrorMessage =\r\n  'La password deve avere almeno 8 caratteri e contenere almeno una lettera maiuscola, una lettera minuscola, un numero e un carattere speciale (tra #, ?, !, @, $, %, ^, &, *, -)';\r\n","export enum ROLE_ACCESS_FOR {\r\n  SUPER_ADMIN = 'SUPER_ADMIN',\r\n  ADMIN = 'ADMIN',\r\n  EDITOR = 'EDITOR',\r\n  LOGISTIC = 'LOGISTIC',\r\n  USER = 'USER',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface IConfiguration {\r\n  server: {\r\n    basePath: string;\r\n    apiBase: string;\r\n  };\r\n  seo: {\r\n    append: string;\r\n    title: string;\r\n    description: string;\r\n  };\r\n}\r\n\r\nexport const CONFIGURATION_TOKEN = new InjectionToken<IConfiguration>(\r\n  'CONFIGURATION_TOKEN'\r\n);\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { afterNextRender, Inject, Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { jwtDecode } from 'jwt-decode';\r\nimport {\r\n  BehaviorSubject,\r\n  catchError,\r\n  mapTo,\r\n  Observable,\r\n  of,\r\n  Subject,\r\n  tap,\r\n  throwError,\r\n} from 'rxjs';\r\nimport {\r\n  AuthLoginDto,\r\n  AuthRegisterDto,\r\n  AuthResetPasswordDto,\r\n} from '../dtos/auth.login.dto';\r\nimport { ITokens } from '../models/token.interface';\r\nimport { IUserTokenPayloadDto } from '../dtos/user-token-payload.dto';\r\nimport {\r\n  CONFIGURATION_TOKEN,\r\n  IConfiguration,\r\n} from '../../configuration.interface';\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n  apiUserBase: string;\r\n  _EXPIRES_IN = 'EXPIRES_IN';\r\n  _TOKEN_TYPE = 'TOKEN_TYPE';\r\n  _ACCESS_TOKEN = 'ACCESS_TOKEN';\r\n  _REFRESH_TOKEN = 'REFRESH_TOKEN';\r\n\r\n  _tokenPayload?: IUserTokenPayloadDto;\r\n  private _localStorage?: Storage;\r\n\r\n  isLoggedIn$ = new BehaviorSubject<boolean>(false);\r\n  isLoaded$ = new BehaviorSubject<boolean>(false);\r\n\r\n  private redirectToSafeUrlSubject = new Subject<boolean>();\r\n  private hasLoggedOutSubject = new Subject<boolean>();\r\n  private hasLoggedInSubject = new Subject<boolean>();\r\n\r\n  redirectToSafeUrl$ = this.redirectToSafeUrlSubject.asObservable();\r\n  hasLoggedOut$ = this.hasLoggedOutSubject.asObservable();\r\n  hasLoggedIn$ = this.hasLoggedInSubject.asObservable();\r\n\r\n  constructor(\r\n    private http: HttpClient,\r\n    @Inject(DOCUMENT) private document: Document,\r\n    @Inject(CONFIGURATION_TOKEN)\r\n    private _configuration: IConfiguration\r\n  ) {\r\n    this.apiUserBase = `${this._configuration.server.apiBase}/user`;\r\n    this._localStorage = this.document.defaultView?.localStorage;\r\n\r\n    afterNextRender(() => {\r\n      this.isLoggedIn$.next(this.hasToken());\r\n      this.isLoaded$.next(true);\r\n    });\r\n  }\r\n\r\n  login(credentials: AuthLoginDto): Observable<boolean> {\r\n    return this.http.post<any>(`${this.apiUserBase}/login`, credentials).pipe(\r\n      tap((response) => this._doLoginUser(credentials.email, response.data)),\r\n      mapTo(true)\r\n    );\r\n  }\r\n\r\n  register(credentials: AuthRegisterDto): Observable<boolean> {\r\n    return this.http\r\n      .post<any>(`${this.apiUserBase}/sign-up`, credentials)\r\n      .pipe(mapTo(true));\r\n  }\r\n\r\n  onboarding(data: any): Observable<boolean> {\r\n    return this.http\r\n      .post<any>(`${this.apiUserBase}/onboarding`, data)\r\n      .pipe(mapTo(true));\r\n  }\r\n\r\n  resetPassword(credentials: AuthResetPasswordDto): Observable<boolean> {\r\n    return this.http.post<any>(\r\n      `${this.apiUserBase}/reset-password`,\r\n      credentials\r\n    );\r\n  }\r\n\r\n  private _getDecodedAccessToken(token: string): any {\r\n    try {\r\n      return jwtDecode(token);\r\n    } catch (Error) {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  getProfile(): IUserTokenPayloadDto | undefined {\r\n    if (this._tokenPayload) return this._tokenPayload;\r\n    const token = this.getAccessToken();\r\n    if (!token) return undefined;\r\n    this._tokenPayload = this._getDecodedAccessToken(token).data;\r\n    if (!this._tokenPayload) return undefined;\r\n    return this._tokenPayload;\r\n  }\r\n\r\n  isGranted(roles: string[] = []): boolean {\r\n    if (!this._tokenPayload) this.getProfile();\r\n    if (!this._tokenPayload) return false;\r\n    if (roles.length === 0 || roles.includes(this._tokenPayload.accessFor))\r\n      return true;\r\n    return false;\r\n  }\r\n\r\n  redirectToSafeUrl() {\r\n    this.redirectToSafeUrlSubject.next(true);\r\n  }\r\n\r\n  logout() {\r\n    this._removeTokens();\r\n    this.hasLoggedOutSubject.next(true);\r\n  }\r\n\r\n  refreshToken() {\r\n    return this.http\r\n      .post<any>(\r\n        `${this.apiUserBase}/refresh`,\r\n        {},\r\n        {\r\n          headers: {\r\n            Authorization: `bearer ${this.getRefreshToken()}`,\r\n          },\r\n        }\r\n      )\r\n      .pipe(\r\n        catchError((error) => {\r\n          // Gestisci l'errore come preferisci\r\n          console.error(\r\n            'Si è verificato un errore durante il refresh del token:',\r\n            error\r\n          );\r\n          // Usa throwError come factory function\r\n          return throwError(\r\n            () => new Error('Errore durante il refresh del token')\r\n          );\r\n        }),\r\n        tap((response) => this._storeTokens(response.data))\r\n      );\r\n  }\r\n\r\n  getAccessToken() {\r\n    return this._localStorage?.getItem(this._ACCESS_TOKEN);\r\n  }\r\n\r\n  private hasToken(): boolean {\r\n    return !!this.getAccessToken();\r\n  }\r\n\r\n  getRefreshToken() {\r\n    return this._localStorage?.getItem(this._REFRESH_TOKEN);\r\n  }\r\n\r\n  private _doLoginUser(email: string, tokens: ITokens) {\r\n    this._storeTokens(tokens);\r\n    this.hasLoggedInSubject.next(true);\r\n  }\r\n\r\n  doLogoutAfterExpiredToken() {\r\n    this._removeTokens();\r\n    this.hasLoggedOutSubject.next(false);\r\n  }\r\n\r\n  private _storeTokens(tokens: ITokens) {\r\n    this._localStorage?.setItem(this._ACCESS_TOKEN, tokens.accessToken);\r\n    this._localStorage?.setItem(this._REFRESH_TOKEN, tokens.refreshToken);\r\n    this._localStorage?.setItem(this._EXPIRES_IN, tokens.expiresIn);\r\n    this._localStorage?.setItem(this._TOKEN_TYPE, tokens.tokenType);\r\n    this.isLoggedIn$.next(true);\r\n  }\r\n\r\n  private _removeTokens() {\r\n    this._localStorage?.removeItem(this._ACCESS_TOKEN);\r\n    this._localStorage?.removeItem(this._REFRESH_TOKEN);\r\n    this._localStorage?.removeItem(this._EXPIRES_IN);\r\n    this._localStorage?.removeItem(this._TOKEN_TYPE);\r\n    this.isLoggedIn$.next(false);\r\n  }\r\n\r\n  isLoggedIn(): boolean {\r\n    return this.hasToken();\r\n  }\r\n}\r\n","import { CanActivateFn, Router } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { inject, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformServer } from '@angular/common';\r\n\r\nexport const alreadyAuthGuard: CanActivateFn = (route, state) => {\r\n  console.log('checking alreadyAuthGuard');\r\n  const platformId = inject(PLATFORM_ID);\r\n  if (isPlatformServer(platformId)) {\r\n    return true;\r\n  }\r\n  const _auth = inject(AuthService);\r\n  const _router = inject(Router);\r\n\r\n  if (_auth.isLoggedIn()) {\r\n    console.log('checking alreadyAuthGuard result: false');\r\n    _router.navigate(['/']);\r\n    return false;\r\n  }\r\n  console.log('checking alreadyAuthGuard result: true');\r\n  return !_auth.isLoggedIn();\r\n};\r\n","import { isPlatformServer } from '@angular/common';\r\nimport { inject, PLATFORM_ID } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\nexport const authGuard: CanActivateFn = () => {\r\n  const platformId = inject(PLATFORM_ID);\r\n  if (isPlatformServer(platformId)) {\r\n    return true;\r\n  }\r\n  const _auth = inject(AuthService);\r\n  if (!_auth.isLoggedIn()) {\r\n    _auth.redirectToSafeUrl();\r\n    // return false;\r\n  }\r\n  return true;\r\n};\r\n","import { CanActivateFn, Router } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { inject } from '@angular/core';\r\nimport { ROLE_ACCESS_FOR } from '../constants/role.enum';\r\n\r\nexport const isGranted = (roles: ROLE_ACCESS_FOR[]): CanActivateFn => {\r\n  return (route, state) => {\r\n    const _auth = inject(AuthService);\r\n    return _auth.isGranted(roles);\r\n  };\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class CredentialsInterceptor implements HttpInterceptor {\r\n  intercept(\r\n    request: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    // Clona la richiesta e imposta withCredentials a true\r\n    const clonedRequest = request.clone({\r\n      withCredentials: true,\r\n    });\r\n\r\n    // Passa la richiesta clonata al prossimo handler\r\n    return next.handle(clonedRequest);\r\n  }\r\n}\r\n","import {\r\n  HttpErrorResponse,\r\n  HttpEvent,\r\n  HttpHandler,\r\n  HttpInterceptor,\r\n  HttpRequest,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport {\r\n  BehaviorSubject,\r\n  catchError,\r\n  filter,\r\n  Observable,\r\n  switchMap,\r\n  take,\r\n  throwError,\r\n} from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../services/auth.service';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n  private isRefreshing = false;\r\n  private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\r\n    null\r\n  );\r\n  constructor(private readonly _router: Router, public _auth: AuthService) {}\r\n\r\n  intercept(\r\n    req: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    const accessToken = this._auth.getAccessToken();\r\n    if (accessToken && req.url.indexOf('user/refresh') < 0) {\r\n      if (!req.headers.has('Authorization')) {\r\n        req = this._addToken(req, accessToken);\r\n      }\r\n    }\r\n    if (req.url.indexOf('user/login') >= 0) {\r\n      return next.handle(req);\r\n    }\r\n    return next.handle(req).pipe(\r\n      catchError((error) => {\r\n        if (error instanceof HttpErrorResponse && error.status === 401) {\r\n          console.log('Token scaduto');\r\n          if (req.url.indexOf('user/refresh') >= 0) {\r\n            console.log('Refresh token scaduto');\r\n            this._auth.doLogoutAfterExpiredToken();\r\n          }\r\n          return this._handle401Error(req, next);\r\n        } else {\r\n          return throwError(error);\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  private _addToken(req: HttpRequest<any>, token: string) {\r\n    return req.clone({\r\n      setHeaders: {\r\n        Authorization: `Bearer ${token}`,\r\n      },\r\n    });\r\n  }\r\n\r\n  private _handle401Error(req: HttpRequest<any>, next: HttpHandler) {\r\n    if (!this.isRefreshing) {\r\n      console.log('handle 401, not refreshing');\r\n      this.isRefreshing = true;\r\n      this.refreshTokenSubject.next(null);\r\n      return this._auth.refreshToken().pipe(\r\n        catchError((error) => {\r\n          // Gestisci l'errore come preferisci\r\n          console.error(\r\n            'Si è verificato un errore durante il refresh del token:',\r\n            error\r\n          );\r\n          // Usa throwError come factory function\r\n          return throwError(\r\n            () => new Error('Errore durante il refresh del token')\r\n          );\r\n        }),\r\n        switchMap((response: any) => {\r\n          this.isRefreshing = false;\r\n          this.refreshTokenSubject.next(response.data.accessToken);\r\n          return next.handle(this._addToken(req, response.data.accessToken));\r\n        })\r\n      );\r\n    } else {\r\n      console.log('handle 401, refreshing');\r\n      return this.refreshTokenSubject.pipe(\r\n        filter((token) => token != null),\r\n        take(1),\r\n        switchMap((accessToken) => {\r\n          return next.handle(this._addToken(req, accessToken));\r\n        })\r\n      );\r\n    }\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport type AuthConfig = {\r\n  disabled?: boolean;\r\n};\r\n\r\nexport const AUTH_CONFIGURATION_TOKEN = new InjectionToken<AuthConfig>(\r\n  'AUTH_CONFIGURATION_TOKEN'\r\n);\r\n","import {\r\n  Directive,\r\n  Inject,\r\n  Input,\r\n  TemplateRef,\r\n  ViewContainerRef,\r\n} from '@angular/core';\r\nimport { AuthService } from '../services/auth.service';\r\nimport {\r\n  AUTH_CONFIGURATION_TOKEN,\r\n  AuthConfig,\r\n} from '../authentication.configuration';\r\n\r\n@Directive({\r\n  selector: '[isGranted]',\r\n  standalone: true,\r\n})\r\nexport class IsGrantedDirective {\r\n  private _roles!: string[];\r\n\r\n  constructor(\r\n    private readonly _auth: AuthService,\r\n    private readonly _templateRef: TemplateRef<any>,\r\n    private readonly _viewContainer: ViewContainerRef,\r\n    @Inject(AUTH_CONFIGURATION_TOKEN) private _authConfig: AuthConfig\r\n  ) {}\r\n\r\n  @Input()\r\n  set isGranted(roles: string[]) {\r\n    this._roles = roles;\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this._authConfig.disabled || this._auth.isGranted(this._roles)) {\r\n      this._viewContainer.clear();\r\n      this._viewContainer.createEmbeddedView(this._templateRef);\r\n    }\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of authentication\r\n */\r\n\r\nexport * from './constants/password.constant';\r\nexport * from './constants/role.enum';\r\nexport * from './dtos/auth.login.dto';\r\nexport * from './dtos/user-token-payload.dto';\r\nexport * from './guards/already-auth.guard';\r\nexport * from './guards/auth.guard';\r\nexport * from './guards/is-granted.guard';\r\nexport * from './interceptor/cookie-credential.interceptor.class';\r\nexport * from './interceptor/token.interceptor.class';\r\nexport * from './services/auth.service';\r\nexport * from './directive/is-granted.directive';\r\nexport * from './authentication.configuration';\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport {\r\n  IOrderPagination,\r\n  IPagination,\r\n  IFilterRequest,\r\n  IGetAllRequest,\r\n} from './http-request.interface';\r\nimport { DefaultPagination, FilterType } from './http-request.type';\r\nimport {\r\n  IAppPaginationResponse,\r\n  IAppResponse,\r\n} from '../../dtos/response/app.response.dto';\r\n\r\nexport abstract class GenericRequest {\r\n  protected defaultPageNumber = 1;\r\n  protected defaultPageSize = 20;\r\n\r\n  constructor(defaultPagination?: DefaultPagination) {\r\n    if (defaultPagination) {\r\n      if (defaultPagination.pageNumber)\r\n        this.defaultPageNumber = defaultPagination.pageNumber;\r\n      if (defaultPagination.pageSize)\r\n        this.defaultPageSize = defaultPagination.pageSize;\r\n    }\r\n  }\r\n\r\n  abstract getQueryString(): string;\r\n  protected getFilterQs(filter?: FilterType) {\r\n    let filterQs = null;\r\n    if (filter) {\r\n      try {\r\n        const filterArray: string[] = [];\r\n        Object.keys(filter).forEach((key) => {\r\n          const value = filter[key];\r\n          filterArray.push(`${key}=${value}`);\r\n        });\r\n        filterQs = filterArray.join('&');\r\n      } catch (error) {\r\n        filterQs = null;\r\n      }\r\n    }\r\n    return filterQs;\r\n  }\r\n  protected getPageNumberQs(pageNumber?: number) {\r\n    let pn = this.defaultPageNumber;\r\n    if (pageNumber && pageNumber > 0) {\r\n      pn = pageNumber;\r\n    }\r\n    return `pageNumber=${pn}`;\r\n  }\r\n  protected getPageSizeQs(pageSize?: number) {\r\n    let ps = this.defaultPageNumber;\r\n    if (pageSize && pageSize > 0) {\r\n      ps = pageSize;\r\n    }\r\n    return `pageSize=${ps}`;\r\n  }\r\n  protected getProjectQs(projection: any) {\r\n    let projectQs = null;\r\n    if (projection) {\r\n      try {\r\n        projectQs = `project=${JSON.stringify(projection)}`;\r\n      } catch (error) {\r\n        projectQs = null;\r\n      }\r\n    }\r\n    return projectQs;\r\n  }\r\n\r\n  protected getSortQs(order?: IOrderPagination) {\r\n    let sortingQs = null;\r\n    if (order) {\r\n      try {\r\n        sortingQs = `orderBy=${order.orderBy}&orderDirection=${order.orderDirection}`;\r\n      } catch (error) {\r\n        sortingQs = null;\r\n      }\r\n    }\r\n    return sortingQs;\r\n  }\r\n\r\n  protected getPaginationQs(pagination?: IPagination) {\r\n    let paginationQs = null;\r\n    let items: ('page' | 'perPage')[] = ['page', 'perPage'];\r\n    if (pagination) {\r\n      try {\r\n        paginationQs = items\r\n          .map((item) =>\r\n            pagination[item] ? `${item}=${pagination[item]}` : null\r\n          )\r\n          .filter((x) => !!x)\r\n          .join('&');\r\n      } catch (error) {\r\n        paginationQs = null;\r\n      }\r\n    }\r\n    return paginationQs;\r\n  }\r\n\r\n  protected getPopulateQs(populate: any) {\r\n    let populateQs = null;\r\n    if (populate) {\r\n      try {\r\n        populateQs = `populate=${JSON.stringify(populate)}`;\r\n      } catch (error) {\r\n        populateQs = null;\r\n      }\r\n    }\r\n    return populateQs;\r\n  }\r\n}\r\n\r\nexport class CountRequest extends GenericRequest {\r\n  filter: any = {};\r\n  getQueryString(): string {\r\n    return this.getFilterQs(this.filter) || '';\r\n  }\r\n}\r\n\r\nexport class FilterRequest extends GenericRequest {\r\n  filter: any = {};\r\n  pageNumber?: number;\r\n  pageSize?: number;\r\n  sortings?: any;\r\n  populate?: any;\r\n  projection?: any;\r\n  constructor(req: IFilterRequest) {\r\n    super();\r\n    this.filter = req.filter;\r\n    this.pageNumber = req.pageNumber;\r\n    this.pageSize = req.pageSize;\r\n    this.sortings = req.sortings;\r\n    this.populate = req.populate;\r\n    this.projection = req.projection;\r\n  }\r\n  getQueryString(): string {\r\n    const params = [\r\n      this.getFilterQs(this.filter),\r\n      this.getPageNumberQs(this.pageNumber),\r\n      this.getPageSizeQs(this.pageSize),\r\n      this.getSortQs(this.sortings),\r\n      this.getPopulateQs(this.populate),\r\n      this.getProjectQs(this.projection),\r\n    ];\r\n    return params.filter((x) => !!x).join('&');\r\n  }\r\n}\r\n\r\nexport class GetAllRequest extends GenericRequest {\r\n  pagination: IPagination = {\r\n    page: 1,\r\n  };\r\n  order?: IOrderPagination;\r\n  search?: string;\r\n  filter: FilterType = {};\r\n  enums: { [key: string]: string | boolean | null } = {};\r\n  availableSelects: {\r\n    field: string;\r\n    display: string;\r\n    type: string;\r\n    entity?: string;\r\n    hasI18nLabel?: boolean;\r\n    valueIdField?: string;\r\n    valueDisplayField?: string;\r\n    values: { value: any; display: string }[];\r\n  }[] = [];\r\n  enumsHidden: string[] = [];\r\n  constructor(req: IGetAllRequest) {\r\n    super();\r\n    if (req.filter) this.filter = req.filter;\r\n    if (req.pagination) this.pagination = req.pagination;\r\n    this.order = req.order;\r\n    this.search = req.search;\r\n    if (req.enums) this.enums = req.enums;\r\n    this.enumsHidden = req.enumsHidden || [];\r\n  }\r\n  getQueryString(): string {\r\n    const enumsStrings = this.enums\r\n      ? Object.keys(this.enums)\r\n          .map((type) => {\r\n            if (this.enums[type] != undefined)\r\n              return `${type}=${this.enums[type]}`;\r\n            else return null;\r\n          })\r\n          .filter((x) => !!x)\r\n      : [];\r\n    const params = [\r\n      this.getFilterQs(this.filter),\r\n      this.getSortQs(this.order),\r\n      this.getPaginationQs(this.pagination),\r\n      this.search ? `search=${this.search}` : null,\r\n      ...enumsStrings,\r\n      // this.getPopulateQs(this.populate),\r\n      // this.getProjectQs(this.projection),\r\n    ];\r\n    return params.filter((x) => !!x).join('&');\r\n  }\r\n}\r\nexport class GetByIdRequest extends GenericRequest {\r\n  populate?: any;\r\n  projection?: any;\r\n  getQueryString(): string {\r\n    const params = [\r\n      this.getPopulateQs(this.populate),\r\n      this.getProjectQs(this.projection),\r\n    ];\r\n    return params.join('&');\r\n  }\r\n}\r\n\r\nexport interface IService<T> {\r\n  apiBase: string;\r\n  http: HttpClient;\r\n  basePath: string;\r\n  getById(id: string, options?: GetByIdRequest): Observable<IAppResponse<T>>;\r\n  getAll(options?: GetAllRequest): Observable<IAppPaginationResponse<T>>;\r\n  count(options?: CountRequest): Observable<number>;\r\n  // filter(options?: IFilterRequest): Observable<IFilterResponse<T>>;\r\n  create(model: any): Observable<IAppResponse<T>>;\r\n  updateById(id: string, model: any): Observable<any>;\r\n  deleteById(id: string, model?: any): Observable<any>;\r\n}\r\n","export interface II18n {\r\n  [lang: string]: string;\r\n}\r\n\r\nexport interface ISEO {\r\n  title: II18n;\r\n  description: II18n;\r\n  tags?: II18n[];\r\n}\r\n\r\nexport class I18n implements II18n {\r\n  [lang: string]: string;\r\n  constructor(i18n?: II18n) {\r\n    if (i18n) {\r\n      Object.assign(this, i18n);\r\n    }\r\n  }\r\n}\r\n\r\nexport class SEO implements ISEO {\r\n  title = new I18n();\r\n  description = new I18n();\r\n  tags: I18n[] = [];\r\n\r\n  constructor(seo?: ISEO) {\r\n    if (!seo) return;\r\n    this.title = new I18n(seo.title);\r\n    this.description = new I18n(seo.description);\r\n    this.tags = seo.tags || [];\r\n  }\r\n}\r\n","export enum ACL {\r\n  authenticated_read = 'authenticated-read',\r\n  aws_exec_read = 'aws-exec-read',\r\n  bucket_owner_full_control = 'bucket-owner-full-control',\r\n  bucket_owner_read = 'bucket-owner-read',\r\n  private = 'private',\r\n  public_read = 'public-read',\r\n  public_read_write = 'public-read-write',\r\n}\r\n","export const IMAGE_FILE_EXTENSIONS = [\r\n  '.jpg',\r\n  '.jpeg',\r\n  '.png',\r\n  '.gif',\r\n  //   '.bmp',\r\n  //   '.tif',\r\n  //   '.tiff',\r\n  //   '.heic',\r\n  //   '.heif',\r\n  //   '.avif',\r\n  //   '.jp2',\r\n  //   '.j2k',\r\n  //   '.webp',\r\n];\r\n","import { IDatabaseMongoEntity } from '../../../db/dbentity.model';\r\nimport { II18n, I18n } from '../../../db/i18n.model';\r\n\r\nexport interface IStorage extends IDatabaseMongoEntity {\r\n  path?: string;\r\n  folder?: string;\r\n  filename?: string;\r\n  hash?: string;\r\n  completeUrl?: string;\r\n  baseUrl?: string;\r\n  mime?: string;\r\n  size?: number;\r\n  uploadedAt?: Date;\r\n  provider?: string;\r\n}\r\n\r\nexport interface IStorageFileResize {\r\n  width: number;\r\n  height: number;\r\n  size: number;\r\n  path: string;\r\n  folder: string;\r\n  completeUrl: string;\r\n  baseUrl: string;\r\n}\r\n\r\nexport interface IStorageImage extends IStorage {\r\n  width?: number;\r\n  height?: number;\r\n  resizes?: IStorageFileResize[];\r\n  alt?: II18n;\r\n  resizeMap?: any;\r\n}\r\n\r\nexport class StorageImage implements IStorageImage {\r\n  alt? = new I18n();\r\n}\r\n","import {\r\n  CountRequest,\r\n  FilterRequest,\r\n  GetAllRequest,\r\n  GetByIdRequest,\r\n  IService,\r\n} from './interface/iservice';\r\n\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { EventEmitter, inject } from '@angular/core';\r\n// import { Configuration } from 'app/app.constants';\r\nimport { Observable, catchError, tap, throwError } from 'rxjs';\r\nimport {\r\n  IAppResponse,\r\n  IAppPaginationResponse,\r\n} from '../dtos/response/app.response.dto';\r\nimport { IGetAllRequest } from './interface/http-request.interface';\r\nimport { HttpRequestOptions } from './interface/http-request.type';\r\nimport {\r\n  CONFIGURATION_TOKEN,\r\n  IConfiguration,\r\n} from '../../configuration.interface';\r\nimport { ISortable } from '../db/dbentity.model';\r\n// import { QueryStringBuilder } from '../../utils/queryString';\r\n\r\nexport type OnDeleteData = { id: string };\r\nexport type OnCreateData = any;\r\nexport type OnUpdateData = { id: string };\r\nexport type OnSuccessData = { message: string; data?: any };\r\n\r\nexport type EventCrud =\r\n  | { type: 'onDelete'; data: OnDeleteData }\r\n  | { type: 'onCreate'; data: OnCreateData }\r\n  | { type: 'onUpdate'; data: OnUpdateData }\r\n  | { type: 'onSuccess'; data: OnSuccessData };\r\n\r\nexport abstract class ServiceBase<T> implements IService<T> {\r\n  abstract basePath: string;\r\n  abstract entity: string;\r\n  role: string = '';\r\n\r\n  configuration: IConfiguration = inject(CONFIGURATION_TOKEN);\r\n  messageBus$: EventEmitter<EventCrud> = new EventEmitter<any>();\r\n  http: HttpClient = inject(HttpClient);\r\n  apiBase: string = `${this.configuration.server.apiBase}`;\r\n  constructor() {}\r\n\r\n  protected _formatDateNoTime(date: Date) {\r\n    const yyyy = date.getFullYear();\r\n    const mm = String(date.getMonth() + 1).padStart(2, '0'); // Gennaio è 0!\r\n    const dd = String(date.getDate()).padStart(2, '0');\r\n\r\n    return `${yyyy}-${mm}-${dd}`;\r\n  }\r\n\r\n  protected _handleError(error: any) {\r\n    // this._toast.error({\r\n    //   message: error?.error?.data?.description,\r\n    // });\r\n    return throwError(() => error);\r\n  }\r\n\r\n  getById<C = T>(\r\n    id: string,\r\n    options?: GetByIdRequest,\r\n  ): Observable<IAppResponse<C>> {\r\n    let qs = '';\r\n    if (options) {\r\n      qs = `?${options.getQueryString()}`;\r\n    }\r\n    return this.http\r\n      .get<\r\n        IAppResponse<C>\r\n      >(`${this.apiBase}/${this.role}${this.basePath}/${id}${qs}`)\r\n      .pipe(catchError(this._handleError.bind(this)));\r\n  }\r\n\r\n  getBySlug(slug: string) {\r\n    return this.getById(`slug/${slug}`);\r\n  }\r\n\r\n  getByCode(code: string) {\r\n    return this.getById(`code/${code}`);\r\n  }\r\n\r\n  getAll(options?: IGetAllRequest): Observable<IAppPaginationResponse<T>> {\r\n    let qs = '';\r\n    if (options) {\r\n      qs = `?${new GetAllRequest(options).getQueryString()}`;\r\n    }\r\n    return this.http\r\n      .get<\r\n        IAppPaginationResponse<T>\r\n      >(`${this.apiBase}/${this.role}${this.basePath}${options?.url ?? ''}${qs}`)\r\n      .pipe(\r\n        tap((response: IAppPaginationResponse<T>) => {\r\n          if (options && response?._metadata?.pagination) {\r\n            options.pagination = {\r\n              perPage: response._metadata.pagination.perPage,\r\n              page: response._metadata.pagination.page,\r\n              totalPages: response._metadata.pagination.totalPage,\r\n              totalItems: response._metadata.pagination.total,\r\n            };\r\n            options.order = {\r\n              orderBy: response._metadata.pagination.orderBy,\r\n              orderDirection: response._metadata.pagination.orderDirection,\r\n              availableOrderBy: response._metadata.pagination.availableOrderBy,\r\n            };\r\n            if (!options.availableSelects?.length)\r\n              options.availableSelects =\r\n                response._metadata.pagination.availableSelects;\r\n          }\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n  count(options?: CountRequest): Observable<number> {\r\n    let qs = '';\r\n    if (options) {\r\n      qs = `?${options.getQueryString()}`;\r\n    }\r\n    return this.http\r\n      .get<number>(`${this.apiBase}/${this.role}${this.basePath}/count${qs}`)\r\n      .pipe(catchError(this._handleError.bind(this)));\r\n  }\r\n  movePos(\r\n    {\r\n      currentIndex,\r\n      previousIndex,\r\n    }: { currentIndex: number; previousIndex: number },\r\n    elements: ISortable[],\r\n  ): Observable<T> {\r\n    if (currentIndex === previousIndex) {\r\n      // Return an empty observable or a suitable default value\r\n      return new Observable<T>((observer) => {\r\n        observer.complete();\r\n      });\r\n    }\r\n    const moved = elements[previousIndex];\r\n    const destination = elements[currentIndex];\r\n    const id = (moved as any)?.['_id'];\r\n\r\n    if (!moved || !id || !destination) {\r\n      // Return an empty observable or a suitable default value\r\n      return new Observable<T>((observer) => {\r\n        observer.complete();\r\n      });\r\n    }\r\n\r\n    return this.http\r\n      .patch<T>(\r\n        `${this.apiBase}/${this.role}${this.basePath}/${id}/move-pos/${destination.pos}`,\r\n        {},\r\n      )\r\n      .pipe(\r\n        tap((x: any) => {\r\n          this.messageBus$.emit({\r\n            type: 'onUpdate',\r\n            data: { id },\r\n          });\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n  patchById(id: string, model: any): Observable<T> {\r\n    return this.http\r\n      .patch<T>(`${this.apiBase}/${this.role}${this.basePath}/${id}`, {})\r\n      .pipe(\r\n        tap((x: any) => {\r\n          this.messageBus$.emit({\r\n            type: 'onUpdate',\r\n            data: { id },\r\n          });\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n  create(\r\n    model: any,\r\n    options?: HttpRequestOptions,\r\n  ): Observable<IAppResponse<T>> {\r\n    return this.http\r\n      .post<T>(\r\n        `${this.apiBase}/${this.role}${this.basePath}/${options?.path ?? ''}`,\r\n        model,\r\n      )\r\n      .pipe(\r\n        tap((x: any) => {\r\n          this.messageBus$.emit({ type: 'onCreate', data: x.data });\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n  updateById(id: string, model: any): Observable<T> {\r\n    return this.http\r\n      .put<T>(`${this.apiBase}/${this.role}${this.basePath}/${id}`, model)\r\n      .pipe(\r\n        tap((x: any) => {\r\n          this.messageBus$.emit({\r\n            type: 'onUpdate',\r\n            data: { id },\r\n          });\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n  deleteById(id: string, model?: any): Observable<T> {\r\n    let options;\r\n    if (model)\r\n      options = {\r\n        body: model,\r\n      };\r\n\r\n    return this.http\r\n      .delete<T>(`${this.apiBase}/${this.role}${this.basePath}/${id}`, options)\r\n      .pipe(\r\n        tap(() => {\r\n          this.messageBus$.emit({ type: 'onDelete', data: { id } });\r\n        }),\r\n        catchError(this._handleError.bind(this)),\r\n      );\r\n  }\r\n}\r\n","import { ServiceBase } from './_base.service';\r\n\r\nexport abstract class ServiceAdminBase<T> extends ServiceBase<T> {\r\n  override role = 'admin/';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ACL } from '../constants/acl.enum';\r\nimport { IStorage } from '../models/storage.model';\r\nimport { ServiceAdminBase } from '../../../service/_base.admin.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class StorageAdminService extends ServiceAdminBase<IStorage> {\r\n  override basePath: string = 'storage-file';\r\n  override entity: string = 'StorageFileEntity';\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  uploadImage(entity: string, acl: ACL, file: File) {\r\n    const formData = new FormData();\r\n    formData.append('file', file);\r\n    formData.append('entity', entity);\r\n    formData.append('acl', acl);\r\n    return this.http.post(\r\n      `${this.apiBase}/${this.role}${this.basePath}/image`,\r\n      formData,\r\n      {\r\n        reportProgress: true,\r\n        observe: 'events',\r\n      }\r\n    );\r\n  }\r\n\r\n  signUrl(url: string) {\r\n    return this.create(\r\n      { url },\r\n      {\r\n        path: 'sign-url',\r\n      }\r\n    );\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ACL } from '../constants/acl.enum';\r\nimport { IStorage } from '../models/storage.model';\r\nimport { ServiceBase } from '../../../service/_base.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class StorageService extends ServiceBase<IStorage> {\r\n  override basePath: string = 'storage-file';\r\n  override entity: string = 'StorageFileEntity';\r\n  constructor() {\r\n    super();\r\n  }\r\n\r\n  uploadImage(entity: string, acl: ACL, file: File) {\r\n    const formData = new FormData();\r\n    formData.append('file', file);\r\n    formData.append('entity', entity);\r\n    formData.append('acl', acl);\r\n    return this.http.post(`${this.apiBase}/${this.basePath}/image`, formData, {\r\n      reportProgress: true,\r\n      observe: 'events',\r\n    });\r\n  }\r\n}\r\n","import { ServiceBase } from './_base.service';\r\n\r\nexport abstract class ServicePublicBase<T> extends ServiceBase<T> {\r\n  override role = 'public/';\r\n}\r\n","/*\r\n * Public API Surface of modules\r\n */\r\nexport * from '../configuration.interface';\r\nexport * from './service/interface/http-request.interface';\r\nexport * from './service/interface/http-request.type';\r\nexport * from './service/interface/iservice';\r\nexport * from './dtos/response/app.response.dto';\r\nexport * from './db/i18n.model';\r\nexport * from './db/dbentity.model';\r\nexport * from './service/storage';\r\nexport * from './service/_base.admin.service';\r\nexport * from './service/_base.public.service';\r\nexport * from './service/_base.service';\r\n","import { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { Injectable } from '@angular/core';\r\nimport { map, Observable, shareReplay } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class DeviceService {\r\n  isMobile$: Observable<boolean>;\r\n\r\n  private _mobile = '(max-width: 575.98px)';\r\n  constructor(private readonly _breakpointObserver: BreakpointObserver) {\r\n    this.isMobile$ = this._breakpointObserver.observe([this._mobile]).pipe(\r\n      map((result) => result.matches),\r\n      shareReplay(1)\r\n    );\r\n  }\r\n\r\n  isMobile() {\r\n    return this._breakpointObserver.isMatched(this._mobile);\r\n  }\r\n\r\n  onMobile() {\r\n    return this._breakpointObserver.observe([this._mobile]);\r\n  }\r\n\r\n  copyFormatted(text: string) {\r\n    // Creare un elemento temporaneo\r\n    const tempElement = document.createElement('div');\r\n    tempElement.innerHTML = text;\r\n    tempElement.style.position = 'fixed';\r\n    tempElement.style.left = '-9999px';\r\n    document.body.appendChild(tempElement);\r\n\r\n    // Selezionare il testo\r\n    const selection = window.getSelection();\r\n    const range = document.createRange();\r\n    range.selectNodeContents(tempElement);\r\n    if (selection) {\r\n      selection.removeAllRanges();\r\n      selection.addRange(range);\r\n    }\r\n    // Copiare il testo\r\n    try {\r\n      document.execCommand('copy');\r\n      return true; //   this._toast.showSuccess('Testo copiato!');\r\n    } catch (err) {\r\n      return false; //   this._toast.showWarning('Errore durante la copia...');\r\n    } finally {\r\n      // Rimuovere l'elemento temporaneo\r\n      document.body.removeChild(tempElement);\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n  handleError(error: any) {}\r\n  format(obj: any) {\r\n    if (obj.status === 422) {\r\n      if (obj.error.statusCode === 42201) {\r\n        const { description } = obj.error.data;\r\n        const errors = description.map((x: any) => {\r\n          const constraints = Object.keys(x.constraints).map((c) => {\r\n            return x.constraints[c] || c;\r\n          });\r\n          return `<li><strong>${x.property}</strong>: ${constraints.join(\r\n            ', '\r\n          )}</li>`;\r\n        });\r\n        return errors.length ? `<ul>${errors.join('').trim()}</ul>` : '';\r\n      }\r\n    } else {\r\n      return obj?.error?.data?.description;\r\n    }\r\n    return '';\r\n  }\r\n  toKeyValue(obj: any) {\r\n    const keyValue: any = {};\r\n    if (obj.status === 422) {\r\n      if (obj.error.statusCode === 42201) {\r\n        const { description } = obj.error.data;\r\n        description.forEach((x: any) => {\r\n          const constraints = Object.keys(x.constraints).map((c) => {\r\n            return x.constraints[c] || c;\r\n          });\r\n          return (keyValue[x.property] = constraints.join(', '));\r\n        });\r\n        return keyValue;\r\n      }\r\n    }\r\n    return '';\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IStorageImage } from '../../../base/service/storage';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ImageService {\r\n  private x1 = 'image/thumb';\r\n  private x2 = 'image/hd';\r\n\r\n  constructor() {}\r\n\r\n  getSrcSet(image: IStorageImage): string {\r\n    const x1 = {\r\n      type: 'x1',\r\n      src: image.resizes?.find((resize) => resize.folder === this.x1)\r\n        ?.completeUrl,\r\n    };\r\n    const x2 = {\r\n      type: 'x2',\r\n      src: image.resizes?.find((resize) => resize.folder === this.x2)\r\n        ?.completeUrl,\r\n    };\r\n    const srcSet = [x1, x2].filter((x) => !!x.src);\r\n    return srcSet.map((x) => `${x.src} ${x.type}`).join(', ');\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { GetAllRequest } from '../../../base/service/interface/iservice';\r\nimport {\r\n  IGetAllRequest,\r\n  IOrderPagination,\r\n} from '../../../base/service/interface/http-request.interface';\r\n\r\nexport type SortDirection = 'asc' | 'desc' | '';\r\n\r\n/** The current sort state. */\r\nexport type Sort = {\r\n  /** The id of the column being sorted. */\r\n  active: string;\r\n  /** The sort direction. */\r\n  direction: SortDirection;\r\n};\r\n\r\nexport type PageEvent = {\r\n  /** The current page index. */\r\n  pageIndex: number;\r\n  /**\r\n   * Index of the page that was selected previously.\r\n   * @breaking-change 8.0.0 To be made into a required property.\r\n   */\r\n  previousPageIndex?: number;\r\n  /** The current page size. */\r\n  pageSize: number;\r\n  /** The current total number of items being paged. */\r\n  length: number;\r\n};\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class PaginationService {\r\n  constructor() {}\r\n\r\n  isColumnSortable(options: IGetAllRequest, column: string): boolean {\r\n    return (options.order?.availableOrderBy ?? []).includes(column) ?? false;\r\n  }\r\n\r\n  onPageChange(fn: Function, options: GetAllRequest, event: PageEvent) {\r\n    options.pagination.page = event.pageIndex + 1;\r\n    options.pagination.perPage = event.pageSize;\r\n    fn();\r\n  }\r\n\r\n  onSortChange(\r\n    fn: Function,\r\n    options: GetAllRequest | undefined,\r\n    defaultOrder: IOrderPagination,\r\n    event: Sort\r\n  ) {\r\n    if (!options) return;\r\n    console.log('order', event);\r\n    if (!event.direction || !event.active)\r\n      options.order = {\r\n        ...defaultOrder,\r\n        availableOrderBy: options.order?.availableOrderBy ?? [],\r\n      };\r\n    else\r\n      options.order = {\r\n        availableOrderBy: options.order?.availableOrderBy ?? [],\r\n        orderBy: event.active,\r\n        orderDirection: event.direction === 'asc' ? 'asc' : 'desc',\r\n      };\r\n    fn();\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Title, Meta } from '@angular/platform-browser';\r\nimport { ISEO } from '../../../base/db/i18n.model';\r\nimport {\r\n  CONFIGURATION_TOKEN,\r\n  IConfiguration,\r\n} from '../../../configuration.interface';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class SeoService {\r\n  constructor(\r\n    @Inject(CONFIGURATION_TOKEN)\r\n    private _configuration: IConfiguration,\r\n    private titleService: Title,\r\n    private metaService: Meta\r\n  ) {}\r\n\r\n  index() {\r\n    this.metaService.updateTag({\r\n      name: 'robots',\r\n      content: 'index, follow',\r\n    });\r\n  }\r\n\r\n  noindex() {\r\n    this.metaService.updateTag({\r\n      name: 'robots',\r\n      content: 'noindex, follow',\r\n    });\r\n  }\r\n\r\n  updateSeo(seo: ISEO | undefined, noAppend: boolean = false) {\r\n    const append = noAppend ? '' : this._configuration.seo.append;\r\n    const t = seo?.title?.['it']\r\n      ? seo?.title?.['it'] + append\r\n      : this._configuration.seo.title;\r\n    const d = seo?.description?.['it'] || this._configuration.seo.description;\r\n\r\n    this.titleService.setTitle(t);\r\n    this.metaService.updateTag({\r\n      name: 'description',\r\n      content: d,\r\n    });\r\n    this.metaService.updateTag({ property: 'og:title', content: t });\r\n    // this.metaService.updateTag({ property: 'og:url', content: description });\r\n    this.metaService.updateTag({\r\n      property: 'og:description',\r\n      content: d,\r\n    });\r\n    // TODO: canonical URL, OpenGraph vari\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ValidationService {\r\n  isInvalidClassConfirmPassword(\r\n    formGroup: FormGroup<any>,\r\n    formControl: AbstractControl\r\n  ) {\r\n    return {\r\n      'is-invalid':\r\n        ((formGroup.invalid && !!formGroup.errors?.['passwordMismatch']) ||\r\n          formControl.invalid) &&\r\n        (formControl.dirty || formControl.touched),\r\n    };\r\n  }\r\n  isInvalidClass(formControl: AbstractControl) {\r\n    return {\r\n      'is-invalid': this.isInvalid(formControl),\r\n    };\r\n  }\r\n  isInvalid(formControl: AbstractControl) {\r\n    return (\r\n      formControl &&\r\n      formControl.invalid &&\r\n      formControl.dirty &&\r\n      formControl.touched\r\n    );\r\n  }\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n/**\r\n * Validator per controllare se il file supera una dimensione massima specificata.\r\n * @param maxSizeMB Dimensione massima consentita in megabyte.\r\n * @returns Un ValidatorFn che restituisce un errore se il file supera la dimensione specificata.\r\n */\r\nexport function fileSizeValidator(maxSizeMB: number): ValidatorFn {\r\n  return (control: AbstractControl) => {\r\n    if (!control.value || control.value.length === 0) {\r\n      return null; // Nessun file caricato, nessun errore\r\n    }\r\n\r\n    const file: File = control.value;\r\n    const maxSizeBytes = maxSizeMB * 1024 * 1024;\r\n\r\n    if (file.size > maxSizeBytes) {\r\n      return {\r\n        fileSize: {\r\n          maxSizeMB,\r\n          actualSizeMB: (file.size / 1024 / 1024).toFixed(2),\r\n        },\r\n      };\r\n    }\r\n\r\n    return null; // Nessun errore\r\n  };\r\n}\r\n\r\n/**\r\n * Validator per controllare se il file ha un'estensione valida.\r\n * @param allowedExtensions Array di estensioni consentite (es: ['jpg', 'png', 'pdf']).\r\n * @returns Un ValidatorFn che restituisce un errore se l'estensione del file non è valida.\r\n */\r\nexport function fileExtensionValidator(\r\n  allowedExtensions: string[]\r\n): ValidatorFn {\r\n  return (control: AbstractControl) => {\r\n    if (!control.value) {\r\n      return null; // Nessun file caricato, nessun errore\r\n    }\r\n\r\n    const file: File = control.value;\r\n    const fileExtension = file.name.split('.').pop()?.toLowerCase(); // Estrai l'estensione in minuscolo\r\n\r\n    if (!fileExtension || !allowedExtensions.includes(fileExtension)) {\r\n      return {\r\n        fileExtension: {\r\n          allowed: allowedExtensions.map((x) => `.${x}`).join(', '),\r\n          actual: fileExtension,\r\n        },\r\n      };\r\n    }\r\n\r\n    return null; // Nessun errore\r\n  };\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport type ITranslations = Record<\r\n  string,\r\n  { default: Record<string, Record<string, Record<string, string>>> }\r\n>;\r\n\r\nexport const TRANSLATION_CONFIGURATION_TOKEN =\r\n  new InjectionToken<ITranslations>('TRANSLATION_CONFIGURATION_TOKEN');\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n  ITranslations,\r\n  TRANSLATION_CONFIGURATION_TOKEN,\r\n} from './translation.configuration';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class I18nService {\r\n  constructor(\r\n    @Inject(TRANSLATION_CONFIGURATION_TOKEN)\r\n    private _translations: ITranslations\r\n  ) {}\r\n\r\n  translate(label: string): string {\r\n    const tokens = label.split('.');\r\n    const scope = this._translations[tokens[0]];\r\n    if (!scope) return `[ NO SCOPE [${tokens[0]}] ]`;\r\n    const subscope = scope.default[tokens[1]];\r\n    if (!subscope)\r\n      return `[ NO SUBSCOPE [${tokens[1]}] IN SCOPE [${tokens[0]}] ]`;\r\n    const lbl = subscope[tokens[2]];\r\n    if (!lbl)\r\n      return `[ NO LABEL [${tokens[2]}] IN SUBSCOPE [${tokens[1]}] IN SCOPE [${tokens[0]}] ]`;\r\n    return (\r\n      lbl['it'] ??\r\n      `[ NO ITALIAN TRANSLATION FOR [${tokens[2]}] IN SUBSCOPE [${tokens[1]}] IN SCOPE [${tokens[0]}] ]`\r\n    );\r\n  }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  standalone: true,\r\n  selector: 'tc-longdash',\r\n  templateUrl: './longdash.component.html',\r\n  styleUrls: ['./longdash.component.scss'],\r\n})\r\nexport class LongdashComponent {}\r\n","—","/*\r\n * Public API Surface of shared\r\n */\r\n\r\nexport * from './lib/authentication/public-api';\r\nexport * from './lib/base/public-api';\r\nexport * from './lib/utils/public-api';\r\nexport * from './lib/components';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.AuthService"],"mappings":"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"}