{"version":3,"file":"new-front-common-library.mjs","sources":["../../../projects/new-front-common-library/src/lib/util/config.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/jwt.helpher.ts","../../../projects/new-front-common-library/src/lib/util/services/api/common-api.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/local-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/local-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/interceptorhttp.service.ts","../../../projects/new-front-common-library/src/lib/util/pipes/my-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/directives/my-number-formatter-directive.ts","../../../projects/new-front-common-library/src/lib/util/pipes/capitalizefirst.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/comma-separated-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-html.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-null.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/format-number-input.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/local-date.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/trim-string.pipe.ts","../../../projects/new-front-common-library/src/lib/util/theme/theme-event.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/session-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/session-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/decorators/user.decorator.ts","../../../projects/new-front-common-library/src/lib/util/enums/family.enum.ts","../../../projects/new-front-common-library/src/lib/util/services/user/user-subsidiary.service.ts","../../../projects/new-front-common-library/src/lib/util/permissions/permissions.service.ts","../../../projects/new-front-common-library/src/lib/util/array.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.html","../../../projects/new-front-common-library/src/lib/util/models/commercial/work-record-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/models/commercial/invoice-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/services/api/legal-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/subsidiaries.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/elasticsearch.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/commercial-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/video-api.service.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.const.ts","../../../projects/new-front-common-library/src/lib/util/i18n/en.ts","../../../projects/new-front-common-library/src/lib/util/i18n/fr.ts","../../../projects/new-front-common-library/src/lib/util/i18n/de.ts","../../../projects/new-front-common-library/src/lib/util/pipes/common-translate.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.html","../../../projects/new-front-common-library/src/lib/util/enums/rapid-search-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/pipes/third-party-address-search.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.html","../../../projects/new-front-common-library/src/lib/util/enums/history-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.html","../../../projects/new-front-common-library/src/lib/util/decorators/theme.decorator.ts","../../../projects/new-front-common-library/src/lib/util/services/api/notification-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/auth/auth.service.ts","../../../projects/new-front-common-library/src/lib/util/services/notification/notification.service.ts","../../../projects/new-front-common-library/src/lib/util/component/header/personal-notification/personal-notification.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/personal-notification/personal-notification.component.html","../../../projects/new-front-common-library/src/lib/util/services/translate-language/lang.service.ts","../../../projects/new-front-common-library/src/lib/util/component/header/settings/settings.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/settings/settings.component.html","../../../projects/new-front-common-library/src/lib/util/enums/notification-classification.enum.ts","../../../projects/new-front-common-library/src/lib/util/pipes/notification-classification-icon.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/notification/notification-bar.component.ts","../../../projects/new-front-common-library/src/lib/util/component/notification/notification-bar.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/header.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/header.component.html","../../../projects/new-front-common-library/src/lib/util/component/sub-header/sub-header.component.ts","../../../projects/new-front-common-library/src/lib/util/component/sub-header/sub-header.component.html","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/aes.service.ts","../../../projects/new-front-common-library/src/lib/util/component/popup/popup-login/popup-login.component.ts","../../../projects/new-front-common-library/src/lib/util/component/popup/popup-login/popup-login.component.html","../../../projects/new-front-common-library/src/lib/util/toaster/toaster-events.service.ts","../../../projects/new-front-common-library/src/lib/util/event/header/header-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/history/history.service.ts","../../../projects/new-front-common-library/src/lib/util/directives/show-if-truncated.directive.ts","../../../projects/new-front-common-library/src/lib/util/pipes/third-party-address.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/format-duration.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/format-currency.pipe.ts","../../../projects/new-front-common-library/src/lib/util/paginator/custom-paginator-configuration.ts","../../../projects/new-front-common-library/src/lib/util/util.module.ts","../../../projects/new-front-common-library/src/lib/util/regex/regex.service.ts","../../../projects/new-front-common-library/src/lib/util/date/PeriodModel.ts","../../../projects/new-front-common-library/src/lib/util/date/date.util.ts","../../../projects/new-front-common-library/src/lib/util/date/date-format-constants.ts","../../../projects/new-front-common-library/src/lib/util/sort.ts","../../../projects/new-front-common-library/src/lib/util/number.validator.ts","../../../projects/new-front-common-library/src/lib/util/models/referentiel.model.ts","../../../projects/new-front-common-library/src/lib/util/models/audio-content.model.ts","../../../projects/new-front-common-library/src/lib/util/models/authUser.model.ts","../../../projects/new-front-common-library/src/lib/util/models/user-video.model.ts","../../../projects/new-front-common-library/src/lib/util/models/basic.model.ts","../../../projects/new-front-common-library/src/lib/util/models/product-disc-detail.model.ts","../../../projects/new-front-common-library/src/lib/util/models/disc.model.ts","../../../projects/new-front-common-library/src/lib/util/models/program.model.ts","../../../projects/new-front-common-library/src/lib/util/models/disc-program.model.ts","../../../projects/new-front-common-library/src/lib/util/models/menu-language.model.ts","../../../projects/new-front-common-library/src/lib/util/models/product-type.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/media.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/language.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/territory.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/third-party.model.ts","../../../projects/new-front-common-library/src/lib/util/models/product.model.ts","../../../projects/new-front-common-library/src/lib/util/models/box-set-item.model.ts","../../../projects/new-front-common-library/src/lib/util/models/product-box-set.model.ts","../../../projects/new-front-common-library/src/lib/util/models/product-disc.model.ts","../../../projects/new-front-common-library/src/lib/util/models/subtitle-content.model.ts","../../../projects/new-front-common-library/src/lib/util/models/video-content.model.ts","../../../projects/new-front-common-library/src/lib/util/models/purchase-order/purchase-order.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/adress-type.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/adress.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/attached-file.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/bank-account.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/bank-accounts.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/basic-hierarchy.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/color.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/company.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/content-type.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/content.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/cost-center-criteria-values.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/cost-center-criteria.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/cost-center.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/coutry.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/currency.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/editorial-content.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/fixing.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/flat-media.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/format-image.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/format-type.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/format.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/referential-value.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/fsk-index.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/fsk.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/function.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/genre.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/invoice-product-type.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/keywords.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/media-filter.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/module.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/participant.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/person.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/project-status.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/quota.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/referential-entity-state.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/referentiel.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/sap-order.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/service-error.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/sound.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/territories-languages.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/territory-filter.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/theme.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/third-party-creation-request.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/third-party-module.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/translated-value-model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/tva.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/type-export.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/type-tva.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/zone.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/type-tva-company-territory.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-addons-model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-appartenance.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-genre.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-language.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-milo.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-restrictions-model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-theme.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-title.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-version-origin.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-versions-used.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/WorkVersionArticleDto.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-versions.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work-year-production.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/work.model.ts","../../../projects/new-front-common-library/src/lib/util/models/referential/broadcast-list-item.model.ts","../../../projects/new-front-common-library/src/lib/util/models/any-line.model.ts","../../../projects/new-front-common-library/src/lib/util/models/search-response.model.ts","../../../projects/new-front-common-library/src/lib/util/models/lang-line.model.ts","../../../projects/new-front-common-library/src/lib/util/models/eventType.model.ts","../../../projects/new-front-common-library/src/lib/util/models/media-line.model.ts","../../../projects/new-front-common-library/src/lib/util/models/select/options.model.ts","../../../projects/new-front-common-library/src/lib/util/models/select/select.model.ts","../../../projects/new-front-common-library/src/lib/util/models/user.model.ts","../../../projects/new-front-common-library/src/lib/util/models/legal/contract-work.model.ts","../../../projects/new-front-common-library/src/lib/util/models/legal/contract-work2.model.ts","../../../projects/new-front-common-library/src/lib/util/services/form-action/form-actions-events.service.ts","../../../projects/new-front-common-library/src/lib/util/models/permission.model.ts","../../../projects/new-front-common-library/src/lib/util/models/section.model.ts","../../../projects/new-front-common-library/src/lib/util/models/subsidiary.model.ts","../../../projects/new-front-common-library/src/lib/util/models/family.model.ts","../../../projects/new-front-common-library/src/lib/util/models/notification.model.ts","../../../projects/new-front-common-library/src/lib/util/services/guard/auth.guard.ts","../../../projects/new-front-common-library/src/lib/util/services/guard/login.guard.ts","../../../projects/new-front-common-library/src/lib/util/http/http-params.builder.ts","../../../projects/new-front-common-library/src/lib/util/services/interceptor/auth.interceptor.ts","../../../projects/new-front-common-library/src/lib/util/enums/status-color.enum.ts","../../../projects/new-front-common-library/src/lib/util/enums/personal-notification-priority.enum.ts","../../../projects/new-front-common-library/src/lib/util/i18n/multi-translate-http-loader.ts","../../../projects/new-front-common-library/src/public-api.ts","../../../projects/new-front-common-library/src/new-front-common-library.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const WEB_CONFIG = new InjectionToken<Config>('WEB_CONFIG');\n\nexport interface Config {\n  api_url: string;\n  env: string;\n  elasticsearch_url?: string;\n}\n\nexport const DEFAULT_WEB_CONFIG: Config = {\n  api_url: 'http://localhost:8080',\n  env: 'DEV',\n  elasticsearch_url: 'https://vpc-unity-search-dev-nm5ydumospctjfaatstfjvoqey.eu-west-1.es.amazonaws.com'\n};\n","export class JwtHelper {\n\n    public decodeToken(token: string): any {\n        let parts: string[] = token.split('.');\n        if (parts.length !== 3) {\n            throw new Error('JWT must have 3 parts');\n        }\n        let decoded: string = this.urlBase64Decode(parts[1]);\n        if (!decoded) {\n            throw new Error('Cannot decode the token');\n        }\n        return JSON.parse(decoded);\n    }\n\n    private urlBase64Decode(str: string): string {\n        let output: string = str.replace(/-/g, '+').replace(/_/g, '/');\n        switch (output.length % 4) {\n            case 0: {\n                break;\n            }\n            case 2: {\n                output += '==';\n                break;\n            }\n            case 3: {\n                output += '=';\n                break;\n            }\n            default: {\n                throw 'Illegal base64url string!';\n            }\n        }\n        return decodeURIComponent((<any>window).escape(window.atob(output)));\n\n    }\n\n\n}\n","import { ProductModel, PurchaseOrderModel } from '../../models';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n// Angular2\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { catchError } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { JwtHelper } from '../jwt-security/jwt.helpher';\n\n\nconst TOKEN_NAME = 'authToken';\nconst SECONDARY_TOKEN_NAME = 'authTokenSecondary';\n\n@Injectable()\nexport class CommonApiService {\n  private readonly config: Config = inject(WEB_CONFIG);\n  private readonly cookieService: CookieService = inject(CookieService);\n  private readonly http: HttpClient = inject(HttpClient);\n\n  public headers: HttpHeaders = new HttpHeaders({\n    'Content-Type': 'application/json'\n  });\n\n  public jwtHelper: JwtHelper = new JwtHelper();\n\n  public static handleError(error: any): Observable<never> {\n    const errMsg: any = (error as any)?.error ?? 'api error';\n    return throwError(() => errMsg);\n  }\n\n  // Global product search\n  public getProductGlobalSearch(\n    searchInput: string,\n    language: string\n  ): Observable<ProductModel[]> {\n    return this.http\n      .get<ProductModel[]>(\n        this.config.api_url +\n        '/video-api/products/globalSearch?searchInput=' +\n        searchInput +\n        '&language=' +\n        language\n      )\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public getPurchaseOrderByGlobalSearch(\n    searchInput: string,\n    language: string\n  ): Observable<PurchaseOrderModel[]> {\n    return this.http\n      .get<PurchaseOrderModel[]>(\n        this.config.api_url +\n        '/video-api/purchaseOrders/globalSearch?searchInput=' +\n        searchInput +\n        '&language=' +\n        language\n      )\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public setToken(token: string): void {\n    sessionStorage.removeItem(TOKEN_NAME);\n    sessionStorage.setItem(TOKEN_NAME, token);\n  }\n\n  public setSecondaryToken(token: string): void {\n    sessionStorage.removeItem(SECONDARY_TOKEN_NAME);\n    sessionStorage.setItem(SECONDARY_TOKEN_NAME, token);\n  }\n\n  getToken(): string {\n    const user: any = this.decodeToken(TOKEN_NAME);\n    if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n      return sessionStorage.getItem(SECONDARY_TOKEN_NAME);\n    }\n\n    return sessionStorage.getItem(TOKEN_NAME);\n  }\n\n  public decodeToken(tokenName: string): any {\n    return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\n  }\n\n  public getUserDataFromToken(): any {\n    const user: any = this.decodeToken(TOKEN_NAME);\n\n    if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n      return Object.assign({secondary: true}, this.decodeToken(SECONDARY_TOKEN_NAME));\n    }\n\n    return user;\n  }\n\n  public isTokenValid(): boolean {\n    let payload: any;\n    try {\n      payload = this.getUserDataFromToken();\n    } catch (e) {\n      payload = {};\n    }\n\n    if (!payload.exp) {\n      return false;\n    }\n\n    return payload.exp * 1000 > Date.now();\n  }\n\n  public ssoLogin(email: string): Observable<any> {\n    const url: string = this.config.api_url + '/authorization-api/login/email';\n\n    return this.http\n      .post(url, email, {headers: this.headers})\n      .pipe(catchError(CommonApiService.handleError));\n  }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageEventsService {\n\n    public localStorageEvent: EventEmitter<any> = new EventEmitter();\n\n    // emit an event when local storage change\n    public emitLocalStorageEvent(): void {\n        this.localStorageEvent.emit('maj localstorage');\n    }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\n\n@Injectable()\nexport class LocalStorageService {\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n\n  // Check if the data exist in the session storage\n  public exist(key: string): boolean {\n    return localStorage.hasOwnProperty(key);\n  }\n\n  public get(key: string): any {\n    return (this.exist(key) && !!localStorage.getItem(key)) ? JSON.parse(localStorage.getItem(key)) : null;\n  }\n\n  public post(key: string, data: any): void {\n    localStorage.setItem(key, JSON.stringify(data));\n    this.localStorageEventsService.emitLocalStorageEvent();\n  }\n\n  // check if the key exist in the local storage and if it equals to the value param\n  public contains(key: string, data: any): boolean {\n    return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1;\n  }\n\n  public delete(key: string): boolean {\n    if (this.exist(key)) {\n      localStorage.removeItem(key);\n      return true;\n    }\n    return false;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nconst AUTH_HEADER_KEY = 'Authorization';\nconst AUTH_PREFIX = 'Bearer ';\nconst TOKEN_NAME = 'authToken';\n\n@Injectable()\nexport class InterceptorHttpService implements HttpInterceptor {\n\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n        const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n        req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n        return next.handle(req);\n    }\n\n    // TODO à refaire lorsque l'on réactivera l'interceptor du BACK d'orphe\n    // public request(url: string | Request): Observable<Response> {\n    //\n    //   const token = sessionStorage.getItem(TOKEN_NAME);\n    //\n    //   const options = {headers: new Headers()};\n    //   if (typeof url === 'string') {\n    //\n    //     options.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n    //   } else {\n    //     url.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n    //   }\n    //   return super.request(url, options).catch(this.catchError);\n    // }\n    //\n    // public get(url: string, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.get(url, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public post(url: string, body: any, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.post(url, body, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public put(url: string, body: any, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.put(url, body, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public delete(url: string, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.delete(url, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public patch(url: string, body: any, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.patch(url, body, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public head(url: string, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.head(url, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // public options(url: string, options?): Observable<Response> {\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\n    //   return super.options(url, enhacedOptions).pipe(catchError(this.catchError));\n    // }\n    //\n    // // Ajout de l'attribut Authorization au Header\n    // private setAuthorizationHeader(options?) {\n    //\n    //   const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n    //   // Copie du header dans le RequestOptions et ajout du token a 'Authorization'\n    //   const headers = {\n    //     ...options.headers.toJSON(),\n    //     Authorization: token\n    //   };\n    //   options.headers = new Headers(headers);\n    //   return options;\n    // }\n    //\n    // // Response Interceptor\n    // private catchError(error: any): Observable<any> {\n    //\n    //   if (error instanceof HttpErrorResponse) {\n    //     return Observable.throw(error);\n    //   } else if (error instanceof Response) {\n    //     if (sessionStorage.getItem('loginFlag') === 'true' && error.status === 401) {\n    //       sessionStorage.removeItem(TOKEN_NAME);\n    //       sessionStorage.removeItem('loginFlag');\n    //       window.location.reload();\n    //     }\n    //     return Observable.throw(error);\n    //   } else {\n    //     return Observable.throw(error);\n    //   }\n    // }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({name: 'myNumberFormat'})\nexport class MyNumberPipe implements PipeTransform {\n    private DECIMAL_SEPARATOR: string;\n    private THOUSANDS_SEPARATOR: string;\n\n    constructor() {\n        // TODO comes from configuration settings\n        this.DECIMAL_SEPARATOR = '.';\n        this.THOUSANDS_SEPARATOR = ' ';\n    }\n\n    public transform(value: number | string, fractionSize: number): string {\n        if (value !== '' && value !== null) {\n            let [integer, fraction = ''] = value\n                .toString()\n                .split(this.DECIMAL_SEPARATOR);\n\n            fraction =\n                fractionSize > 0\n                    ? this.DECIMAL_SEPARATOR +\n                    (fraction + PADDING).substring(0, fractionSize)\n                    : '';\n\n            integer = integer.replace(\n                /\\B(?=(\\d{3})+(?!\\d))/g,\n                this.THOUSANDS_SEPARATOR\n            );\n            return integer + fraction;\n        } else {\n            return null;\n        }\n    }\n\n    public parse(value: string, fractionSize: number): string {\n        let [integer, fraction = ''] = (value || '').split(this.DECIMAL_SEPARATOR);\n\n        integer = integer.replace(new RegExp(this.THOUSANDS_SEPARATOR, 'g'), '');\n\n        fraction =\n            parseInt(fraction, 10) > 0 && fractionSize > 0\n                ? this.DECIMAL_SEPARATOR +\n                (fraction + PADDING).substring(0, fractionSize)\n                : '';\n\n        return integer + fraction;\n    }\n}\n","import { Directive, ElementRef, HostListener, inject, input, InputSignal, OnInit } from '@angular/core';\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\n\n@Directive({selector: '[myNumberFormatter]'})\nexport class MyNumberFormatterDirective implements OnInit {\n  decimalNumber: InputSignal<number> = input<number>();\n  private el: HTMLInputElement;\n\n  private readonly elementRef: ElementRef = inject(ElementRef);\n  private readonly currencyPipe: MyNumberPipe = inject(MyNumberPipe);\n\n  constructor() {\n    this.el = this.elementRef.nativeElement;\n  }\n\n  public ngOnInit(): void {\n    this.el.value = this.currencyPipe.transform(\n      this.el.value,\n      this.decimalNumber()\n    );\n  }\n\n  @HostListener('focus', ['$event.target.value'])\n  public onFocus(value: any): void {\n    this.el.value = this.currencyPipe.parse(value, this.decimalNumber()); // opposite of transform\n  }\n\n  @HostListener('blur', ['$event.target.value'])\n  public onBlur(value: any): void {\n    this.el.value = this.currencyPipe.transform(value, this.decimalNumber());\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'myCapitalizeFirst',\n  standalone: true\n})\nexport class CapitalizefirstPipe implements PipeTransform {\n  public transform(value: string | null | undefined): string {\n    if (!value) {\n      return '';\n    }\n\n    // Handle compound names with hyphens (e.g., \"jean-pierre\" -> \"Jean-Pierre\")\n    if (value.includes('-')) {\n      return value\n        .split('-')\n        .map(word => this.capitalizeWord(word))\n        .join('-');\n    }\n\n    // Handle multiple names with spaces (e.g., \"de la fontaine\" -> \"De La Fontaine\")\n    return value\n      .split(' ')\n      .map(word => this.capitalizeWord(word))\n      .join(' ');\n  }\n\n  /**\n   * Capitalizes the first letter of a word and forces the rest to lowercase\n   */\n  private capitalizeWord(word: string): string {\n    if (!word) return '';\n    return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'mySpacesNumberPipe'})\nexport class SpacesNumberPipe implements PipeTransform {\n    public transform(value: any): any {\n        // we remove all spaces\n        return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n    name: 'mySanitizeHtml'\n})\nexport class SanitizeHtml implements PipeTransform {\n\n    constructor(private _sanitizer: DomSanitizer) {\n    }\n\n    public transform(html: string): SafeHtml {\n        return this._sanitizer.bypassSecurityTrustHtml(html);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myDisplayNullPipe'})\nexport class DisplayNullPipe implements PipeTransform {\n\n    private static returnCorrectFormat(object: any): any {\n        return (object) ? object : '-';\n    }\n\n    public transform(value: any, fieldName: string = ''): any {\n        // Case 1: test value param\n        if (!fieldName) {\n            return DisplayNullPipe.returnCorrectFormat(value);\n        } else {\n            // Case 2: test sub attribut value\n            return (value) ? DisplayNullPipe.returnCorrectFormat(value[fieldName]) : '-';\n        }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myAddSpacesInputPipe'})\nexport class FormatNumberInput implements PipeTransform {\n    public transform(numberValue: any): any {\n        if (numberValue === null || numberValue < 0 || isNaN(numberValue)) {\n            return null;\n        }\n        numberValue = numberValue.toString();\n\n        // remove spaces\n        numberValue = numberValue.replace(/ /g, '');\n\n        // add spaces\n        numberValue = numberValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n        return numberValue;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({name: 'myLocalDateFormat'})\nexport class LocalDatePipe implements PipeTransform {\n\n    public perpetuityLabel: string = '';\n\n    public transform(\n        value: any,\n        currentLanguage: string,\n        format: string\n    ): string {\n\n        if (currentLanguage === 'fr') {\n            this.perpetuityLabel = 'Perpétuité';\n        } else if (currentLanguage === 'en' || currentLanguage === 'de') {\n            this.perpetuityLabel = 'Perpetuity';\n        }\n\n        if (value === '-' || value === this.perpetuityLabel) {\n            return this.perpetuityLabel;\n        }\n        return new DatePipe(currentLanguage).transform(value, format);\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myTrimString'})\nexport class TrimStringPipe implements PipeTransform {\n\n    public transform(value: string, size: number, message: string): string {\n        // Case 1: test value param\n        if (value === null || value === undefined || value === '') {\n            return value;\n        }\n\n        if (value.length < size) {\n            return value;\n        }\n\n        let posSpace: number = value.indexOf(' ', size);\n        if (posSpace !== -1) {\n            return value.substring(0, posSpace) + ' ' + message;\n        }\n\n        return value.substring(0, size) + ' ' + message;\n    }\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ThemeEventsService {\n\n    public switchThemeEmitter: EventEmitter<any> = new EventEmitter();\n\n    // emit an event when local storage change\n    public switchTheme(): void {\n        this.switchThemeEmitter.emit();\n    }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SessionStorageEventsService {\n    public sessionsStorageUpdateEvent: EventEmitter<any> = new EventEmitter();\n    public updateSubscriberEvent: EventEmitter<any> = new EventEmitter();\n\n    // emit a success event toaster\n    public emitUpdate(): void {\n        this.sessionsStorageUpdateEvent.emit('update');\n    }\n}\n","// Angular 2\nimport { inject, Injectable } from '@angular/core';\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\n\n// Services\n\n@Injectable()\nexport class SessionStorageService {\n  private readonly sessionStorageEventsService: SessionStorageEventsService = inject(SessionStorageEventsService);\n\n  // Check if the data exist in the session storage\n  public exist(key: string): boolean {\n    return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key));\n  }\n\n  public get(key: string): any {\n    return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\n  }\n\n  public post(key: string, data: any): void {\n    sessionStorage.setItem(key, JSON.stringify(data));\n    this.sessionStorageEventsService.emitUpdate();\n  }\n\n  // check if the key exist in the session storage and if it equals to the value param\n  public contains(key: string, data: any): boolean {\n    return this.get(key).indexOf(JSON.stringify(data)) !== -1;\n  }\n\n  public delete(key: string): boolean {\n    if (this.exist(key)) {\n      sessionStorage.removeItem(key);\n      return true;\n    }\n    return false;\n  }\n}\n","import { JwtHelper } from '../services/jwt-security/jwt.helpher';\n\nexport function User(): (target: any, key: string) => void {\n\n    const jwtHelper: JwtHelper = new JwtHelper();\n    return (target: any, key: string): void => {\n\n        // Check if the data exist in the local storage\n        function exist(dataKey: string): boolean {\n            return sessionStorage.hasOwnProperty(dataKey);\n        }\n\n        // Get data from local storage\n        function get(user: string): any {\n            return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;\n        }\n\n        Object.defineProperty(target, key, {\n            configurable: false,\n            get: () => {\n                const user: any = get('authToken');\n                if (user && user.superAdmin && exist('authTokenSecondary')) {\n                    return Object.assign({secondary: true}, get('authTokenSecondary'));\n                }\n                return user;\n            }\n        });\n    };\n\n}\n","export enum Family {\n  CANAL_PLUS_INTERNATIONAL = 'Canal+ International',\n  STUDIOCANAL = 'Studiocanal',\n}\n","import { Injectable } from '@angular/core';\nimport { SubsidiaryModel, UserModel } from '../../models';\nimport { Family } from '../../enums/family.enum';\nimport { User } from '../../decorators/user.decorator';\n\n@Injectable()\nexport class UserSubsidiaryService {\n  @User() public user: UserModel;\n\n  public isCanalPlusInternationalUser(): boolean {\n    return this.user?.subsidiaries?.length > 0 && this.user.subsidiaries.every(\n      (value: SubsidiaryModel): boolean => value.family?.label === Family.CANAL_PLUS_INTERNATIONAL.valueOf()\n    );\n  }\n\n  public isStudiocanalUser(): boolean {\n    return this.user?.subsidiaries?.length > 0 && this.user?.subsidiaries?.some(\n      (value: SubsidiaryModel): boolean => value.family?.label === Family.STUDIOCANAL.valueOf()\n    );\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { User } from '../decorators/user.decorator';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\nimport { AuthUserModel } from \"../models\";\n\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\n\n@Injectable()\nexport class PermissionsService {\n  @User() public user: AuthUserModel;\n\n\n  private readonly permissionsService: NgxPermissionsService = inject(NgxPermissionsService);\n  private readonly userSubsidiaryService: UserSubsidiaryService = inject(UserSubsidiaryService);\n\n  public init(): void {\n    if (this.user?.permissions?.length > 0 && this.shouldLoadUserPermissions()) {\n      const userPermissions: string[] = this.user.permissions.map((p) => p.code);\n\n      // Create a virtual permission that can be used to restrict access if user only has access to \"C+I\"\n      // subsidiaries\n      if (this.userSubsidiaryService.isCanalPlusInternationalUser()) {\n        userPermissions.push(CANAL_PLUS_INTERNATIONAL_RESTRICTION);\n      }\n\n      this.permissionsService.loadPermissions(userPermissions);\n    }\n  }\n\n  public hasPermission(code: string): boolean {\n    return this.user?.permissions?.filter((p: any): boolean => p.code === code).length > 0;\n  }\n\n  private shouldLoadUserPermissions(): boolean {\n    const loadedPermissions: string[] = Object.keys(this.permissionsService.getPermissions());\n    if (loadedPermissions.length !== this.user.permissions.length) {\n      return true;\n    }\n    let res: boolean = false;\n    this.user.permissions.forEach((p: any): void => {\n      if (loadedPermissions.indexOf(p.code) === -1) {\n        res = true;\n      }\n    });\n    return res;\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ArrayService {\n\n    /** Check if a value is in array */\n    public inArray(value: any, array: any): boolean {\n        if (value === null || array === null) {\n            return false;\n        } else {\n            return array.indexOf(value) !== -1;\n        }\n    }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class OverlayService {\n  public showEvent: EventEmitter<string> = new EventEmitter<string>();\n  public hideEvent: EventEmitter<any> = new EventEmitter<any>();\n  public setMessageEvent: EventEmitter<string> = new EventEmitter<string>();\n\n  public show(message?: string): void {\n    this.showEvent.emit(message);\n  }\n\n  public setMessage(message: string): void {\n    this.setMessageEvent.emit(message);\n  }\n\n  public hide(): void {\n    this.hideEvent.emit();\n  }\n}\n","import { ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\nimport { OverlayService } from './overlay.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n  selector: 'sc-overlay',\n  styleUrls: ['./overlay.component.css'],\n  templateUrl: './overlay.component.html'\n})\nexport class OverlayComponent implements OnInit {\n  public message: string;\n  public show: boolean = false;\n\n  private readonly router: Router = inject(Router);\n  private readonly translateService: TranslateService = inject(TranslateService);\n  private readonly overlayService: OverlayService = inject(OverlayService);\n  private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n  public ngOnInit(): void {\n    this.router.events.subscribe(() => {\n      this.show = false;\n    });\n\n    this.overlayService.showEvent.subscribe((message?: string): void => {\n      this.message = message || this.message;\n      this.show = true;\n      this.cdr.detectChanges();\n    });\n\n    this.overlayService.hideEvent.subscribe((): void => {\n      this.show = false;\n    });\n\n    this.overlayService.setMessageEvent.subscribe((message: string) => {\n      this.message = message;\n    });\n  }\n}\n","@if (show) {\n  <div class=\"blackshield\"></div>\n\n  <div class=\"d-flex justify-content-center align-items-center\">\n    <mat-card class=\"overshield\">\n      <mat-card-content class=\"d-flex justify-content-between align-items-center\">\n        <span>{{ message || 'CORE.OVERLAY.LOADING' | translate }}</span>\n        <mat-spinner diameter=\"40\"></mat-spinner>\n      </mat-card-content>\n    </mat-card>\n  </div>\n}\n\n\n","export class WorkRecordRapidSearchModel {\n  id: string;\n  workRecordId: string;\n  dealNumber: string;\n  thirdPartyClientName: string;\n  miloCode: string;\n  amount: number;\n  currencyCode: string;\n  titles: {\n    vo: string;\n    fr?: string;\n    en?: string;\n    de?: string;\n  }\n  docType: string;\n\n  /**\n   * Returns the title for the language. If the language is undefined or unsupported, returns the VO title.\n   * @param language\n   */\n  getTitle(language?: string): string {\n    if (!language || !this.titles[language] || this.titles[language].length === 0) {\n      return this.titles.vo;\n    }\n\n    return this.titles[language];\n  }\n}\n","export class InvoiceRapidSearchModel {\n  number: string;\n  dealNumber: string;\n  thirdPartyClientName: string;\n  miloCode: string;\n  amount: number;\n  currencyCode: string;\n  right: boolean;\n  invoiceId: number;\n  docType: string;\n  titles: {\n    vo: string;\n    fr?: string;\n    en?: string;\n    de?: string;\n  }\n\n  getTitle(language?: string): string {\n    if (!language || !this.titles[language] || this.titles[language].length === 0) {\n      return this.titles.vo;\n    }\n\n    return this.titles[language];\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { catchError } from \"rxjs/operators\";\nimport { HttpClient } from \"@angular/common/http\";\n\n@Injectable()\nexport class LegalApiService {\n  private readonly config: Config = inject(WEB_CONFIG);\n  private readonly http: HttpClient = inject(HttpClient);\n\n  public apiUrl: string = this.config.api_url + '/legal-api/';\n\n  public header: Headers = new Headers({\n    'Content-Type': 'application/json'\n  });\n\n  public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\n    return this.http.get<Record<number, number[]>>(this.apiUrl + 'societe/subsidiary_mapping')\n      .pipe(catchError(this.handleError));\n  }\n\n  public handleError(error: any): Observable<never> {\n    const errMsg: any = (error as any)?.error ?? 'api error';\n    return throwError((): any => errMsg);\n  }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { SubsidiaryModel } from \"../../models\";\nimport { LegalApiService } from \"../api/legal-api.service\";\n\n@Injectable({providedIn: 'root'})\nexport class SubsidiariesService {\n\n  private readonly legalService: LegalApiService = inject(LegalApiService);\n\n  private defaultMapping: Record<number, number[]> = {\n    1: [4991],\n    2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n    3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n    4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n    5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n    6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n    7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1]\n  }\n\n  private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\n\n  constructor() {\n    this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n    const isLocal = window.location.hostname === 'localhost';\n    if (!isLocal) {\n      this.loadTableSocieteAppartenance();\n    } else {\n      console.log('Default mapping for subsidiaryToSocieteMapLegal');\n    }\n  }\n  loadTableSocieteAppartenance(): void {\n    this.legalService.getMappingSocietesSubsidiaries().subscribe({\n      next: (map: Record<number, number[]>): void => {\n        this.subsidiaryToSocieteMapLegal = map;\n      },\n      error: (): void => {\n        console.log('Default mapping for subsidiaryToSocieteMapLegal');\n        this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n      }\n    })\n  }\n\n  getSocieteAppartenance(subsidiaries: SubsidiaryModel[]): number[] {\n    if (subsidiaries === null) {\n      return null;\n    }\n    return subsidiaries\n      .reduce((acc: number[], sub: SubsidiaryModel): number[] => {\n        const societes: number[] = this.subsidiaryToSocieteMapLegal[sub.id] || [];\n        return acc.concat(societes);\n      }, [])\n      .filter((v: number, i: number, arr: number[]): boolean => arr.indexOf(v) === i);\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { Client as ClientJs } from 'elasticsearch-browser';\nimport { Client, MSearchResponse } from 'elasticsearch';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { WorkRecordRapidSearchModel } from \"../../models/commercial/work-record-rapid-search-model\";\nimport { InvoiceRapidSearchModel } from \"../../models/commercial/invoice-rapid-search-model\";\nimport { AuthUserModel, SubsidiaryModel } from \"../../models\";\nimport { SubsidiariesService } from \"./subsidiaries.service\";\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\n\n\n@Injectable()\nexport class ElasticsearchService {\n  private readonly config: Config = inject(WEB_CONFIG);\n  private readonly subsidiariesMappingService: SubsidiariesService = inject(SubsidiariesService);\n\n  private client: Client;\n  PROFILE_SEARCH_CONFIG = {\n    'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n    'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n    'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n    'VIDEO_CONSULT': ['unity-product*'],\n    'BDC': ['unity-purchase-order*'],\n    'LEGAL': ['unity-contract*'],\n    'ROYALTY': ['unity-royalty-contract', 'unity-royalty-count', 'unity-royalty-invoice'],\n  }\n\n  private getElasticsearchClient(): Client {\n    if (!this.client) {\n      this.client = new ClientJs({\n        host: this.config.elasticsearch_url\n      });\n    }\n    return this.client;\n  }\n\n  public getSearchResponse(text: string, user: AuthUserModel): Observable<MSearchResponse<any>> {\n    const allIndexes: Set<string> = new Set<string>();\n    allIndexes.add('unity-work-version*')\n    allIndexes.add('unity-third-party*')\n\n    for (const permission of user.permissions) {\n      const indexes: any = this.PROFILE_SEARCH_CONFIG[permission.code];\n      indexes?.forEach(idx => allIndexes.add(idx));\n    }\n\n    const body: any[] = [];\n    for (const index of allIndexes) {\n      body.push({index});\n      switch (index) {\n        case 'unity-work-version*' :\n          body.push({\n            query: {\n              dis_max: {\n                queries: [{wildcard: {miloCode: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}, {wildcard: {title: {value: text + '*'}}}, {wildcard: {title: {value: text}}}],\n                tie_breaker: 0.5\n              }\n            },\n            sort: [{_score: {order: 'desc'}}, {title: {order: \"asc\"}}],\n            size: 50\n          });\n          break;\n        case 'unity-product*' :\n          body.push({\n            query: {dis_max: {queries: [{wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}]}},\n            sort: {releaseDate: {order: 'desc'}},\n            size: 50\n          });\n          break;\n        case 'unity-purchase-order*' :\n          body.push({\n            query: {dis_max: {queries: [{wildcard: {poNumber: {value: '*' + text + '*'}}}, {wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {basketNumber: {value: '*' + text + '*'}}}]}},\n            size: 50\n          });\n          break;\n        case 'unity-deal*' :\n          body.push({\n            query: {dis_max: {queries: [{wildcard: {dealNumber: {value: '*' + text + '*'}}}]}},\n            sort: [{_score: {order: 'desc'}}, {'dealNumber.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-work-record*' :\n          body.push({\n            query: {dis_max: {queries: [{wildcard: {workRecordId: {value: '*' + text + '*'}}}]}},\n            sort: [{'workRecordId.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-invoice*' :\n          body.push({\n            query: {dis_max: {queries: [{wildcard: {number: {value: '*' + text + '*'}}}]}},\n            sort: [{'number.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-third-party*' :\n          body.push({\n            query: {\n              dis_max: {\n                queries: [{wildcard: {companyOrPersonName: {value: '*' + text + '*'}}}, {wildcard: {companyOrPersonName: {value: text + '*'}}}, {wildcard: {companyOrPersonName: {value: text}}}],\n                tie_breaker: 0.5\n              }\n            },\n            sort: [{_score: {order: 'desc'}}, {companyOrPersonName: {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-contract*': {\n          const societes = this.subsidiariesMappingService.getSocieteAppartenance(user.subsidiaries);\n          if (!societes || societes.length === 0) {\n            break;\n          }\n          body.push({\n            query: {\n              bool: this.composeContractQuery(text, societes)\n            },\n            sort: [{'lisaId.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        }\n        case 'unity-royalty-contract' :\n          body.push({\n            query: {wildcard: {\"contractNumber.keyword\": {value: '*' + text + '*', case_insensitive: true}}},\n            sort: [{'contractNumber.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-royalty-count' :\n          body.push({\n            query: {wildcard: {\"countNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n            sort: [{'countNumber.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n        case 'unity-royalty-invoice' :\n          body.push({\n            query: {wildcard: {\"invoiceNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n            sort: [{'invoiceNumber.keyword': {order: 'asc'}}],\n            size: 50\n          });\n          break;\n      }\n    }\n    return from(this.getElasticsearchClient().msearch({body}));\n  }\n\n  public getDocuments(searchResponse: any): RapidSearchAllDocumentModel[] {\n    let results: any[] = [];\n    if (searchResponse && searchResponse.responses) {\n      for (const r of searchResponse.responses) {\n        if (r.error || !r.hits) {\n          continue;\n        }\n\n        const item: any = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];\n        results = results.concat(item);\n      }\n    }\n    return results;\n  }\n\n  mapDocument(doc: any): any {\n    switch (doc._source.docType) {\n      case 'INVOICE':\n        return Object.assign(new InvoiceRapidSearchModel(), doc._source);\n      case 'WORK_RECORD':\n        return Object.assign(new WorkRecordRapidSearchModel(), doc._source);\n      default:\n        return doc._source;\n    }\n  }\n\n  private composeContractQuery(text: string, societes: number[]) {\n    return {\n      must: [{wildcard: {lisaId: {value: `*${text}*`}}}],\n      filter: [{terms: {'societeAppartenance.keyword': societes.map(String)}}]\n    };\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\n\n@Injectable()\nexport class CommercialApiService {\n  private readonly config: Config = inject(WEB_CONFIG);\n\n  public apiUrl: string = this.config.api_url + '/commercial-api/';\n\n  public header: Headers = new Headers({\n    'Content-Type': 'application/json'\n  });\n\n  public static handleError(error: Response): Observable<never> {\n    const errMsg: any = (error as any)?.error ?? 'api error';\n    return throwError((): any => errMsg);\n  }\n\n  public getAccountWrittingDownload(): void {\n    window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class VideoApiService {\n  private readonly config: Config = inject(WEB_CONFIG);\n  private readonly cookieService: CookieService = inject(CookieService);\n  private readonly http: HttpClient = inject(HttpClient);\n\n  public apiUrl: string = this.config.api_url + '/video-api/';\n\n  public header: Headers = new Headers({\n    'Content-Type': 'application/json'\n  });\n\n  public static handleError(error: HttpErrorResponse): Observable<never> {\n    if (error.error instanceof ErrorEvent) {\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error('An error occurred:', error.error.message);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong,\n      console.error(\n        `Backend returned code ${error.status}, ` +\n        `body was: ${error.ok}`);\n    }\n    // return an observable with a user-facing error message\n    return throwError(() => 'Something bad happened; please try again later.');\n  }\n\n  public getProductExtractionXlsx(lang: string): Observable<any> {\n    return this.http.get(this.apiUrl + `products/all-products-to-xlsx?language=${lang}`, {responseType: 'blob'})\n      .pipe(catchError(VideoApiService.handleError));\n  }\n\n}\n","import { Menu } from './menu.model';\nimport { CANAL_PLUS_INTERNATIONAL_RESTRICTION } from '../../../permissions/permissions.service';\n\nexport const MENU_SECTIONS: Menu[] = [\n  {\n    label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB',\n    permissions: [],\n    restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR',\n        permissions: [],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR',\n            module: 'calendar',\n            route: '',\n            actionType: 'navigate',\n            permissions: []\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT',\n        permissions: ['PA_CAMPAIGN_SEARCH', 'PA_CAMPAIGN_CREATION'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD',\n            module: 'slate-management',\n            route: '/dashboard',\n            actionType: 'navigate',\n            permissions: ['PA_CAMPAIGN_SEARCH']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE',\n            module: 'slate-management',\n            route: '/dashboard',\n            actionType: 'navigate',\n            queryParams: '{\"createCampaign\" : true}',\n            permissions: ['PA_CAMPAIGN_CREATION']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING',\n            module: 'slate-management',\n            route: '/calendar',\n            actionType: 'navigate',\n            permissions: ['PA_CAMPAIGN_CREATION']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY',\n        permissions: ['ROYALTY'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT',\n            module: 'royalty',\n            route: '/contract/search',\n            actionType: 'navigate',\n            permissions: ['ROYALTY']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT',\n            module: 'royalty',\n            route: '/contract/init',\n            actionType: 'navigate',\n            permissions: ['ROYALTY_EDIT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT',\n            module: 'royalty',\n            route: '/contract/create-blank',\n            actionType: 'navigate',\n            permissions: ['ROYALTY_EDIT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING',\n            module: 'royalty',\n            route: '/reporting',\n            actionType: 'navigate',\n            permissions: ['ROYALTY']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE',\n        permissions: ['ULTIMATES'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE',\n            module: null,\n            route: '/ultimates',\n            actionType: 'navigate',\n            permissions: ['ULTIMATES']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA',\n        permissions: ['TVDATA'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA',\n            module: 'tvdata',\n            route: '/infos-center',\n            actionType: 'navigate',\n            permissions: ['TVDATA']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT',\n        permissions: ['PILOT'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT',\n            module: 'pilot',\n            route: '/tv-series',\n            actionType: 'navigate',\n            permissions: ['PILOT']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING',\n        permissions: [],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI',\n            module: null,\n            route: 'https://app.powerbi.com/groups/me/apps/3bdbab87-921d-4271-bb63-2136541ed7a5/reports/6ed06054-c77f-450e-8c37-3fbc66761525/ReportSection?ctid=bf5c5de1-6a54-4091-a72f-90e32801628c&experience=power-bi',\n            actionType: 'redirect',\n            permissions: []\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.COMMERCIAL',\n    permissions: ['COMMERCIAL', 'ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH',\n        permissions: ['COMMERCIAL'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL',\n            module: 'commercial',\n            route: '/deal/search',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD',\n            module: 'commercial',\n            route: '/work-record/search',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE',\n            module: 'commercial',\n            route: '/invoice/search',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING',\n            module: 'commercial',\n            route: '/e-invoicing/search',\n            actionType: 'navigate',\n            permissions: ['E-INVOICING']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD',\n            module: 'commercial',\n            route: '/vod/search',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME',\n            module: 'commercial',\n            route: '/vod/volumes',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE',\n        permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER',\n            module: 'commercial',\n            route: '/turnover/search',\n            actionType: 'navigate',\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING',\n            module: 'commercial',\n            route: '/accounting-closing/consult',\n            actionType: 'navigate',\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION',\n            module: 'commercial-api',\n            route: '/accounting-writing/get-account-writting-file',\n            actionType: 'exportAccountWriting',\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS',\n        permissions: ['COMMERCIAL'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE',\n            module: 'commercial',\n            route: '/deal/form',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING',\n            module: 'commercial',\n            route: '/work-record/reporting',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR',\n            module: 'commercial',\n            route: '/work-record/console',\n            actionType: 'navigate',\n            permissions: ['COMMERCIAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING',\n            module: 'sales-tracking',\n            route: '/dashboard',\n            actionType: 'navigate',\n            permissions: []\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.LEGAL',\n    permissions: ['LEGAL'],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.LEGAL.SEARCH',\n        permissions: ['LEGAL'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS',\n            module: 'legal',\n            route: '/work-legal-details',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ',\n            module: 'legal',\n            route: '/contracts/search',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE',\n            module: 'legal',\n            route: '/contracts/search/CESS',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH',\n            module: 'legal',\n            route: '/advanced-search',\n            actionType: 'navigate',\n            permissions: ['LEGAL']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT',\n        permissions: ['LEGAL'],\n        restrictions: ['LEGAL_CONSULT'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ',\n            module: 'legal',\n            route: '/contracts-details/createContract/acq',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n            restrictions: ['LEGAL_CONSULT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE',\n            module: 'legal',\n            route: '/contracts-details/createContract/sales',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n            restrictions: ['LEGAL_CONSULT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR',\n            module: 'legal',\n            route: '/contracts-details/createContract/auth',\n            actionType: 'navigate',\n            permissions: ['LEGAL'],\n            restrictions: ['LEGAL_CONSULT']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.LEGAL.OTHER',\n        permissions: ['LEGAL'],\n        restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS',\n            module: 'legal',\n            route: '/electronic-documents',\n            actionType: 'navigate',\n            permissions: ['LEGAL']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY',\n            module: 'legal',\n            route: '/history',\n            actionType: 'navigate',\n            permissions: ['LEGAL']\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.VIDEO',\n    permissions: ['VIDEO_CONSULT'],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT',\n        permissions: ['VIDEO_CONSULT'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE',\n            module: 'video',\n            route: '/product/form',\n            actionType: 'navigate',\n            permissions: ['VIDEO_CONSULT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL',\n            module: 'video-api',\n            route: '/products/all-products-to-xlsx',\n            actionType: 'extractProduct',\n            permissions: ['VIDEO_CONSULT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH',\n            module: null,\n            route: '/advanced-search/product',\n            actionType: 'navigate',\n            permissions: ['VIDEO_CONSULT']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER',\n            module: 'video',\n            route: '/finance/sap-order-table',\n            actionType: 'navigate',\n            permissions: ['VIDEO_CONSULT', 'SAP_ORDER']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT',\n            module: 'video',\n            route: '/product/validate-product',\n            actionType: 'navigate',\n            permissions: ['VIDEO_CONSULT', 'VALIDATION PRUP/QEF']\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.PO',\n    permissions: ['BDC', 'BUDGET'],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.PO.PO',\n        permissions: ['BDC'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.PO.PO.DASHBOARD',\n            module: 'expenditure-commitment',\n            route: '/home/commands',\n            actionType: 'navigate',\n            permissions: ['BDC']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.PO.PO.CREATE',\n            module: 'expenditure-commitment',\n            route: '/purchase-orders/form',\n            actionType: 'navigate',\n            permissions: ['BDC']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.PO.PO.VALIDATE',\n            module: 'expenditure-commitment',\n            route: '/purchase-orders/validate',\n            actionType: 'navigate',\n            permissions: ['BDC']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.PO.PO.DELIVERY',\n            module: 'expenditure-commitment',\n            route: '/purchase-orders/delivery',\n            actionType: 'navigate',\n            permissions: ['BDC']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH',\n            module: null,\n            route: '/advanced-search/purchase-order',\n            actionType: 'navigate',\n            permissions: ['BDC']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.PO.BUDGET',\n        permissions: ['BDC', 'BUDGET'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET',\n            module: 'expenditure-commitment',\n            route: '/budget/search',\n            actionType: 'navigate',\n            permissions: ['BDC', 'BUDGET']\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.BI',\n    permissions: ['MODULE BI'],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.BI',\n        permissions: ['MODULE BI'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.BI',\n            module: 'bi',\n            route: '/simple-search/form',\n            actionType: 'navigate',\n            permissions: ['MODULE BI']\n          }\n        ]\n      }\n    ]\n  },\n  {\n    label: 'COMMON.HEADER.MENU.REFERENTIAL',\n    permissions: [],\n    sections: [\n      {\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK',\n        permissions: ['ADMIN'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK',\n            module: 'referential',\n            route: '/work/create-work',\n            actionType: 'navigate',\n            permissions: ['ADMIN']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER',\n            module: 'referential',\n            route: '/work/create-header',\n            actionType: 'navigate',\n            permissions: ['ADMIN']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE',\n            module: 'referential',\n            route: '/work/create-control-code',\n            actionType: 'navigate',\n            permissions: ['ADMIN']\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING',\n            module: 'mapping',\n            route: '',\n            actionType: 'navigate',\n            permissions: ['ADMIN']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON',\n        permissions: ['ADMIN'],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON',\n            module: 'referential',\n            route: '/person/create-person',\n            actionType: 'navigate',\n            permissions: ['ADMIN']\n          }\n        ]\n      },\n      {\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY',\n        permissions: [],\n        links: [\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS',\n            module: 'referential',\n            route: '/medias',\n            actionType: 'navigate',\n            permissions: []\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES',\n            module: 'referential',\n            route: '/territories',\n            actionType: 'navigate',\n            permissions: []\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES',\n            module: 'referential',\n            route: '/languages',\n            actionType: 'navigate',\n            permissions: []\n          },\n          {\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES',\n            module: 'referential',\n            route: '/alertes',\n            actionType: 'navigate',\n            permissions: []\n          }\n        ]\n      }\n    ]\n  }\n];\n","export const en = {\n  //HEADER MENU COMMERCIAL\n  'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n  //HEADER MENU USER\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n  //HEADER MENU REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n  // HEADER MENU ROYALTY\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n  // HEADER GOLBAL SEARCH\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titles',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Count',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Emission date',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'End date',\n\n  // HEADER HISTORY\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n  'COMMON.HEADER.HISTORY.PO': 'PO',\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n  // HEADER NOTIFICATION\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'No notification',\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Clear all',\n\n  // HEADER CREATION\n  'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n  'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n  'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n  // HEADER CONNECTED AS\n  'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n  'COMMON.HEADER.STOP': 'Stop',\n\n  // HEADER PARAMETERS\n  'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n  // HEADER DISTRIBUTION HUB\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n  // HEADER COMMERCIAL\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\n\n  // HEADER LEGAL\n  'COMMON.HEADER.MENU.LEGAL': 'Legal',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n  // HEADER VIDEO\n  'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n  // HEADER PO\n  'COMMON.HEADER.MENU.PO': 'Purchase order',\n  'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n  // HEADER BI\n  'COMMON.HEADER.MENU.BI': 'Sales support',\n\n  // HEADER REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","export const fr = {\n  //HEADER MENU COMMERCIAL\n  'COMMON.HEADER.MENU.DASHBOARD': 'Tableau de bord',\n\n  //HEADER MENU USER\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Utilisateurs',\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Mes préférences',\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Communications',\n\n  //HEADER MENU REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Référentiels',\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Administration des Batches',\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Engagement de dépenses',\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Aide à la vente',\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendrier',\n\n  // HEADER MENU ROYALTY\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n  // HEADER GOLBAL SEARCH\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'avancée',\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Recherche ...',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Produit',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Date de sortie',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Commande',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'N° Panier',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Oeuvre',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Code milo',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Année de production',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Montant',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Date de validation',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Tiers',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Titre',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titres',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Fiche',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contrat N',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Statut',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Client',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Cedant',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Facture',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Décompte',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Date d\\'émission',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'Date de fin',\n\n  // HEADER HISTORY\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Produit',\n  'COMMON.HEADER.HISTORY.PO': 'Commande',\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Fiche',\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contrat',\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contrat',\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contrat',\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'Pas d\\'historique disponible',\n\n  // HEADER NOTIFICATION\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'Aucune notification',\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Supprimer toutes les notifications',\n\n  // HEADER CREATION\n  'COMMON.HEADER.CREATION.PRODUCT': 'créer un produit',\n  'COMMON.HEADER.CREATION.PO': 'créer une commande',\n  'COMMON.HEADER.CREATION.DEAL': 'créer un deal',\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'créer un contrat d\\'acquisition',\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'créer un contrat de cession',\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'créer un contrat d\\'auteur',\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'créer une campagne',\n\n  // HEADER CONNECTED AS\n  'COMMON.HEADER.CONNECTED_AS': 'Connectée en tant que',\n  'COMMON.HEADER.STOP': 'Arrêter',\n\n  // HEADER PARAMETERS\n  'COMMON.HEADER.PARAMETERS.THEME': 'Changer le thème',\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'changer de langue',\n\n  // HEADER DISTRIBUTION HUB\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendrier',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendrier',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Créer une campagne',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Planning de sortie',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'P&A à valider',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Rechercher une campagne',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Rechercher un contrat Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Initialiser un contrat Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Créer un contrat Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n  // HEADER COMMERCIAL\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Recherche',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Fiche',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Facture',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Compta/CDG',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Chiffre d\\'affaire',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Clôturer la période',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Extraction fichier comptable',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utiles',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Créer un deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Facturation en erreur',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\n\n  // HEADER LEGAL\n  'COMMON.HEADER.MENU.LEGAL': 'Juridique',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Recherche',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Fiche juridique',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Contrat d\\'acquisition',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Contrat de cession',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Recherche avancée',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contrats',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Créer un contrat d\\'acquisition',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Créer un contrat de cession',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Créer un contrat d\\'auteur',\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Autre',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Documents numérisés',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historique',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n  // HEADER VIDEO\n  'COMMON.HEADER.MENU.VIDEO': 'Vidéo',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Produit',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Créer un produit',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Exporter tous les produits',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Rechercher un produit',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'Ordres SAP',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validation PRUP/QEF',\n\n  // HEADER PO\n  'COMMON.HEADER.MENU.PO': 'Commande',\n  'COMMON.HEADER.MENU.PO.PO': 'Commande',\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Créer une commande',\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Commandes à valider',\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Commandes à réceptionner',\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Rechercher une commande',\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n  // HEADER BI\n  'COMMON.HEADER.MENU.BI': 'Aide à la vente',\n\n  // HEADER REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Référentiel',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossaire',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Médias',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territoires',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Langues',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Oeuvre',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Créer une oeuvre',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Créer un header',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Créer un code de gestion',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Personne',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Créer une personne',\n};\n\n","export const de = {\n  //HEADER MENU COMMERCIAL\n  'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n  //HEADER MENU USER\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n  //HEADER MENU REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n  // HEADER MENU ROYALTY\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n  // HEADER GOLBAL SEARCH\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n\n  // HEADER HISTORY\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n  'COMMON.HEADER.HISTORY.PO': 'PO',\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n  // HEADER NOTIFICATION\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'No notification',\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Clear all',\n\n  // HEADER CREATION\n  'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n  'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n  'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n  // HEADER CONNECTED AS\n  'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n  'COMMON.HEADER.STOP': 'Stop',\n\n  // HEADER PARAMETERS\n  'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n  // HEADER DISTRIBUTION HUB\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n  // HEADER COMMERCIAL\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\n\n  // HEADER LEGAL\n  'COMMON.HEADER.MENU.LEGAL': 'Legal',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n  // HEADER VIDEO\n  'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n  // HEADER PO\n  'COMMON.HEADER.MENU.PO': 'Purchase order',\n  'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n  // HEADER BI\n  'COMMON.HEADER.MENU.BI': 'Sales support',\n\n  // HEADER REFERENTIAL\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { en } from '../i18n/en';\nimport { fr } from '../i18n/fr';\nimport { de } from '../i18n/de';\nimport { LocalStorageService } from \"../services/storage/local-storage.service\";\n\n\n@Pipe({name: 'commonTranslate'})\nexport class CommonTranslatePipe implements PipeTransform {\n\n  private availableTranslations = {en, fr, de};\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n  public transform(value: string, lang?: string): string {\n    let currentLang: string = lang;\n    if (!lang) {\n      currentLang = this.localStorageService.get('lang');\n    }\n\n    if (this.isValidLang(currentLang)) {\n      const currentTranslation: any = this.availableTranslations[currentLang];\n      return currentTranslation[value];\n    }\n  }\n\n  private isValidLang(lang: string): boolean {\n    if (lang) {\n      const languages: string[] = ['en', 'fr', 'de'];\n      if (languages.indexOf(lang) !== -1) {\n        return true;\n      }\n    }\n    return false;\n  }\n}\n","import { Component, HostListener, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { CommercialApiService } from '../../../services/api/commercial-api.service';\nimport { VideoApiService } from '../../../services/api/video-api.service';\nimport { OverlayService } from '../../overlay/overlay.service';\nimport { MENU_SECTIONS } from './menu.const';\nimport { Menu, MenuLink } from './menu.model';\n\n@Component({\n  selector: 'sc-menu',\n  templateUrl: './menu.component.html',\n  styleUrls: ['./menu.component.scss']\n})\nexport class MenuComponent {\n  lang: InputSignal<string> = input<string>();\n  navigate: OutputEmitterRef<MenuLink> = output<MenuLink>();\n  redirect: OutputEmitterRef<MenuLink> = output<MenuLink>();\n\n  public activeMenu: string | null = null;\n  public readonly menuButtons: Menu[] = MENU_SECTIONS;\n  private menuTriggerRef: MatMenuTrigger | null = null;\n\n  @HostListener('document:click', ['$event'])\n  onClickOutside(event: MouseEvent): void {\n    const menuButton: Element = (event.target as HTMLElement).closest('.button-wrapper');\n    const insideMenu: Element = (event.target as HTMLElement).closest('.mat-menu-panel');\n\n    if (!menuButton && !insideMenu) {\n      this.forceCloseMenu();\n    }\n  }\n\n  private readonly overlayService: OverlayService = inject(OverlayService);\n  private readonly videoApiService: VideoApiService = inject(VideoApiService);\n  private readonly commercialApiService: CommercialApiService = inject(CommercialApiService);\n\n  public openMenu(menuTrigger: MatMenuTrigger, menuLabel: string): void {\n    if (this.activeMenu === menuLabel) {\n      this.forceCloseMenu();\n      return;\n    }\n\n    this.forceCloseMenu();\n    this.activeMenu = menuLabel;\n    this.menuTriggerRef = menuTrigger;\n    menuTrigger.openMenu();\n  }\n\n  public forceCloseMenu(): void {\n    this.activeMenu = null;\n    this.menuTriggerRef?.closeMenu();\n  }\n\n  public extractAllProducts(): void {\n    this.overlayService.show();\n    this.videoApiService.getProductExtractionXlsx(this.lang()).subscribe(res => {\n      const xlsFile = new Blob([res], {\n        type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n      });\n      const fileURL: string = URL.createObjectURL(xlsFile);\n      window.open(fileURL);\n      this.overlayService.hide();\n    });\n  }\n\n  public extractAccountWrittingDownload(): void {\n    this.overlayService.show();\n    this.commercialApiService.getAccountWrittingDownload();\n    this.overlayService.hide();\n  }\n\n  public performAction(link: MenuLink): void {\n    this.forceCloseMenu();\n\n    switch (link.actionType) {\n      case 'navigate':\n        this.navigate.emit(link);\n        break;\n      case 'redirect':\n        this.redirect.emit(link);\n        break;\n      case 'exportAccountWriting':\n        this.extractAccountWrittingDownload();\n        break;\n      case 'extractProduct':\n        this.extractAllProducts();\n        break;\n      default:\n        throw new Error(`performAction error - No action type on menuLink : ${link}`);\n    }\n  }\n}\n","<div class=\"d-flex justify-content-start\">\n  @for (menuCurrent of menuButtons; track menuCurrent) {\n    <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\n      <mat-toolbar class=\"toolbar-padding\">\n        <div\n          [attr.aria-label]=\"menuCurrent.label + '-btn'\"\n          class=\"button-wrapper\"\n          [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\n          *ngxPermissionsOnly=\"menuCurrent.permissions\"\n          (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\n        >\n          <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\n                  style=\"z-index: 99999\">\n            <div class=\"text-menu-button\">\n              <span>{{ menuCurrent.label | commonTranslate : lang() }}</span>\n              <div class=\"indicator\">\n                <div class=\"line primary\"></div>\n              </div>\n            </div>\n            <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\n              expand_more\n            </mat-icon>\n          </button>\n          <div class=\"indicator\"></div>\n        </div>\n      </mat-toolbar>\n\n      <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\n                [hasBackdrop]=\"false\">\n        <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\n          @for (section of menuCurrent.sections; track section) {\n            <ng-container *ngxPermissionsOnly=\"section.permissions\">\n              <ng-container *ngxPermissionsExcept=\"section.restrictions\">\n                <div class=\"menu-section\">\n                  <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang() }}</h3>\n                  @for (link of section.links; track link) {\n                    <ng-container *ngxPermissionsOnly=\"link.permissions\">\n                      <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\n                              class=\"custom-menu-item\">\n                        {{ link.label | commonTranslate : lang() }}\n                      </button>\n                    </ng-container>\n                  }\n                </div>\n              </ng-container>\n            </ng-container>\n          }\n        </div>\n      </mat-menu>\n    </ng-container>\n  }\n</div>\n","export enum RapidSearchItemType {\n  PURCHASE_ORDER = 'PURCHASE_ORDER',\n  PRODUCT = 'PRODUCT',\n  WORK_VERSION = 'WORK_VERSION',\n  DEAL = 'DEAL',\n  WORK_RECORD = 'WORK_RECORD',\n  THIRD_PARTY = 'THIRD_PARTY',\n  CONTRACT ='CONTRACT',\n  INVOICE = 'INVOICE',\n  ROYALTY_CONTRACT = 'ROYALTY_CONTRACT',\n  ROYALTY_INVOICE = 'ROYALTY_INVOICE',\n  ROYALTY_COUNT = 'ROYALTY_COUNT',\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport {\n  PurchaseOrderRapidSearchModel\n} from \"../../../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n\n@Component({\n  selector: 'sc-purchase-order-rapid-search',\n  templateUrl: './purchase-order-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class PurchaseOrderRapidSearchComponent {\n  document: InputSignal<PurchaseOrderRapidSearchModel> = input<PurchaseOrderRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: 'expenditure-commitment', route: '/purchase-orders/' + this.document().poId});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">receipt_long</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-70\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER' | commonTranslate: lang() }}</span>\n      <span>{{ document().poNumber }}\n        - {{ document().totalAmount | currency: document().currencyCode:'symbol':undefined:'fr-FR' }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER' | commonTranslate: lang() }}</span>\n      <span>{{ document()?.basketNumber ? document().basketNumber : '-' }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n      <span>{{ document()?.ean ? document().ean : '-' }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ProductRapidSearchModel } from \"../../../../models/video/product-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-product-rapid-search',\n  templateUrl: './product-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class ProductRapidSearchComponent {\n  document: InputSignal<ProductRapidSearchModel> = input<ProductRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  labelLang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: 'video', route: '/product/consult/' + this.document().productId});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">movie</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"ellipsis d-flex flex-column max-width-60\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().title }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-10\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT' | commonTranslate: lang() }}</span>\n      <span>{{ document().support[labelLang()] }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n      <span>{{ document().ean }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE' | commonTranslate: lang() }}</span>\n      <span>{{ document()?.releaseDate ? document().releaseDate : '-' }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkVersionRapidSearchModel } from \"../../../../models/referential/work-version-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-work-version-rapid-search',\n  templateUrl: './work-version-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class WorkVersionRapidSearchComponent {\n  document: InputSignal<WorkVersionRapidSearchModel> = input<WorkVersionRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/work-summary/' + this.document().id + '/info'});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">theaters</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-75 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().title }} ({{ document().codeIso }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-10\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}</span>\n      <span>{{ document().miloCode }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR' | commonTranslate: lang() }}</span>\n      <span>{{ document().yearOfProduction }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { DealRapidSearchModel } from \"../../../../models/commercial/deal-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-deal-rapid-search',\n  templateUrl: './deal-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class DealRapidSearchComponent {\n  document: InputSignal<DealRapidSearchModel> = input<DealRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/commercial/deal/consult/' + this.document().id})\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">local_offer</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-70 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().dealNumber }} - {{ document().thirdPartyClientName }}\n        ({{ document().thirdPartyClientSap }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n      <span>{{ document().calculatedAmount | currency: document().currencyCode:'symbol' }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang() }}</span>\n      <span>{{ document().validationDate }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkRecordRapidSearchModel } from \"../../../../models/commercial/work-record-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-work-record-rapid-search',\n  templateUrl: './work-record-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class WorkRecordRapidSearchComponent {\n  document: InputSignal<WorkRecordRapidSearchModel> = input<WorkRecordRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/commercial/work-record/consult/' + this.document().id + '/general'});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">assignment</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().id }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-30 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-35\">\n      <span class=\"auto-complete-label\">\n        {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }} {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}\n        )\n      </span>\n      <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n      <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n    </div>\n  </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThirdPartyAddressRapidSearchModel } from \"../models/referential/third-party-address-rapid-search.model\";\n\n@Pipe({name: 'thirdPartyAddressSearch'})\nexport class ThirdPartyAddressSearchPipe implements PipeTransform {\n\n  transform(thirdPartyAddressSearch: ThirdPartyAddressRapidSearchModel, lang?: string): string {\n    const countryLabelMap = new Map<string, string>([['en', thirdPartyAddressSearch.countryEn], ['fr', thirdPartyAddressSearch.countryFr], ['de', thirdPartyAddressSearch.countryDe]]);\n    return thirdPartyAddressSearch?.street + '-' + thirdPartyAddressSearch?.zipCode + '-' + thirdPartyAddressSearch?.city + '-' + countryLabelMap.get(lang);\n  }\n\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ThirdPartyRapidSearchModel } from \"../../../../models/referential/third-party-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-third-party-rapid-search',\n  templateUrl: './third-party-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class ThirdPartyRapidSearchComponent {\n  document: InputSignal<ThirdPartyRapidSearchModel> = input<ThirdPartyRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/referential/third-party/' + this.document().id});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">person</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-85 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().companyOrPersonName }}\n        ({{ document().address | thirdPartyAddressSearch: lang() }}\n        )</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE' | commonTranslate: lang() }}</span>\n      <span>{{ document().code }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ContractRapidSearchModel } from \"../../../../models/legal/contract-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-contract-rapid-search',\n  templateUrl: './contract-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class ContractRapidSearchComponent {\n  document: InputSignal<ContractRapidSearchModel> = input<ContractRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  labelLang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  public getContractType(type: string): 'cess' | 'acq' | 'auth' {\n    return type === 'Sale' ? 'cess' : type === 'Acquisition' ? 'acq' : 'auth';\n  }\n\n  onSelectSearch(): void {\n    this.redirect.emit({\n      module: null,\n      route: '/legal/contracts-details/' + this.getContractType(this.document().type.labelEn) + '/' + this.document().contractId\n    })\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    @switch (getContractType(document().type.labelEn)) {\n      @case ('cess') {\n        <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n      }\n      @case ('acq') {\n        <span class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\n      }\n      @case ('auth') {\n        <span class=\"material-icons-outlined rapid-search-type-icon\">account_circle</span>\n      }\n    }\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().lisaId }} </span>\n    </div>\n    <div class=\"d-flex flex-column max-width-10\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang() }}</span>\n      <span>{{ document().type[labelLang()] }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-30\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang() }}</span>\n      <span>{{ document().status[labelLang()] }}</span>\n    </div>\n    @if (document().type.labelEn !== 'Sale') {\n      <div class=\"d-flex flex-column max-width-40 ellipsis\">\n        <span\n          class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang() }}</span>\n        <span>{{ document().licensor ? document().licensor : '-' }}</span>\n      </div>\n    } @else {\n      <div class=\"d-flex flex-column max-width-40 ellipsis\">\n        <span\n          class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang() }}</span>\n        <span>{{ document().customer ? document().customer : '-' }}</span>\n      </div>\n    }\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { InvoiceRapidSearchModel } from \"../../../../models/commercial/invoice-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-invoice-rapid-search',\n  templateUrl: './invoice-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class InvoiceRapidSearchComponent {\n  document: InputSignal<InvoiceRapidSearchModel> = input<InvoiceRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    if (this.document().right) {\n      this.redirect.emit({\n        module: null,\n        route: '/commercial/invoice/right-payment-consult?idEcheance=' + this.document().invoiceId\n      });\n    } else {\n      this.redirect.emit({\n        module: null,\n        route: '/commercial/invoice/material-payment-consult?idEcheance=' + this.document().invoiceId\n      });\n    }\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().number }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-35\">\n      <span class=\"auto-complete-label\">\n        {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }}\n        ({{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }})\n      </span>\n      <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n      <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyContractRapidSearchModel } from \"../../../../models/royalty/royalty-contract-rapid-search.model\";\n\n@Component({\n  selector: 'sc-royalty-contract-rapid-search',\n  templateUrl: './royalty-contract-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyContractRapidSearchComponent {\n  document: InputSignal<RoyaltyContractRapidSearchModel> = input<RoyaltyContractRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/royalty/contract/consult/' + this.document().id});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-30 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().clientName }} ({{document().clientCodeSap}})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-50 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().works.join(', ') }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyInvoiceRapidSearchModel } from \"../../../../models/royalty/royalty-invoice-rapid-search.model\";\n\n@Component({\n  selector: 'sc-royalty-invoice-rapid-search',\n  templateUrl: './royalty-invoice-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyInvoiceRapidSearchComponent {\n  document: InputSignal<RoyaltyInvoiceRapidSearchModel> = input<RoyaltyInvoiceRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().countId});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().invoiceNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().countNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-40 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().emissionDate }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyCountRapidSearchModel } from \"../../../../models/royalty/royalty-count-rapid-search.model\";\n\n@Component({\n  selector: 'sc-royalty-count-rapid-search',\n  templateUrl: './royalty-count-rapid-search.component.html',\n  styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyCountRapidSearchComponent {\n  document: InputSignal<RoyaltyCountRapidSearchModel> = input<RoyaltyCountRapidSearchModel>();\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  onSelectSearch(): void {\n    this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().id});\n  }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n  <div class=\"max-width-5\">\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n  </div>\n  <div class=\"d-flex max-width-95\">\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().countNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-40 ellipsis\">\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n    </div>\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\n      <span\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE' | commonTranslate: lang() }}</span>\n      <span class=\"ellipsis\">{{ document().periodEnd ? document().periodEnd : '-' }}</span>\n    </div>\n  </div>\n</div>\n","import { Component, inject, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { RapidSearchItemType } from \"../../../enums/rapid-search-item-type.enum\";\nimport { RapidSearchAllDocumentModel } from \"../../../models/rapid-search-all-document.model\";\nimport { LocalStorageEventsService } from \"../../../event/storage/local-storage-events.service\";\nimport { Observable, of } from \"rxjs\";\nimport { FormControl } from \"@angular/forms\";\nimport { debounceTime, map, switchMap } from \"rxjs/operators\";\nimport { ElasticsearchService } from \"../../../services/elasticsearch/elasticsearch.service\";\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-advanced-search',\n  templateUrl: './advanced-search.component.html',\n  styleUrl: '../header.component.scss'\n})\nexport class AdvancedSearchComponent implements OnInit {\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  @User() public user: AuthUserModel;\n\n  documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n  public formControlSearch: FormControl<string>;\n  public labelLang: string = 'labelFr';\n\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n  private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n\n  public ngOnInit(): void {\n    this.updateLabelLang(this.lang());\n    this.localStorageEventsService.localStorageEvent.subscribe(() => {\n      this.updateLabelLang(this.lang());\n    });\n    this.formControlSearch = new FormControl<string>(null);\n    this.documents$ = this.formControlSearch.valueChanges.pipe(\n      debounceTime(500),\n      switchMap(term => {\n        if (!term) {\n          return of([]);\n        }\n        return this.elasticsearchService\n          .getSearchResponse(term, this.user)\n          .pipe(\n            map(searchResponse => {\n              return this.elasticsearchService.getDocuments(searchResponse);\n            })\n          );\n      })\n    );\n  }\n\n  private updateLabelLang(lang: string): void {\n    switch (lang) {\n      case 'en':\n        this.labelLang = 'labelEn';\n        break;\n      case 'de':\n        this.labelLang = 'labelDe';\n        break;\n      default:\n        this.labelLang = 'labelFr';\n        break;\n    }\n  }\n\n  onNavigateEvent($event: LinkRoutingModuleModel): void {\n    this.redirect.emit($event);\n  }\n\n  onNavigateAdvancedSearch(module: string, route: string): void {\n    this.redirect.emit({module: module, route: route});\n  }\n\n  protected readonly RapidSearchItemType = RapidSearchItemType;\n}\n","<div class=\"global-search\">\n  <mat-icon class=\"header-icon\">search</mat-icon>\n  <span class=\"global-search-separator\"></span>\n  <mat-form-field class=\"max-width-100\" subscriptSizing=\"dynamic\">\n    <input [formControl]=\"formControlSearch\"\n           [matAutocomplete]=\"autoSearch\"\n           class=\"global-search-input max-width-85\"\n           matInput\n           placeholder=\"search ...\"/>\n\n    <button (click)=\"onNavigateAdvancedSearch(null, '/advanced-search')\"\n            matSuffix\n            class=\"btn advanced-button\" mat-raised-button>\n      <mat-icon>flash_on</mat-icon>\n      {{ 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED' | commonTranslate: lang() }}\n    </button>\n\n    <mat-autocomplete #autoSearch=\"matAutocomplete\" class=\"mat-autocomplete-global-search\" panelWidth=\"54vw\">\n      @for (document of documents$ | async; track document) {\n        <mat-option class=\"mat-option-global-search\">\n          @switch (document.docType) {\n            @case (RapidSearchItemType.PURCHASE_ORDER) {\n              <sc-purchase-order-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                              (redirect)=\"onNavigateEvent($event)\"></sc-purchase-order-rapid-search>\n            }\n            @case (RapidSearchItemType.PRODUCT) {\n              <sc-product-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n                                       (redirect)=\"onNavigateEvent($event)\"></sc-product-rapid-search>\n            }\n            @case (RapidSearchItemType.WORK_VERSION) {\n              <sc-work-version-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                            (redirect)=\"onNavigateEvent($event)\"></sc-work-version-rapid-search>\n            }\n            @case (RapidSearchItemType.DEAL) {\n              <sc-deal-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                    (redirect)=\"onNavigateEvent($event)\"></sc-deal-rapid-search>\n            }\n            @case (RapidSearchItemType.WORK_RECORD) {\n              <sc-work-record-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                           (redirect)=\"onNavigateEvent($event)\"></sc-work-record-rapid-search>\n            }\n            @case (RapidSearchItemType.THIRD_PARTY) {\n              <sc-third-party-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                           (redirect)=\"onNavigateEvent($event)\"></sc-third-party-rapid-search>\n            }\n            @case (RapidSearchItemType.CONTRACT) {\n              <sc-contract-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n                                        (redirect)=\"onNavigateEvent($event)\"></sc-contract-rapid-search>\n            }\n            @case (RapidSearchItemType.INVOICE) {\n              <sc-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                       (redirect)=\"onNavigateEvent($event)\"></sc-invoice-rapid-search>\n            }\n            @case (RapidSearchItemType.ROYALTY_CONTRACT) {\n              <sc-royalty-contract-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                                (redirect)=\"onNavigateEvent($event)\"></sc-royalty-contract-rapid-search>\n            }\n            @case (RapidSearchItemType.ROYALTY_INVOICE) {\n              <sc-royalty-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                               (redirect)=\"onNavigateEvent($event)\"></sc-royalty-invoice-rapid-search>\n            }\n            @case (RapidSearchItemType.ROYALTY_COUNT) {\n              <sc-royalty-count-rapid-search [document]=\"document\" [lang]=\"lang()\"\n                                             (redirect)=\"onNavigateEvent($event)\"></sc-royalty-count-rapid-search>\n            }\n          }\n        </mat-option>\n      }\n    </mat-autocomplete>\n  </mat-form-field>\n</div>\n","export enum HistoryItemTypeEnum {\n  PRODUCT = 'PRODUCT',\n  PURCHASE_ORDER = 'PO',\n  DEAL = 'DEAL',\n  WORK = 'WORK',\n  CONTRACT_ACQ = 'CONTRACT_ACQ',\n  CONTRACT_CESS = 'CONTRACT_CESS',\n  CONTRACT_AUTH = 'CONTRACT_AUTH',\n  BUDGET = 'BUDGET',\n  NO_HISTORY_AVAILABLE = 'NO_HISTORY_AVAILABLE'\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { HistoryItemTypeEnum } from \"../../../enums/history-item-type.enum\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-history',\n  templateUrl: './history.component.html',\n  styleUrl: '../header.component.scss'\n})\nexport class HistoryComponent {\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  public historyList: any[] = [];\n\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n  public getHistory(): void {\n    this.historyList = [];\n    if (this.localStorageService.exist('history')) {\n      this.historyList = this.localStorageService.get('history');\n    }\n\n    if (this.historyList.length === 0) {\n      this.historyList.push({type: 'NO_HISTORY_AVAILABLE', id: null, ref: null});\n    }\n  }\n\n  public onSelectHistory(module: string, route: string): void {\n    this.redirect.emit({module: module, route: route});\n  }\n\n  protected readonly HistoryItemTypeEnum = HistoryItemTypeEnum;\n}\n","<span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\" class=\"material-icons header-icon\" style=\"width: 100%\">history</span>\n\n<mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\n  @for (history of historyList; track history) {\n    @switch (history.type) {\n      @case (HistoryItemTypeEnum.PRODUCT) {\n        <button (click)=\"onSelectHistory('video ', '/product/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">theaters</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.PRODUCT' | commonTranslate : lang() }}{{ history.type }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.PURCHASE_ORDER) {\n        <button (click)=\"onSelectHistory('expenditure-commitment', '/purchase-orders/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">receipt_long</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.PO' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.DEAL) {\n        <button (click)=\"onSelectHistory('commercial', '/deal/consult/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">local_offer</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.DEAL' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.WORK) {\n        <button (click)=\"onSelectHistory('commercial', '/work-record/consult/'+ history.id +'/general')\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">assignment</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.WORK_RECORD' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.CONTRACT_ACQ) {\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/acq/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">shop_two</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_ACQ' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.CONTRACT_CESS) {\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/cess/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">receipt</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_CESS' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.CONTRACT_AUTH) {\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/auth/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">account_circle</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_AUTH' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.BUDGET) {\n        <button (click)=\"onSelectHistory('expenditure-commitment', '/budget/form/' + history.id)\" mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">payments</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.BUDGET' | commonTranslate : lang() }} {{ history.ref }}\n        </button>\n      }\n      @case (HistoryItemTypeEnum.NO_HISTORY_AVAILABLE) {\n        <button mat-menu-item>\n          <mat-icon class=\"material-icons-outlined\">not_interested</mat-icon>\n          {{ 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE' | commonTranslate : lang() }}\n        </button>\n      }\n    }\n  }\n</mat-menu>\n","export function Theme(): (target: any, key: string) => void {\n    return (target: any, key: string): void => {\n        // Check if the data exist in the local storage\n        function exist(dataKey: string): boolean {\n            return localStorage.hasOwnProperty(dataKey);\n        }\n\n        // Get data from local storage\n        function get(theme: string): any {\n            return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;\n        }\n\n        // Set data in the local storage and return it\n        function setDefault(theme: any): string {\n            localStorage.setItem('newTheme', JSON.stringify(theme));\n            return theme;\n        }\n\n        Object.defineProperty(target, key, {\n            configurable: false,\n            get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))\n        });\n    };\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { Observable } from 'rxjs';\nimport { NotificationModel } from '../../models';\nimport { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { CommonApiService } from './common-api.service';\nimport { User } from \"../../decorators/user.decorator\";\nimport { UserModel } from \"../../models\";\nimport { PersonalNotificationModel } from \"../../models/personal-notification.model\";\nimport { PersonalNotificationCampaignModel } from \"../../models/personal-notification-campaign.model\";\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NotificationApiService {\n  @User() public user: UserModel;\n\n  public apiUrl: string = this.config.api_url + '/authorization-api/';\n\n  constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n              private readonly http: HttpClient) {\n  }\n\n  public getLiveNotifications(): Observable<NotificationModel[]> {\n    return this.http.get<NotificationModel[]>(this.apiUrl + `notifications/live`)\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public getPersonalNotifications(): Observable<PersonalNotificationModel[]> {\n    return this.http.get<PersonalNotificationModel[]>(this.apiUrl + `notifications/personal/user/${this.user.id}`)\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public ackPersonalNotification(personalNotificationId: number): Observable<void> {\n    return this.http.delete<void>(this.apiUrl + `notifications/personal/${personalNotificationId}`)\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public markAsReadPersonalNotification(personalNotificationId: number): Observable<void> {\n    return this.http.put<void>(this.apiUrl + `notifications/personal/${personalNotificationId}/read`, {})\n      .pipe(catchError(CommonApiService.handleError));\n  }\n\n  public postPersonalNotificationCampaign(campaign: PersonalNotificationCampaignModel): Observable<void> {\n    return this.http.post<void>(this.apiUrl + `notifications/personal`, campaign)\n      .pipe(catchError(CommonApiService.handleError));\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n  private isAuthenticatedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  isAuthenticated$: Observable<boolean> = this.isAuthenticatedSubject.asObservable();\n\n  public setAuthenticated(isAuthenticated: boolean): void {\n    this.isAuthenticatedSubject.next(isAuthenticated);\n  }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Client, Message } from '@stomp/stompjs';\nimport { BehaviorSubject } from 'rxjs';\nimport SockJS from 'sockjs-client';\nimport { User } from '../../decorators/user.decorator';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { NotificationModel, UserModel } from '../../models';\nimport { NotificationApiService } from '../api/notification-api.service';\nimport { LocalStorageService } from '../storage/local-storage.service';\nimport { AuthService } from '../auth/auth.service';\nimport { PersonalNotificationModel } from \"../../models/personal-notification.model\";\nimport { PersonalNotificationCampaignModel } from \"../../models/personal-notification-campaign.model\";\nimport { PersonalNotificationPriorityEnum } from \"../../enums/personal-notification-priority.enum\";\n\nexport const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';\nexport const NOTIFICATION_TOPIC = '/topic/notification';\nexport const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';\n\nexport const PERSONAL_NOTIFICATION_TOPIC = '/topic/personal-notification';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class NotificationService {\n  @User() public user: UserModel;\n\n  private stompClient: Client | null = null;\n\n  private readonly notificationSubject = new BehaviorSubject<NotificationModel>(null);\n  private readonly personalNotificationSubject = new BehaviorSubject<PersonalNotificationModel>(null);\n\n  // Observable for components to subscribe to messages\n  public notifications$ = this.notificationSubject.asObservable();\n  public personalNotifications$ = this.personalNotificationSubject.asObservable();\n\n  constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n              private readonly notificationApiService: NotificationApiService,\n              private readonly localStorage: LocalStorageService,\n              readonly authService: AuthService) {\n    authService.isAuthenticated$.subscribe(isAuthenticated => {\n      if (isAuthenticated) {\n        this.fetchLiveNotifications();\n        this.fetchPersonalNotifications();\n        this.subscribeToNotifications(this.config.api_url + NOTIFICATION_WEBSOCKET_URL);\n      } else {\n        this.disconnect();\n      }\n    });\n  }\n\n  public ackNotification(notification: NotificationModel): void {\n    const ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n    ackedNotifications.push(notification.id);\n    this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n  }\n\n  private fetchLiveNotifications(): void {\n    this.notificationApiService.getLiveNotifications().subscribe(notifications => {\n      const liveNotificationIds = notifications.map(notification => notification.id);\n\n      // Clear up any acked notifications that have expired (no longer live)\n      let ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n      ackedNotifications = ackedNotifications.filter(ackedNotificationId => liveNotificationIds.indexOf(ackedNotificationId) >= 0)\n      this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n\n      // Handle new notifications\n      notifications.filter(notification => notification.published)\n        .filter(notification => ackedNotifications.indexOf(notification.id) === -1)\n        .forEach(notification => this.handleNotification(notification));\n    });\n  }\n\n  private subscribeToNotifications(wsApiUrl: string): void {\n    // FIXME Temporarily bypass WS/XHR connection\n    if (true) {\n      return;\n    }\n\n    if (this.stompClient) {\n      return;\n    }\n\n    // Start listening for new notifications\n    const socket = new SockJS(wsApiUrl); // Initialize the SockJS WebSocket connection to the server\n\n    // Configure the STOMP client with connection details\n    this.stompClient = new Client({\n      webSocketFactory: () => socket, // Use SockJS as the WebSocket factory\n      reconnectDelay: 5000, // Reconnect delay if connection is lost\n    });\n\n    if (!this.stompClient) {\n      console.error('Failed to initialize stomp client');\n      return;\n    }\n\n    // On successful connection\n    this.stompClient.onConnect = () => {\n      // Register notification callback\n      this.stompClient.subscribe(NOTIFICATION_TOPIC, (message: Message) => {\n        const notification: NotificationModel = JSON.parse(message.body);\n        this.handleNotification(notification);\n      });\n\n      this.stompClient?.subscribe(PERSONAL_NOTIFICATION_TOPIC, (message: Message) => {\n        const personalNotification: PersonalNotificationModel = JSON.parse(message.body);\n        if(personalNotification.userId === this.user.id) {\n          this.personalNotificationSubject.next(personalNotification);\n        }\n      });\n    };\n\n    this.stompClient.onStompError = (frame) => {\n      console.error('Broker reported error: ' + frame.headers['message']);\n      console.error('Additional details: ' + frame.body);\n    };\n\n    console.log('Activating stomp client');\n    this.stompClient.activate();\n  }\n\n  private handleNotification(notification: NotificationModel): void {\n    const targetSectionIds = notification.targetSections.map(section => section.id);\n    const userSectionIds = this.user.permissions.map(permission => permission.sectionId);\n\n    if (targetSectionIds.some((targetSectionId) => userSectionIds.includes(targetSectionId))) {\n      this.notificationSubject.next(notification);\n    }\n  }\n\n  private fetchPersonalNotifications(): void {\n    this.notificationApiService.getPersonalNotifications().subscribe(personalNotifications => {\n      personalNotifications.forEach(personalNotification => {\n        this.personalNotificationSubject.next(personalNotification);\n      })\n    })\n  }\n\n  public ackPersonalNotification(personalNotificationId: number): void {\n    this.notificationApiService.ackPersonalNotification(personalNotificationId).subscribe({\n      error: (error) => {\n        console.error(`Error while acknowledging personal notification ${personalNotificationId}`, error);      }\n    });\n  }\n\n  public markAsReadPersonalNotification(personalNotificationId: number): void {\n    this.notificationApiService.markAsReadPersonalNotification(personalNotificationId).subscribe({\n      error: (error) => {\n        console.error(`Error while mark as read personal notification ${personalNotificationId}`, error);      }\n    });\n  }\n\n\n  public sendPersonalNotification(userIds: number[], title: string, messageFr: string, messageEn: string, messageDe: string, priority: PersonalNotificationPriorityEnum, route: string): void{\n    const body: PersonalNotificationCampaignModel = {\n      userIds,\n      messageFr,\n      messageEn,\n      messageDe,\n      priority,\n      route,\n      title\n    };\n\n    this.notificationApiService.postPersonalNotificationCampaign(body).subscribe({\n      error: (error) => {\n        console.error('Error while posting personal notification', {\n          body,\n          error\n        });\n      }\n    });\n  }\n\n  private disconnect(): void {\n    if (!this.stompClient) return;\n    try {\n      this.stompClient.deactivate();\n    } finally {\n      this.stompClient = null;\n    }\n  }\n}\n","import {\n  Component, computed, inject,\n  input,\n  InputSignal,\n  OnDestroy,\n  signal\n} from '@angular/core';\nimport { filter } from \"rxjs/operators\";\nimport { Subject, takeUntil } from \"rxjs\";\nimport { PersonalNotificationModel } from \"../../../models/personal-notification.model\";\nimport { NotificationService } from \"../../../services/notification/notification.service\";\nimport { Theme } from \"../../../decorators/theme.decorator\";\nimport {Config, WEB_CONFIG} from \"../../../config\";\n\n@Component({\n  selector: 'sc-personal-notification',\n  templateUrl: './personal-notification.component.html',\n  styleUrl: './personal-notification.component.scss'\n})\nexport class PersonalNotificationComponent implements  OnDestroy{\n\n  lang: InputSignal<string> = input<string>();\n\n  private readonly config: Config = inject(WEB_CONFIG);\n\n  private readonly intervalId?: ReturnType<typeof setInterval>;\n\n  public now = signal(Date.now());\n\n  private readonly destroy$ = new Subject<void>();\n\n  @Theme() public theme: string;\n\n  public personalNotifications = signal<PersonalNotificationModel[]>([]);\n\n  public unreadNotifications = computed(() =>\n    this.personalNotifications().filter(n => !n.read)\n  );\n\n  constructor(\n    private readonly notificationService: NotificationService\n  ) {\n    this.intervalId = setInterval(() => {\n      this.now.set(Date.now());\n    }, 30_000);\n\n    this.notificationService.personalNotifications$\n      .pipe(\n        filter((notification): notification is PersonalNotificationModel => !!notification),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((notification) => {\n        this.personalNotifications.update((currentNotif) => {\n          const alreadyExists = currentNotif.some(n => n.id === notification.id);\n          if (alreadyExists) {\n            return currentNotif;\n          }\n          const updated = [notification, ...currentNotif];\n\n          return updated.sort(\n            (a, b) => new Date(b.createdDate).getTime() - new Date(a.createdDate).getTime()\n          );\n        });\n      });\n  }\n\n  public ackPersonalNotification(event: MouseEvent, notification: PersonalNotificationModel): void {\n    event.stopPropagation();\n    event.preventDefault();\n    this.notificationService.ackPersonalNotification(notification.id);\n\n    this.personalNotifications.update((currentNotif) =>\n      currentNotif.filter(n => n.id !== notification.id)\n    );\n  }\n\n  markAsReadPersonalNotification(event: MouseEvent, notification: PersonalNotificationModel) {\n    event.stopPropagation();\n    event.preventDefault();\n\n    this.notificationService.markAsReadPersonalNotification(notification.id)\n    this.personalNotifications.update((currentNotif) =>\n      currentNotif.map(n => n.id === notification.id ? { ...n, read: true } : n)\n    );\n\n    if (notification.route) {\n      const route = notification.route.startsWith('/')\n        ? notification.route\n        : '/' + notification.route;\n\n      const url = this.config.api_url + route;\n\n      window.open(url, '_blank');\n    }\n  }\n\n  public getTimeAgo(date: Date): string {\n    const diff = this.now() - new Date(date).getTime();\n\n    const seconds = Math.floor(diff / 1000);\n    const minutes = Math.floor(seconds / 60);\n    const hours = Math.floor(minutes / 60);\n    const days = Math.floor(hours / 24);\n\n    if (seconds < 60) {\n      return this.lang() === 'fr' ? 'à l’instant' : 'now';\n    }\n\n    if (minutes < 60) {\n      return `${minutes}min`;\n    }\n\n    if (hours < 24) {\n      return `${hours}h`;\n    }\n\n    return this.lang() === 'fr' ? `${days}j` : `${days}d`;\n  }\n\n  public clearAllNotifications(event: MouseEvent): void {\n    event.stopPropagation();\n\n    const notifications = this.personalNotifications();\n\n    notifications.forEach(n =>\n      this.notificationService.ackPersonalNotification(n.id)\n    );\n\n    this.personalNotifications.set([]);\n  }\n\n  public getNotificationMessage(notification: PersonalNotificationModel): string {\n    switch (this.lang()) {\n      case 'fr':\n        return notification.messageFr || notification.messageEn || notification.messageDe || '';\n      case 'de':\n        return notification.messageDe || notification.messageEn || notification.messageFr || '';\n      case 'en':\n        return notification.messageEn || notification.messageFr || notification.messageDe || '';\n      default:\n        return notification.messageFr || notification.messageEn || notification.messageDe || '';\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.intervalId) {\n      clearInterval(this.intervalId);\n    }\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","<span\n  class=\"material-icons header-icon notification-wrapper\"\n  [matMenuTriggerFor]=\"menuPersonalNotif\"\n  [matBadge]=\"unreadNotifications().length\"\n  [matBadgeHidden]=\"unreadNotifications().length === 0\"\n  matBadgeColor=\"warn\"\n  matBadgeSize=\"small\"\n  matBadgePosition=\"above after\">\n  notifications\n</span>\n\n<mat-menu #menuPersonalNotif=\"matMenu\" class=\"action-menu\">\n  <div [ngClass]=\"theme === 'dark' ? 'dark-theme' : 'light-theme'\">\n    <div class=\"notification-menu-header\">\n    <span class=\"notification-menu-title\">\n      {{ 'COMMON.HEADER.NOTIFICATION.TITLE' | commonTranslate : lang() }}\n    </span>\n      <span\n        class=\"notification-clear-all material-icons\"\n        (click)=\"clearAllNotifications($event)\"\n        matTooltip=\"{{ 'COMMON.HEADER.NOTIFICATION.CLEAR_ALL' | commonTranslate : lang() }}\"\n        matTooltipPosition=\"above\">\n      delete_sweep\n    </span>\n    </div>\n\n    <div class=\"notification-menu-divider\"></div>\n\n    <div class=\"notification-list\">\n      @if (personalNotifications().length === 0) {\n        <div class=\"empty-notification\">{{ 'COMMON.HEADER.NOTIFICATION.EMPTY' | commonTranslate : lang() }}</div>\n      } @else {\n        @for (personalNotif of personalNotifications(); track personalNotif.id) {\n          <button mat-menu-item (click)=\"markAsReadPersonalNotification($event, personalNotif)\">\n            <div class=\"notification-item\"\n                 [ngClass]=\"{\n               'warn': personalNotif.priority === 'WARN',\n               'critical': personalNotif.priority === 'CRITICAL',\n               'notification-read': personalNotif.read}\">\n              <div class=\"notification-main\">\n                <div class=\"notification-text\">\n                  <div class=\"notification-header\">\n                    <div class=\"notification-title\">\n                      {{ personalNotif.title | titlecase }}\n                    </div>\n                    <div class=\"notification-meta\">\n                      <div class=\"notification-date\"\n                           [matTooltip]=\"personalNotif.createdDate | date:'dd/MM/yyyy HH:mm'\">\n                        {{ getTimeAgo(personalNotif.createdDate) }}\n                      </div>\n                      <span\n                        class=\"notification-close-icon material-icons\"\n                        (click)=\"ackPersonalNotification($event, personalNotif)\">\n                    close\n                  </span>\n                    </div>\n                  </div>\n                  <div class=\"notification-description\">\n                    {{ getNotificationMessage(personalNotif) }}\n                  </div>\n                </div>\n                @if (personalNotif.route) {\n                  <span class=\"notification-link-icon material-icons\">\n                open_in_new\n              </span>\n                }\n              </div>\n            </div>\n          </button>\n        }\n      }\n    </div>\n  </div>\n</mat-menu>\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from \"../storage/local-storage.service\";\n\n@Injectable()\nexport class LangService {\n  public switchLangEmitter: EventEmitter<any> = new EventEmitter();\n  private readonly translateService: TranslateService = inject(TranslateService);\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n  translateLanguage(): void {\n    this.translateService.addLangs(['en', 'fr', 'de']);\n    if (this.localStorageService.exist('lang') && this.translateService.getLangs().indexOf(this.localStorageService.get('lang')) != -1) {\n      this.translateService.use(this.localStorageService.get('lang'));\n    } else {\n      this.translateService.use(this.translateService.getLangs().indexOf(this.translateService.getBrowserLang()) != -1 ? this.translateService.getBrowserLang() : 'en');\n    }\n    this.localStorageService.post('lang', this.translateService.currentLang);\n  }\n\n  // emit an event when local storage change\n  public switchLang(): void {\n    this.switchLangEmitter.emit();\n  }\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\nimport { LangService } from \"../../../services/translate-language/lang.service\";\nimport { Theme } from \"../../../decorators/theme.decorator\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n  selector: 'sc-settings',\n  templateUrl: './settings.component.html',\n  styleUrl: '../header.component.scss'\n})\nexport class SettingsComponent {\n  lang: InputSignal<string> = input<string>();\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n  @Theme() public theme: string;\n  @User() public user: AuthUserModel;\n\n  public languagesAvailable: string[] = [\"en\", \"fr\", \"de\"]\n  restrictions: string[] = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\n\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n  private readonly translateService: TranslateService = inject(TranslateService);\n  private readonly overlayContainer: OverlayContainer = inject(OverlayContainer);\n  private readonly langService: LangService = inject(LangService);\n\n  public switchTheme(): void {\n    if (this.theme === 'dark') {\n      this.localStorageService.post('newTheme', 'light');\n      this.overlayContainer\n        .getContainerElement()\n        .classList.remove('dark-theme');\n      this.overlayContainer.getContainerElement().classList.add('light-theme');\n    } else {\n      this.localStorageService.post('newTheme', 'dark');\n      this.overlayContainer\n        .getContainerElement()\n        .classList.remove('light-theme');\n      this.overlayContainer.getContainerElement().classList.add('dark-theme');\n    }\n  }\n\n  public switchLang(lang: string): void {\n    this.localStorageService.post('lang', lang);\n    this.translateService.use(lang);\n    this.langService.switchLang();\n  }\n\n  onRedirect(module: string, route: string): void {\n    this.redirect.emit({module: module, route: route});\n  }\n}\n","<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n  <button (click)=\"switchTheme()\" mat-menu-item>\n    <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n    <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n  </button>\n\n  <!-- Language -->\n  @for (language of languagesAvailable; track language) {\n    @if (lang() !== language) {\n      <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\n        <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\n        <span>{{ language }}</span>\n      </button>\n    }\n  }\n\n  <ng-container *ngxPermissionsExcept=\"restrictions\">\n    <!--USER-->\n    @if (user && user.admin) {\n      <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\n        <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\n        <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\n      </button>\n    }\n  </ng-container>\n  <!--MY PREFERENCES-->\n  <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\n    <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\n    <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\n  </button>\n  <ng-container *ngxPermissionsExcept=\"restrictions\">\n    <!--NOTIFICATIONS-->\n    @if (user && user.admin) {\n    <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\n      <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\n      <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\n    </button>\n    }\n  </ng-container>\n</mat-menu>\n","export enum NotificationClassification {\n  INFO = 'INFO',\n  FEAT = 'FEAT',\n  MAINT = 'MAINT',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { NotificationClassification } from '../enums/notification-classification.enum';\n\n@Pipe({name: 'notificationClassificationIconPipe'})\nexport class NotificationClassificationIconPipe implements PipeTransform {\n\n    public transform(value: NotificationClassification): string {\n        switch (value) {\n          case NotificationClassification.INFO:\n            return 'info';\n          case NotificationClassification.FEAT:\n            return 'rocket_launch';\n          case NotificationClassification.MAINT:\n            return 'warning_amber';\n          default:\n            return 'question_mark';\n        }\n    }\n}\n","import { Component, inject, input, InputSignal, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NotificationService } from '../../services/notification/notification.service';\nimport { NotificationModel } from '../../models';\n\n@Component({\n  selector: 'notification-bar',\n  templateUrl: './notification-bar.component.html',\n  styleUrls: [ './notification-bar.component.scss' ]\n})\nexport class NotificationBarComponent implements OnInit, OnDestroy {\n  lang: InputSignal<string> = input<string>();\n\n  public notifications: NotificationModel[] = [];\n\n  private readonly subs = new Subscription();\n\n  private readonly notificationService: NotificationService = inject(NotificationService);\n\n  ngOnInit(): void {\n    this.subs.add(this.notificationService.notifications$.subscribe(notification => {\n      if (notification && !this.notifications.some(otherNotification => otherNotification.id === notification.id)) {\n        this.notifications.push(notification);\n      }\n    }));\n  }\n\n  ngOnDestroy(): void {\n    this.subs.unsubscribe();\n  }\n\n  public ackNotification(notification: NotificationModel): void {\n    this.notificationService.ackNotification(notification);\n    let index = this.notifications.indexOf(notification);\n    this.notifications.splice(index, 1);\n  }\n}\n","<div class=\"notification-bar-container\">\n  @for (notification of notifications; track notification) {\n    <div class=\"notification-bar\" [ngClass]=\"'notification-classification-' + notification.classification\">\n      <div class=\"notification-bar-message\">\n        <mat-icon class=\"material-icons-outlined mat-icon-small\">\n          {{ notification.classification | notificationClassificationIconPipe }}\n        </mat-icon>\n        <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n      </div>\n      <button class=\"notification-bar-close-button\" (click)=\"ackNotification(notification)\">\n        <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n      </button>\n    </div>\n  }\n</div>\n","import { Component, HostListener, inject, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PermissionsInterface } from \"../../interfaces/permissions.interface\";\nimport { User } from \"../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../models\";\nimport { LocalStorageEventsService } from \"../../event/storage/local-storage-events.service\";\nimport { LocalStorageService } from \"../../services/storage/local-storage.service\";\nimport { PermissionsService } from \"../../permissions/permissions.service\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { ElasticsearchService } from \"../../services/elasticsearch/elasticsearch.service\";\nimport { FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\nimport { LinkRoutingModuleModel } from \"../../models/link-routing-module.model\";\n\n\n@Component({\n  selector: 'sc-header',\n  styleUrls: ['./header.component.scss'],\n  templateUrl: './header.component.html'\n})\nexport class HeaderComponent implements OnInit, PermissionsInterface {\n  @User() public user: AuthUserModel;\n  toogleMenuEvent: OutputEmitterRef<any> = output<any>();\n\n  public lang: string;\n  public isHide: boolean = false;\n  public currentScroll: number = 0;\n  public env: string;\n  public formControlSearch: FormControl<string>;\n  public documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n\n  private readonly router: Router = inject(Router);\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n  private readonly permissionsService: PermissionsService = inject(PermissionsService);\n  private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n  private readonly config: Config = inject(WEB_CONFIG);\n\n  public ngOnInit(): void {\n    this.formControlSearch = new FormControl<string>(null);\n\n    this.initPermissionsService();\n    this.lang = this.localStorageService.get('lang') || 'fr';\n    this.env = this.config.env.toLowerCase();\n    this.localStorageEventsService.localStorageEvent.subscribe(() => {\n      this.lang = this.localStorageService.get('lang');\n    });\n  }\n\n  @HostListener('window:scroll', [])\n  public onWindowScroll(): void {\n    const numberVar: number = document.documentElement.scrollTop;\n    if (numberVar > this.currentScroll) {\n      this.isHide = true;\n    }\n    if (numberVar < this.currentScroll) {\n      this.isHide = false;\n    }\n    this.currentScroll = numberVar;\n  }\n\n\n  public initPermissionsService(): void {\n    this.permissionsService.init();\n  }\n\n  stopIdentityTheft(): void {\n    sessionStorage.removeItem('authTokenSecondary');\n  }\n\n  public onNavigateEvent($event: LinkRoutingModuleModel): void {\n    this.navigate($event.module, $event.route, $event.queryParamString);\n  }\n\n  public navigate(module = '', route: string, queryParamString?: string | null): void {\n    if (!route.startsWith('/')) {\n      route = '/' + route;\n    }\n\n    const url: string = this.config.api_url + (module ? `/${module}` : '') + route;\n    let queryParams: any = null;\n    if (queryParamString != null) {\n      queryParams = JSON.parse(queryParamString);\n    }\n\n    if (window.location.href === url && queryParams == null) {\n      window.location.reload();\n    } else if (window.location.pathname.startsWith(`/${module}`)) {\n      this.router\n        .navigateByUrl('/', {skipLocationChange: true})\n        .then(() => this.router.navigate([route], queryParams ? {queryParams} : {}));\n    } else {\n      window.location.href = url;\n    }\n  }\n\n  public redirect(route: string): void {\n    window.location.href = route;\n  }\n}\n","<!-- Notifications container -->\n<notification-bar [lang]=\"lang\"></notification-bar>\n\n<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\n  <!-- Unity Logo -->\n  <span class=\"d-flex align-items-end\">\n    <a\n      [href]=\"env === 'prod' ? 'https://unity.studiocanal.com/dashboard' : (env === 'sbx' ? 'https://unity-sbx.cplus/dashboard' : 'https://unity-' + env + '.studiocanal.com/dashboard')\">\n      <img class=\"logo-unity\" alt=\"\" ngSrc=\"./assets/img/unity_logo_48x48.png\" width=\"48\" height=\"48\">\n    </a>\n    @if (env !== 'prod') {\n      <span [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\n    }\n  </span>\n\n  <!-- Modules menu -->\n  <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\n           (redirect)=\"redirect($event.route)\" class=\"menu-header\"/>\n\n  <!-- Search -->\n  <sc-advanced-search [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"global-search\"/>\n\n  <!-- Connected as -->\n  @if (user && user.secondary) {\n    <div class=\"connected-as d-flex justify-content-between align-items-center\">\n      <span style=\"margin-right: 10px\">\n        {{ 'COMMON.HEADER.CONNECTED_AS' | commonTranslate: lang }}  {{ user.login + ' - ' + user.firstName + ' ' + user.name }}\n      </span>\n\n      @if (user.secondary) {\n        <button (click)=\"stopIdentityTheft()\" color=\"warn\" mat-raised-button>\n          {{ 'CORE.STOP' | commonTranslate: lang }}\n        </button>\n      }\n    </div>\n  }\n\n  <!-- History -->\n  <sc-history [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"material-icons header-icon max-width-5\"/>\n  <span class=\"header-separator\"></span>\n  <!-- Notifications -->\n  <sc-personal-notification [lang]=\"lang\" class=\"material-icons header-icon max-width-5\"/>\n  <span class=\"header-separator\"></span>\n  <!-- Settings -->\n  <sc-settings [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\"\n               class=\"material-icons-outlined header-icon max-width-5\"/>\n\n</mat-toolbar>\n\n","// Angular 2\nimport { Component, HostListener, inject, OnInit } from '@angular/core';\n// Decorators\nimport { Theme } from '../../decorators/theme.decorator';\nimport { DOCUMENT } from '@angular/common';\n\n// Component configuration\n\n@Component({\n  selector: 'sc-sub-header',\n  templateUrl: './sub-header.component.html',\n  styleUrls: ['./sub-header.component.css']\n})\nexport class SubHeaderComponent implements OnInit {\n  @Theme() public theme: string;\n\n  public isHide: boolean = false;\n  public currentScroll: number = 0;\n\n  private readonly document: any = inject(DOCUMENT);\n\n  public ngOnInit(): void {\n  }\n\n  @HostListener('window:scroll', [])\n  public onWindowScroll(): void {\n    const numberVar: any = this.document.documentElement.scrollTop;\n    if (numberVar > this.currentScroll) {\n      this.isHide = true;\n    }\n    if (numberVar < this.currentScroll) {\n      this.isHide = false;\n    }\n    this.currentScroll = numberVar;\n  }\n}\n","<div id=\"template-header-container\">\n  <div [ngClass]=\"{'header-hide':isHide}\" id=\"template-header\">\n\n    <!-- What you want -->\n    <div id=\"left-part\">\n      <ng-content select=[left]></ng-content>\n    </div>\n\n    <!-- What you want -->\n    <div id=\"middle-part\">\n      <ng-content select=[middle]></ng-content>\n    </div>\n\n    <!-- What you want -->\n    <div id=\"right-part\">\n      <ng-content select=[right]></ng-content>\n    </div>\n\n  </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable()\nexport class AesService {\n\n  private readonly SECRET_CODE: string = '1234567891234567';\n  private keySize: number = 128 / 32;\n  private iterationCount: number = 1000;\n  private pwdEncrypted: string;\n\n  public generateKey(salt: string): any {\n\n    return CryptoJS.PBKDF2(\n      this.SECRET_CODE,\n      CryptoJS.enc.Hex.parse(salt),\n      {keySize: this.keySize, iterations: this.iterationCount, hasher: CryptoJS.algo.SHA1 });\n  }\n\n  public encrypt(planText: string): string {\n    const iv: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n    const salt: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n\n    const key: any = this.generateKey(salt);\n\n    const encrypted: any = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\n\n    const cipherText: any = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\n\n    const aesPassword: string = (iv + '::' + salt + '::' + cipherText);\n    // conversion en base 64\n    this.pwdEncrypted = btoa(aesPassword);\n\n    return this.pwdEncrypted;\n  }\n\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { AesService } from '../../../services/jwt-security/aes.service';\nimport { Config, WEB_CONFIG } from '../../../config';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../../../services/api/common-api.service';\nimport { UserFormModel } from \"../../../models/referential/user-form.model\";\n\n@Component({\n  selector: 'sc-popup-login',\n  templateUrl: './popup-login.component.html',\n  styleUrls: ['./popup-login.component.css']\n})\nexport class MyDialogPopupLoginComponent implements OnInit {\n  public loading: boolean = false;\n  public errorMessage: string = '';\n  public apiUrl: string = '';\n  public userForm: FormGroup<UserFormModel>;\n\n  private readonly aesService: AesService = inject(AesService);\n  private readonly http: HttpClient = inject(HttpClient);\n  private readonly translateService: TranslateService = inject(TranslateService);\n  private readonly cookieService: CookieService = inject(CookieService);\n  private readonly commonApiService: CommonApiService = inject(CommonApiService);\n  private readonly config: Config = inject(WEB_CONFIG);\n  public readonly dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = inject(MatDialogRef<MyDialogPopupLoginComponent>);\n  private readonly formBuilder: FormBuilder = inject(FormBuilder);\n\n  constructor() {\n    this.apiUrl = this.config.api_url + '/authorization-api';\n  }\n\n  public ngOnInit(): void {\n    this.buildForm();\n  }\n\n  public onLogin(): void {\n    if (this.userForm.invalid) {\n      this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n      return;\n    }\n    this.loading = true;\n    this.errorMessage = '';\n\n    const {username, password} = this.userForm.value;\n\n    this.login(\n      {username: username, password: password},\n      this.translateService.currentLang\n    ).subscribe({\n        next: (user: any): void => {\n          this.loading = false;\n          sessionStorage.setItem('loginFlag', 'true');\n          sessionStorage.removeItem('authToken');\n          sessionStorage.setItem('authToken', user.token);\n          this.cookieService.set('auth-mail', this.commonApiService.getUserDataFromToken().email);\n          this.dialogRef.close(true);\n        },\n        error: (err: any): void => {\n          this.loading = false;\n          this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n        }\n      }\n    );\n  }\n\n  private login(user: any, language: string): Observable<any> {\n    let url: string = this.apiUrl + '/login/findUser';\n    if (language) {\n      url += '?language=' + language;\n    }\n\n    user.password = this.aesService.encrypt(user.password);\n\n    return this.http.post(url, user, {\n      headers: new HttpHeaders({\n        'Content-Type': 'application/json'\n      })\n    });\n  }\n\n  private buildForm(): void {\n    this.userForm = this.formBuilder.group({\n      username: this.formBuilder.control('', Validators.required),\n      password: this.formBuilder.control('', Validators.required)\n    }) as FormGroup<UserFormModel>;\n  }\n}\n","<h3 mat-dialog-title>Log in</h3>\n\n<mat-dialog-content>\n  <form (keyup.enter)=\"onLogin()\" [formGroup]=\"userForm\" class=\"d-flex flex-column\">\n    <div class=\"form-group\">\n      <mat-label>{{ 'CORE.LOGIN.USERNAME' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n      </mat-label>\n      <mat-form-field appearance=\"outline\">\n        <input formControlName=\"username\" matInput/>\n      </mat-form-field>\n    </div>\n    <div class=\"form-group\">\n      <mat-label>{{ 'CORE.LOGIN.PASSWORD' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n      </mat-label>\n      <mat-form-field appearance=\"outline\">\n        <input formControlName=\"password\" matInput type=\"password\"/>\n      </mat-form-field>\n    </div>\n  </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n  <button (click)=\"onLogin()\" [disabled]=\"loading\" class=\"primary w-100\" mat-raised-button\n          type=\"submit\">{{ 'CORE.LOGIN.SIGN_IN' | translate }}\n  </button>\n  @if (loading) {\n    <mat-spinner [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\n  }\n  @if (errorMessage !== null || errorMessage !== '') {\n    <div class=\"errorMessage not-so-close-from-button\"> {{ errorMessage }}</div>\n  }\n</mat-dialog-actions>\n\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ToasterEventsService {\n    public toasterSuccessEvent: EventEmitter<any> = new EventEmitter();\n    public toasterErrorEvent: EventEmitter<any> = new EventEmitter();\n    public toasterWarnEvent: EventEmitter<any> = new EventEmitter();\n    public toasterInfoEvent: EventEmitter<any> = new EventEmitter();\n\n    // emit a success event toaster\n    public successEvent(message: string): void {\n        this.toasterSuccessEvent.emit(message);\n    }\n\n    // emit a success event toaster\n    public errorEvent(message: string): void {\n        this.toasterErrorEvent.emit(message);\n    }\n\n    // emit a success event toaster\n    public warnEvent(message: string): void {\n        this.toasterWarnEvent.emit(message);\n    }\n\n    // emit a success event toaster\n    public infoEvent(message: string): void {\n        this.toasterInfoEvent.emit(message);\n    }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class HeaderEventsService {\n\n    public toggleMenu: EventEmitter<any> = new EventEmitter<any>();\n    public toggleLight: EventEmitter<any> = new EventEmitter<any>();\n\n    public menuSwitch(): void {\n        console.log('Menu switch');\n        this.toggleMenu.emit();\n    }\n\n    public lightSwitch(): void {\n        this.toggleLight.emit();\n    }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageService } from '../storage/local-storage.service';\n\n@Injectable()\nexport class HistoryService {\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n  public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any): void {\n    let history: any[] = [];\n    if (this.localStorageService.exist('history')) {\n      history = this.localStorageService.get('history');\n    }\n    // DELETE EXISTING SCREEN\n    history.forEach((element: any, index: number): void => {\n      if (this.exist(type, id, ref, element)) history.splice(index, 1);\n    });\n    // ADD THE LAST CONSULTED SCREEN TO THE BEGINNING\n    history.unshift({type: type, id: id, ref: ref});\n\n    // SHOW ONLY THE 10 LAST CONSULTED SCREENS\n    if (history.length >= 10) {\n      history = history.slice(0, 10);\n    }\n\n    // POST TO LOCAL STORAGE\n    this.localStorageService.post('history', history);\n  }\n\n  private exist(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: string, history: any): boolean {\n    return type == history.type && id == history.id && ref == history.ref;\n  }\n\n}\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n  selector: '[matTooltip][appShowIfTruncated]'\n})\nexport class ShowIfTruncatedDirective {\n  private matTooltip: MatTooltip = inject(MatTooltip);\n  private elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n\n  @HostListener('mouseenter', ['$event'])\n  setTooltipState(): void {\n    const element: HTMLElement = this.elementRef.nativeElement;\n    this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AdressModel } from \"../models\";\n\n@Pipe({\n  name: 'thirdPartyAddress'\n})\nexport class ThirdPartyAddressPipe implements PipeTransform {\n\n  transform(thirdPartyAddress: AdressModel, ...args: unknown[]): unknown {\n    return thirdPartyAddress?.street1 + '-' + thirdPartyAddress?.zipCode + '-' + thirdPartyAddress?.city + '-' + thirdPartyAddress?.country?.label;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'formatDuration'\n})\nexport class FormatDurationPipe implements PipeTransform {\n  transform(value: any): string {\n     if (value > 0 && value < 60) {\n       return value + 'min';\n     } else {\n       const h: number = Math.floor(value / 60);\n       const min: number = value % 60;\n       return  min === 0 ? h + 'h' : h + 'h ' + min + 'min';\n     }\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n  name: 'formatCurrency'\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n  private readonly currencyPipe: CurrencyPipe = inject(CurrencyPipe);\n\n  transform(value: number, currencyCode?: string, display?: string | boolean, digitsInfo?: string, language?: string): string {\n    let formattedValue: string = this.currencyPipe.transform(value, currencyCode, display, digitsInfo);\n    if(formattedValue) {\n      if (language == 'de') {\n        let [thousands, decimal] = formattedValue.split(',');\n        thousands = thousands.replace(/\\s/g, '.');\n        formattedValue = thousands + ',' + decimal;\n      } else {\n        formattedValue = formattedValue.replace(',', '.');\n      }\n    }\n\n    return formattedValue ? formattedValue : '';\n  }\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\n\n@Injectable()\nexport class CustomMatPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\n  unsubscribe: Subject<void> = new Subject<void>();\n  OF_LABEL: string = 'of';\n\n  private readonly translateService: TranslateService = inject(TranslateService);\n\n  constructor() {\n    super();\n\n    this.translateService.onLangChange\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe(() => {\n        this.getAndInitTranslations();\n      });\n\n    this.getAndInitTranslations();\n  }\n\n  ngOnDestroy(): void {\n    this.unsubscribe.next();\n    this.unsubscribe.complete();\n  }\n\n  getAndInitTranslations(): void {\n    this.translateService\n      .get([\n        'PAGINATOR.ITEMS_PER_PAGE',\n        'PAGINATOR.NEXT_PAGE',\n        'PAGINATOR.PREVIOUS_PAGE',\n        'PAGINATOR.OF_LABEL',\n      ])\n      .pipe(takeUntil(this.unsubscribe))\n      .subscribe(translation => {\n        this.itemsPerPageLabel =\n          translation['PAGINATOR.ITEMS_PER_PAGE'];\n        this.nextPageLabel = translation['PAGINATOR.NEXT_PAGE'];\n        this.previousPageLabel =\n          translation['PAGINATOR.PREVIOUS_PAGE'];\n        this.OF_LABEL = translation['PAGINATOR.OF_LABEL'];\n        this.changes.next();\n      });\n  }\n\n  getRangeLabel = (\n    page: number,\n    pageSize: number,\n    length: number,\n  ): string => {\n    if (length === 0 || pageSize === 0) {\n      return `0 ${this.OF_LABEL} ${length}`;\n    }\n    length = Math.max(length, 0);\n    const startIndex: number = page * pageSize;\n    const endIndex: number =\n      startIndex < length\n        ? Math.min(startIndex + pageSize, length)\n        : startIndex + pageSize;\n    return `${startIndex + 1} - ${endIndex} ${\n      this.OF_LABEL\n    } ${length}`;\n  };\n}\n","import { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\n// Angular\nimport { inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule, CurrencyPipe, DatePipe, NgOptimizedImage } from '@angular/common';\n// Services\nimport { CommonApiService } from './services/api/common-api.service';\n// Modules\nimport { LocalStorageService } from './services/storage/local-storage.service';\nimport { InterceptorHttpService } from './services/jwt-security/interceptorhttp.service';\nimport { MyNumberFormatterDirective } from './directives/my-number-formatter-directive';\nimport { CapitalizefirstPipe } from './pipes/capitalizefirst.pipe';\nimport { SpacesNumberPipe } from './pipes/comma-separated-number.pipe';\nimport { SanitizeHtml } from './pipes/display-html.pipe';\nimport { DisplayNullPipe } from './pipes/display-null.pipe';\nimport { FormatNumberInput } from './pipes/format-number-input.pipe';\nimport { LocalDatePipe } from './pipes/local-date.pipe';\nimport { MyNumberPipe } from './pipes/my-number.pipe';\nimport { TrimStringPipe } from './pipes/trim-string.pipe';\nimport { ThemeEventsService } from './theme/theme-event.service';\nimport { SessionStorageService } from './services/storage/session-storage.service';\nimport { MatCardModule } from '@angular/material/card';\nimport { PermissionsService } from './permissions/permissions.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ArrayService } from './array.service';\nimport { OverlayComponent } from './component/overlay/overlay.component';\nimport { HeaderComponent } from './component/header/header.component';\nimport { SubHeaderComponent } from './component/sub-header/sub-header.component';\nimport { MyDialogPopupLoginComponent } from './component/popup/popup-login/popup-login.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { RouterModule } from '@angular/router';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AesService } from './services/jwt-security/aes.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ToasterEventsService } from \"./toaster/toaster-events.service\";\nimport { HeaderEventsService } from \"./event/header/header-events.service\";\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonTranslatePipe } from \"./pipes/common-translate.pipe\";\nimport { HistoryService } from \"./services/history/history.service\";\nimport { LangService } from \"./services/translate-language/lang.service\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { ElasticsearchService } from \"./services/elasticsearch/elasticsearch.service\";\nimport { ShowIfTruncatedDirective } from './directives/show-if-truncated.directive';\nimport { ThirdPartyAddressPipe } from \"./pipes/third-party-address.pipe\";\nimport { FormatDurationPipe } from \"./pipes/format-duration.pipe\";\nimport { FormatCurrencyPipe } from './pipes/format-currency.pipe';\nimport { CustomMatPaginatorIntl } from \"./paginator/custom-paginator-configuration\";\nimport { ThirdPartyAddressSearchPipe } from \"./pipes/third-party-address-search.pipe\";\nimport { VideoApiService } from \"./services/api/video-api.service\";\nimport { CommercialApiService } from \"./services/api/commercial-api.service\";\nimport { MenuComponent } from './component/header/menu/menu.component';\nimport { AuthService } from './services/auth/auth.service';\nimport { LegalApiService } from \"./services/api/legal-api.service\";\nimport { UserSubsidiaryService } from './services/user/user-subsidiary.service';\nimport {\n  PurchaseOrderRapidSearchComponent\n} from \"./component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component\";\nimport {\n  ProductRapidSearchComponent\n} from \"./component/header/advanced-search/product-rapid-search/product-rapid-search.component\";\nimport {\n  WorkVersionRapidSearchComponent\n} from \"./component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component\";\nimport {\n  DealRapidSearchComponent\n} from \"./component/header/advanced-search/deal-rapid-search/deal-rapid-search.component\";\nimport {\n  WorkRecordRapidSearchComponent\n} from \"./component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component\";\nimport {\n  ThirdPartyRapidSearchComponent\n} from \"./component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component\";\nimport {\n  ContractRapidSearchComponent\n} from \"./component/header/advanced-search/contract-rapid-search/contract-rapid-search.component\";\nimport {\n  InvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component\";\nimport { AdvancedSearchComponent } from \"./component/header/advanced-search/advanced-search.component\";\nimport { HistoryComponent } from \"./component/header/history/history.component\";\nimport { PersonalNotificationComponent } from \"./component/header/personal-notification/personal-notification.component\"\nimport { SettingsComponent } from \"./component/header/settings/settings.component\";\nimport {\n  RoyaltyContractRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component\";\nimport {\n  RoyaltyInvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component\";\nimport {\n  RoyaltyCountRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component\";\nimport { NotificationBarComponent } from './component/notification/notification-bar.component';\nimport { NotificationApiService } from './services/api/notification-api.service';\nimport { NotificationClassificationIconPipe } from './pipes/notification-classification-icon.pipe';\nimport { MatBadge } from \"@angular/material/badge\";\n\n@NgModule({\n  imports: [\n    MatInputModule,\n    MatTooltipModule,\n    MatButtonModule,\n    MatToolbarModule,\n    MatFormFieldModule,\n    CommonModule,\n    TranslateModule,\n    MatCardModule,\n    MatDialogModule,\n    NgxPermissionsModule,\n    MatProgressSpinnerModule,\n    RouterModule,\n    ReactiveFormsModule,\n    FormsModule,\n    MatIconModule,\n    MatMenuModule,\n    MatAutocompleteModule,\n    NgOptimizedImage,\n    MatBadge,\n    CapitalizefirstPipe\n  ],\n  declarations: [\n    MyNumberFormatterDirective,\n    SpacesNumberPipe,\n    SanitizeHtml,\n    DisplayNullPipe,\n    FormatNumberInput,\n    LocalDatePipe,\n    MyNumberPipe,\n    TrimStringPipe,\n    CommonTranslatePipe,\n    ThirdPartyAddressPipe,\n    ThirdPartyAddressSearchPipe,\n    FormatDurationPipe,\n    MyDialogPopupLoginComponent,\n    OverlayComponent,\n    HeaderComponent,\n    SubHeaderComponent,\n    ShowIfTruncatedDirective,\n    FormatCurrencyPipe,\n    MenuComponent,\n    PurchaseOrderRapidSearchComponent,\n    ProductRapidSearchComponent,\n    WorkVersionRapidSearchComponent,\n    DealRapidSearchComponent,\n    WorkRecordRapidSearchComponent,\n    ThirdPartyRapidSearchComponent,\n    ContractRapidSearchComponent,\n    InvoiceRapidSearchComponent,\n    AdvancedSearchComponent,\n    HistoryComponent,\n    PersonalNotificationComponent,\n    SettingsComponent,\n    RoyaltyContractRapidSearchComponent,\n    RoyaltyInvoiceRapidSearchComponent,\n    RoyaltyCountRapidSearchComponent,\n    NotificationBarComponent,\n    NotificationClassificationIconPipe\n  ],\n  providers: [\n    {\n      provide: HTTP_INTERCEPTORS,\n      useClass: InterceptorHttpService,\n      multi: true\n    },\n    TranslateService,\n    ThemeEventsService,\n    SessionStorageService,\n    LocalStorageService,\n    PermissionsService,\n    ArrayService,\n    CustomMatPaginatorIntl,\n    CommonApiService,\n    DatePipe,\n    ThirdPartyAddressSearchPipe,\n    LocalDatePipe,\n    MyNumberPipe,\n    AesService,\n    CookieService,\n    ToasterEventsService,\n    HeaderEventsService,\n    HistoryService,\n    LangService,\n    ElasticsearchService,\n    LegalApiService,\n    CurrencyPipe,\n    MatTooltipModule,\n    CommercialApiService,\n    VideoApiService,\n    AuthService,\n    UserSubsidiaryService,\n    NotificationApiService,\n    NotificationClassificationIconPipe\n  ],\n  exports: [\n    MyNumberFormatterDirective,\n    CapitalizefirstPipe,\n    SpacesNumberPipe,\n    SanitizeHtml,\n    DisplayNullPipe,\n    FormatNumberInput,\n    LocalDatePipe,\n    MyNumberPipe,\n    FormatCurrencyPipe,\n    FormatDurationPipe,\n    TrimStringPipe,\n    ThirdPartyAddressPipe,\n    HeaderComponent,\n    OverlayComponent,\n    SubHeaderComponent,\n    ShowIfTruncatedDirective,\n    CommonTranslatePipe,\n    NotificationClassificationIconPipe\n  ]\n})\nexport class UtilModule {\n  private readonly langService: LangService = inject(LangService);\n\n  constructor() {\n    this.langService.translateLanguage();\n  }\n\n  public static forRoot(\n    config: Config = DEFAULT_WEB_CONFIG\n  ): ModuleWithProviders<UtilModule> {\n    return {\n      ngModule: UtilModule,\n      providers: [{provide: WEB_CONFIG, useValue: config}]\n    };\n  }\n\n  public static forChild(\n    config: Config = DEFAULT_WEB_CONFIG\n  ): ModuleWithProviders<UtilModule> {\n    return {\n      ngModule: UtilModule,\n      providers: [{provide: WEB_CONFIG, useValue: config}]\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class RegexService {\n    public isDecimalOrNegative(numberToCheck: number = null): boolean {\n        if (numberToCheck == null) {\n            return false;\n        } else {\n            const myRegexNoDecimal = new RegExp(/^\\d+$/, 'i');\n            if (!myRegexNoDecimal.test(numberToCheck.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isMiloCode(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(/^[C0-9][0-9]{5}$/, 'i');\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isAmount(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(/^\\d+\\.?\\d*$/, 'i');\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isYesNo(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(/^(y|Y|n|N|o|O)$/, 'i');\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isFinancialCondition(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(/^(f|F|s|S|g|G)$/, 'i');\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isOrderNumber(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(\n                /^[5](6|8)(2|4|9)(N|O|Y)[0-9]{1}[C0-9][0-9]{5}[0-9]{1}$/,\n                'i'\n            );\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    public isDate(value: string = null): boolean {\n        if (value == null) {\n            return false;\n        } else {\n            const regex = new RegExp(\n                /^([0-9]{2}[-][0-9]{2}[-][0-9]{4}|[0-9]{4}[-][0-9]{2}[-][0-9]{2})$/,\n                'i'\n            );\n            if (regex.test(value.toString())) {\n                return true;\n            }\n        }\n        return false;\n    }\n}\n","export class PeriodModel {\n\n    constructor(public years: number,\n                public months: number,\n                public days: number) {\n    }\n}\n","import { PeriodModel } from './PeriodModel';\n\n/**\n * Created by dstoian on 27/03/2017.\n */\n\nexport class DateUtil {\n    public static daysPerMonth: Map<number, number> = new Map<number, number>();\n\n    // Format Date to YYYY-MM-DD\n    public static formatDate(date: Date, language: string): string {\n        const mm: number = date.getMonth() + 1;\n        const dd: number = date.getDate();\n\n        if (language && 'fr' === language) {\n            return [(dd > 9 ? '' : '0') + dd,\n                (mm > 9 ? '' : '0') + mm,\n                date.getFullYear()\n            ].join('/');\n        }\n\n        return [date.getFullYear(),\n            (mm > 9 ? '' : '0') + mm,\n            (dd > 9 ? '' : '0') + dd\n        ].join('-');\n    }\n\n    // convert a string formatted \"YYYY-MM-DD\" into a date object\n    public static fromStringToDate(stringdate: string): Date {\n        const parts: string[] = stringdate.split('-');\n        const month: string = parts[1].toString();\n        const yearNumber: number = Number(parts[0]);\n        let monthNumber: number = 0;\n        if (month[0] === '0') {\n            monthNumber = +month[1];\n        } else {\n            monthNumber = +parts[1];\n        }\n        const numberOfDays = Number(parts[2]);\n        return new Date(yearNumber, monthNumber - 1, numberOfDays);\n    }\n\n    // convert a string formatted \"YYYY-MM-DD\" into a date object\n    public static fromStringToDateSecond(stringdate: string): Date {\n        const parts: string[] = stringdate.split(',');\n        const month: string = parts[1].toString();\n        const yearNumber: number = Number(parts[0]);\n        let monthNumber: number = 0;\n        if (month[0] === '0') {\n            monthNumber = +month[1];\n        } else {\n            monthNumber = +parts[1];\n        }\n        const numberOfDays: number = Number(parts[2]);\n        return new Date(yearNumber, monthNumber - 1, numberOfDays);\n    }\n\n    public static periodBetweenDates(startDate: string, endDate: string): PeriodModel {\n        DateUtil.initDaysPerMonths();\n        const a = new Date(startDate);\n        const b = new Date(endDate);\n        let numberOfDays: number = 0;\n        let numberOfYears: number = b.getFullYear() - a.getFullYear();\n        let numberOfMonths: number = (b.getMonth() - a.getMonth() + 12) % 12;\n        if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {\n            numberOfYears--;\n        }\n        if (a.getMonth() > b.getMonth()) {\n            numberOfYears--;\n        }\n        if (a.getDate() > b.getDate()) {\n            numberOfMonths--;\n            if (numberOfMonths < 0) {\n                numberOfMonths = 11;\n            }\n        }\n        if (b.getDate() < a.getDate()) {\n            let numberOfDaysPerMonth: number = DateUtil.daysPerMonth.get(a.getMonth());\n            if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {\n                numberOfDaysPerMonth++;\n            }\n            numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();\n        } else {\n            numberOfDays = b.getDate() - a.getDate();\n        }\n        return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);\n    }\n\n    public static checkLeapYear(year: number): boolean {\n        if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n            return true;\n        }\n        return false;\n    }\n\n    public static initDaysPerMonths(): void {\n        DateUtil.daysPerMonth.set(0, 31);\n        DateUtil.daysPerMonth.set(1, 28);\n        DateUtil.daysPerMonth.set(2, 31);\n        DateUtil.daysPerMonth.set(3, 30);\n        DateUtil.daysPerMonth.set(4, 31);\n        DateUtil.daysPerMonth.set(5, 30);\n        DateUtil.daysPerMonth.set(6, 31);\n        DateUtil.daysPerMonth.set(7, 31);\n        DateUtil.daysPerMonth.set(8, 30);\n        DateUtil.daysPerMonth.set(9, 31);\n        DateUtil.daysPerMonth.set(10, 30);\n        DateUtil.daysPerMonth.set(11, 31);\n    }\n\n    // returns 0 if the 2 dates are equal, 1 if the first date is greater than the second one or -1 when it's the opposite\n    public static compareLocalDates(first: Date, second: Date): number {\n        if (first.getFullYear() > second.getFullYear()) {\n            return 1;\n        } else if (first.getFullYear() < second.getFullYear()) {\n            return -1;\n        } else {\n            if (first.getMonth() > second.getMonth()) {\n                return 1;\n            } else if (first.getMonth() < second.getMonth()) {\n                return -1;\n            } else {\n                if (first.getDate() > second.getDate()) {\n                    return 1;\n                } else if (first.getDate() < second.getDate()) {\n                    return -1;\n                } else {\n                    return 0;\n                }\n            }\n        }\n    }\n\n    /* From moment-precise-range plugin */\n    public static preciseDiff(d1: any, d2: any): PeriodModel {\n        //   let m1 = moment(d1);\n        //   let m2 = moment(d2);\n        //\n        //   if (m1.isSame(m2)) {\n        //     return new PeriodModel(0, 0, 0);\n        //   }\n        //   if (m1.isAfter(m2)) {\n        //     const tmp = m1;\n        //     m1 = m2;\n        //     m2 = tmp;\n        //   }\n        //\n        //   let yDiff = m2.year() - m1.year();\n        //   let mDiff = m2.month() - m1.month();\n        //   let dDiff = m2.date() - m1.date();\n        //   let hourDiff = m2.hour() - m1.hour();\n        //   let minDiff = m2.minute() - m1.minute();\n        //   let secDiff = m2.second() - m1.second();\n        //\n        //   if (secDiff < 0) {\n        //     secDiff = 60 + secDiff;\n        //     minDiff--;\n        //   }\n        //   if (minDiff < 0) {\n        //     minDiff = 60 + minDiff;\n        //     hourDiff--;\n        //   }\n        //   if (hourDiff < 0) {\n        //     hourDiff = 24 + hourDiff;\n        //     dDiff--;\n        //   }\n        //   if (dDiff < 0) {\n        //     const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')\n        //       .subtract(1, 'months').daysInMonth();\n        //     if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03\n        //       dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);\n        //     } else {\n        //       dDiff = daysInLastFullMonth + dDiff;\n        //     }\n        //     mDiff--;\n        //   }\n        //   if (mDiff < 0) {\n        //     mDiff = 12 + mDiff;\n        //     yDiff--;\n        //   }\n        //\n        //   const result = [];\n        //\n        //   moment.relativeTimeThreshold('s', 60);\n        //   moment.relativeTimeThreshold('m', 60);\n        //   moment.relativeTimeThreshold('h', 23);\n        //   moment.relativeTimeThreshold('dd', 28);\n        //   moment.relativeTimeThreshold('dm', 45);\n        //   moment.relativeTimeThreshold('dy', 365);\n        //\n        //   if (yDiff) {\n        //     result.push(moment.duration(yDiff, 'year').humanize());\n        //   }\n        //   if (mDiff) {\n        //     result.push(moment.duration(mDiff, 'month').humanize());\n        //   }\n        //   if (dDiff) {\n        //     result.push(moment.duration(dDiff, 'day').humanize());\n        //   }\n        //   if (hourDiff) {\n        //     result.push(moment.duration(hourDiff, 'hour').humanize());\n        //   }\n        //   if (minDiff) {\n        //     result.push(moment.duration(minDiff, 'minute').humanize());\n        //   }\n        //   if (secDiff) {\n        //     result.push(moment.duration(secDiff, 'second').humanize());\n        //   }\n        //\n        //   const period = new PeriodModel(0, 0, 0);\n        //   period.years = moment.duration(yDiff, 'year').asYears();\n        //   period.months = moment.duration(mDiff, 'month').asMonths();\n        //   period.days = moment.duration(dDiff, 'day').asDays();\n        //\n      return new PeriodModel(0, 0, 0);\n    }\n\n}\n","export const CUSTOM_DATE_FORMATS = {\n\n    parse: {\n        dateInput: {month: 'short', year: 'numeric', day: 'numeric'},\n    },\n    display: {\n        dateInput: 'input',\n        monthYearLabel: {year: 'numeric', month: 'long'},\n        dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n        monthYearA11yLabel: {year: 'numeric', month: 'long'},\n    }\n};\n","export class SortBy {\n    // Function which sorts by no matter which field, in ascending and in descending order\n    // The last parameter is optional and is a mapper.\n    // Example of call :\n    // --> exampleArray.sort(sort_by('id', true, parseInt)); -Sort the elements in ascending order by id.\n    // If the id is not an integer and is for example a string, we may give a parameter the parseInt function\n    // to do the conversion.\n\n    // -->exampleArray.(sort_by('name', false, (a) =>{return a.toUpperCase()})); Sort the elements by name (case insensitive)\n    public sortByField = (\n        field: string,\n        ascending: boolean,\n        functionToApply?: Function\n    ) => {\n        let convertField = x => {\n            return functionToApply ? functionToApply(x[field]) : x[field];\n        };\n\n        return (a, b) => {\n            let A = convertField(a);\n            let B = convertField(b);\n            return (A < B ? -1 : A > B ? 1 : 0) * [-1, 1][+!!ascending];\n        };\n    };\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n// @dynamic\nexport class NumberValidator {\n    public static validatorNumberGreaterThanZero(): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value === '' || control.value === undefined) {\n                return null;\n            } else if (control.value !== null) {\n                const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n                if (+numberWithoutSpaces === 0) {\n                    return {validatorNumberGreaterThanZero: true};\n                }\n            } else {\n                return null;\n            }\n        };\n    }\n\n    /**\n     *\n     * @returns (control:AbstractControl)=>{}\n     */\n    // Tests if a number is negative or not. Returns true in case of negative numbers\n    public validatorNumberNegative(): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value === null || +control.value === 0) {\n                return null;\n            } else {\n                const numberWithoutSpaces: any = control.value\n                    .toString()\n                    .replace(/ /g, '')\n                    .replace(',', '.');\n                if (+numberWithoutSpaces >= 0) {\n                    return null;\n                } else {\n                    return {validatorNumberNegative: true};\n                }\n            }\n        };\n    }\n\n    // Tests if a number is a valid percentage value (between 0 and 100)\n    public validatorNumberValidPercentage(): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value == null) {\n                return null;\n            }\n            const numberWithoutComma: any = control.value.toString().replace(',', '.');\n            if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {\n                return null;\n            } else if (+control.value >= 0 && +control.value <= 100) {\n                return null;\n            } else {\n                return {validatorNumberValidPercentages: true};\n            }\n        };\n    }\n\n    /*\n   tests if a number is not an integer(it contains another characters than digits and -).\n     If the number is not an integer, it will return true.\n     Also tests if a number starts with 0. If the number starts with 0 -> return true\n  */\n    public validatorNumberInteger(): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value === '' || control.value === undefined) {\n                return null;\n            } else if (+control.value === 0) {\n                return null;\n            } else if (control.value !== null) {\n                const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n                const myRegexNoDecimal = new RegExp(/^-?^[1-9]\\d*$/, 'i');\n                if (!myRegexNoDecimal.test(numberWithoutSpaces)) {\n                    return {validatorNumberInteger: true};\n                }\n            } else {\n                return null;\n            }\n        };\n    }\n\n    // tests if a number is lesser than another number\n    public validatorNumberLesserThanAnother(anotherValue: number): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value === null) {\n                return null;\n            } else {\n                const numberWithoutSpaces: any = control.value\n                    .toString()\n                    .replace(/ /g, '')\n                    .replace(',', '.');\n                if (+numberWithoutSpaces <= anotherValue) {\n                    return null;\n                } else {\n                    return {validatorNumberLesserThanAnother: true};\n                }\n            }\n        };\n    }\n\n    // tests if a number is MAX than another number\n    public validatorNumberMaxThanAnother(anotherValue: number): ValidatorFn {\n        return (control: AbstractControl): { [key: string]: any } => {\n            if (control.value === null) {\n                return null;\n            } else {\n                const numberWithoutSpaces: any = control.value\n                    .toString()\n                    .replace(/ /g, '')\n                    .replace(',', '.');\n                if (+numberWithoutSpaces > anotherValue) {\n                    return null;\n                } else {\n                    return {validatorNumberLesserThanAnother: true};\n                }\n            }\n        };\n    }\n}\n","export class ReferentielModel {\n    public id: number = null;\n    public active: boolean = null;\n    public category: string = null;\n    public label: string = null;\n    public order: number = null;\n    public codeRef: string = null;\n    public orderCode;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ReferentielModel[] {\n        const refs: ReferentielModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new ReferentielModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","/**\n * Created by mmichieli on 07/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class AudioContentModel {\n    public id: number = null;\n    public isDefault: boolean = false;\n    public materialNumber: number;\n    public languageId: number;\n    public audioContentId: number;\n    public audioFormatId: number;\n    public licenceId: number;\n    public typeMixId: number;\n    public support: number;\n    public supportLabel: string = null;\n    public availabilityDate: string;\n\n    public languageLabel: string = null;\n    public audioContentLabel: string = null;\n    public audioFormatLabel: string = null;\n    public licenceLabel: string = null;\n    public typeMixLabel: string = null;\n    public statusLabel: string = null;\n\n    public status: ReferentielModel = new ReferentielModel();\n    public uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { AuthPermissionModel } from './authPermission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class AuthUserModel {\n    public id: number = null;\n    public login: string = null;\n    public name: string = null;\n    public firstName: string = null;\n    public email: string = null;\n    public admin: boolean;\n    public superAdmin: boolean;\n    public secondary: boolean = false;\n\n    public permissions: AuthPermissionModel[] = [];\n    public subsidiaries: SubsidiaryModel[] = [];\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class UserVideoModel {\n    public id: number;\n    public login: string;\n    public lastName: string;\n    public firstName: string;\n    public profile: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): UserVideoModel[] {\n        const refs: UserVideoModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new UserVideoModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","export class BasicModel {\n    public idtechnique: number;\n    public id: number;\n    public label: string;\n    public label2: string;\n    public checked: boolean;\n    public date: string;\n    public accountingDate: string;\n    public idParent: number;\n\n    /* Permet d'avoir un constructeur surchargé grace aux \"?\"*/\n    constructor(\n        id?: number,\n        label?: string,\n        label2?: string,\n        checked?: boolean,\n        idtechnique?: number,\n        date?: string,\n        accountingDate?: string,\n        idParent?: number\n    ) {\n        this.id = id;\n        this.label = label;\n        this.label2 = label2;\n        this.checked = checked;\n        this.idtechnique = idtechnique;\n        this.date = date;\n        this.accountingDate = accountingDate;\n        this.idParent = idParent;\n    }\n}\n","import { MenuLanguageModel } from './menu-language.model';\nimport { ReferentielModel } from './referentiel.model';\n\nexport class DiscDetailModel {\n    public id: number = null;\n    public laboratoryId: number = null;\n    public menuLanguages: MenuLanguageModel[] = [];\n    public startSequences: ReferentielModel[] = [];\n    public menuAudioFormat: ReferentielModel = new ReferentielModel();\n    public menuImageFormat: ReferentielModel = new ReferentielModel();\n    public filmSpeedId: number = null;\n    public laboratoryName: string = null;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { DiscProgramModel } from './disc-program.model';\nimport { DiscDetailModel } from './product-disc-detail.model';\n\nexport class DiscModel {\n    public id: number = null;\n    public refEan: string = null;\n    public label: string = null;\n    public support: ReferentielModel = new ReferentielModel();\n    public pressingFormat: ReferentielModel = new ReferentielModel();\n    public discDetail: DiscDetailModel = new DiscDetailModel();\n    public programs: DiscProgramModel[] = [];\n    public formattedEan: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { VideoContentModel } from './video-content.model';\nimport { AudioContentModel } from './audio-content.model';\nimport { SubtitleContentModel } from './subtitle-content.model';\n\nexport class ProgramModel {\n    public id: number = null;\n    public bonusType: ReferentielModel;\n    public restoration: ReferentielModel = new ReferentielModel();\n    public idWorkMilo: number = null;\n    public idVersionMilo: number = null;\n    public miloCode: string = null;\n    public property: ReferentielModel = new ReferentielModel();\n    public description: string = null;\n    public note: string = null;\n    public videoContents: VideoContentModel[] = [];\n    public audioContents: AudioContentModel[] = [];\n    public subtitleContents: SubtitleContentModel[] = [];\n    public order: number = 0;\n\n    constructor() {\n        this.bonusType = new ReferentielModel();\n        this.bonusType.id = 1;\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ProgramModel } from './program.model';\n\nexport class DiscProgramModel {\n    public id: number = null;\n    public position: number = null;\n    public program: ProgramModel = new ProgramModel();\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): DiscProgramModel[] {\n        const refs: DiscProgramModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new DiscProgramModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","export class MenuLanguageModel {\n    public id: number = null;\n    public languageId: number = null;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class ProductTypeModel {\n    public id: number;\n    public label: string;\n\n    constructor() {\n        this.id = null;\n        this.label = null;\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ProductTypeModel[] {\n        const refs: ProductTypeModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new ProductTypeModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class MediaModel {\n    constructor(\n        public id: number = null,\n        public codeMedia = '',\n        public label = '',\n        public description = '',\n        public group: boolean = null,\n        public isGroup: boolean = null,\n        public groupMediaList: MediaModel[] = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { TerritoryModel } from './territory.model';\n\nexport class LanguageModel {\n    public id: number = null;\n    public label: string = '';\n    public isoCode: string = '';\n    public IsLanguageTech: boolean = null;\n    public order: number = 0;\n    public territories: TerritoryModel[];\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { LanguageModel } from './language.model';\n\nexport class TerritoryModel {\n    public id: number;\n    public label: string;\n    public codeISO: string;\n    public isGroup: boolean;\n    public groupTerritoryList: TerritoryModel[];\n    public languages: LanguageModel[];\n    public flagCode: string;\n\n    constructor() {\n        this.id = null;\n        this.label = '';\n        this.codeISO = '';\n        this.isGroup = null;\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { AdressModel } from './adress.model';\nimport { BankAccountModel } from './bank-account.model';\nimport { MediaModel } from './media.model';\nimport { LanguageModel } from './language.model';\nimport { TerritoryModel } from './territory.model';\nimport { ThirdPartyModuleModel } from './third-party-module.model';\nimport { BroadcastListItem } from './broadcast-list-item.model';\n\nexport class ThirdPartyModel {\n\n  public id: number = null;\n  public companyOrPersonName = '';\n  public code: string = null;\n  public corelId: number = null;\n  public idMaster: string = null;\n  public clientOrProviderCategory: string = null;\n  public thirdPartyType: string = null;\n  public thirdPartyCPType: string = null;\n  public poThirdPartyCPType: string = null;\n  public tel: string = null;\n  public fax: string = null;\n  public buyingBlocked: boolean;\n  public sellingBlocked: boolean;\n  public firstName: string = null;\n  public address: AdressModel = null;\n  public addresses: AdressModel[];\n  public thirdPartyModules: ThirdPartyModuleModel[];\n  public blocked: boolean;\n  public bankAccount: BankAccountModel = null;\n  public companyName1: string = null;\n  public companyName2: string = null;\n  public siret: string = null;\n  public siren: string = null;\n  public codeSap: string = null;\n  public name: string = null;\n  public managingTerritory: TerritoryModel = new TerritoryModel();\n  public managingMedia: MediaModel = new MediaModel();\n  public managingLanguage: LanguageModel = new LanguageModel();\n  public versionTimeStamp: string;\n\n  public addressesToDelete: AdressModel[];\n  public tpModulesToDelete: ThirdPartyModuleModel[];\n  public broadcast?: BroadcastListItem[];\n\n  constructor() {\n  }\n\n  public fromJSON(json: any): this {\n    for (const propName in json) {\n      if (json.hasOwnProperty(propName)) {\n        this[propName] = json[propName];\n      }\n    }\n    return this;\n  }\n  public static getCustomField(thirdPartyModel: ThirdPartyModel): string {\n    let customField = thirdPartyModel.companyOrPersonName;\n    customField = `${customField} (${thirdPartyModel.code})`;\n    let address = thirdPartyModel.code === '0009146668' ? '199 Avenue des Erables – ZI de la Butte Gayen II – Cellule F – 94440 Santeny' :\n      ThirdPartyModel.getAddress(thirdPartyModel);\n    if (address) {\n      customField = `${customField}, ${address}`;\n    }\n    if (thirdPartyModel.sellingBlocked) {\n      customField = `${customField}, SELLING BLOCKED`;\n    }\n    return customField;\n  }\n\n  static getAddress(thirdPartyModel: ThirdPartyModel): string {\n    let formattedAddress = '';\n    if (!thirdPartyModel.address) {\n      return formattedAddress;\n    }\n    if (thirdPartyModel.address.street1) {\n      formattedAddress = thirdPartyModel.address.street1;\n    } else if (thirdPartyModel.address.street2) {\n      formattedAddress = thirdPartyModel.address.street2;\n    } else if (thirdPartyModel.address.street3) {\n      formattedAddress = thirdPartyModel.address.street3;\n    }\n    if (thirdPartyModel.address.zipCode) {\n      formattedAddress = formattedAddress\n        ? `${formattedAddress} - ${thirdPartyModel.address.zipCode}`\n        : thirdPartyModel.address.zipCode;\n    }\n    if (thirdPartyModel.address.city) {\n      formattedAddress = formattedAddress\n        ? `${formattedAddress} - ${thirdPartyModel.address.city}`\n        : thirdPartyModel.address.city;\n    }\n    if (thirdPartyModel.address.country) {\n      formattedAddress = formattedAddress\n        ? `${formattedAddress} - ${thirdPartyModel.address.country.label}`\n        : thirdPartyModel.address.country.label;\n    }\n    return formattedAddress;\n  }\n\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { WorkMiloModel } from './referential/work-milo.model';\nimport { ProductDiscModel } from './product-disc.model';\n\nimport { ProductBoxSetModel } from './product-box-set.model';\nimport { ProductTypeModel } from './product-type.model';\nimport { UserVideoModel } from './user-video.model';\nimport { ThirdPartyModel } from './referential/third-party.model';\nimport { ProductDivisionModel } from './product-division.model';\nimport { TerritoryModel } from './referential/territory.model';\n\nexport class ProductModel {\n    public id: number = null;\n    public support: ReferentielModel = new ReferentielModel();\n    public productType: ProductTypeModel = new ProductTypeModel();\n    public exploitation: ReferentielModel = new ReferentielModel();\n    public label: ReferentielModel = new ReferentielModel();\n    public category: ReferentielModel = new ReferentielModel();\n    public companyId: number = null;\n    public companyCode: string = null;\n    public editorId: number = null;\n    public editor: ReferentielModel = new ReferentielModel();\n    public status: ReferentielModel = new ReferentielModel();\n    public distributor: ReferentielModel = new ReferentielModel();\n    public productManager: UserVideoModel = new UserVideoModel();\n    public projectManager: UserVideoModel = new UserVideoModel();\n    public manufacturingManager: UserVideoModel = new UserVideoModel();\n    public designer: ThirdPartyModel = new ThirdPartyModel();\n    public pressOfficer: ThirdPartyModel = new ThirdPartyModel();\n    public title: string = null;\n    public descriptive: string = null;\n    public releaseDate: any = null;\n    public theatricalReleaseDate: any = null;\n    public initialGoal: number = null;\n    public numberOfDisc: number = null;\n    public achievedGoal: number = null;\n    public ean: string = null;\n    public articleNumber: string = null;\n    public pght: any = null;\n    public notes: string = null;\n    public productWorks: WorkMiloModel[] = [];\n    public productDivisions: ProductDivisionModel[] = [];\n    public territories: TerritoryModel[] = [];\n    public productDiscs: ProductDiscModel[] = [];\n    public productBoxSets: ProductBoxSetModel[] = [];\n    public financialDistributionInitialized: boolean;\n    public numFED: string = null;\n    public designerCode: string = '';\n    public pressOfficerCode: string = '';\n    public formattedEan: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ProductModel[] {\n        const refs: ProductModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new ProductModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class BoxSetItemModel {\n    public id: number = null;\n    public support: ReferentielModel = new ReferentielModel();\n    public ean: string = null;\n    public title: string = null;\n    public financialDistributionInitialized: boolean;\n    public idWorks: number[] = [];\n    public formattedEan: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { BoxSetItemModel } from './box-set-item.model';\n\nexport class ProductBoxSetModel {\n    public id: number = null;\n    public boxSetItem: BoxSetItemModel = new BoxSetItemModel();\n    uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { DiscModel } from './disc.model';\n\nexport class ProductDiscModel {\n    public id: number = null;\n    public position: number = null;\n    public disc: DiscModel = new DiscModel();\n    public checked: boolean = false;\n    uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ProductDiscModel[] {\n        const refs: ProductDiscModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new ProductDiscModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","/**\n * Created by mmichieli on 13/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class SubtitleContentModel {\n    public id: number = null;\n    public isDefault = false;\n    public materialNumber: number;\n    public languageId: number;\n    public contentId: number;\n    public stateId: number;\n    public typeId: number;\n    public origin: string = null;\n    public localisation: string = null;\n    public availabilityDate: string = null;\n    public statusId: number;\n\n    public languageLabel: string = null;\n    public contentLabel: string = null;\n    public stateLabel: string = null;\n    public typeLabel: string = null;\n    public statusLabel: string = null;\n\n    public status: ReferentielModel = new ReferentielModel();\n    public uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class VideoContentModel {\n    public id: number = null;\n    public materialNumber: string;\n    public diffusionFormatId: number;\n    public supportId: number;\n    public ratioId: number;\n    public colorId: number;\n    public localisation: string;\n    public duration: string;\n    public origin: string;\n    public isFormatRespected: boolean = false;\n    public availabilityDate: string;\n    public checked: boolean = false;\n\n    public ratioLabel: string;\n    public formatLabel: string;\n    public colorLabel: string;\n    public supportLabel: string;\n    public statusLabel: string;\n\n    public status: ReferentielModel = new ReferentielModel();\n    public uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ProductModel } from '../product.model';\nimport { ReferentielModel } from '../referentiel.model';\nimport { PurchaseOrderFileModel } from '../expenditure-commitment/purchase-order-file.model';\n\nexport class PurchaseOrderModel {\n    public id: number = null;\n    public number: number = null;\n    public product: ProductModel = new ProductModel();\n    public costCenterId: number = null;\n    public costCenterName = '';\n    public supplierMiloId: number = null;\n    public supplierMiloName: string = null;\n    public deliveryRadio = false;\n    public expectedDeliveryDate = null;\n    public description = '';\n    public type = '';\n    public currencyId = 32;\n    public currencyLabel = '';\n    public status: ReferentielModel = new ReferentielModel();\n    public totalAmmountTF: number = null;\n    public deliveryDate: string = null;\n    public realDeliveryDate: string = null;\n    public quantity = 1;\n    public deliveredQuantity: number = null;\n    public toBeDeliveredQuantity: number = null;\n    public finalDelivery: boolean;\n    public creator: string = null;\n    public basketNumber: number = null;\n    public orderSAPNumber: number = null;\n    public creationDate: string = null;\n    public currencyCode: string = null;\n    public deliveryLocation: string;\n    public unitPrice: number;\n    public checked = false;\n    public isDuplicate = false;\n    public files: PurchaseOrderFileModel[] = [];\n    public uuid: string;\n\n    constructor() {\n        this.status.id = 6;\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): PurchaseOrderModel[] {\n        const refs: PurchaseOrderModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new PurchaseOrderModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","export class AdressTypeModel {\n    constructor(public addressType: string = null) {\n    }\n\n    fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { CountryModel } from './coutry.model';\n\nexport class AdressModel {\n    constructor(\n        public id: number = 46,\n        public thirdPartyId: number = null,\n        public addressType: string = null,\n        public street1: string = null,\n        public street2: string = null,\n        public street3: string = null,\n        public bp: string = null,\n        public city: string = null,\n        public zipCode: string = null,\n        public country: CountryModel = null,\n        public tel: string = null,\n        public fax: string = null,\n        public email: string = null,\n        public checked = false,\n        public action: string = null\n    ) {\n    }\n\n    fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 13/09/2017.\n */\nexport class AttachedFileModel {\n    public id: number = null;\n    public name: string;\n    public path: string;\n    public url: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class BankAccountModel {\n    constructor(\n        public id: number = 46,\n        public bankCountryCode: string = null,\n        public bankNumber: string = null,\n        public bankName: string = null,\n        public bankType: string = null,\n        public accountNumber: string = null,\n        public accountHolder: string = null,\n        public ribKey: string = null,\n        public paiementMode: string = null,\n        public accountDRGLT: string = null,\n        public accountGen: string = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class InvoiceBankAccountModel {\n    public id: number;\n    public activated: boolean = null;\n    public company: string = null;\n    public bankName: string = null;\n    public accountNumber: string = null;\n    public iban: string = null;\n    public swift: string = null;\n    public label: string = null;\n    public collectionAccount: boolean = null;\n    public address: string = null;\n    public currency: string = null;\n    public miloCode: string = null;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons) {\n        const refs: InvoiceBankAccountModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new InvoiceBankAccountModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class BasicHierarchyModel {\n    constructor(\n        public id: number = null,\n        public label: string = null,\n        public idParents: number[] = []\n    ) {\n    }\n}\n","export class ColorModel {\n    constructor(\n        public id: number = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class CompanyModel {\n    public code: string = null;\n    public label: string = null;\n    public id: number = null;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class ContentTypeModel {\n    public id: number = null;\n    public label: string;\n    public category: string;\n    public code: string;\n    public codeBaseFileName: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class ContentModel {\n    public id: number;\n    public label: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ContentModel[] {\n        const refs: ContentModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new ContentModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","export class CostCenterCriteriaValueModel {\n    public id: number;\n    public code: string;\n    public value: string = null;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { CostCenterCriteriaValueModel } from './cost-center-criteria-values.model';\n\nexport class CostCenterCriteriaModel {\n    public id: number;\n    public code: string;\n    public name: string;\n    public value: string;\n    public idCostCenterCriteriaValue: number;\n    public criteriaValues: CostCenterCriteriaValueModel[];\n    public codeCostCenterCriteriaValue: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { CostCenterCriteriaModel } from './cost-center-criteria.model';\nimport { CompanyModel } from './company.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\nexport class CostCenterModel {\n    public id: number = null;\n    public code: string = null;\n    public companyId: number = null;\n    public company: CompanyModel = null;\n    public doubling = false;\n    public entityStateDto: ReferentialEntityStateModel = null;\n    public label: string = null;\n    public criterias: CostCenterCriteriaModel[] = null;\n    public formattedLabel: string;\n\n    public formattedString: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): CostCenterModel[] {\n        const refs: CostCenterModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new CostCenterModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class CountryModel {\n    constructor(\n        public id: number = -1,\n        public isoCode: string = null,\n        public label: string = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { FixingModel } from './fixing.model';\n\nexport class CurrencyModel {\n    constructor(\n        public id: number = null,\n        public code: string = null,\n        public label: string = null,\n        public fixings: FixingModel[] = null,\n        public blocked = false,\n        public activated = true // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ContentTypeModel } from './content-type.model';\nimport { WorkModel } from './work.model';\nimport { FSKModel } from './fsk.model';\nimport { FSKIndexModel } from './fsk-index.model';\n\n/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class EditorialContentModel {\n    public id: number;\n    public episodeId: number;\n    public contentType: ContentTypeModel;\n    public work: WorkModel;\n    public number: string;\n    public diffusionNum: string;\n    public film24Duration: string;\n    public film25Duration: string;\n    public duration: string;\n    public state: boolean;\n    public descriptionTitle: string;\n    public timeLineVersionName: string;\n    public fsks: FSKModel[];\n    public fsksIndex: FSKIndexModel[];\n\n    constructor() {\n        this.contentType = new ContentTypeModel();\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { CurrencyModel } from './currency.model';\n\nexport class FixingModel {\n    public id = -1;\n    public dateFixing: any = null;\n    public currency: CurrencyModel;\n    public rate = 0;\n    public codeCurrencyRef: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n                return this;\n            }\n        }\n    }\n}\n","export class FlatMediaModel {\n    constructor(\n        public id: number = null,\n        public label: string = null,\n        public idParent: number = null,\n        public highlight = false,\n        public disabled = false\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class FormatImageModel {\n    constructor(\n        public id: number = null,\n        public label: string = null,\n        public displayOrder: number = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class FormatTypeModel {\n    constructor(\n        public id: number = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class FormatModel {\n    constructor(\n        public id: number = null,\n        public label: string = null,\n        public codeFormat: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class ReferentialValueModel {\n    public category: string;\n    public label: string;\n    public order: number;\n    public id: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKIndexModel {\n    public id: number;\n    public editorialContentId: number;\n    public comments: string;\n    public dateIndexing: string;\n    public judgement: string;\n    public indexingNumber: string;\n    public provider: string;\n    public publication: string;\n    public indexingRuntime: string;\n    public sourceData: string;\n    public category: ReferentialValueModel;\n    public listab: ReferentialValueModel;\n    public attachedFiles: AttachedFileModel[];\n\n    constructor() {\n        this.category = new ReferentialValueModel();\n        this.listab = new ReferentialValueModel();\n        this.attachedFiles = [];\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKModel {\n    public id: number;\n    public comments: string;\n    public dateAgeRating: string;\n    public lengthMeter: string;\n    public workId: number;\n    public lengthMinute: string;\n    public lengthRuntime: string;\n    public checkNumber: string;\n    public restrictions: boolean;\n    public indexed: boolean;\n    public sundayBHA: boolean;\n    public country: TerritoryModel;\n    public language: LanguageModel;\n    public subTitle: LanguageModel;\n    public duration24: number;\n    public duration25: number;\n    public dateOfAgeRating: string;\n    public oldLength: string;\n    public provider: string;\n    public ageRating: ReferentialValueModel;\n    public category: ReferentialValueModel;\n    public medium: ReferentialValueModel;\n    public refProvider: ReferentialValueModel;\n    public editorialContentId: number;\n    public versionTimeStamp: string;\n    public attachedFiles: AttachedFileModel[];\n\n    constructor() {\n        this.ageRating = new ReferentialValueModel();\n        this.medium = new ReferentialValueModel();\n        this.refProvider = new ReferentialValueModel();\n        this.category = new ReferentialValueModel();\n        this.attachedFiles = [];\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class FunctionModel {\n    public id: number = 0;\n    public label: string = '';\n    public order: number = 0;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any) : FunctionModel[] {\n        const refs: FunctionModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new FunctionModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class GenreModel {\n    constructor(\n        public id: number = null,\n        public order: string = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class InvoiceProductTypeModel {\n    public id = 0;\n    public label = '';\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): InvoiceProductTypeModel[] {\n        const refs: InvoiceProductTypeModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new InvoiceProductTypeModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class KeywordsModel {\n    id: number;\n    label: string;\n\n  constructor() {\n  }\n\n  public fromJSON(json: any): this {\n    for (const propName in json) {\n      if (json.hasOwnProperty(propName)) {\n        this[propName] = json[propName];\n      }\n    }\n    return this;\n  }\n}\n","export class MediaFilterModel {\n    public id: number;\n    public label: string;\n    public isGroup: boolean;\n    public idParent: number;\n    public listIdParent: number[];\n    public highlight: boolean;\n    public disabled: boolean;\n    public description: string;\n}\n","export class ModuleModel {\n    constructor(\n        public id: number = null,\n        public category: string = null,\n        public labelFr: string = null,\n        public labelEn: string = null,\n        public labelDe: string = null,\n        public checked = false,\n        public action: string = null\n    ) {\n    }\n\n    fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { PersonModel } from './person.model';\nimport { FunctionModel } from './function.model';\n\nexport class ParticipantModel {\n    public id: number;\n    public person: PersonModel;\n    public function: FunctionModel;\n\n    /* Old Atributes */\n    public orderInFunction: number;\n\n    constructor() {\n    }\n\n    fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ParticipantModel[] {\n        const refs: ParticipantModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new ParticipantModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class PersonModel {\n    public id: number = 0;\n    public lastName: string = '';\n    public firstName: string = '';\n    public dateOfBirth?: String;\n    public placeOfBirth?: String;\n    public dateOfDeath?: String;\n    public placeOfDeath?: String;\n    public sex?: String;\n\n    constructor() {\n    }\n\n    fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): PersonModel[] {\n        const refs: PersonModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new PersonModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class ProjectStatusModel {\n    constructor(\n        public id: number = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class QuotaModel {\n    constructor(\n        public id: number = null,\n        public order: string = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 07/06/2017.\n */\n\nexport class ReferentialEntityStateModel {\n    public deleted: boolean;\n    public blocked: boolean;\n    public activated: boolean;\n    public updatable: boolean;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n                return this;\n            }\n        }\n    }\n}\n","export class ReferentielModel {\n    public id: number = null;\n    public active: boolean = null;\n    public category: string = null;\n    public label: string = null;\n    public order: number = null;\n    public codeRef: string = null;\n    public orderCode;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): ReferentielModel[] {\n        const refs: ReferentielModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new ReferentielModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","import { ParameterModel } from './parameter.model';\n\nexport class SapOrderModel {\n    public id: number;\n    public orderCode: string;\n    public designation: string;\n    public company: string;\n    public codeCompany: string;\n    public managmentCompany: string;\n    public category: string;\n    public subCategory: string;\n    public systemStatus: string;\n    public buLabel: string;\n    public validationDate: any;\n    public closingDate: any;\n    public technicalClosingDate: any;\n    public process: string;\n    // Concat orderCode + designation\n    public displayRow: string;\n    public codeManagmentCompany: string;\n    params: ParameterModel[];\n\n    // Informations Importants for work commercial\n    public workTitleVo: string;\n    public workStatusProject: string;\n    public miloCode: string;\n    public costCenterCategory: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): SapOrderModel[] {\n        const refs: SapOrderModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new SapOrderModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","/**\n * Created by vsliwka on 02/03/2017.\n */\nexport class ServiceErrorModel {\n    public LEVEL_WARN: string = 'WARNING';\n    public LEVEL_ERROR: string  = 'ERROR';\n\n    public errorMessageKey: string  = '';\n    public status: number  = 0;\n    public severity: string  = '';\n    public parameters: string[] = [];\n    public statusText: string  = '';\n\n    constructor() {\n    }\n}\n","export class SoundModel {\n    constructor(\n        public id: number = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class TerritoriesLanguagesModel {\n    constructor(\n        public id: number = null,\n        public country: string = null,\n        public languages: BasicModel[] = []\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class TerritoryFilterModel {\n    public id: number;\n    public label: string;\n    public codeISO: string;\n    public listIdParent: number[];\n}\n","export class ThemeModel {\n    constructor(\n        public id: number = null,\n        public order: string = null,\n        public label: string = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { TerritoryModel } from './territory.model';\nimport { MediaModel } from './media.model';\nimport { CurrencyModel } from './currency.model';\n\nexport class ThirdPartyCreationRequestModel {\n    public id: number = null;\n    public requestType: string = '';\n    public supplierType: string = '';\n    public dateCreation: any = null;\n    public userCreation: string = '';\n    public service: string = '';\n    public tel: string = '';\n    public label: string = '';\n    public address: string = '';\n    public zipCode: string = '';\n    public country: TerritoryModel;\n    public city: string = '';\n    public intraCommunautaireTvaNumber: string = '';\n    public siret: string = '';\n    public socialSecurity: string = '';\n    public agessaAgrement: string = '';\n    public existMilo: boolean = false;\n    public blocageReason: string = '';\n    public miloIdentification: string = '';\n    public miloBlockedCompta: boolean = false;\n    public miloBlockedMM: boolean = false;\n    public email: string = '';\n    public thirdPartyType: string = '';\n    public honoraire: boolean = false;\n    public currency: CurrencyModel;\n    public amount: string = '';\n    public commandeVerso: boolean = false;\n    public commandeRambo: boolean = false;\n    public commandeBBP: boolean = false;\n    public contratRambo: boolean = false;\n    public clientType: string = '';\n    public clientCountry: TerritoryModel;\n    public mediaCountry: MediaModel;\n    public clientHermes: boolean;\n    public clientContratRambo: boolean;\n    public clientContratRamboUTD: boolean;\n    public clientVenteSD: boolean;\n    public clientAutres: boolean;\n    public category: string = '';\n    public personCompanyType: string = '';\n    public statusCreationRequest: boolean;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class ThirdPartyModuleModel {\n    constructor(\n        public id: number = null,\n        public thirdPartyId: number = null,\n        public thirdPartyCodeSap: string = null,\n        public moduleId: number = null,\n        public module: string = null,\n        public checked = false,\n        public action: string = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class TranslatedValueModel {\n    public id: number;\n    public label: string;\n    public order: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class TvaModel {\n    constructor(\n        public id: number = null,\n        public code: string = null,\n        public label: string = null\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class TypeExportModel {\n    public id: number = null;\n    public codeTypeExport: string = '';\n    public nameTypeExport: string = '';\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class TypeTvaModel {\n    public id: number = 0;\n    public codeTva: string = null;\n    public rate: number = 0;\n    public label: string = '';\n    public codeLabel: string;\n\n    // public client = '';\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): TypeTvaModel[] {\n        const refs: TypeTvaModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new TypeTvaModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","export class ZoneModel {\n    public id: number;\n    public label: string = '';\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { InvoiceProductTypeModel } from './invoice-product-type.model';\nimport { TypeTvaModel } from './type-tva.model';\nimport { TerritoryModel } from './territory.model';\nimport { ZoneModel } from './zone.model';\n\nexport class TypeTvaCompanyTerritoryModel {\n    public id: number;\n    public label: string = null;\n    public codeLlabel: string = null;\n    public typeTva: TypeTvaModel = new TypeTvaModel();\n    public companyCode: string = null;\n    public invoiceProductType: InvoiceProductTypeModel = new InvoiceProductTypeModel();\n    public activated: boolean = null;\n    public territory: TerritoryModel = new TerritoryModel();\n    public zone: ZoneModel = new ZoneModel();\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): TypeTvaCompanyTerritoryModel[] {\n        const refs: TypeTvaCompanyTerritoryModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new TypeTvaCompanyTerritoryModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","import { TranslatedValueModel } from './translated-value-model';\nimport { LanguageModel } from './language.model';\n\n/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class WorkAddonsModel {\n    public id: number;\n    public workId: number;\n    public addonType: TranslatedValueModel;\n    public countryIsoCode: string;\n    public addonContent: string;\n    public titleCmpl: string;\n    public authorCmpl: string;\n    public originCmpl: string;\n    public dateCmpl: string;\n    public synopsisType: TranslatedValueModel;\n    public sourceType: TranslatedValueModel;\n    public sourceLink: string;\n    public sourceNote: string;\n    public episodeNumber: number;\n    public isOnline: boolean;\n    public language: LanguageModel;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class WorkAppartenanceModel {\n    constructor(\n        public id: number = null,\n        public label: string = null,\n        public displayOrder: number = null // public url: string = null,\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkGenreModel {\n    public id: number;\n    public workId: number;\n    public label: string;\n    public order: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkLanguageModel {\n    public id: number;\n    public workId: number;\n    public label: string;\n    public principalLanguage: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class WorkMiloModel {\n    public id: number = null;\n    public idWorkMilo: number = null;\n    public miloCode: string = null;\n    public title: string = null;\n    public titleFr: string = null;\n    public completeTitle: string = null;\n    public mainTitle: string = null;\n    public genre: string = null;\n    public yearOfProduction: string = null;\n    public isoCode: string = null;\n    public idVersionMilo: number = null;\n    public checked: boolean = false;\n    public langueOri: string = null;\n    public codeOrdre: string = null;\n    public designation: string = null;\n    public processus: string = null;\n    public societe: string = null;\n    public societeGestion: string = null;\n    public sousCategorie: string = null;\n    public statutProjet: string = null;\n    public orderCode: string = null;\n    public referenceCurrencyCode: any = null;\n    public company: string = null;\n    public managmentCompany: string = null;\n    public category: string = null;\n    public subCategory: string = null;\n    public buLabel: string = null;\n    public process: string = null;\n    public valdiationDate: Date = null;\n    public closingDate: Date = null;\n    public technicalClosingDate: Date = null;\n    public systemStatus: string = null;\n    public quota: string = null;\n    public genres: string = null;\n    public languages: string = null;\n    public versions: any = null;\n    public idDivision: number = null;\n    public codeSap: string = null;\n    public percentage: number = null;\n    public index: number;\n    public uuid: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): WorkMiloModel[] {\n        const refs: WorkMiloModel[] = [];\n        if (jsons) {\n            jsons.forEach(json => {\n                refs.push(new WorkMiloModel().fromJSON(json));\n            });\n        }\n        return refs;\n    }\n}\n","/**\n * Created by vsliwka on 30/05/2017.\n */\nimport { TerritoryModel } from './territory.model';\nimport { RestrictionModel } from './restriction.model';\n\nexport class WorkRestrictionModel {\n    public id: number;\n    public workId: number;\n\n    /* New Attributes */\n    public restriction: RestrictionModel;\n    public country: TerritoryModel;\n\n    /* Old Attributes */\n    public countryIsoCode: string;\n    public label: string;\n    public code: string;\n    public order: number;\n\n    public type: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkThemeModel {\n    public id: number;\n    public workId: number;\n    public label: string;\n    public principalTheme: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class WorkTitleModel {\n    public miloCode: string;\n    public completeTitle: string;\n    public titleVO: string;\n    public title: string;\n    public yearOfProduction: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n\n    public fromJSONs(jsons: any): WorkTitleModel[] {\n        const refs: WorkTitleModel[] = [];\n        jsons.forEach(json => {\n            refs.push(new WorkTitleModel().fromJSON(json));\n        });\n        return refs;\n    }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\nexport class WorkVersionOriginModel {\n    public id: number;\n    public label: string;\n    public value: number;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionUsedModel {\n    public id: number;\n    public label: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionArticleModel {\n    public id: number = null;\n    public label: string;\n    public isoCode: string;\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { WorkVersionArticleModel } from './WorkVersionArticleDto';\nimport { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { WorkVersionUsedModel } from './work-versions-used.model';\nimport { WorkVersionOriginModel } from './work-version-origin.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionModel {\n    public id: number;\n    public workId: number;\n    public title: string;\n    public principal: boolean;\n    public order: number = 0;\n    public origin: WorkVersionOriginModel;\n    public article: WorkVersionArticleModel;\n    public articleId: number;\n    public country: TerritoryModel;\n    public used: WorkVersionUsedModel;\n    public languageVersion: LanguageModel;\n    // Denormalized field for display purpose only\n    public restrictionTv: string;\n    // Denormalized field for display purpose only\n    public restrictionCine: string;\n    public entityState: ReferentialEntityStateModel;\n    public countryLabel: string;\n    public isEpisode: boolean = false;\n\n    constructor() {\n        this.article = new WorkVersionArticleModel();\n        this.origin = new WorkVersionOriginModel();\n        this.country = new TerritoryModel();\n        this.used = new WorkVersionUsedModel();\n        this.countryLabel = '';\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class WorkYearProductionModel {\n    public id: number;\n    public label: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { ParticipantModel } from './participant.model';\nimport { SapOrderModel } from './sap-order.model';\nimport { WorkVersionModel } from './work-versions.model';\nimport { WorkAddonsModel } from './work-addons-model';\nimport { WorkRestrictionModel } from './work-restrictions-model';\nimport { WorkThemeModel } from './work-theme.model';\nimport { WorkGenreModel } from './work-genre.model';\nimport { WorkLanguageModel } from './work-language.model';\nimport { ColorModel } from './color.model';\nimport { QuotaModel } from './quota.model';\nimport { SoundModel } from './sound.model';\nimport { FormatModel } from './format.model';\nimport { WorkAppartenanceModel } from './work-appartenance.model';\nimport { FormatImageModel } from './format-image.model';\nimport { ProjectStatusModel } from './project-status.model';\nimport { FormatTypeModel } from './format-type.model';\nimport { WorkYearProductionModel } from './work-year-production.model';\nimport { EditorialContentModel } from './editorial-content.model';\nimport { KeywordsModel } from './keywords.model';\nimport { WorkParticipantModel } from './work-participant.model';\n\n/**\n * Created by vsliwka on 05/04/2017.\n */\nexport class WorkModel {\n    public id: number;\n    public titleVO: string;\n    public territory: string;\n    public duration: any;\n    public expired: boolean;\n    public episodeNumber: number;\n    public clientLanguageTitle: string;\n    public title: string;\n    public completeTitle: string;\n    public miloCode: string;\n    public isoCode: string;\n    public eidrCode: string;\n    public idIMDB: string;\n    public workType: string;\n    public yearOfProduction: WorkYearProductionModel;\n    public director: string;\n    /* Old Attributes */\n    public participants: ParticipantModel[];\n    /* New Attributes */\n    public workParticipants: WorkParticipantModel[];\n    public sapOrders: SapOrderModel[];\n    public versions: WorkVersionModel[];\n    public addons: WorkAddonsModel[];\n    public tvRestrictions: WorkRestrictionModel[];\n    public movieRestrictions: WorkRestrictionModel[];\n    public themes: WorkThemeModel[];\n    public genres: WorkGenreModel[];\n    public languages: WorkLanguageModel[];\n    public arthouse: string;\n    public color: ColorModel;\n    public quota: QuotaModel;\n    public sound: SoundModel;\n    public format: FormatModel;\n    public workAppartenance: WorkAppartenanceModel;\n    public formatImage: FormatImageModel;\n    public projectStatus: ProjectStatusModel;\n    public formatType: FormatTypeModel;\n    public genresSelected: any[] = [];\n    public themesSelected: any[] = [];\n    public languageSelected: any[] = [];\n    public sapOrderId: number;\n    public customOrderLabel: string;\n    public percentage: number;\n    public keyInSession: string = 'Referential-WorkModel-Session-key';\n    public editorialContents: EditorialContentModel[];\n    public workKeywords: KeywordsModel[];\n    public exportableSap: boolean = false;\n    public header: boolean;\n    public seriesWorkId?: number;\n\n    constructor() {\n        this.versions = [];\n    }\n\n    public fromJSON(json: any): this {\n        for (const propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class BroadcastListItem {\n\n    public id: number;\n    public email: string;\n    public typeCode: string;\n    public thirdPartySapCode: string;\n\n    constructor() {\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { BasicModel } from './basic.model';\n\nexport class AnyLineModel {\n    public action: string;\n    public rightId: number;\n\n    constructor(\n        public id: number = null,\n        public selected: any = new BasicModel(),\n        public included: BasicModel[] = [],\n        public excluded: BasicModel[] = [],\n        public toRemove: BasicModel[] = [],\n        public checked: boolean = false,\n        public edited: boolean = false,\n        public deleted: boolean = false,\n        public created: boolean = false,\n        public disabled: boolean = false,\n        public lineSize: boolean = false,\n        public hided: boolean = false,\n        public excludedStr: string = null,\n        public listExclSuggs: any[] = []\n    ) {\n    }\n\n    public getAllIdExcluded(): number[] {\n        return this.excluded.map(x => x.id);\n    }\n\n    public getAllIdIncluded(): number[] {\n        return this.included.map(x => x.id);\n    }\n\n    public getAllRemoved(): number[] {\n        return this.toRemove.map(x => x.id);\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class SearchResponseModel {\n    public content: any[] = [];\n    public totalNumberOfPages: number = 1;\n    public totalNumberOfContracts: number = 0;\n    public allSearchResultIds: number[] = [];\n    public totalResponseLenght: number = 0;\n}\n","import { BasicModel } from './basic.model';\n\nexport class LangLineModel {\n    public action: string;\n    public rightId: number;\n\n    constructor(public id: number = null,\n                public selected: any = new BasicModel(),\n                public dubbing: boolean = false,\n                public subtitle: boolean = false,\n                public checked: boolean = false,\n                public allLanguages: boolean = false,\n                public included: BasicModel[] = [],\n                public excluded: BasicModel[] = [],\n                public toRemove: BasicModel[] = [],\n                public excludedStr: string = null) {\n    }\n\n    public getAllIdExcluded(): number[] {\n        return this.excluded.map((x) => x.id);\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class EventTypeModel {\n    constructor(\n        public id: number = null,\n        public label: string = null\n    ) {\n    }\n}\n","import { BasicModel } from './basic.model';\n\nexport class MediaLineModel {\n    constructor(\n        public id: number = null,\n        public selected: any = new BasicModel(),\n        public included: BasicModel[] = [],\n        public excluded: BasicModel[] = []\n    ) {\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","export class OptionHtmlModel {\n    constructor(\n        public id: string = null,\n        public value: number = null,\n        public label = null\n    ) {\n    }\n}\n","export class SelectHtmlModel {\n    constructor(public options: any[] = [], public disabled: boolean = false) {\n    }\n}\n","import { SectionModel } from './section.model';\nimport { PermissionModel } from './permission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class UserModel {\n    public id: number = null;\n    public login: string = null;\n    public password: string = null;\n    public name: string = null;\n    public firstName: string = null;\n    public fullName: string = null;\n    public serialNumber: string = null;\n    public type: number = null;\n    public dateBegin = null;\n    public dateEnd = null;\n    public entity: number = null;\n    public management: number = null;\n    public email: string = null;\n    public admin: boolean = false;\n    public active: boolean = true;\n    public comment: string = null;\n    public sections: SectionModel[] = [];\n    public permissions: PermissionModel[] = [];\n    public subsidiaries: SubsidiaryModel[] = [];\n    public mainSubsidiary: SubsidiaryModel = null;\n\n    constructor() {\n    }\n\n    public getFullName(): string {\n        return this.firstName + ' ' + this.name;\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","// import { WorkYearProductionModel } from '../referential/work-year-production.model';\nimport { BasicModel } from '../basic.model';\nimport { ContractWork2Model } from './contract-work2.model';\n\nexport class ContractWorkModel {\n\n    public id: number;\n    public idInSession: number;\n    public selected: any = new BasicModel();\n    public workCodeMilo: string;\n    public miloCode: string;\n    public completeTitle: string;\n    public title: string;\n    public titleVO: string;\n    public titleWork: string;\n    public yearOfProduction: string;\n    public workYearProductLabel: string;\n    public action: string;\n    public contractId: number;\n    public workRefId: number;\n    public idWork: number;\n    public financialAmount: number;\n    public checked: boolean = false;\n    public relatedWorks: ContractWork2Model[] = [];\n    public included: BasicModel[] = [];\n    public excluded: BasicModel[] = [];\n\n    constructor() {\n    }\n\n    public getAllIdExcluded(): number[] {\n        return this.excluded.map((x) => x.id);\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class ContractWork2Model {\n\n    public id: number;\n    public selected: any = new BasicModel();\n    public workCodeMilo: string;\n    public miloCode: string;\n    public title: string;\n    public titleVO: string;\n    public titleWork: string;\n    public yearOfProduction: string;\n    public workYearProductLabel: string;\n    public action: string;\n    public contractId: number;\n    public workRefId: number;\n    public idWork: number;\n    public financialAmount: number;\n    public checked: boolean = false;\n    public included: BasicModel[] = [];\n    public excluded: BasicModel[] = [];\n\n    constructor() {\n\n    }\n\n    public getAllIdExcluded(): number[] {\n        return this.excluded.map((x) => x.id);\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class FormActionsEventsService {\n\n    public updateEvent: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n    public consultToEdit: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n    public EditToConsult: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n    public consultToDuplicate: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n\n    public emitUpdateEvent(): void {\n        this.updateEvent.emit();\n    }\n\n    public emitEventIsUpdateTrue(): void  {\n        this.consultToEdit.emit(true);\n    }\n\n    public emitConsultEvent(): void  {\n        this.EditToConsult.emit();\n    }\n}\n","import { SectionModel } from './section.model';\n\nexport class PermissionModel {\n    constructor(public id: number = null,\n                public label: string = null,\n                public code: string = null,\n                public priority: number = null,\n                public sectionId: number = null,\n                public section: SectionModel = null,\n                public description: string = null) {\n    }\n\n    public fromJSON(json: any): this {\n        for (let propName in json) {\n            if (json.hasOwnProperty(propName)) {\n                this[propName] = json[propName];\n            }\n        }\n        return this;\n    }\n}\n","import { PermissionModel } from './permission.model';\n\nexport class SectionModel {\n\n    public id: number = null;\n    public sectionName: string = null;\n    public permissions: PermissionModel[] = [];\n\n    constructor() {\n    }\n}\n","import { FamilyModel } from \"./family.model\";\n\nexport class SubsidiaryModel {\n  public id: number = null;\n  public label: string = null;\n  public family: FamilyModel = null;\n\n  constructor() {\n  }\n}\n","export class FamilyModel {\n    public id: number = null;\n    public label: string = null;\n    constructor() {\n    }\n}\n","import { SectionModel } from './section.model';\nimport { NotificationClassification } from '../enums/notification-classification.enum';\n\nexport class NotificationModel {\n  public id: number;\n  public description: string;\n  public classification: NotificationClassification;\n  public messageEn: string;\n  public messageFr: string;\n  public targetSections: SectionModel[];\n  public publicationDate: Date;\n  public expirationDate: Date;\n  public published: boolean;\n  public createdBy: string;\n  public createdDate: Date;\n}\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { catchError, map } from 'rxjs/operators';\nimport { AuthUserModel } from '../../models';\nimport { inject } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { Observable, of } from \"rxjs\";\n\nexport const authGuard: CanActivateFn = (\n  route: ActivatedRouteSnapshot,\n  state: RouterStateSnapshot\n) => {\n  const cookieService: CookieService = inject(CookieService);\n  const commonApiService: CommonApiService = inject(CommonApiService);\n  const webConfig: Config = inject(WEB_CONFIG);\n  const authService: AuthService = inject(AuthService);\n\n  if (state.url.includes('/login/invalid')) {\n    return true;\n  }\n\n  if (commonApiService.isTokenValid()) {\n    authService.setAuthenticated(true);\n    return true;\n  }\n\n  const user: AuthUserModel = commonApiService.getUserDataFromToken();\n  const email: string = user.secondary ? user.email : cookieService.get('auth-mail');\n\n  return commonApiService.ssoLogin(email).pipe(\n    map((data: any): boolean => {\n      user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\n      authService.setAuthenticated(true);\n      return true;\n    }),\n    catchError((): Observable<boolean> => {\n      authService.setAuthenticated(false);\n      window.location.href = webConfig.api_url + '/login/invalid';\n      return of(false);\n    })\n  );\n};\n","import { inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from \"rxjs/operators\";\n\nexport const loginGuard = () => {\n    const dialog: MatDialog = inject(MatDialog);\n    const authService: AuthService = inject(AuthService);\n\n  if (sessionStorage.getItem('authToken') !== null) {\n      authService.setAuthenticated(true);\n      return true;\n  } else {\n    const dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = dialog.open(MyDialogPopupLoginComponent, {\n      disableClose: true\n    });\n\n    return dialogRef.afterClosed().pipe(\n      map((res: boolean): boolean => {\n        authService.setAuthenticated(res);\n        return res;\n      })\n    );\n  }\n};\n","import { HttpParams } from \"@angular/common/http\";\n\nexport class HttpParamsBuilder {\n  private params: HttpParams;\n\n  constructor() {\n    this.params = new HttpParams();\n  }\n\n  append(param: string, value: any): this {\n    if (this.isNotEmpty(value)) {\n      this.params = this.params.append(param, value);\n    }\n    return this;\n  }\n\n  appendAll(criteriaModel: object): this {\n    for (const property in criteriaModel) {\n      this.append(property, criteriaModel[property]);\n    }\n    return this;\n  }\n\n  build(): HttpParams {\n    return this.params;\n  }\n\n  private isNotEmpty(value: any): boolean {\n    return value !== null\n      && value !== undefined\n      && !(typeof value === 'string' && value.trim().length === 0);\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, switchMap, take } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { AuthUserModel } from '../../models';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n  private refreshTokenInProgress: boolean = false;\n  private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\n    null\n  );\n  private readonly commonApiService: CommonApiService = inject(CommonApiService);\n  private readonly cookieService: CookieService = inject(CookieService);\n\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n    if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {\n      return next.handle(request);\n    }\n\n    if (!this.commonApiService.isTokenValid()) {\n      if (this.refreshTokenInProgress) {\n        return this.refreshTokenSubject.pipe(\n          filter((result: any): boolean => result !== null),\n          take(1),\n          switchMap((): Observable<HttpEvent<any>> => next.handle(this.addToken(request)))\n        );\n      } else {\n        this.refreshTokenInProgress = true;\n        this.refreshTokenSubject.next(null);\n        const user: AuthUserModel = this.commonApiService.getUserDataFromToken();\n        const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\n\n        return this.commonApiService.ssoLogin(email)\n          .pipe(\n            switchMap((data: any): Observable<HttpEvent<any>> => {\n              this.commonApiService.setToken(data.token);\n              this.refreshTokenInProgress = false;\n              this.refreshTokenSubject.next(data.token);\n              return next.handle(this.addToken(request));\n            })\n          );\n      }\n    }\n\n    return next.handle(this.addToken(request));\n  }\n\n  private addToken(request: HttpRequest<any>): HttpRequest<any> {\n    const token: string = this.commonApiService.getToken();\n    if (!token) {\n      return request;\n    }\n\n    return request.clone({\n      headers: request.headers.set('Authorization', `Bearer ${token}`)\n    });\n  }\n}\n","export enum StatusColor {\n  BLUE = 'status-blue',\n  GREEN = 'status-green',\n  ORANGE = 'status-orange',\n  RED = 'status-red',\n  PINK = 'status-pink',\n  GREY = 'status-grey',\n  WHITE = 'status-white'\n}\n","export enum PersonalNotificationPriorityEnum {\n  INFO = 'INFO',\n  WARN = 'WARN',\n  CRITICAL = 'CRITICAL'\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport merge from 'deepmerge';\nimport { inject } from \"@angular/core\";\n\n\ninterface ITranslationResource {\n  prefix: string;\n  suffix: string;\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n  private readonly http: HttpClient = inject(HttpClient);\n\n  constructor(\n    private resources: ITranslationResource[],\n  ) {\n  }\n\n  public getTranslation(lang: string): Observable<any> {\n    const requests = this.resources.map(resource => {\n      const path: string = resource.prefix + lang + resource.suffix;\n      return this.http.get(path).pipe(catchError(res => {\n        console.error('Something went wrong for the following translation file:', path);\n        console.error(res.message);\n        return of({});\n      }));\n    });\n    return forkJoin(requests).pipe(map(response => merge.all(response)));\n  }\n}\n","/*\n * Public API Surface of front-common-library-3\n */\n\nexport * from './lib/util/util.module';\nexport * from './lib/util/array.service';\nexport { User } from './lib/util/decorators/user.decorator';\nexport { Theme } from './lib/util/decorators/theme.decorator';\nexport { CustomMatPaginatorIntl } from './lib/util/paginator/custom-paginator-configuration';\nexport * from './lib/util/services/storage/local-storage.service';\nexport * from './lib/util/services/storage/session-storage.service';\nexport * from './lib/util/event/storage/local-storage-events.service';\nexport * from './lib/util/event/storage/session-storage-events.service';\nexport { PermissionsInterface } from './lib/util/interfaces/permissions.interface'\nexport * from './lib/util/config'\nexport * from './lib/util/theme/theme-event.service';\nexport * from './lib/util/regex/regex.service';\nexport * from './lib/util/permissions/permissions.service';\nexport * from './lib/util/date/date.util';\nexport * from './lib/util/date/date-format-constants';\nexport * from './lib/util/sort';\nexport * from './lib/util/number.validator';\n\nexport * from './lib/util/services/jwt-security/aes.service';\nexport * from './lib/util/component/overlay/overlay.service';\nexport * from './lib/util/component/overlay/overlay.component';\nexport * from './lib/util/component/header/header.component';\nexport * from './lib/util/component/sub-header/sub-header.component';\nexport * from './lib/util/component/popup/popup-login/popup-login.component';\n\n\nexport * from './lib/util/services/jwt-security/jwt.helpher';\nexport * from './lib/util/models';\n\n\nexport * from './lib/util/services/guard/auth.guard';\nexport * from './lib/util/services/guard/login.guard';\nexport * from './lib/util/services/form-action/form-actions-events.service';\nexport * from './lib/util/services/api/common-api.service';\nexport * from './lib/util/services/history/history.service';\nexport * from './lib/util/services/translate-language/lang.service';\nexport * from './lib/util/services/elasticsearch/elasticsearch.service';\nexport * from './lib/util/services/auth/auth.service';\nexport * from './lib/util/services/user/user-subsidiary.service';\nexport * from './lib/util/http/http-params.builder';\n\nexport * from './lib/util/date/PeriodModel';\nexport * from './lib/util/pipes/capitalizefirst.pipe';\nexport * from './lib/util/services/interceptor/auth.interceptor';\nexport * from './lib/util/pipes/local-date.pipe';\nexport * from './lib/util/pipes/trim-string.pipe';\nexport * from './lib/util/pipes/common-translate.pipe';\n\nexport * from './lib/util/pipes/my-number.pipe';\nexport * from './lib/util/pipes/comma-separated-number.pipe';\nexport * from './lib/util/pipes/display-html.pipe';\nexport * from './lib/util/pipes/display-null.pipe';\nexport * from './lib/util/pipes/format-number-input.pipe';\nexport * from './lib/util/directives/my-number-formatter-directive';\nexport * from './lib/util/pipes/third-party-address.pipe';\nexport * from './lib/util/pipes/format-duration.pipe';\nexport * from './lib/util/pipes/format-currency.pipe';\nexport * from './lib/util/pipes/notification-classification-icon.pipe';\n\nexport * from './lib/util/enums/status-color.enum';\nexport * from './lib/util/enums/notification-classification.enum';\nexport * from './lib/util/enums/personal-notification-priority.enum';\n\nexport * from './lib/util/toaster/toaster-events.service';\nexport * from './lib/util/event/header/header-events.service';\n\nexport * from './lib/util/directives/show-if-truncated.directive';\n\nexport * from './lib/util/i18n/multi-translate-http-loader';\n\nexport * from './lib/util/services/notification/notification.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TOKEN_NAME","i1","ClientJs","i2","i3","i4","i6.CommonTranslatePipe","i2.CommonTranslatePipe","i1.CommonTranslatePipe","i2.ThirdPartyAddressSearchPipe","i5","i6","i8.PurchaseOrderRapidSearchComponent","i9.ProductRapidSearchComponent","i10.WorkVersionRapidSearchComponent","i11.DealRapidSearchComponent","i12.WorkRecordRapidSearchComponent","i13.ThirdPartyRapidSearchComponent","i14.ContractRapidSearchComponent","i15.InvoiceRapidSearchComponent","i16.RoyaltyContractRapidSearchComponent","i17.RoyaltyInvoiceRapidSearchComponent","i18.RoyaltyCountRapidSearchComponent","i19","i20.CommonTranslatePipe","i3.CommonTranslatePipe","Client","i1.NotificationApiService","i2.LocalStorageService","i3.AuthService","i1.NotificationService","i5.CommonTranslatePipe","i3.NotificationClassificationIconPipe","i4.MenuComponent","i5.AdvancedSearchComponent","i6.HistoryComponent","i7.PersonalNotificationComponent","i8.SettingsComponent","i9.NotificationBarComponent","i10.CommonTranslatePipe","i7","ReferentielModel"],"mappings":"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"}