{"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/version.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/directives/rapid-search-selection-directive.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';\r\n\r\nexport const WEB_CONFIG = new InjectionToken<Config>('WEB_CONFIG');\r\n\r\nexport interface Config {\r\n  api_url: string;\r\n  env: string;\r\n  elasticsearch_url?: string;\r\n}\r\n\r\nexport const DEFAULT_WEB_CONFIG: Config = {\r\n  api_url: 'http://localhost:8080',\r\n  env: 'DEV',\r\n  elasticsearch_url: 'https://vpc-unity-search-dev-nm5ydumospctjfaatstfjvoqey.eu-west-1.es.amazonaws.com'\r\n};\r\n","export class JwtHelper {\r\n\r\n    public decodeToken(token: string): any {\r\n        let parts: string[] = token.split('.');\r\n        if (parts.length !== 3) {\r\n            throw new Error('JWT must have 3 parts');\r\n        }\r\n        let decoded: string = this.urlBase64Decode(parts[1]);\r\n        if (!decoded) {\r\n            throw new Error('Cannot decode the token');\r\n        }\r\n        return JSON.parse(decoded);\r\n    }\r\n\r\n    private urlBase64Decode(str: string): string {\r\n        let output: string = str.replace(/-/g, '+').replace(/_/g, '/');\r\n        switch (output.length % 4) {\r\n            case 0: {\r\n                break;\r\n            }\r\n            case 2: {\r\n                output += '==';\r\n                break;\r\n            }\r\n            case 3: {\r\n                output += '=';\r\n                break;\r\n            }\r\n            default: {\r\n                throw 'Illegal base64url string!';\r\n            }\r\n        }\r\n        return decodeURIComponent((<any>window).escape(window.atob(output)));\r\n\r\n    }\r\n\r\n\r\n}\r\n","import { ProductModel, PurchaseOrderModel } from '../../models';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n// Angular2\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Config, WEB_CONFIG } from '../../config';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { JwtHelper } from '../jwt-security/jwt.helpher';\r\n\r\n\r\nconst TOKEN_NAME = 'authToken';\r\nconst SECONDARY_TOKEN_NAME = 'authTokenSecondary';\r\n\r\n@Injectable()\r\nexport class CommonApiService {\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n  private readonly cookieService: CookieService = inject(CookieService);\r\n  private readonly http: HttpClient = inject(HttpClient);\r\n\r\n  public headers: HttpHeaders = new HttpHeaders({\r\n    'Content-Type': 'application/json'\r\n  });\r\n\r\n  public jwtHelper: JwtHelper = new JwtHelper();\r\n\r\n  public static handleError(error: any): Observable<never> {\r\n    const errMsg: any = (error as any)?.error ?? 'api error';\r\n    return throwError(() => errMsg);\r\n  }\r\n\r\n  // Global product search\r\n  public getProductGlobalSearch(\r\n    searchInput: string,\r\n    language: string\r\n  ): Observable<ProductModel[]> {\r\n    return this.http\r\n      .get<ProductModel[]>(\r\n        this.config.api_url +\r\n        '/video-api/products/globalSearch?searchInput=' +\r\n        searchInput +\r\n        '&language=' +\r\n        language\r\n      )\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public getPurchaseOrderByGlobalSearch(\r\n    searchInput: string,\r\n    language: string\r\n  ): Observable<PurchaseOrderModel[]> {\r\n    return this.http\r\n      .get<PurchaseOrderModel[]>(\r\n        this.config.api_url +\r\n        '/video-api/purchaseOrders/globalSearch?searchInput=' +\r\n        searchInput +\r\n        '&language=' +\r\n        language\r\n      )\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public setToken(token: string): void {\r\n    sessionStorage.removeItem(TOKEN_NAME);\r\n    sessionStorage.setItem(TOKEN_NAME, token);\r\n  }\r\n\r\n  public setSecondaryToken(token: string): void {\r\n    sessionStorage.removeItem(SECONDARY_TOKEN_NAME);\r\n    sessionStorage.setItem(SECONDARY_TOKEN_NAME, token);\r\n  }\r\n\r\n  getToken(): string {\r\n    const user: any = this.decodeToken(TOKEN_NAME);\r\n    if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\r\n      return sessionStorage.getItem(SECONDARY_TOKEN_NAME);\r\n    }\r\n\r\n    return sessionStorage.getItem(TOKEN_NAME);\r\n  }\r\n\r\n  public decodeToken(tokenName: string): any {\r\n    return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\r\n  }\r\n\r\n  public getUserDataFromToken(): any {\r\n    const user: any = this.decodeToken(TOKEN_NAME);\r\n\r\n    if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\r\n      return Object.assign({secondary: true}, this.decodeToken(SECONDARY_TOKEN_NAME));\r\n    }\r\n\r\n    return user;\r\n  }\r\n\r\n  public isTokenValid(): boolean {\r\n    let payload: any;\r\n    try {\r\n      payload = this.getUserDataFromToken();\r\n    } catch (e) {\r\n      payload = {};\r\n    }\r\n\r\n    if (!payload.exp) {\r\n      return false;\r\n    }\r\n\r\n    return payload.exp * 1000 > Date.now();\r\n  }\r\n\r\n  public ssoLogin(email: string): Observable<any> {\r\n    const url: string = this.config.api_url + '/authorization-api/login/email';\r\n\r\n    return this.http\r\n      .post(url, email, {headers: this.headers})\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LocalStorageEventsService {\r\n\r\n    public localStorageEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n    // emit an event when local storage change\r\n    public emitLocalStorageEvent(): void {\r\n        this.localStorageEvent.emit('maj localstorage');\r\n    }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\r\n\r\n@Injectable()\r\nexport class LocalStorageService {\r\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\r\n\r\n  // Check if the data exist in the session storage\r\n  public exist(key: string): boolean {\r\n    return localStorage.hasOwnProperty(key);\r\n  }\r\n\r\n  public get(key: string): any {\r\n    return (this.exist(key) && !!localStorage.getItem(key)) ? JSON.parse(localStorage.getItem(key)) : null;\r\n  }\r\n\r\n  public post(key: string, data: any): void {\r\n    localStorage.setItem(key, JSON.stringify(data));\r\n    this.localStorageEventsService.emitLocalStorageEvent();\r\n  }\r\n\r\n  // check if the key exist in the local storage and if it equals to the value param\r\n  public contains(key: string, data: any): boolean {\r\n    return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1;\r\n  }\r\n\r\n  public delete(key: string): boolean {\r\n    if (this.exist(key)) {\r\n      localStorage.removeItem(key);\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nconst AUTH_HEADER_KEY = 'Authorization';\r\nconst AUTH_PREFIX = 'Bearer ';\r\nconst TOKEN_NAME = 'authToken';\r\n\r\n@Injectable()\r\nexport class InterceptorHttpService implements HttpInterceptor {\r\n\r\n    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n        const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\r\n        req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\r\n        return next.handle(req);\r\n    }\r\n\r\n    // TODO à refaire lorsque l'on réactivera l'interceptor du BACK d'orphe\r\n    // public request(url: string | Request): Observable<Response> {\r\n    //\r\n    //   const token = sessionStorage.getItem(TOKEN_NAME);\r\n    //\r\n    //   const options = {headers: new Headers()};\r\n    //   if (typeof url === 'string') {\r\n    //\r\n    //     options.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\r\n    //   } else {\r\n    //     url.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\r\n    //   }\r\n    //   return super.request(url, options).catch(this.catchError);\r\n    // }\r\n    //\r\n    // public get(url: string, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.get(url, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public post(url: string, body: any, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.post(url, body, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public put(url: string, body: any, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.put(url, body, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public delete(url: string, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.delete(url, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public patch(url: string, body: any, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.patch(url, body, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public head(url: string, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.head(url, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // public options(url: string, options?): Observable<Response> {\r\n    //   const enhacedOptions = this.setAuthorizationHeader(options);\r\n    //   return super.options(url, enhacedOptions).pipe(catchError(this.catchError));\r\n    // }\r\n    //\r\n    // // Ajout de l'attribut Authorization au Header\r\n    // private setAuthorizationHeader(options?) {\r\n    //\r\n    //   const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\r\n    //   // Copie du header dans le RequestOptions et ajout du token a 'Authorization'\r\n    //   const headers = {\r\n    //     ...options.headers.toJSON(),\r\n    //     Authorization: token\r\n    //   };\r\n    //   options.headers = new Headers(headers);\r\n    //   return options;\r\n    // }\r\n    //\r\n    // // Response Interceptor\r\n    // private catchError(error: any): Observable<any> {\r\n    //\r\n    //   if (error instanceof HttpErrorResponse) {\r\n    //     return Observable.throw(error);\r\n    //   } else if (error instanceof Response) {\r\n    //     if (sessionStorage.getItem('loginFlag') === 'true' && error.status === 401) {\r\n    //       sessionStorage.removeItem(TOKEN_NAME);\r\n    //       sessionStorage.removeItem('loginFlag');\r\n    //       window.location.reload();\r\n    //     }\r\n    //     return Observable.throw(error);\r\n    //   } else {\r\n    //     return Observable.throw(error);\r\n    //   }\r\n    // }\r\n}\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nconst PADDING = '000000';\r\n\r\n@Pipe({name: 'myNumberFormat'})\r\nexport class MyNumberPipe implements PipeTransform {\r\n    private DECIMAL_SEPARATOR: string;\r\n    private THOUSANDS_SEPARATOR: string;\r\n\r\n    constructor() {\r\n        // TODO comes from configuration settings\r\n        this.DECIMAL_SEPARATOR = '.';\r\n        this.THOUSANDS_SEPARATOR = ' ';\r\n    }\r\n\r\n    public transform(value: number | string, fractionSize: number): string {\r\n        if (value !== '' && value !== null) {\r\n            let [integer, fraction = ''] = value\r\n                .toString()\r\n                .split(this.DECIMAL_SEPARATOR);\r\n\r\n            fraction =\r\n                fractionSize > 0\r\n                    ? this.DECIMAL_SEPARATOR +\r\n                    (fraction + PADDING).substring(0, fractionSize)\r\n                    : '';\r\n\r\n            integer = integer.replace(\r\n                /\\B(?=(\\d{3})+(?!\\d))/g,\r\n                this.THOUSANDS_SEPARATOR\r\n            );\r\n            return integer + fraction;\r\n        } else {\r\n            return null;\r\n        }\r\n    }\r\n\r\n    public parse(value: string, fractionSize: number): string {\r\n        let [integer, fraction = ''] = (value || '').split(this.DECIMAL_SEPARATOR);\r\n\r\n        integer = integer.replace(new RegExp(this.THOUSANDS_SEPARATOR, 'g'), '');\r\n\r\n        fraction =\r\n            parseInt(fraction, 10) > 0 && fractionSize > 0\r\n                ? this.DECIMAL_SEPARATOR +\r\n                (fraction + PADDING).substring(0, fractionSize)\r\n                : '';\r\n\r\n        return integer + fraction;\r\n    }\r\n}\r\n","import { Directive, ElementRef, HostListener, inject, input, InputSignal, OnInit } from '@angular/core';\r\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\r\n\r\n@Directive({selector: '[myNumberFormatter]'})\r\nexport class MyNumberFormatterDirective implements OnInit {\r\n  decimalNumber: InputSignal<number> = input<number>();\r\n  private el: HTMLInputElement;\r\n\r\n  private readonly elementRef: ElementRef = inject(ElementRef);\r\n  private readonly currencyPipe: MyNumberPipe = inject(MyNumberPipe);\r\n\r\n  constructor() {\r\n    this.el = this.elementRef.nativeElement;\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.el.value = this.currencyPipe.transform(\r\n      this.el.value,\r\n      this.decimalNumber()\r\n    );\r\n  }\r\n\r\n  @HostListener('focus', ['$event.target.value'])\r\n  public onFocus(value: any): void {\r\n    this.el.value = this.currencyPipe.parse(value, this.decimalNumber()); // opposite of transform\r\n  }\r\n\r\n  @HostListener('blur', ['$event.target.value'])\r\n  public onBlur(value: any): void {\r\n    this.el.value = this.currencyPipe.transform(value, this.decimalNumber());\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'myCapitalizeFirst',\r\n  standalone: true\r\n})\r\nexport class CapitalizefirstPipe implements PipeTransform {\r\n  public transform(value: string | null | undefined): string {\r\n    if (!value) {\r\n      return '';\r\n    }\r\n\r\n    // Handle compound names with hyphens (e.g., \"jean-pierre\" -> \"Jean-Pierre\")\r\n    if (value.includes('-')) {\r\n      return value\r\n        .split('-')\r\n        .map(word => this.capitalizeWord(word))\r\n        .join('-');\r\n    }\r\n\r\n    // Handle multiple names with spaces (e.g., \"de la fontaine\" -> \"De La Fontaine\")\r\n    return value\r\n      .split(' ')\r\n      .map(word => this.capitalizeWord(word))\r\n      .join(' ');\r\n  }\r\n\r\n  /**\r\n   * Capitalizes the first letter of a word and forces the rest to lowercase\r\n   */\r\n  private capitalizeWord(word: string): string {\r\n    if (!word) return '';\r\n    return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'mySpacesNumberPipe'})\r\nexport class SpacesNumberPipe implements PipeTransform {\r\n    public transform(value: any): any {\r\n        // we remove all spaces\r\n        return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'mySanitizeHtml'\r\n})\r\nexport class SanitizeHtml implements PipeTransform {\r\n\r\n    constructor(private _sanitizer: DomSanitizer) {\r\n    }\r\n\r\n    public transform(html: string): SafeHtml {\r\n        return this._sanitizer.bypassSecurityTrustHtml(html);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'myDisplayNullPipe'})\r\nexport class DisplayNullPipe implements PipeTransform {\r\n\r\n    private static returnCorrectFormat(object: any): any {\r\n        return (object) ? object : '-';\r\n    }\r\n\r\n    public transform(value: any, fieldName: string = ''): any {\r\n        // Case 1: test value param\r\n        if (!fieldName) {\r\n            return DisplayNullPipe.returnCorrectFormat(value);\r\n        } else {\r\n            // Case 2: test sub attribut value\r\n            return (value) ? DisplayNullPipe.returnCorrectFormat(value[fieldName]) : '-';\r\n        }\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'myAddSpacesInputPipe'})\r\nexport class FormatNumberInput implements PipeTransform {\r\n    public transform(numberValue: any): any {\r\n        if (numberValue === null || numberValue < 0 || isNaN(numberValue)) {\r\n            return null;\r\n        }\r\n        numberValue = numberValue.toString();\r\n\r\n        // remove spaces\r\n        numberValue = numberValue.replace(/ /g, '');\r\n\r\n        // add spaces\r\n        numberValue = numberValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n\r\n        return numberValue;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({name: 'myLocalDateFormat'})\r\nexport class LocalDatePipe implements PipeTransform {\r\n\r\n    public perpetuityLabel: string = '';\r\n\r\n    public transform(\r\n        value: any,\r\n        currentLanguage: string,\r\n        format: string\r\n    ): string {\r\n\r\n        if (currentLanguage === 'fr') {\r\n            this.perpetuityLabel = 'Perpétuité';\r\n        } else if (currentLanguage === 'en' || currentLanguage === 'de') {\r\n            this.perpetuityLabel = 'Perpetuity';\r\n        }\r\n\r\n        if (value === '-' || value === this.perpetuityLabel) {\r\n            return this.perpetuityLabel;\r\n        }\r\n        return new DatePipe(currentLanguage).transform(value, format);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'myTrimString'})\r\nexport class TrimStringPipe implements PipeTransform {\r\n\r\n    public transform(value: string, size: number, message: string): string {\r\n        // Case 1: test value param\r\n        if (value === null || value === undefined || value === '') {\r\n            return value;\r\n        }\r\n\r\n        if (value.length < size) {\r\n            return value;\r\n        }\r\n\r\n        let posSpace: number = value.indexOf(' ', size);\r\n        if (posSpace !== -1) {\r\n            return value.substring(0, posSpace) + ' ' + message;\r\n        }\r\n\r\n        return value.substring(0, size) + ' ' + message;\r\n    }\r\n\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ThemeEventsService {\r\n\r\n    public switchThemeEmitter: EventEmitter<any> = new EventEmitter();\r\n\r\n    // emit an event when local storage change\r\n    public switchTheme(): void {\r\n        this.switchThemeEmitter.emit();\r\n    }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class SessionStorageEventsService {\r\n    public sessionsStorageUpdateEvent: EventEmitter<any> = new EventEmitter();\r\n    public updateSubscriberEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n    // emit a success event toaster\r\n    public emitUpdate(): void {\r\n        this.sessionsStorageUpdateEvent.emit('update');\r\n    }\r\n}\r\n","// Angular 2\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\r\n\r\n// Services\r\n\r\n@Injectable()\r\nexport class SessionStorageService {\r\n  private readonly sessionStorageEventsService: SessionStorageEventsService = inject(SessionStorageEventsService);\r\n\r\n  // Check if the data exist in the session storage\r\n  public exist(key: string): boolean {\r\n    return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key));\r\n  }\r\n\r\n  public get(key: string): any {\r\n    return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\r\n  }\r\n\r\n  public post(key: string, data: any): void {\r\n    sessionStorage.setItem(key, JSON.stringify(data));\r\n    this.sessionStorageEventsService.emitUpdate();\r\n  }\r\n\r\n  // check if the key exist in the session storage and if it equals to the value param\r\n  public contains(key: string, data: any): boolean {\r\n    return this.get(key).indexOf(JSON.stringify(data)) !== -1;\r\n  }\r\n\r\n  public delete(key: string): boolean {\r\n    if (this.exist(key)) {\r\n      sessionStorage.removeItem(key);\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n}\r\n","import { JwtHelper } from '../services/jwt-security/jwt.helpher';\r\n\r\nexport function User(): (target: any, key: string) => void {\r\n\r\n    const jwtHelper: JwtHelper = new JwtHelper();\r\n    return (target: any, key: string): void => {\r\n\r\n        // Check if the data exist in the local storage\r\n        function exist(dataKey: string): boolean {\r\n            return sessionStorage.hasOwnProperty(dataKey);\r\n        }\r\n\r\n        // Get data from local storage\r\n        function get(user: string): any {\r\n            return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;\r\n        }\r\n\r\n        Object.defineProperty(target, key, {\r\n            configurable: false,\r\n            get: () => {\r\n                const user: any = get('authToken');\r\n                if (user && user.superAdmin && exist('authTokenSecondary')) {\r\n                    return Object.assign({secondary: true}, get('authTokenSecondary'));\r\n                }\r\n                return user;\r\n            }\r\n        });\r\n    };\r\n\r\n}\r\n","export enum Family {\r\n  CANAL_PLUS_INTERNATIONAL = 'Canal+ International',\r\n  STUDIOCANAL = 'Studiocanal',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SubsidiaryModel, UserModel } from '../../models';\r\nimport { Family } from '../../enums/family.enum';\r\nimport { User } from '../../decorators/user.decorator';\r\n\r\n@Injectable()\r\nexport class UserSubsidiaryService {\r\n  @User() public user: UserModel;\r\n\r\n  public isCanalPlusInternationalUser(): boolean {\r\n    return this.user?.subsidiaries?.length > 0 && this.user.subsidiaries.every(\r\n      (value: SubsidiaryModel): boolean => value.family?.label === Family.CANAL_PLUS_INTERNATIONAL.valueOf()\r\n    );\r\n  }\r\n\r\n  public isStudiocanalUser(): boolean {\r\n    return this.user?.subsidiaries?.length > 0 && this.user?.subsidiaries?.some(\r\n      (value: SubsidiaryModel): boolean => value.family?.label === Family.STUDIOCANAL.valueOf()\r\n    );\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { User } from '../decorators/user.decorator';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\r\nimport { AuthUserModel } from \"../models\";\r\n\r\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\r\n\r\n@Injectable()\r\nexport class PermissionsService {\r\n  @User() public user: AuthUserModel;\r\n\r\n\r\n  private readonly permissionsService: NgxPermissionsService = inject(NgxPermissionsService);\r\n  private readonly userSubsidiaryService: UserSubsidiaryService = inject(UserSubsidiaryService);\r\n\r\n  public init(): void {\r\n    if (this.user?.permissions?.length > 0 && this.shouldLoadUserPermissions()) {\r\n      const userPermissions: string[] = this.user.permissions.map((p) => p.code);\r\n\r\n      // Create a virtual permission that can be used to restrict access if user only has access to \"C+I\"\r\n      // subsidiaries\r\n      if (this.userSubsidiaryService.isCanalPlusInternationalUser()) {\r\n        userPermissions.push(CANAL_PLUS_INTERNATIONAL_RESTRICTION);\r\n      }\r\n\r\n      this.permissionsService.loadPermissions(userPermissions);\r\n    }\r\n  }\r\n\r\n  public hasPermission(code: string): boolean {\r\n    return this.user?.permissions?.filter((p: any): boolean => p.code === code).length > 0;\r\n  }\r\n\r\n  private shouldLoadUserPermissions(): boolean {\r\n    const loadedPermissions: string[] = Object.keys(this.permissionsService.getPermissions());\r\n    if (loadedPermissions.length !== this.user.permissions.length) {\r\n      return true;\r\n    }\r\n    let res: boolean = false;\r\n    this.user.permissions.forEach((p: any): void => {\r\n      if (loadedPermissions.indexOf(p.code) === -1) {\r\n        res = true;\r\n      }\r\n    });\r\n    return res;\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ArrayService {\r\n\r\n    /** Check if a value is in array */\r\n    public inArray(value: any, array: any): boolean {\r\n        if (value === null || array === null) {\r\n            return false;\r\n        } else {\r\n            return array.indexOf(value) !== -1;\r\n        }\r\n    }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class OverlayService {\r\n  public showEvent: EventEmitter<string> = new EventEmitter<string>();\r\n  public hideEvent: EventEmitter<any> = new EventEmitter<any>();\r\n  public setMessageEvent: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n  public show(message?: string): void {\r\n    this.showEvent.emit(message);\r\n  }\r\n\r\n  public setMessage(message: string): void {\r\n    this.setMessageEvent.emit(message);\r\n  }\r\n\r\n  public hide(): void {\r\n    this.hideEvent.emit();\r\n  }\r\n}\r\n","import { ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\r\nimport { OverlayService } from './overlay.service';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n  selector: 'sc-overlay',\r\n  styleUrls: ['./overlay.component.css'],\r\n  templateUrl: './overlay.component.html'\r\n})\r\nexport class OverlayComponent implements OnInit {\r\n  public message: string;\r\n  public show: boolean = false;\r\n\r\n  private readonly router: Router = inject(Router);\r\n  private readonly translateService: TranslateService = inject(TranslateService);\r\n  private readonly overlayService: OverlayService = inject(OverlayService);\r\n  private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n  public ngOnInit(): void {\r\n    this.router.events.subscribe(() => {\r\n      this.show = false;\r\n    });\r\n\r\n    this.overlayService.showEvent.subscribe((message?: string): void => {\r\n      this.message = message || this.message;\r\n      this.show = true;\r\n      this.cdr.detectChanges();\r\n    });\r\n\r\n    this.overlayService.hideEvent.subscribe((): void => {\r\n      this.show = false;\r\n    });\r\n\r\n    this.overlayService.setMessageEvent.subscribe((message: string) => {\r\n      this.message = message;\r\n    });\r\n  }\r\n}\r\n","@if (show) {\r\n  <div class=\"blackshield\"></div>\r\n\r\n  <div class=\"d-flex justify-content-center align-items-center\">\r\n    <mat-card class=\"overshield\">\r\n      <mat-card-content class=\"d-flex justify-content-between align-items-center\">\r\n        <span>{{ message || 'CORE.OVERLAY.LOADING' | translate }}</span>\r\n        <mat-spinner diameter=\"40\"></mat-spinner>\r\n      </mat-card-content>\r\n    </mat-card>\r\n  </div>\r\n}\r\n\r\n\r\n","export class WorkRecordRapidSearchModel {\r\n  id: string;\r\n  workRecordId: string;\r\n  dealNumber: string;\r\n  thirdPartyClientName: string;\r\n  miloCode: string;\r\n  amount: number;\r\n  currencyCode: string;\r\n  titles: {\r\n    vo: string;\r\n    fr?: string;\r\n    en?: string;\r\n    de?: string;\r\n  }\r\n  docType: string;\r\n\r\n  /**\r\n   * Returns the title for the language. If the language is undefined or unsupported, returns the VO title.\r\n   * @param language\r\n   */\r\n  getTitle(language?: string): string {\r\n    if (!language || !this.titles[language] || this.titles[language].length === 0) {\r\n      return this.titles.vo;\r\n    }\r\n\r\n    return this.titles[language];\r\n  }\r\n}\r\n","export class InvoiceRapidSearchModel {\r\n  number: string;\r\n  dealNumber: string;\r\n  thirdPartyClientName: string;\r\n  miloCode: string;\r\n  amount: number;\r\n  currencyCode: string;\r\n  right: boolean;\r\n  invoiceId: number;\r\n  docType: string;\r\n  titles: {\r\n    vo: string;\r\n    fr?: string;\r\n    en?: string;\r\n    de?: string;\r\n  }\r\n\r\n  getTitle(language?: string): string {\r\n    if (!language || !this.titles[language] || this.titles[language].length === 0) {\r\n      return this.titles.vo;\r\n    }\r\n\r\n    return this.titles[language];\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { Config, WEB_CONFIG } from \"../../config\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Injectable()\r\nexport class LegalApiService {\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n  private readonly http: HttpClient = inject(HttpClient);\r\n\r\n  public apiUrl: string = this.config.api_url + '/legal-api/';\r\n\r\n  public header: Headers = new Headers({\r\n    'Content-Type': 'application/json'\r\n  });\r\n\r\n  public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\r\n    return this.http.get<Record<number, number[]>>(this.apiUrl + 'societe/subsidiary_mapping')\r\n      .pipe(catchError(this.handleError));\r\n  }\r\n\r\n  public handleError(error: any): Observable<never> {\r\n    const errMsg: any = (error as any)?.error ?? 'api error';\r\n    return throwError((): any => errMsg);\r\n  }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { SubsidiaryModel } from \"../../models\";\r\nimport { LegalApiService } from \"../api/legal-api.service\";\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class SubsidiariesService {\r\n\r\n  private readonly legalService: LegalApiService = inject(LegalApiService);\r\n\r\n  private defaultMapping: Record<number, number[]> = {\r\n    1: [4991],\r\n    2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\r\n    3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\r\n    4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\r\n    5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\r\n    6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\r\n    7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1]\r\n  }\r\n\r\n  private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\r\n\r\n  constructor() {\r\n    this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\r\n    const isLocal = window.location.hostname === 'localhost';\r\n    if (!isLocal) {\r\n      this.loadTableSocieteAppartenance();\r\n    } else {\r\n      console.log('Default mapping for subsidiaryToSocieteMapLegal');\r\n    }\r\n  }\r\n  loadTableSocieteAppartenance(): void {\r\n    this.legalService.getMappingSocietesSubsidiaries().subscribe({\r\n      next: (map: Record<number, number[]>): void => {\r\n        this.subsidiaryToSocieteMapLegal = map;\r\n      },\r\n      error: (): void => {\r\n        console.log('Default mapping for subsidiaryToSocieteMapLegal');\r\n        this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\r\n      }\r\n    })\r\n  }\r\n\r\n  getSocieteAppartenance(subsidiaries: SubsidiaryModel[]): number[] {\r\n    if (subsidiaries === null) {\r\n      return null;\r\n    }\r\n    return subsidiaries\r\n      .reduce((acc: number[], sub: SubsidiaryModel): number[] => {\r\n        const societes: number[] = this.subsidiaryToSocieteMapLegal[sub.id] || [];\r\n        return acc.concat(societes);\r\n      }, [])\r\n      .filter((v: number, i: number, arr: number[]): boolean => arr.indexOf(v) === i);\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { from, Observable } from 'rxjs';\r\nimport { Client as ClientJs } from 'elasticsearch-browser';\r\nimport { Client, MSearchResponse } from 'elasticsearch';\r\nimport { Config, WEB_CONFIG } from '../../config';\r\nimport { WorkRecordRapidSearchModel } from \"../../models/commercial/work-record-rapid-search-model\";\r\nimport { InvoiceRapidSearchModel } from \"../../models/commercial/invoice-rapid-search-model\";\r\nimport { AuthUserModel, SubsidiaryModel } from \"../../models\";\r\nimport { SubsidiariesService } from \"./subsidiaries.service\";\r\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\r\n\r\n\r\n@Injectable()\r\nexport class ElasticsearchService {\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n  private readonly subsidiariesMappingService: SubsidiariesService = inject(SubsidiariesService);\r\n\r\n  private client: Client;\r\n  PROFILE_SEARCH_CONFIG = {\r\n    'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\r\n    'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\r\n    'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\r\n    'VIDEO_CONSULT': ['unity-product*'],\r\n    'BDC': ['unity-purchase-order*'],\r\n    'LEGAL': ['unity-contract*'],\r\n    'ROYALTY': ['unity-royalty-contract', 'unity-royalty-count', 'unity-royalty-invoice'],\r\n  }\r\n\r\n  private getElasticsearchClient(): Client {\r\n    if (!this.client) {\r\n      this.client = new ClientJs({\r\n        host: this.config.elasticsearch_url\r\n      });\r\n    }\r\n    return this.client;\r\n  }\r\n\r\n  public getSearchResponse(text: string, user: AuthUserModel): Observable<MSearchResponse<any>> {\r\n    const allIndexes: Set<string> = new Set<string>();\r\n    allIndexes.add('unity-work-version*')\r\n    allIndexes.add('unity-third-party*')\r\n\r\n    for (const permission of user.permissions) {\r\n      const indexes: any = this.PROFILE_SEARCH_CONFIG[permission.code];\r\n      indexes?.forEach(idx => allIndexes.add(idx));\r\n    }\r\n\r\n    const body: any[] = [];\r\n    for (const index of allIndexes) {\r\n      body.push({index});\r\n      switch (index) {\r\n        case 'unity-work-version*' :\r\n          body.push({\r\n            query: {\r\n              dis_max: {\r\n                queries: [{wildcard: {miloCode: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}, {wildcard: {title: {value: text + '*'}}}, {wildcard: {title: {value: text}}}],\r\n                tie_breaker: 0.5\r\n              }\r\n            },\r\n            sort: [{_score: {order: 'desc'}}, {title: {order: \"asc\"}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-product*' :\r\n          body.push({\r\n            query: {dis_max: {queries: [{wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}]}},\r\n            sort: {releaseDate: {order: 'desc'}},\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-purchase-order*' :\r\n          body.push({\r\n            query: {dis_max: {queries: [{wildcard: {poNumber: {value: '*' + text + '*'}}}, {wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {basketNumber: {value: '*' + text + '*'}}}]}},\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-deal*' :\r\n          body.push({\r\n            query: {dis_max: {queries: [{wildcard: {dealNumber: {value: '*' + text + '*'}}}]}},\r\n            sort: [{_score: {order: 'desc'}}, {'dealNumber.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-work-record*' :\r\n          body.push({\r\n            query: {dis_max: {queries: [{wildcard: {workRecordId: {value: '*' + text + '*'}}}]}},\r\n            sort: [{'workRecordId.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-invoice*' :\r\n          body.push({\r\n            query: {dis_max: {queries: [{wildcard: {number: {value: '*' + text + '*'}}}]}},\r\n            sort: [{'number.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-third-party*' :\r\n          body.push({\r\n            query: {\r\n              dis_max: {\r\n                queries: [{wildcard: {companyOrPersonName: {value: '*' + text + '*'}}}, {wildcard: {companyOrPersonName: {value: text + '*'}}}, {wildcard: {companyOrPersonName: {value: text}}}],\r\n                tie_breaker: 0.5\r\n              }\r\n            },\r\n            sort: [{_score: {order: 'desc'}}, {companyOrPersonName: {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-contract*': {\r\n          const societes = this.subsidiariesMappingService.getSocieteAppartenance(user.subsidiaries);\r\n          if (!societes || societes.length === 0) {\r\n            break;\r\n          }\r\n          body.push({\r\n            query: {\r\n              bool: this.composeContractQuery(text, societes)\r\n            },\r\n            sort: [{'lisaId.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        }\r\n        case 'unity-royalty-contract' :\r\n          body.push({\r\n            query: {wildcard: {\"contractNumber.keyword\": {value: '*' + text + '*', case_insensitive: true}}},\r\n            sort: [{'contractNumber.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-royalty-count' :\r\n          body.push({\r\n            query: {wildcard: {\"countNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\r\n            sort: [{'countNumber.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n        case 'unity-royalty-invoice' :\r\n          body.push({\r\n            query: {wildcard: {\"invoiceNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\r\n            sort: [{'invoiceNumber.keyword': {order: 'asc'}}],\r\n            size: 50\r\n          });\r\n          break;\r\n      }\r\n    }\r\n    return from(this.getElasticsearchClient().msearch({body}));\r\n  }\r\n\r\n  public getDocuments(searchResponse: any): RapidSearchAllDocumentModel[] {\r\n    let results: any[] = [];\r\n    if (searchResponse && searchResponse.responses) {\r\n      for (const r of searchResponse.responses) {\r\n        if (r.error || !r.hits) {\r\n          continue;\r\n        }\r\n\r\n        const item: any = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];\r\n        results = results.concat(item);\r\n      }\r\n    }\r\n    return results;\r\n  }\r\n\r\n  mapDocument(doc: any): any {\r\n    switch (doc._source.docType) {\r\n      case 'INVOICE':\r\n        return Object.assign(new InvoiceRapidSearchModel(), doc._source);\r\n      case 'WORK_RECORD':\r\n        return Object.assign(new WorkRecordRapidSearchModel(), doc._source);\r\n      default:\r\n        return doc._source;\r\n    }\r\n  }\r\n\r\n  private composeContractQuery(text: string, societes: number[]) {\r\n    return {\r\n      must: [{wildcard: {lisaId: {value: `*${text}*`}}}],\r\n      filter: [{terms: {'societeAppartenance.keyword': societes.map(String)}}]\r\n    };\r\n  }\r\n}\r\n","// Auto-generated at build time by scripts/generate-lib-version.js from package.json — do not edit manually.\nexport const LIBRARY_VERSION = '18.2.6';\n","import { inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { Config, WEB_CONFIG } from \"../../config\";\r\n\r\n@Injectable()\r\nexport class CommercialApiService {\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n\r\n  public apiUrl: string = this.config.api_url + '/commercial-api/';\r\n\r\n  public header: Headers = new Headers({\r\n    'Content-Type': 'application/json'\r\n  });\r\n\r\n  public static handleError(error: Response): Observable<never> {\r\n    const errMsg: any = (error as any)?.error ?? 'api error';\r\n    return throwError((): any => errMsg);\r\n  }\r\n\r\n  public getAccountWrittingDownload(): void {\r\n    window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { Config, WEB_CONFIG } from \"../../config\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class VideoApiService {\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n  private readonly cookieService: CookieService = inject(CookieService);\r\n  private readonly http: HttpClient = inject(HttpClient);\r\n\r\n  public apiUrl: string = this.config.api_url + '/video-api/';\r\n\r\n  public header: Headers = new Headers({\r\n    'Content-Type': 'application/json'\r\n  });\r\n\r\n  public static handleError(error: HttpErrorResponse): Observable<never> {\r\n    if (error.error instanceof ErrorEvent) {\r\n      // A client-side or network error occurred. Handle it accordingly.\r\n      console.error('An error occurred:', error.error.message);\r\n    } else {\r\n      // The backend returned an unsuccessful response code.\r\n      // The response body may contain clues as to what went wrong,\r\n      console.error(\r\n        `Backend returned code ${error.status}, ` +\r\n        `body was: ${error.ok}`);\r\n    }\r\n    // return an observable with a user-facing error message\r\n    return throwError(() => 'Something bad happened; please try again later.');\r\n  }\r\n\r\n  public getProductExtractionXlsx(lang: string): Observable<any> {\r\n    return this.http.get(this.apiUrl + `products/all-products-to-xlsx?language=${lang}`, {responseType: 'blob'})\r\n      .pipe(catchError(VideoApiService.handleError));\r\n  }\r\n\r\n}\r\n","import { Menu } from './menu.model';\r\nimport { CANAL_PLUS_INTERNATIONAL_RESTRICTION } from '../../../permissions/permissions.service';\r\n\r\nexport const MENU_SECTIONS: Menu[] = [\r\n  {\r\n    label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB',\r\n    permissions: [],\r\n    restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR',\r\n        permissions: [],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR',\r\n            module: 'calendar',\r\n            route: '',\r\n            actionType: 'navigate',\r\n            permissions: []\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT',\r\n        permissions: ['PA_CAMPAIGN_SEARCH', 'PA_CAMPAIGN_CREATION'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD',\r\n            module: 'slate-management',\r\n            route: '/dashboard',\r\n            actionType: 'navigate',\r\n            permissions: ['PA_CAMPAIGN_SEARCH']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE',\r\n            module: 'slate-management',\r\n            route: '/dashboard',\r\n            actionType: 'navigate',\r\n            queryParams: '{\"createCampaign\" : true}',\r\n            permissions: ['PA_CAMPAIGN_CREATION']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING',\r\n            module: 'slate-management',\r\n            route: '/calendar',\r\n            actionType: 'navigate',\r\n            permissions: ['PA_CAMPAIGN_CREATION']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY',\r\n        permissions: ['ROYALTY'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT',\r\n            module: 'royalty',\r\n            route: '/contract/search',\r\n            actionType: 'navigate',\r\n            permissions: ['ROYALTY']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT',\r\n            module: 'royalty',\r\n            route: '/contract/init',\r\n            actionType: 'navigate',\r\n            permissions: ['ROYALTY_EDIT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT',\r\n            module: 'royalty',\r\n            route: '/contract/create-blank',\r\n            actionType: 'navigate',\r\n            permissions: ['ROYALTY_EDIT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING',\r\n            module: 'royalty',\r\n            route: '/reporting',\r\n            actionType: 'navigate',\r\n            permissions: ['ROYALTY']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE',\r\n        permissions: ['ULTIMATES'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE',\r\n            module: null,\r\n            route: '/ultimates',\r\n            actionType: 'navigate',\r\n            permissions: ['ULTIMATES']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA',\r\n        permissions: ['TVDATA'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA',\r\n            module: 'tvdata',\r\n            route: '/infos-center',\r\n            actionType: 'navigate',\r\n            permissions: ['TVDATA']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT',\r\n        permissions: ['PILOT'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT',\r\n            module: 'pilot',\r\n            route: '/tv-series',\r\n            actionType: 'navigate',\r\n            permissions: ['PILOT']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING',\r\n        permissions: [],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI',\r\n            module: null,\r\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',\r\n            actionType: 'redirect',\r\n            permissions: []\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.COMMERCIAL',\r\n    permissions: ['COMMERCIAL', 'ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH',\r\n        permissions: ['COMMERCIAL'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL',\r\n            module: 'commercial',\r\n            route: '/deal/search',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD',\r\n            module: 'commercial',\r\n            route: '/work-record/search',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE',\r\n            module: 'commercial',\r\n            route: '/invoice/search',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING',\r\n            module: 'commercial',\r\n            route: '/e-invoicing/search',\r\n            actionType: 'navigate',\r\n            permissions: ['E-INVOICING']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD',\r\n            module: 'commercial',\r\n            route: '/vod/search',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME',\r\n            module: 'commercial',\r\n            route: '/vod/volumes',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE',\r\n        permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER',\r\n            module: 'commercial',\r\n            route: '/turnover/search',\r\n            actionType: 'navigate',\r\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING',\r\n            module: 'commercial',\r\n            route: '/accounting-closing/consult',\r\n            actionType: 'navigate',\r\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION',\r\n            module: 'commercial-api',\r\n            route: '/accounting-writing/get-account-writting-file',\r\n            actionType: 'exportAccountWriting',\r\n            permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS',\r\n        permissions: ['COMMERCIAL'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE',\r\n            module: 'commercial',\r\n            route: '/deal/form',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING',\r\n            module: 'commercial',\r\n            route: '/work-record/reporting',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR',\r\n            module: 'commercial',\r\n            route: '/work-record/console',\r\n            actionType: 'navigate',\r\n            permissions: ['COMMERCIAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING',\r\n            module: 'sales-tracking',\r\n            route: '/dashboard',\r\n            actionType: 'navigate',\r\n            permissions: ['SALES_TRACKING']\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.LEGAL',\r\n    permissions: ['LEGAL'],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.LEGAL.SEARCH',\r\n        permissions: ['LEGAL'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS',\r\n            module: 'legal',\r\n            route: '/work-legal-details',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ',\r\n            module: 'legal',\r\n            route: '/contracts/search',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE',\r\n            module: 'legal',\r\n            route: '/contracts/search/CESS',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH',\r\n            module: 'legal',\r\n            route: '/advanced-search',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT',\r\n        permissions: ['LEGAL'],\r\n        restrictions: ['LEGAL_CONSULT'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ',\r\n            module: 'legal',\r\n            route: '/contracts-details/createContract/acq',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n            restrictions: ['LEGAL_CONSULT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE',\r\n            module: 'legal',\r\n            route: '/contracts-details/createContract/sales',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n            restrictions: ['LEGAL_CONSULT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR',\r\n            module: 'legal',\r\n            route: '/contracts-details/createContract/auth',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL'],\r\n            restrictions: ['LEGAL_CONSULT']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.LEGAL.OTHER',\r\n        permissions: ['LEGAL'],\r\n        restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS',\r\n            module: 'legal',\r\n            route: '/electronic-documents',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY',\r\n            module: 'legal',\r\n            route: '/history',\r\n            actionType: 'navigate',\r\n            permissions: ['LEGAL']\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.VIDEO',\r\n    permissions: ['VIDEO_CONSULT'],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT',\r\n        permissions: ['VIDEO_CONSULT'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE',\r\n            module: 'video',\r\n            route: '/product/form',\r\n            actionType: 'navigate',\r\n            permissions: ['VIDEO_CONSULT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL',\r\n            module: 'video-api',\r\n            route: '/products/all-products-to-xlsx',\r\n            actionType: 'extractProduct',\r\n            permissions: ['VIDEO_CONSULT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH',\r\n            module: null,\r\n            route: '/advanced-search/product',\r\n            actionType: 'navigate',\r\n            permissions: ['VIDEO_CONSULT']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER',\r\n            module: 'video',\r\n            route: '/finance/sap-order-table',\r\n            actionType: 'navigate',\r\n            permissions: ['VIDEO_CONSULT', 'SAP_ORDER']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT',\r\n            module: 'video',\r\n            route: '/product/validate-product',\r\n            actionType: 'navigate',\r\n            permissions: ['VIDEO_CONSULT', 'VALIDATION PRUP/QEF']\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.PO',\r\n    permissions: ['BDC', 'BUDGET'],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.PO.PO',\r\n        permissions: ['BDC'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.PO.DASHBOARD',\r\n            module: 'expenditure-commitment',\r\n            route: '/home/commands',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.PO.CREATE',\r\n            module: 'expenditure-commitment',\r\n            route: '/purchase-orders/form',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.PO.VALIDATE',\r\n            module: 'expenditure-commitment',\r\n            route: '/purchase-orders/validate',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.PO.DELIVERY',\r\n            module: 'expenditure-commitment',\r\n            route: '/purchase-orders/delivery',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH',\r\n            module: null,\r\n            route: '/advanced-search/purchase-order',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.PO.BUDGET',\r\n        permissions: ['BDC', 'BUDGET'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET',\r\n            module: 'expenditure-commitment',\r\n            route: '/budget/search',\r\n            actionType: 'navigate',\r\n            permissions: ['BDC', 'BUDGET']\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.BI',\r\n    permissions: ['MODULE BI'],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.BI',\r\n        permissions: ['MODULE BI'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.BI',\r\n            module: 'bi',\r\n            route: '/simple-search/form',\r\n            actionType: 'navigate',\r\n            permissions: ['MODULE BI']\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  },\r\n  {\r\n    label: 'COMMON.HEADER.MENU.REFERENTIAL',\r\n    permissions: [],\r\n    sections: [\r\n      {\r\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK',\r\n        permissions: ['ADMIN'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK',\r\n            module: 'referential',\r\n            route: '/work/create-work',\r\n            actionType: 'navigate',\r\n            permissions: ['ADMIN']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER',\r\n            module: 'referential',\r\n            route: '/work/create-header',\r\n            actionType: 'navigate',\r\n            permissions: ['ADMIN']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE',\r\n            module: 'referential',\r\n            route: '/work/create-control-code',\r\n            actionType: 'navigate',\r\n            permissions: ['ADMIN']\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING',\r\n            module: 'mapping',\r\n            route: '',\r\n            actionType: 'navigate',\r\n            permissions: ['ADMIN']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON',\r\n        permissions: ['ADMIN'],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON',\r\n            module: 'referential',\r\n            route: '/person/create-person',\r\n            actionType: 'navigate',\r\n            permissions: ['ADMIN']\r\n          }\r\n        ]\r\n      },\r\n      {\r\n        label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY',\r\n        permissions: [],\r\n        links: [\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS',\r\n            module: 'referential',\r\n            route: '/medias',\r\n            actionType: 'navigate',\r\n            permissions: []\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES',\r\n            module: 'referential',\r\n            route: '/territories',\r\n            actionType: 'navigate',\r\n            permissions: []\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES',\r\n            module: 'referential',\r\n            route: '/languages',\r\n            actionType: 'navigate',\r\n            permissions: []\r\n          },\r\n          {\r\n            label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES',\r\n            module: 'referential',\r\n            route: '/alertes',\r\n            actionType: 'navigate',\r\n            permissions: []\r\n          }\r\n        ]\r\n      }\r\n    ]\r\n  }\r\n];\r\n","export const en = {\r\n  //HEADER MENU COMMERCIAL\r\n  'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\r\n\r\n  //HEADER MENU USER\r\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\r\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\r\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\r\n\r\n  //HEADER MENU REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\r\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\r\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\r\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\r\n\r\n  // HEADER MENU ROYALTY\r\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\r\n\r\n  // HEADER GOLBAL SEARCH\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titles',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Count',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Emission date',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'End date',\r\n\r\n  // HEADER HISTORY\r\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\r\n  'COMMON.HEADER.HISTORY.PO': 'PO',\r\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\r\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\r\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\r\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\r\n\r\n  // HEADER NOTIFICATION\r\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\r\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'No notification',\r\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Clear all',\r\n\r\n  // HEADER CREATION\r\n  'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\r\n  'COMMON.HEADER.CREATION.PO': 'create a purchase order',\r\n  'COMMON.HEADER.CREATION.DEAL': 'create a deal',\r\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\r\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\r\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\r\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\r\n\r\n  // HEADER CONNECTED AS\r\n  'COMMON.HEADER.CONNECTED_AS': 'Connected as',\r\n  'COMMON.HEADER.STOP': 'Stop',\r\n\r\n  // HEADER PARAMETERS\r\n  'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\r\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\r\n\r\n  // HEADER DISTRIBUTION HUB\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\r\n\r\n  // HEADER COMMERCIAL\r\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\r\n\r\n  // HEADER LEGAL\r\n  'COMMON.HEADER.MENU.LEGAL': 'Legal',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\r\n\r\n  // HEADER VIDEO\r\n  'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\r\n\r\n  // HEADER PO\r\n  'COMMON.HEADER.MENU.PO': 'Purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\r\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\r\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\r\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\r\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\r\n\r\n  // HEADER BI\r\n  'COMMON.HEADER.MENU.BI': 'Sales support',\r\n\r\n  // HEADER REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\r\n};\r\n\r\n","export const fr = {\r\n  //HEADER MENU COMMERCIAL\r\n  'COMMON.HEADER.MENU.DASHBOARD': 'Tableau de bord',\r\n\r\n  //HEADER MENU USER\r\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Utilisateurs',\r\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Mes préférences',\r\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Communications',\r\n\r\n  //HEADER MENU REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Référentiels',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Administration des Batches',\r\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Engagement de dépenses',\r\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Aide à la vente',\r\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendrier',\r\n\r\n  // HEADER MENU ROYALTY\r\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\r\n\r\n  // HEADER GOLBAL SEARCH\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'avancée',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Recherche ...',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Produit',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Date de sortie',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Commande',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'N° Panier',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Oeuvre',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Code milo',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Année de production',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Montant',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Date de validation',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Tiers',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Titre',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titres',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Fiche',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contrat N',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Statut',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Client',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Cedant',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Facture',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Décompte',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Date d\\'émission',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'Date de fin',\r\n\r\n  // HEADER HISTORY\r\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Produit',\r\n  'COMMON.HEADER.HISTORY.PO': 'Commande',\r\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Fiche',\r\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contrat',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contrat',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contrat',\r\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\r\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'Pas d\\'historique disponible',\r\n\r\n  // HEADER NOTIFICATION\r\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\r\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'Aucune notification',\r\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Supprimer toutes les notifications',\r\n\r\n  // HEADER CREATION\r\n  'COMMON.HEADER.CREATION.PRODUCT': 'créer un produit',\r\n  'COMMON.HEADER.CREATION.PO': 'créer une commande',\r\n  'COMMON.HEADER.CREATION.DEAL': 'créer un deal',\r\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'créer un contrat d\\'acquisition',\r\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'créer un contrat de cession',\r\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'créer un contrat d\\'auteur',\r\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'créer une campagne',\r\n\r\n  // HEADER CONNECTED AS\r\n  'COMMON.HEADER.CONNECTED_AS': 'Connectée en tant que',\r\n  'COMMON.HEADER.STOP': 'Arrêter',\r\n\r\n  // HEADER PARAMETERS\r\n  'COMMON.HEADER.PARAMETERS.THEME': 'Changer le thème',\r\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'changer de langue',\r\n\r\n  // HEADER DISTRIBUTION HUB\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendrier',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendrier',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Créer une campagne',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Planning de sortie',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'P&A à valider',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Rechercher une campagne',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Rechercher un contrat Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Initialiser un contrat Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Créer un contrat Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\r\n\r\n  // HEADER COMMERCIAL\r\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Recherche',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Fiche',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Facture',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Compta/CDG',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Chiffre d\\'affaire',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Clôturer la période',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Extraction fichier comptable',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utiles',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Créer un deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Facturation en erreur',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\r\n\r\n  // HEADER LEGAL\r\n  'COMMON.HEADER.MENU.LEGAL': 'Juridique',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Recherche',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Fiche juridique',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Contrat d\\'acquisition',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Contrat de cession',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Recherche avancée',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contrats',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Créer un contrat d\\'acquisition',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Créer un contrat de cession',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Créer un contrat d\\'auteur',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Autre',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Documents numérisés',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historique',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\r\n\r\n  // HEADER VIDEO\r\n  'COMMON.HEADER.MENU.VIDEO': 'Vidéo',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Produit',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Créer un produit',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Exporter tous les produits',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Rechercher un produit',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'Ordres SAP',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validation PRUP/QEF',\r\n\r\n  // HEADER PO\r\n  'COMMON.HEADER.MENU.PO': 'Commande',\r\n  'COMMON.HEADER.MENU.PO.PO': 'Commande',\r\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Créer une commande',\r\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Commandes à valider',\r\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Commandes à réceptionner',\r\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Rechercher une commande',\r\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\r\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\r\n\r\n  // HEADER BI\r\n  'COMMON.HEADER.MENU.BI': 'Aide à la vente',\r\n\r\n  // HEADER REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Référentiel',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossaire',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Médias',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territoires',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Langues',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Oeuvre',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Créer une oeuvre',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Créer un header',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Créer un code de gestion',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Personne',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Créer une personne',\r\n};\r\n\r\n","export const de = {\r\n  //HEADER MENU COMMERCIAL\r\n  'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\r\n\r\n  //HEADER MENU USER\r\n  'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\r\n  'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\r\n  'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\r\n\r\n  //HEADER MENU REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\r\n  'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\r\n  'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\r\n  'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\r\n\r\n  // HEADER MENU ROYALTY\r\n  'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\r\n\r\n  // HEADER GOLBAL SEARCH\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\r\n  'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\r\n\r\n  // HEADER HISTORY\r\n  'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\r\n  'COMMON.HEADER.HISTORY.PO': 'PO',\r\n  'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\r\n  'COMMON.HEADER.HISTORY.DEAL': 'Deal',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\r\n  'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\r\n  'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\r\n  'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\r\n\r\n  // HEADER NOTIFICATION\r\n  'COMMON.HEADER.NOTIFICATION.TITLE': 'Notifications',\r\n  'COMMON.HEADER.NOTIFICATION.EMPTY': 'No notification',\r\n  'COMMON.HEADER.NOTIFICATION.CLEAR_ALL': 'Clear all',\r\n\r\n  // HEADER CREATION\r\n  'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\r\n  'COMMON.HEADER.CREATION.PO': 'create a purchase order',\r\n  'COMMON.HEADER.CREATION.DEAL': 'create a deal',\r\n  'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\r\n  'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\r\n  'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\r\n  'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\r\n\r\n  // HEADER CONNECTED AS\r\n  'COMMON.HEADER.CONNECTED_AS': 'Connected as',\r\n  'COMMON.HEADER.STOP': 'Stop',\r\n\r\n  // HEADER PARAMETERS\r\n  'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\r\n  'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\r\n\r\n  // HEADER DISTRIBUTION HUB\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\r\n  'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\r\n\r\n  // HEADER COMMERCIAL\r\n  'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\r\n  'COMMON.HEADER.MENU.COMMERCIAL.UTILS.SALES_TRACKING': 'Sales tracking',\r\n\r\n  // HEADER LEGAL\r\n  'COMMON.HEADER.MENU.LEGAL': 'Legal',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\r\n  'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\r\n  'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\r\n  'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\r\n\r\n  // HEADER VIDEO\r\n  'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\r\n  'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\r\n\r\n  // HEADER PO\r\n  'COMMON.HEADER.MENU.PO': 'Purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\r\n  'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\r\n  'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\r\n  'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\r\n  'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\r\n  'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\r\n  'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\r\n\r\n  // HEADER BI\r\n  'COMMON.HEADER.MENU.BI': 'Sales support',\r\n\r\n  // HEADER REFERENTIAL\r\n  'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\r\n  'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\r\n};\r\n\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { en } from '../i18n/en';\r\nimport { fr } from '../i18n/fr';\r\nimport { de } from '../i18n/de';\r\nimport { LocalStorageService } from \"../services/storage/local-storage.service\";\r\n\r\n\r\n@Pipe({name: 'commonTranslate'})\r\nexport class CommonTranslatePipe implements PipeTransform {\r\n\r\n  private availableTranslations = {en, fr, de};\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n\r\n  public transform(value: string, lang?: string): string {\r\n    let currentLang: string = lang;\r\n    if (!lang) {\r\n      currentLang = this.localStorageService.get('lang');\r\n    }\r\n\r\n    if (this.isValidLang(currentLang)) {\r\n      const currentTranslation: any = this.availableTranslations[currentLang];\r\n      return currentTranslation[value];\r\n    }\r\n  }\r\n\r\n  private isValidLang(lang: string): boolean {\r\n    if (lang) {\r\n      const languages: string[] = ['en', 'fr', 'de'];\r\n      if (languages.indexOf(lang) !== -1) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n}\r\n","import { Component, HostListener, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { MatMenuTrigger } from '@angular/material/menu';\r\nimport { CommercialApiService } from '../../../services/api/commercial-api.service';\r\nimport { VideoApiService } from '../../../services/api/video-api.service';\r\nimport { OverlayService } from '../../overlay/overlay.service';\r\nimport { MENU_SECTIONS } from './menu.const';\r\nimport { Menu, MenuLink } from './menu.model';\r\n\r\n@Component({\r\n  selector: 'sc-menu',\r\n  templateUrl: './menu.component.html',\r\n  styleUrls: ['./menu.component.scss']\r\n})\r\nexport class MenuComponent {\r\n  lang: InputSignal<string> = input<string>();\r\n  navigate: OutputEmitterRef<MenuLink> = output<MenuLink>();\r\n  redirect: OutputEmitterRef<MenuLink> = output<MenuLink>();\r\n\r\n  public activeMenu: string | null = null;\r\n  public readonly menuButtons: Menu[] = MENU_SECTIONS;\r\n  private menuTriggerRef: MatMenuTrigger | null = null;\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onClickOutside(event: MouseEvent): void {\r\n    const menuButton: Element = (event.target as HTMLElement).closest('.button-wrapper');\r\n    const insideMenu: Element = (event.target as HTMLElement).closest('.mat-menu-panel');\r\n\r\n    if (!menuButton && !insideMenu) {\r\n      this.forceCloseMenu();\r\n    }\r\n  }\r\n\r\n  private readonly overlayService: OverlayService = inject(OverlayService);\r\n  private readonly videoApiService: VideoApiService = inject(VideoApiService);\r\n  private readonly commercialApiService: CommercialApiService = inject(CommercialApiService);\r\n\r\n  public openMenu(menuTrigger: MatMenuTrigger, menuLabel: string): void {\r\n    if (this.activeMenu === menuLabel) {\r\n      this.forceCloseMenu();\r\n      return;\r\n    }\r\n\r\n    this.forceCloseMenu();\r\n    this.activeMenu = menuLabel;\r\n    this.menuTriggerRef = menuTrigger;\r\n    menuTrigger.openMenu();\r\n  }\r\n\r\n  public forceCloseMenu(): void {\r\n    this.activeMenu = null;\r\n    this.menuTriggerRef?.closeMenu();\r\n  }\r\n\r\n  public extractAllProducts(): void {\r\n    this.overlayService.show();\r\n    this.videoApiService.getProductExtractionXlsx(this.lang()).subscribe(res => {\r\n      const xlsFile = new Blob([res], {\r\n        type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n      });\r\n      const fileURL: string = URL.createObjectURL(xlsFile);\r\n      window.open(fileURL);\r\n      this.overlayService.hide();\r\n    });\r\n  }\r\n\r\n  public extractAccountWrittingDownload(): void {\r\n    this.overlayService.show();\r\n    this.commercialApiService.getAccountWrittingDownload();\r\n    this.overlayService.hide();\r\n  }\r\n\r\n  public performAction(link: MenuLink): void {\r\n    this.forceCloseMenu();\r\n\r\n    switch (link.actionType) {\r\n      case 'navigate':\r\n        this.navigate.emit(link);\r\n        break;\r\n      case 'redirect':\r\n        this.redirect.emit(link);\r\n        break;\r\n      case 'exportAccountWriting':\r\n        this.extractAccountWrittingDownload();\r\n        break;\r\n      case 'extractProduct':\r\n        this.extractAllProducts();\r\n        break;\r\n      default:\r\n        throw new Error(`performAction error - No action type on menuLink : ${link}`);\r\n    }\r\n  }\r\n}\r\n","<div class=\"d-flex justify-content-start\">\r\n  @for (menuCurrent of menuButtons; track menuCurrent) {\r\n    <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\r\n      <mat-toolbar class=\"toolbar-padding\">\r\n        <div\r\n          [attr.aria-label]=\"menuCurrent.label + '-btn'\"\r\n          class=\"button-wrapper\"\r\n          [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\r\n          *ngxPermissionsOnly=\"menuCurrent.permissions\"\r\n          (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\r\n        >\r\n          <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\r\n                  style=\"z-index: 99999\">\r\n            <div class=\"text-menu-button\">\r\n              <span>{{ menuCurrent.label | commonTranslate : lang() }}</span>\r\n              <div class=\"indicator\">\r\n                <div class=\"line primary\"></div>\r\n              </div>\r\n            </div>\r\n            <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\r\n              expand_more\r\n            </mat-icon>\r\n          </button>\r\n          <div class=\"indicator\"></div>\r\n        </div>\r\n      </mat-toolbar>\r\n\r\n      <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\r\n                [hasBackdrop]=\"false\">\r\n        <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\r\n          @for (section of menuCurrent.sections; track section) {\r\n            <ng-container *ngxPermissionsOnly=\"section.permissions\">\r\n              <ng-container *ngxPermissionsExcept=\"section.restrictions\">\r\n                <div class=\"menu-section\">\r\n                  <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang() }}</h3>\r\n                  @for (link of section.links; track link) {\r\n                    <ng-container *ngxPermissionsOnly=\"link.permissions\">\r\n                      <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\r\n                              class=\"custom-menu-item\">\r\n                        {{ link.label | commonTranslate : lang() }}\r\n                      </button>\r\n                    </ng-container>\r\n                  }\r\n                </div>\r\n              </ng-container>\r\n            </ng-container>\r\n          }\r\n        </div>\r\n      </mat-menu>\r\n    </ng-container>\r\n  }\r\n</div>\r\n","export enum RapidSearchItemType {\r\n  PURCHASE_ORDER = 'PURCHASE_ORDER',\r\n  PRODUCT = 'PRODUCT',\r\n  WORK_VERSION = 'WORK_VERSION',\r\n  DEAL = 'DEAL',\r\n  WORK_RECORD = 'WORK_RECORD',\r\n  THIRD_PARTY = 'THIRD_PARTY',\r\n  CONTRACT ='CONTRACT',\r\n  INVOICE = 'INVOICE',\r\n  ROYALTY_CONTRACT = 'ROYALTY_CONTRACT',\r\n  ROYALTY_INVOICE = 'ROYALTY_INVOICE',\r\n  ROYALTY_COUNT = 'ROYALTY_COUNT',\r\n}\r\n","import { Directive, EventEmitter, HostListener, OnInit, Optional, Output, inject, DestroyRef, output } from '@angular/core';\r\nimport { MatOption } from '@angular/material/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Directive({\r\n  selector: '[rapidSearchSelection]'\r\n})\r\nexport class RapidSearchSelectionDirective implements OnInit {\r\n  selected = output<void>();\r\n\r\n  private destroyRef = inject(DestroyRef);\r\n  private matOption = inject(MatOption);\r\n\r\n  ngOnInit() {\r\n    this.matOption.onSelectionChange\r\n      .pipe(takeUntilDestroyed(this.destroyRef))\r\n      .subscribe((event) => {\r\n        if (event.isUserInput) {\r\n          this.selected.emit();\r\n        }\r\n      });\r\n  }\r\n\r\n}","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport {\r\n  PurchaseOrderRapidSearchModel\r\n} from \"../../../../models/expenditure-commitment/purchase-order-rapid-search.model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n\r\n@Component({\r\n  selector: 'sc-purchase-order-rapid-search',\r\n  templateUrl: './purchase-order-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class PurchaseOrderRapidSearchComponent {\r\n  document: InputSignal<PurchaseOrderRapidSearchModel> = input<PurchaseOrderRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: 'expenditure-commitment', route: '/purchase-orders/' + this.document().poId});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">receipt_long</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-70\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().poNumber }}\r\n        - {{ document().totalAmount | currency: document().currencyCode:'symbol':undefined:'fr-FR' }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER' | commonTranslate: lang() }}</span>\r\n      <span>{{ document()?.basketNumber ? document().basketNumber : '-' }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\r\n      <span>{{ document()?.ean ? document().ean : '-' }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { ProductRapidSearchModel } from \"../../../../models/video/product-rapid-search.model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-product-rapid-search',\r\n  templateUrl: './product-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class ProductRapidSearchComponent {\r\n  document: InputSignal<ProductRapidSearchModel> = input<ProductRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  labelLang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: 'video', route: '/product/consult/' + this.document().productId});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">movie</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"ellipsis d-flex flex-column max-width-60\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().title }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-10\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().support[labelLang()] }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().ean }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE' | commonTranslate: lang() }}</span>\r\n      <span>{{ document()?.releaseDate ? document().releaseDate : '-' }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { WorkVersionRapidSearchModel } from \"../../../../models/referential/work-version-rapid-search.model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-work-version-rapid-search',\r\n  templateUrl: './work-version-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class WorkVersionRapidSearchComponent {\r\n  document: InputSignal<WorkVersionRapidSearchModel> = input<WorkVersionRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/work-summary/' + this.document().id + '/info'});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">theaters</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-75 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().title }} ({{ document().codeIso }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-10\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().miloCode }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().yearOfProduction }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { DealRapidSearchModel } from \"../../../../models/commercial/deal-rapid-search-model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-deal-rapid-search',\r\n  templateUrl: './deal-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class DealRapidSearchComponent {\r\n  document: InputSignal<DealRapidSearchModel> = input<DealRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/commercial/deal/consult/' + this.document().id})\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">local_offer</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-70 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().dealNumber }} - {{ document().thirdPartyClientName }}\r\n        ({{ document().thirdPartyClientSap }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().calculatedAmount | currency: document().currencyCode:'symbol' }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().validationDate }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { WorkRecordRapidSearchModel } from \"../../../../models/commercial/work-record-rapid-search-model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-work-record-rapid-search',\r\n  templateUrl: './work-record-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class WorkRecordRapidSearchComponent {\r\n  document: InputSignal<WorkRecordRapidSearchModel> = input<WorkRecordRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/commercial/work-record/consult/' + this.document().id + '/general'});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">assignment</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().id }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().dealNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-30 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-35\">\r\n      <span class=\"auto-complete-label\">\r\n        {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }} {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}\r\n        )\r\n      </span>\r\n      <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ThirdPartyAddressRapidSearchModel } from \"../models/referential/third-party-address-rapid-search.model\";\r\n\r\n@Pipe({name: 'thirdPartyAddressSearch'})\r\nexport class ThirdPartyAddressSearchPipe implements PipeTransform {\r\n\r\n  transform(thirdPartyAddressSearch: ThirdPartyAddressRapidSearchModel, lang?: string): string {\r\n    const countryLabelMap = new Map<string, string>([['en', thirdPartyAddressSearch.countryEn], ['fr', thirdPartyAddressSearch.countryFr], ['de', thirdPartyAddressSearch.countryDe]]);\r\n    return thirdPartyAddressSearch?.street + '-' + thirdPartyAddressSearch?.zipCode + '-' + thirdPartyAddressSearch?.city + '-' + countryLabelMap.get(lang);\r\n  }\r\n\r\n}\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { ThirdPartyRapidSearchModel } from \"../../../../models/referential/third-party-rapid-search.model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-third-party-rapid-search',\r\n  templateUrl: './third-party-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class ThirdPartyRapidSearchComponent {\r\n  document: InputSignal<ThirdPartyRapidSearchModel> = input<ThirdPartyRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/referential/third-party/' + this.document().id});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">person</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-85 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().companyOrPersonName }}\r\n        ({{ document().address | thirdPartyAddressSearch: lang() }}\r\n        )</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().code }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { ContractRapidSearchModel } from \"../../../../models/legal/contract-rapid-search-model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-contract-rapid-search',\r\n  templateUrl: './contract-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class ContractRapidSearchComponent {\r\n  document: InputSignal<ContractRapidSearchModel> = input<ContractRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  labelLang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  public getContractType(type: string): 'cess' | 'acq' | 'auth' {\r\n    return type === 'Sale' ? 'cess' : type === 'Acquisition' ? 'acq' : 'auth';\r\n  }\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({\r\n      module: null,\r\n      route: '/legal/contracts-details/' + this.getContractType(this.document().type.labelEn) + '/' + this.document().contractId\r\n    })\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    @switch (getContractType(document().type.labelEn)) {\r\n      @case ('cess') {\r\n        <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\r\n      }\r\n      @case ('acq') {\r\n        <span class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\r\n      }\r\n      @case ('auth') {\r\n        <span class=\"material-icons-outlined rapid-search-type-icon\">account_circle</span>\r\n      }\r\n    }\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-10 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().lisaId }} </span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-10\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().type[labelLang()] }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-30\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().status[labelLang()] }}</span>\r\n    </div>\r\n    @if (document().type.labelEn !== 'Sale') {\r\n      <div class=\"d-flex flex-column max-width-40 ellipsis\">\r\n        <span\r\n          class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang() }}</span>\r\n        <span>{{ document().licensor ? document().licensor : '-' }}</span>\r\n      </div>\r\n    } @else {\r\n      <div class=\"d-flex flex-column max-width-40 ellipsis\">\r\n        <span\r\n          class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang() }}</span>\r\n        <span>{{ document().customer ? document().customer : '-' }}</span>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { InvoiceRapidSearchModel } from \"../../../../models/commercial/invoice-rapid-search-model\";\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-invoice-rapid-search',\r\n  templateUrl: './invoice-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class InvoiceRapidSearchComponent {\r\n  document: InputSignal<InvoiceRapidSearchModel> = input<InvoiceRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    if (this.document().right) {\r\n      this.redirect.emit({\r\n        module: null,\r\n        route: '/commercial/invoice/right-payment-consult?idEcheance=' + this.document().invoiceId\r\n      });\r\n    } else {\r\n      this.redirect.emit({\r\n        module: null,\r\n        route: '/commercial/invoice/material-payment-consult?idEcheance=' + this.document().invoiceId\r\n      });\r\n    }\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().number }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().dealNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-35\">\r\n      <span class=\"auto-complete-label\">\r\n        {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }}\r\n        ({{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }})\r\n      </span>\r\n      <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\r\n      <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\nimport { RoyaltyContractRapidSearchModel } from \"../../../../models/royalty/royalty-contract-rapid-search.model\";\r\n\r\n@Component({\r\n  selector: 'sc-royalty-contract-rapid-search',\r\n  templateUrl: './royalty-contract-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class RoyaltyContractRapidSearchComponent {\r\n  document: InputSignal<RoyaltyContractRapidSearchModel> = input<RoyaltyContractRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/royalty/contract/consult/' + this.document().id});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-30 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().clientName }} ({{document().clientCodeSap}})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-50 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().works.join(', ') }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\nimport { RoyaltyInvoiceRapidSearchModel } from \"../../../../models/royalty/royalty-invoice-rapid-search.model\";\r\n\r\n@Component({\r\n  selector: 'sc-royalty-invoice-rapid-search',\r\n  templateUrl: './royalty-invoice-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class RoyaltyInvoiceRapidSearchComponent {\r\n  document: InputSignal<RoyaltyInvoiceRapidSearchModel> = input<RoyaltyInvoiceRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().countId});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().invoiceNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().countNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-40 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-15 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().emissionDate }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\r\nimport { RoyaltyCountRapidSearchModel } from \"../../../../models/royalty/royalty-count-rapid-search.model\";\r\n\r\n@Component({\r\n  selector: 'sc-royalty-count-rapid-search',\r\n  templateUrl: './royalty-count-rapid-search.component.html',\r\n  styleUrl: '../advanced-search.scss'\r\n})\r\nexport class RoyaltyCountRapidSearchComponent {\r\n  document: InputSignal<RoyaltyCountRapidSearchModel> = input<RoyaltyCountRapidSearchModel>();\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  onSelectSearch(): void {\r\n    this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().id});\r\n  }\r\n}\r\n","<div class=\"d-flex align-items-center\" rapidSearchSelection (selected)=\"onSelectSearch()\">\r\n  <div class=\"max-width-5\">\r\n    <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\r\n  </div>\r\n  <div class=\"d-flex max-width-95\">\r\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().countNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().contractNumber }}</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-40 ellipsis\">\r\n      <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\r\n    </div>\r\n    <div class=\"d-flex flex-column max-width-20 ellipsis\">\r\n      <span\r\n        class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE' | commonTranslate: lang() }}</span>\r\n      <span class=\"ellipsis\">{{ document().periodEnd ? document().periodEnd : '-' }}</span>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, inject, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\r\nimport { RapidSearchItemType } from \"../../../enums/rapid-search-item-type.enum\";\r\nimport { RapidSearchAllDocumentModel } from \"../../../models/rapid-search-all-document.model\";\r\nimport { LocalStorageEventsService } from \"../../../event/storage/local-storage-events.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { debounceTime, map, switchMap } from \"rxjs/operators\";\r\nimport { ElasticsearchService } from \"../../../services/elasticsearch/elasticsearch.service\";\r\nimport { User } from \"../../../decorators/user.decorator\";\r\nimport { AuthUserModel } from \"../../../models\";\r\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-advanced-search',\r\n  templateUrl: './advanced-search.component.html',\r\n  styleUrl: '../header.component.scss'\r\n})\r\nexport class AdvancedSearchComponent implements OnInit {\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  @User() public user: AuthUserModel;\r\n\r\n  documents$: Observable<(RapidSearchAllDocumentModel)[]>;\r\n  public formControlSearch: FormControl<string>;\r\n  public labelLang: string = 'labelFr';\r\n\r\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\r\n  private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\r\n\r\n  public ngOnInit(): void {\r\n    this.updateLabelLang(this.lang());\r\n    this.localStorageEventsService.localStorageEvent.subscribe(() => {\r\n      this.updateLabelLang(this.lang());\r\n    });\r\n    this.formControlSearch = new FormControl<string>(null);\r\n    this.documents$ = this.formControlSearch.valueChanges.pipe(\r\n      debounceTime(500),\r\n      switchMap(term => {\r\n        if (!term) {\r\n          return of([]);\r\n        }\r\n        return this.elasticsearchService\r\n          .getSearchResponse(term, this.user)\r\n          .pipe(\r\n            map(searchResponse => {\r\n              return this.elasticsearchService.getDocuments(searchResponse);\r\n            })\r\n          );\r\n      })\r\n    );\r\n  }\r\n\r\n  private updateLabelLang(lang: string): void {\r\n    switch (lang) {\r\n      case 'en':\r\n        this.labelLang = 'labelEn';\r\n        break;\r\n      case 'de':\r\n        this.labelLang = 'labelDe';\r\n        break;\r\n      default:\r\n        this.labelLang = 'labelFr';\r\n        break;\r\n    }\r\n  }\r\n\r\n  onNavigateEvent($event: LinkRoutingModuleModel): void {\r\n    this.redirect.emit($event);\r\n  }\r\n\r\n  onNavigateAdvancedSearch(module: string, route: string): void {\r\n    this.redirect.emit({module: module, route: route});\r\n  }\r\n\r\n  protected readonly RapidSearchItemType = RapidSearchItemType;\r\n}\r\n","<div class=\"global-search\">\r\n  <mat-icon class=\"header-icon\">search</mat-icon>\r\n  <span class=\"global-search-separator\"></span>\r\n  <mat-form-field class=\"max-width-100\" subscriptSizing=\"dynamic\">\r\n    <input [formControl]=\"formControlSearch\"\r\n           [matAutocomplete]=\"autoSearch\"\r\n           class=\"global-search-input max-width-85\"\r\n           matInput\r\n           placeholder=\"search ...\"/>\r\n\r\n    <button (click)=\"onNavigateAdvancedSearch(null, '/advanced-search')\"\r\n            matSuffix\r\n            class=\"btn advanced-button\" mat-raised-button>\r\n      <mat-icon>flash_on</mat-icon>\r\n      {{ 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED' | commonTranslate: lang() }}\r\n    </button>\r\n\r\n    <mat-autocomplete #autoSearch=\"matAutocomplete\" class=\"mat-autocomplete-global-search\" panelWidth=\"54vw\">\r\n      @for (document of documents$ | async; track document) {\r\n        <mat-option class=\"mat-option-global-search\">\r\n          @switch (document.docType) {\r\n            @case (RapidSearchItemType.PURCHASE_ORDER) {\r\n              <sc-purchase-order-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                              (redirect)=\"onNavigateEvent($event)\"></sc-purchase-order-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.PRODUCT) {\r\n              <sc-product-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\r\n                                       (redirect)=\"onNavigateEvent($event)\"></sc-product-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.WORK_VERSION) {\r\n              <sc-work-version-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                            (redirect)=\"onNavigateEvent($event)\"></sc-work-version-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.DEAL) {\r\n              <sc-deal-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                    (redirect)=\"onNavigateEvent($event)\"></sc-deal-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.WORK_RECORD) {\r\n              <sc-work-record-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                           (redirect)=\"onNavigateEvent($event)\"></sc-work-record-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.THIRD_PARTY) {\r\n              <sc-third-party-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                           (redirect)=\"onNavigateEvent($event)\"></sc-third-party-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.CONTRACT) {\r\n              <sc-contract-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\r\n                                        (redirect)=\"onNavigateEvent($event)\"></sc-contract-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.INVOICE) {\r\n              <sc-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                       (redirect)=\"onNavigateEvent($event)\"></sc-invoice-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.ROYALTY_CONTRACT) {\r\n              <sc-royalty-contract-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                                (redirect)=\"onNavigateEvent($event)\"></sc-royalty-contract-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.ROYALTY_INVOICE) {\r\n              <sc-royalty-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                               (redirect)=\"onNavigateEvent($event)\"></sc-royalty-invoice-rapid-search>\r\n            }\r\n            @case (RapidSearchItemType.ROYALTY_COUNT) {\r\n              <sc-royalty-count-rapid-search [document]=\"document\" [lang]=\"lang()\"\r\n                                             (redirect)=\"onNavigateEvent($event)\"></sc-royalty-count-rapid-search>\r\n            }\r\n          }\r\n        </mat-option>\r\n      }\r\n    </mat-autocomplete>\r\n  </mat-form-field>\r\n</div>\r\n","export enum HistoryItemTypeEnum {\r\n  PRODUCT = 'PRODUCT',\r\n  PURCHASE_ORDER = 'PO',\r\n  DEAL = 'DEAL',\r\n  WORK = 'WORK',\r\n  CONTRACT_ACQ = 'CONTRACT_ACQ',\r\n  CONTRACT_CESS = 'CONTRACT_CESS',\r\n  CONTRACT_AUTH = 'CONTRACT_AUTH',\r\n  BUDGET = 'BUDGET',\r\n  NO_HISTORY_AVAILABLE = 'NO_HISTORY_AVAILABLE'\r\n}\r\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\r\nimport { HistoryItemTypeEnum } from \"../../../enums/history-item-type.enum\";\r\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-history',\r\n  templateUrl: './history.component.html',\r\n  styleUrl: '../header.component.scss'\r\n})\r\nexport class HistoryComponent {\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  public historyList: any[] = [];\r\n\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n\r\n  public getHistory(): void {\r\n    this.historyList = [];\r\n    if (this.localStorageService.exist('history')) {\r\n      this.historyList = this.localStorageService.get('history');\r\n    }\r\n\r\n    if (this.historyList.length === 0) {\r\n      this.historyList.push({type: 'NO_HISTORY_AVAILABLE', id: null, ref: null});\r\n    }\r\n  }\r\n\r\n  public onSelectHistory(module: string, route: string): void {\r\n    this.redirect.emit({module: module, route: route});\r\n  }\r\n\r\n  protected readonly HistoryItemTypeEnum = HistoryItemTypeEnum;\r\n}\r\n","<span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\" class=\"material-icons header-icon\" style=\"width: 100%\">history</span>\r\n\r\n<mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\r\n  @for (history of historyList; track history) {\r\n    @switch (history.type) {\r\n      @case (HistoryItemTypeEnum.PRODUCT) {\r\n        <button (click)=\"onSelectHistory('video ', '/product/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">theaters</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.PRODUCT' | commonTranslate : lang() }}{{ history.type }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.PURCHASE_ORDER) {\r\n        <button (click)=\"onSelectHistory('expenditure-commitment', '/purchase-orders/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">receipt_long</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.PO' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.DEAL) {\r\n        <button (click)=\"onSelectHistory('commercial', '/deal/consult/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">local_offer</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.DEAL' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.WORK) {\r\n        <button (click)=\"onSelectHistory('commercial', '/work-record/consult/'+ history.id +'/general')\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">assignment</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.WORK_RECORD' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.CONTRACT_ACQ) {\r\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/acq/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">shop_two</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_ACQ' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.CONTRACT_CESS) {\r\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/cess/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">receipt</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_CESS' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.CONTRACT_AUTH) {\r\n        <button (click)=\"onSelectHistory('legal', '/contracts-details/auth/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">account_circle</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.CONTRACT_AUTH' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.BUDGET) {\r\n        <button (click)=\"onSelectHistory('expenditure-commitment', '/budget/form/' + history.id)\" mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">payments</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.BUDGET' | commonTranslate : lang() }} {{ history.ref }}\r\n        </button>\r\n      }\r\n      @case (HistoryItemTypeEnum.NO_HISTORY_AVAILABLE) {\r\n        <button mat-menu-item>\r\n          <mat-icon class=\"material-icons-outlined\">not_interested</mat-icon>\r\n          {{ 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE' | commonTranslate : lang() }}\r\n        </button>\r\n      }\r\n    }\r\n  }\r\n</mat-menu>\r\n","export function Theme(): (target: any, key: string) => void {\r\n    return (target: any, key: string): void => {\r\n        // Check if the data exist in the local storage\r\n        function exist(dataKey: string): boolean {\r\n            return localStorage.hasOwnProperty(dataKey);\r\n        }\r\n\r\n        // Get data from local storage\r\n        function get(theme: string): any {\r\n            return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;\r\n        }\r\n\r\n        // Set data in the local storage and return it\r\n        function setDefault(theme: any): string {\r\n            localStorage.setItem('newTheme', JSON.stringify(theme));\r\n            return theme;\r\n        }\r\n\r\n        Object.defineProperty(target, key, {\r\n            configurable: false,\r\n            get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))\r\n        });\r\n    };\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Config, WEB_CONFIG } from '../../config';\r\nimport { Observable } from 'rxjs';\r\nimport { NotificationModel } from '../../models';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CommonApiService } from './common-api.service';\r\nimport { User } from \"../../decorators/user.decorator\";\r\nimport { UserModel } from \"../../models\";\r\nimport { PersonalNotificationModel } from \"../../models/personal-notification.model\";\r\nimport { PersonalNotificationCampaignModel } from \"../../models/personal-notification-campaign.model\";\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class NotificationApiService {\r\n  @User() public user: UserModel;\r\n\r\n  public apiUrl: string = this.config.api_url + '/authorization-api/';\r\n\r\n  constructor(@Inject(WEB_CONFIG) private readonly config: Config,\r\n              private readonly http: HttpClient) {\r\n  }\r\n\r\n  public getLiveNotifications(): Observable<NotificationModel[]> {\r\n    return this.http.get<NotificationModel[]>(this.apiUrl + `notifications/live`)\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public getPersonalNotifications(): Observable<PersonalNotificationModel[]> {\r\n    return this.http.get<PersonalNotificationModel[]>(this.apiUrl + `notifications/personal/user/${this.user.id}`)\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public ackPersonalNotification(personalNotificationId: number): Observable<void> {\r\n    return this.http.delete<void>(this.apiUrl + `notifications/personal/${personalNotificationId}`)\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public markAsReadPersonalNotification(personalNotificationId: number): Observable<void> {\r\n    return this.http.put<void>(this.apiUrl + `notifications/personal/${personalNotificationId}/read`, {})\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n\r\n  public postPersonalNotificationCampaign(campaign: PersonalNotificationCampaignModel): Observable<void> {\r\n    return this.http.post<void>(this.apiUrl + `notifications/personal`, campaign)\r\n      .pipe(catchError(CommonApiService.handleError));\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n\r\n  private isAuthenticatedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n  isAuthenticated$: Observable<boolean> = this.isAuthenticatedSubject.asObservable();\r\n\r\n  public setAuthenticated(isAuthenticated: boolean): void {\r\n    this.isAuthenticatedSubject.next(isAuthenticated);\r\n  }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Client, Message } from '@stomp/stompjs';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport SockJS from 'sockjs-client';\r\nimport { User } from '../../decorators/user.decorator';\r\nimport { Config, WEB_CONFIG } from '../../config';\r\nimport { NotificationModel, UserModel } from '../../models';\r\nimport { NotificationApiService } from '../api/notification-api.service';\r\nimport { LocalStorageService } from '../storage/local-storage.service';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { PersonalNotificationModel } from \"../../models/personal-notification.model\";\r\nimport { PersonalNotificationCampaignModel } from \"../../models/personal-notification-campaign.model\";\r\nimport { PersonalNotificationPriorityEnum } from \"../../enums/personal-notification-priority.enum\";\r\n\r\nexport const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';\r\nexport const NOTIFICATION_TOPIC = '/topic/notification';\r\nexport const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';\r\n\r\nexport const PERSONAL_NOTIFICATION_TOPIC = '/topic/personal-notification';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class NotificationService {\r\n  @User() public user: UserModel;\r\n\r\n  private stompClient: Client | null = null;\r\n\r\n  private readonly notificationSubject = new BehaviorSubject<NotificationModel>(null);\r\n  private readonly personalNotificationSubject = new BehaviorSubject<PersonalNotificationModel>(null);\r\n\r\n  // Observable for components to subscribe to messages\r\n  public notifications$ = this.notificationSubject.asObservable();\r\n  public personalNotifications$ = this.personalNotificationSubject.asObservable();\r\n\r\n  constructor(@Inject(WEB_CONFIG) private readonly config: Config,\r\n              private readonly notificationApiService: NotificationApiService,\r\n              private readonly localStorage: LocalStorageService,\r\n              readonly authService: AuthService) {\r\n    authService.isAuthenticated$.subscribe(isAuthenticated => {\r\n      if (isAuthenticated) {\r\n        this.fetchLiveNotifications();\r\n        this.fetchPersonalNotifications();\r\n        this.subscribeToNotifications(this.config.api_url + NOTIFICATION_WEBSOCKET_URL);\r\n      } else {\r\n        this.disconnect();\r\n      }\r\n    });\r\n  }\r\n\r\n  public ackNotification(notification: NotificationModel): void {\r\n    const ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\r\n    ackedNotifications.push(notification.id);\r\n    this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\r\n  }\r\n\r\n  private fetchLiveNotifications(): void {\r\n    this.notificationApiService.getLiveNotifications().subscribe(notifications => {\r\n      const liveNotificationIds = notifications.map(notification => notification.id);\r\n\r\n      // Clear up any acked notifications that have expired (no longer live)\r\n      let ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\r\n      ackedNotifications = ackedNotifications.filter(ackedNotificationId => liveNotificationIds.indexOf(ackedNotificationId) >= 0)\r\n      this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\r\n\r\n      // Handle new notifications\r\n      notifications.filter(notification => notification.published)\r\n        .filter(notification => ackedNotifications.indexOf(notification.id) === -1)\r\n        .forEach(notification => this.handleNotification(notification));\r\n    });\r\n  }\r\n\r\n  private subscribeToNotifications(wsApiUrl: string): void {\r\n    // FIXME Temporarily bypass WS/XHR connection\r\n    if (true) {\r\n      return;\r\n    }\r\n\r\n    if (this.stompClient) {\r\n      return;\r\n    }\r\n\r\n    // Start listening for new notifications\r\n    const socket = new SockJS(wsApiUrl); // Initialize the SockJS WebSocket connection to the server\r\n\r\n    // Configure the STOMP client with connection details\r\n    this.stompClient = new Client({\r\n      webSocketFactory: () => socket, // Use SockJS as the WebSocket factory\r\n      reconnectDelay: 5000, // Reconnect delay if connection is lost\r\n    });\r\n\r\n    if (!this.stompClient) {\r\n      console.error('Failed to initialize stomp client');\r\n      return;\r\n    }\r\n\r\n    // On successful connection\r\n    this.stompClient.onConnect = () => {\r\n      // Register notification callback\r\n      this.stompClient.subscribe(NOTIFICATION_TOPIC, (message: Message) => {\r\n        const notification: NotificationModel = JSON.parse(message.body);\r\n        this.handleNotification(notification);\r\n      });\r\n\r\n      this.stompClient?.subscribe(PERSONAL_NOTIFICATION_TOPIC, (message: Message) => {\r\n        const personalNotification: PersonalNotificationModel = JSON.parse(message.body);\r\n        if(personalNotification.userId === this.user.id) {\r\n          this.personalNotificationSubject.next(personalNotification);\r\n        }\r\n      });\r\n    };\r\n\r\n    this.stompClient.onStompError = (frame) => {\r\n      console.error('Broker reported error: ' + frame.headers['message']);\r\n      console.error('Additional details: ' + frame.body);\r\n    };\r\n\r\n    console.log('Activating stomp client');\r\n    this.stompClient.activate();\r\n  }\r\n\r\n  private handleNotification(notification: NotificationModel): void {\r\n    const targetSectionIds = notification.targetSections.map(section => section.id);\r\n    const userSectionIds = this.user.permissions.map(permission => permission.sectionId);\r\n\r\n    if (targetSectionIds.some((targetSectionId) => userSectionIds.includes(targetSectionId))) {\r\n      this.notificationSubject.next(notification);\r\n    }\r\n  }\r\n\r\n  private fetchPersonalNotifications(): void {\r\n    this.notificationApiService.getPersonalNotifications().subscribe(personalNotifications => {\r\n      personalNotifications.forEach(personalNotification => {\r\n        this.personalNotificationSubject.next(personalNotification);\r\n      })\r\n    })\r\n  }\r\n\r\n  public ackPersonalNotification(personalNotificationId: number): void {\r\n    this.notificationApiService.ackPersonalNotification(personalNotificationId).subscribe({\r\n      error: (error) => {\r\n        console.error(`Error while acknowledging personal notification ${personalNotificationId}`, error);      }\r\n    });\r\n  }\r\n\r\n  public markAsReadPersonalNotification(personalNotificationId: number): void {\r\n    this.notificationApiService.markAsReadPersonalNotification(personalNotificationId).subscribe({\r\n      error: (error) => {\r\n        console.error(`Error while mark as read personal notification ${personalNotificationId}`, error);      }\r\n    });\r\n  }\r\n\r\n\r\n  public sendPersonalNotification(userIds: number[], title: string, messageFr: string, messageEn: string, messageDe: string, priority: PersonalNotificationPriorityEnum, route: string): void{\r\n    const body: PersonalNotificationCampaignModel = {\r\n      userIds,\r\n      messageFr,\r\n      messageEn,\r\n      messageDe,\r\n      priority,\r\n      route,\r\n      title\r\n    };\r\n\r\n    this.notificationApiService.postPersonalNotificationCampaign(body).subscribe({\r\n      error: (error) => {\r\n        console.error('Error while posting personal notification', {\r\n          body,\r\n          error\r\n        });\r\n      }\r\n    });\r\n  }\r\n\r\n  private disconnect(): void {\r\n    if (!this.stompClient) return;\r\n    try {\r\n      this.stompClient.deactivate();\r\n    } finally {\r\n      this.stompClient = null;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component, computed, inject,\r\n  input,\r\n  InputSignal,\r\n  OnDestroy,\r\n  signal\r\n} from '@angular/core';\r\nimport { filter } from \"rxjs/operators\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { PersonalNotificationModel } from \"../../../models/personal-notification.model\";\r\nimport { NotificationService } from \"../../../services/notification/notification.service\";\r\nimport { Theme } from \"../../../decorators/theme.decorator\";\r\nimport {Config, WEB_CONFIG} from \"../../../config\";\r\n\r\n@Component({\r\n  selector: 'sc-personal-notification',\r\n  templateUrl: './personal-notification.component.html',\r\n  styleUrl: './personal-notification.component.scss'\r\n})\r\nexport class PersonalNotificationComponent implements  OnDestroy{\r\n\r\n  lang: InputSignal<string> = input<string>();\r\n\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n\r\n  private readonly intervalId?: ReturnType<typeof setInterval>;\r\n\r\n  public now = signal(Date.now());\r\n\r\n  private readonly destroy$ = new Subject<void>();\r\n\r\n  @Theme() public theme: string;\r\n\r\n  public personalNotifications = signal<PersonalNotificationModel[]>([]);\r\n\r\n  public unreadNotifications = computed(() =>\r\n    this.personalNotifications().filter(n => !n.read)\r\n  );\r\n\r\n  constructor(\r\n    private readonly notificationService: NotificationService\r\n  ) {\r\n    this.intervalId = setInterval(() => {\r\n      this.now.set(Date.now());\r\n    }, 30_000);\r\n\r\n    this.notificationService.personalNotifications$\r\n      .pipe(\r\n        filter((notification): notification is PersonalNotificationModel => !!notification),\r\n        takeUntil(this.destroy$)\r\n      )\r\n      .subscribe((notification) => {\r\n        this.personalNotifications.update((currentNotif) => {\r\n          const alreadyExists = currentNotif.some(n => n.id === notification.id);\r\n          if (alreadyExists) {\r\n            return currentNotif;\r\n          }\r\n          const updated = [notification, ...currentNotif];\r\n\r\n          return updated.sort(\r\n            (a, b) => new Date(b.createdDate).getTime() - new Date(a.createdDate).getTime()\r\n          );\r\n        });\r\n      });\r\n  }\r\n\r\n  public ackPersonalNotification(event: MouseEvent, notification: PersonalNotificationModel): void {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n    this.notificationService.ackPersonalNotification(notification.id);\r\n\r\n    this.personalNotifications.update((currentNotif) =>\r\n      currentNotif.filter(n => n.id !== notification.id)\r\n    );\r\n  }\r\n\r\n  markAsReadPersonalNotification(event: MouseEvent, notification: PersonalNotificationModel) {\r\n    event.stopPropagation();\r\n    event.preventDefault();\r\n\r\n    this.notificationService.markAsReadPersonalNotification(notification.id)\r\n    this.personalNotifications.update((currentNotif) =>\r\n      currentNotif.map(n => n.id === notification.id ? { ...n, read: true } : n)\r\n    );\r\n\r\n    if (notification.route) {\r\n      const route = notification.route.startsWith('/')\r\n        ? notification.route\r\n        : '/' + notification.route;\r\n\r\n      const url = this.config.api_url + route;\r\n\r\n      window.open(url, '_blank');\r\n    }\r\n  }\r\n\r\n  public getTimeAgo(date: Date): string {\r\n    const diff = this.now() - new Date(date).getTime();\r\n\r\n    const seconds = Math.floor(diff / 1000);\r\n    const minutes = Math.floor(seconds / 60);\r\n    const hours = Math.floor(minutes / 60);\r\n    const days = Math.floor(hours / 24);\r\n\r\n    if (seconds < 60) {\r\n      return this.lang() === 'fr' ? 'à l’instant' : 'now';\r\n    }\r\n\r\n    if (minutes < 60) {\r\n      return `${minutes}min`;\r\n    }\r\n\r\n    if (hours < 24) {\r\n      return `${hours}h`;\r\n    }\r\n\r\n    return this.lang() === 'fr' ? `${days}j` : `${days}d`;\r\n  }\r\n\r\n  public clearAllNotifications(event: MouseEvent): void {\r\n    event.stopPropagation();\r\n\r\n    const notifications = this.personalNotifications();\r\n\r\n    notifications.forEach(n =>\r\n      this.notificationService.ackPersonalNotification(n.id)\r\n    );\r\n\r\n    this.personalNotifications.set([]);\r\n  }\r\n\r\n  public getNotificationMessage(notification: PersonalNotificationModel): string {\r\n    switch (this.lang()) {\r\n      case 'fr':\r\n        return notification.messageFr || notification.messageEn || notification.messageDe || '';\r\n      case 'de':\r\n        return notification.messageDe || notification.messageEn || notification.messageFr || '';\r\n      case 'en':\r\n        return notification.messageEn || notification.messageFr || notification.messageDe || '';\r\n      default:\r\n        return notification.messageFr || notification.messageEn || notification.messageDe || '';\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.intervalId) {\r\n      clearInterval(this.intervalId);\r\n    }\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","<span\r\n  class=\"material-icons header-icon notification-wrapper\"\r\n  [matMenuTriggerFor]=\"menuPersonalNotif\"\r\n  [matBadge]=\"unreadNotifications().length\"\r\n  [matBadgeHidden]=\"unreadNotifications().length === 0\"\r\n  matBadgeColor=\"warn\"\r\n  matBadgeSize=\"small\"\r\n  matBadgePosition=\"above after\">\r\n  notifications\r\n</span>\r\n\r\n<mat-menu #menuPersonalNotif=\"matMenu\" class=\"action-menu\">\r\n  <div [ngClass]=\"theme === 'dark' ? 'dark-theme' : 'light-theme'\">\r\n    <div class=\"notification-menu-header\">\r\n    <span class=\"notification-menu-title\">\r\n      {{ 'COMMON.HEADER.NOTIFICATION.TITLE' | commonTranslate : lang() }}\r\n    </span>\r\n      <span\r\n        class=\"notification-clear-all material-icons\"\r\n        (click)=\"clearAllNotifications($event)\"\r\n        matTooltip=\"{{ 'COMMON.HEADER.NOTIFICATION.CLEAR_ALL' | commonTranslate : lang() }}\"\r\n        matTooltipPosition=\"above\">\r\n      delete_sweep\r\n    </span>\r\n    </div>\r\n\r\n    <div class=\"notification-menu-divider\"></div>\r\n\r\n    <div class=\"notification-list\">\r\n      @if (personalNotifications().length === 0) {\r\n        <div class=\"empty-notification\">{{ 'COMMON.HEADER.NOTIFICATION.EMPTY' | commonTranslate : lang() }}</div>\r\n      } @else {\r\n        @for (personalNotif of personalNotifications(); track personalNotif.id) {\r\n          <button mat-menu-item (click)=\"markAsReadPersonalNotification($event, personalNotif)\">\r\n            <div class=\"notification-item\"\r\n                 [ngClass]=\"{\r\n               'warn': personalNotif.priority === 'WARN',\r\n               'critical': personalNotif.priority === 'CRITICAL',\r\n               'notification-read': personalNotif.read}\">\r\n              <div class=\"notification-main\">\r\n                <div class=\"notification-text\">\r\n                  <div class=\"notification-header\">\r\n                    <div class=\"notification-title\">\r\n                      {{ personalNotif.title | titlecase }}\r\n                    </div>\r\n                    <div class=\"notification-meta\">\r\n                      <div class=\"notification-date\"\r\n                           [matTooltip]=\"personalNotif.createdDate | date:'dd/MM/yyyy HH:mm'\">\r\n                        {{ getTimeAgo(personalNotif.createdDate) }}\r\n                      </div>\r\n                      <span\r\n                        class=\"notification-close-icon material-icons\"\r\n                        (click)=\"ackPersonalNotification($event, personalNotif)\">\r\n                    close\r\n                  </span>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"notification-description\">\r\n                    {{ getNotificationMessage(personalNotif) }}\r\n                  </div>\r\n                </div>\r\n                @if (personalNotif.route) {\r\n                  <span class=\"notification-link-icon material-icons\">\r\n                open_in_new\r\n              </span>\r\n                }\r\n              </div>\r\n            </div>\r\n          </button>\r\n        }\r\n      }\r\n    </div>\r\n  </div>\r\n</mat-menu>\r\n","import { EventEmitter, inject, Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LocalStorageService } from \"../storage/local-storage.service\";\r\n\r\n@Injectable()\r\nexport class LangService {\r\n  public switchLangEmitter: EventEmitter<any> = new EventEmitter();\r\n  private readonly translateService: TranslateService = inject(TranslateService);\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n\r\n  translateLanguage(): void {\r\n    this.translateService.addLangs(['en', 'fr', 'de']);\r\n    if (this.localStorageService.exist('lang') && this.translateService.getLangs().indexOf(this.localStorageService.get('lang')) != -1) {\r\n      this.translateService.use(this.localStorageService.get('lang'));\r\n    } else {\r\n      this.translateService.use(this.translateService.getLangs().indexOf(this.translateService.getBrowserLang()) != -1 ? this.translateService.getBrowserLang() : 'en');\r\n    }\r\n    this.localStorageService.post('lang', this.translateService.currentLang);\r\n  }\r\n\r\n  // emit an event when local storage change\r\n  public switchLang(): void {\r\n    this.switchLangEmitter.emit();\r\n  }\r\n}\r\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\r\nimport { User } from \"../../../decorators/user.decorator\";\r\nimport { AuthUserModel } from \"../../../models\";\r\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { LangService } from \"../../../services/translate-language/lang.service\";\r\nimport { Theme } from \"../../../decorators/theme.decorator\";\r\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\r\n\r\n@Component({\r\n  selector: 'sc-settings',\r\n  templateUrl: './settings.component.html',\r\n  styleUrl: '../header.component.scss'\r\n})\r\nexport class SettingsComponent {\r\n  lang: InputSignal<string> = input<string>();\r\n  redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\r\n\r\n  @Theme() public theme: string;\r\n  @User() public user: AuthUserModel;\r\n\r\n  public languagesAvailable: string[] = [\"en\", \"fr\", \"de\"]\r\n  restrictions: string[] = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\r\n\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n  private readonly translateService: TranslateService = inject(TranslateService);\r\n  private readonly overlayContainer: OverlayContainer = inject(OverlayContainer);\r\n  private readonly langService: LangService = inject(LangService);\r\n\r\n  public switchTheme(): void {\r\n    if (this.theme === 'dark') {\r\n      this.localStorageService.post('newTheme', 'light');\r\n      this.overlayContainer\r\n        .getContainerElement()\r\n        .classList.remove('dark-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('light-theme');\r\n    } else {\r\n      this.localStorageService.post('newTheme', 'dark');\r\n      this.overlayContainer\r\n        .getContainerElement()\r\n        .classList.remove('light-theme');\r\n      this.overlayContainer.getContainerElement().classList.add('dark-theme');\r\n    }\r\n  }\r\n\r\n  public switchLang(lang: string): void {\r\n    this.localStorageService.post('lang', lang);\r\n    this.translateService.use(lang);\r\n    this.langService.switchLang();\r\n  }\r\n\r\n  onRedirect(module: string, route: string): void {\r\n    this.redirect.emit({module: module, route: route});\r\n  }\r\n}\r\n","<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\r\n\r\n<!-- #enddocregion mat-menu-trigger-for -->\r\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\r\n  <button (click)=\"switchTheme()\" mat-menu-item>\r\n    <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\r\n    <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\r\n  </button>\r\n\r\n  <!-- Language -->\r\n  @for (language of languagesAvailable; track language) {\r\n    @if (lang() !== language) {\r\n      <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\r\n        <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\r\n        <span>{{ language }}</span>\r\n      </button>\r\n    }\r\n  }\r\n\r\n  <ng-container *ngxPermissionsExcept=\"restrictions\">\r\n    <!--USER-->\r\n    @if (user && user.admin) {\r\n      <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\r\n        <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\r\n        <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\r\n      </button>\r\n    }\r\n  </ng-container>\r\n  <!--MY PREFERENCES-->\r\n  <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\r\n    <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\r\n    <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\r\n  </button>\r\n  <ng-container *ngxPermissionsExcept=\"restrictions\">\r\n    <!--NOTIFICATIONS-->\r\n    @if (user && user.admin) {\r\n    <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\r\n      <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\r\n      <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\r\n    </button>\r\n    }\r\n  </ng-container>\r\n</mat-menu>\r\n","export enum NotificationClassification {\r\n  INFO = 'INFO',\r\n  FEAT = 'FEAT',\r\n  MAINT = 'MAINT',\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { NotificationClassification } from '../enums/notification-classification.enum';\r\n\r\n@Pipe({name: 'notificationClassificationIconPipe'})\r\nexport class NotificationClassificationIconPipe implements PipeTransform {\r\n\r\n    public transform(value: NotificationClassification): string {\r\n        switch (value) {\r\n          case NotificationClassification.INFO:\r\n            return 'info';\r\n          case NotificationClassification.FEAT:\r\n            return 'rocket_launch';\r\n          case NotificationClassification.MAINT:\r\n            return 'warning_amber';\r\n          default:\r\n            return 'question_mark';\r\n        }\r\n    }\r\n}\r\n","import { Component, inject, input, InputSignal, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { NotificationService } from '../../services/notification/notification.service';\r\nimport { NotificationModel } from '../../models';\r\n\r\n@Component({\r\n  selector: 'notification-bar',\r\n  templateUrl: './notification-bar.component.html',\r\n  styleUrls: [ './notification-bar.component.scss' ]\r\n})\r\nexport class NotificationBarComponent implements OnInit, OnDestroy {\r\n  lang: InputSignal<string> = input<string>();\r\n\r\n  public notifications: NotificationModel[] = [];\r\n\r\n  private readonly subs = new Subscription();\r\n\r\n  private readonly notificationService: NotificationService = inject(NotificationService);\r\n\r\n  ngOnInit(): void {\r\n    this.subs.add(this.notificationService.notifications$.subscribe(notification => {\r\n      if (notification && !this.notifications.some(otherNotification => otherNotification.id === notification.id)) {\r\n        this.notifications.push(notification);\r\n      }\r\n    }));\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subs.unsubscribe();\r\n  }\r\n\r\n  public ackNotification(notification: NotificationModel): void {\r\n    this.notificationService.ackNotification(notification);\r\n    let index = this.notifications.indexOf(notification);\r\n    this.notifications.splice(index, 1);\r\n  }\r\n}\r\n","<div class=\"notification-bar-container\">\r\n  @for (notification of notifications; track notification) {\r\n    <div class=\"notification-bar\" [ngClass]=\"'notification-classification-' + notification.classification\">\r\n      <div class=\"notification-bar-message\">\r\n        <mat-icon class=\"material-icons-outlined mat-icon-small\">\r\n          {{ notification.classification | notificationClassificationIconPipe }}\r\n        </mat-icon>\r\n        <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\r\n      </div>\r\n      <button class=\"notification-bar-close-button\" (click)=\"ackNotification(notification)\">\r\n        <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\r\n      </button>\r\n    </div>\r\n  }\r\n</div>\r\n","import { Component, HostListener, inject, OnInit, output, OutputEmitterRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { PermissionsInterface } from \"../../interfaces/permissions.interface\";\r\nimport { User } from \"../../decorators/user.decorator\";\r\nimport { AuthUserModel } from \"../../models\";\r\nimport { LocalStorageEventsService } from \"../../event/storage/local-storage-events.service\";\r\nimport { LocalStorageService } from \"../../services/storage/local-storage.service\";\r\nimport { PermissionsService } from \"../../permissions/permissions.service\";\r\nimport { Config, WEB_CONFIG } from \"../../config\";\r\nimport { ElasticsearchService } from \"../../services/elasticsearch/elasticsearch.service\";\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\r\nimport { LinkRoutingModuleModel } from \"../../models/link-routing-module.model\";\r\nimport { LIBRARY_VERSION } from '../../version';\r\n\r\n\r\n@Component({\r\n  selector: 'sc-header',\r\n  styleUrls: ['./header.component.scss'],\r\n  templateUrl: './header.component.html'\r\n})\r\nexport class HeaderComponent implements OnInit, PermissionsInterface {\r\n  @User() public user: AuthUserModel;\r\n  toogleMenuEvent: OutputEmitterRef<any> = output<any>();\r\n\r\n  public lang: string;\r\n  public isHide: boolean = false;\r\n  public currentScroll: number = 0;\r\n  public env: string;\r\n  public version: string = LIBRARY_VERSION;\r\n  public formControlSearch: FormControl<string>;\r\n  public documents$: Observable<(RapidSearchAllDocumentModel)[]>;\r\n\r\n  private readonly router: Router = inject(Router);\r\n  private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n  private readonly permissionsService: PermissionsService = inject(PermissionsService);\r\n  private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n\r\n  public ngOnInit(): void {\r\n    this.formControlSearch = new FormControl<string>(null);\r\n\r\n    this.initPermissionsService();\r\n    this.lang = this.localStorageService.get('lang') || 'fr';\r\n    this.env = this.config.env.toLowerCase();\r\n    this.localStorageEventsService.localStorageEvent.subscribe(() => {\r\n      this.lang = this.localStorageService.get('lang');\r\n    });\r\n  }\r\n\r\n  @HostListener('window:scroll', [])\r\n  public onWindowScroll(): void {\r\n    const numberVar: number = document.documentElement.scrollTop;\r\n    if (numberVar > this.currentScroll) {\r\n      this.isHide = true;\r\n    }\r\n    if (numberVar < this.currentScroll) {\r\n      this.isHide = false;\r\n    }\r\n    this.currentScroll = numberVar;\r\n  }\r\n\r\n\r\n  public initPermissionsService(): void {\r\n    this.permissionsService.init();\r\n  }\r\n\r\n  stopIdentityTheft(): void {\r\n    sessionStorage.removeItem('authTokenSecondary');\r\n  }\r\n\r\n  public onNavigateEvent($event: LinkRoutingModuleModel): void {\r\n    this.navigate($event.module, $event.route, $event.queryParamString);\r\n  }\r\n\r\n  public navigate(module = '', route: string, queryParamString?: string | null): void {\r\n    if (!route.startsWith('/')) {\r\n      route = '/' + route;\r\n    }\r\n\r\n    const url: string = this.config.api_url + (module ? `/${module}` : '') + route;\r\n    let queryParams: any = null;\r\n    if (queryParamString != null) {\r\n      queryParams = JSON.parse(queryParamString);\r\n    }\r\n\r\n    if (window.location.href === url && queryParams == null) {\r\n      window.location.reload();\r\n    } else if (window.location.pathname.startsWith(`/${module}`)) {\r\n      this.router\r\n        .navigateByUrl('/', {skipLocationChange: true})\r\n        .then(() => this.router.navigate([route], queryParams ? {queryParams} : {}));\r\n    } else {\r\n      window.location.href = url;\r\n    }\r\n  }\r\n\r\n  public redirect(route: string): void {\r\n    window.location.href = route;\r\n  }\r\n}\r\n","<!-- Notifications container -->\r\n<notification-bar [lang]=\"lang\"></notification-bar>\r\n\r\n<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\r\n  <!-- Unity Logo -->\r\n  <span class=\"d-flex align-items-end\" [matTooltip]=\"user?.superAdmin ? ('v' + version) : null\"\r\n        matTooltipClass=\"version-tooltip\" [matTooltipShowDelay]=\"1000\">\r\n    <a\r\n      [href]=\"env === 'prod' ? 'https://unity.studiocanal.com/dashboard' : (env === 'sbx' ? 'https://unity-sbx.cplus/dashboard' : 'https://unity-' + env + '.studiocanal.com/dashboard')\">\r\n      <img class=\"logo-unity\" alt=\"\" ngSrc=\"./assets/img/unity_logo_48x48.png\" width=\"48\" height=\"48\">\r\n    </a>\r\n    @if (env !== 'prod') {\r\n      <span [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\r\n    }\r\n  </span>\r\n\r\n  <!-- Modules menu -->\r\n  <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\r\n           (redirect)=\"redirect($event.route)\" class=\"menu-header\"/>\r\n\r\n  <!-- Search -->\r\n  <sc-advanced-search [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"global-search\"/>\r\n\r\n  <!-- Connected as -->\r\n  @if (user && user.secondary) {\r\n    <div class=\"connected-as d-flex justify-content-between align-items-center\">\r\n      <span style=\"margin-right: 10px\">\r\n        {{ 'COMMON.HEADER.CONNECTED_AS' | commonTranslate: lang }}  {{ user.login + ' - ' + user.firstName + ' ' + user.name }}\r\n      </span>\r\n\r\n      @if (user.secondary) {\r\n        <button (click)=\"stopIdentityTheft()\" color=\"warn\" mat-raised-button>\r\n          {{ 'CORE.STOP' | commonTranslate: lang }}\r\n        </button>\r\n      }\r\n    </div>\r\n  }\r\n\r\n  <!-- History -->\r\n  <sc-history [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"material-icons header-icon max-width-5\"/>\r\n  <span class=\"header-separator\"></span>\r\n  <!-- Notifications -->\r\n  <sc-personal-notification [lang]=\"lang\" class=\"material-icons header-icon max-width-5\"/>\r\n  <span class=\"header-separator\"></span>\r\n  <!-- Settings -->\r\n  <sc-settings [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\"\r\n               class=\"material-icons-outlined header-icon max-width-5\"/>\r\n\r\n</mat-toolbar>\r\n\r\n","// Angular 2\r\nimport { Component, HostListener, inject, OnInit } from '@angular/core';\r\n// Decorators\r\nimport { Theme } from '../../decorators/theme.decorator';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n// Component configuration\r\n\r\n@Component({\r\n  selector: 'sc-sub-header',\r\n  templateUrl: './sub-header.component.html',\r\n  styleUrls: ['./sub-header.component.css']\r\n})\r\nexport class SubHeaderComponent implements OnInit {\r\n  @Theme() public theme: string;\r\n\r\n  public isHide: boolean = false;\r\n  public currentScroll: number = 0;\r\n\r\n  private readonly document: any = inject(DOCUMENT);\r\n\r\n  public ngOnInit(): void {\r\n  }\r\n\r\n  @HostListener('window:scroll', [])\r\n  public onWindowScroll(): void {\r\n    const numberVar: any = this.document.documentElement.scrollTop;\r\n    if (numberVar > this.currentScroll) {\r\n      this.isHide = true;\r\n    }\r\n    if (numberVar < this.currentScroll) {\r\n      this.isHide = false;\r\n    }\r\n    this.currentScroll = numberVar;\r\n  }\r\n}\r\n","<div id=\"template-header-container\">\r\n  <div [ngClass]=\"{'header-hide':isHide}\" id=\"template-header\">\r\n\r\n    <!-- What you want -->\r\n    <div id=\"left-part\">\r\n      <ng-content select=[left]></ng-content>\r\n    </div>\r\n\r\n    <!-- What you want -->\r\n    <div id=\"middle-part\">\r\n      <ng-content select=[middle]></ng-content>\r\n    </div>\r\n\r\n    <!-- What you want -->\r\n    <div id=\"right-part\">\r\n      <ng-content select=[right]></ng-content>\r\n    </div>\r\n\r\n  </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n@Injectable()\r\nexport class AesService {\r\n\r\n  private readonly SECRET_CODE: string = '1234567891234567';\r\n  private keySize: number = 128 / 32;\r\n  private iterationCount: number = 1000;\r\n  private pwdEncrypted: string;\r\n\r\n  public generateKey(salt: string): any {\r\n\r\n    return CryptoJS.PBKDF2(\r\n      this.SECRET_CODE,\r\n      CryptoJS.enc.Hex.parse(salt),\r\n      {keySize: this.keySize, iterations: this.iterationCount, hasher: CryptoJS.algo.SHA1 });\r\n  }\r\n\r\n  public encrypt(planText: string): string {\r\n    const iv: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\r\n    const salt: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\r\n\r\n    const key: any = this.generateKey(salt);\r\n\r\n    const encrypted: any = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\r\n\r\n    const cipherText: any = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\r\n\r\n    const aesPassword: string = (iv + '::' + salt + '::' + cipherText);\r\n    // conversion en base 64\r\n    this.pwdEncrypted = btoa(aesPassword);\r\n\r\n    return this.pwdEncrypted;\r\n  }\r\n\r\n}\r\n","import { Component, inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { AesService } from '../../../services/jwt-security/aes.service';\r\nimport { Config, WEB_CONFIG } from '../../../config';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CommonApiService } from '../../../services/api/common-api.service';\r\nimport { UserFormModel } from \"../../../models/referential/user-form.model\";\r\n\r\n@Component({\r\n  selector: 'sc-popup-login',\r\n  templateUrl: './popup-login.component.html',\r\n  styleUrls: ['./popup-login.component.css']\r\n})\r\nexport class MyDialogPopupLoginComponent implements OnInit {\r\n  public loading: boolean = false;\r\n  public errorMessage: string = '';\r\n  public apiUrl: string = '';\r\n  public userForm: FormGroup<UserFormModel>;\r\n\r\n  private readonly aesService: AesService = inject(AesService);\r\n  private readonly http: HttpClient = inject(HttpClient);\r\n  private readonly translateService: TranslateService = inject(TranslateService);\r\n  private readonly cookieService: CookieService = inject(CookieService);\r\n  private readonly commonApiService: CommonApiService = inject(CommonApiService);\r\n  private readonly config: Config = inject(WEB_CONFIG);\r\n  public readonly dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = inject(MatDialogRef<MyDialogPopupLoginComponent>);\r\n  private readonly formBuilder: FormBuilder = inject(FormBuilder);\r\n\r\n  constructor() {\r\n    this.apiUrl = this.config.api_url + '/authorization-api';\r\n  }\r\n\r\n  public ngOnInit(): void {\r\n    this.buildForm();\r\n  }\r\n\r\n  public onLogin(): void {\r\n    if (this.userForm.invalid) {\r\n      this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\r\n      return;\r\n    }\r\n    this.loading = true;\r\n    this.errorMessage = '';\r\n\r\n    const {username, password} = this.userForm.value;\r\n\r\n    this.login(\r\n      {username: username, password: password},\r\n      this.translateService.currentLang\r\n    ).subscribe({\r\n        next: (user: any): void => {\r\n          this.loading = false;\r\n          sessionStorage.setItem('loginFlag', 'true');\r\n          sessionStorage.removeItem('authToken');\r\n          sessionStorage.setItem('authToken', user.token);\r\n          this.cookieService.set('auth-mail', this.commonApiService.getUserDataFromToken().email);\r\n          this.dialogRef.close(true);\r\n        },\r\n        error: (err: any): void => {\r\n          this.loading = false;\r\n          this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\r\n        }\r\n      }\r\n    );\r\n  }\r\n\r\n  private login(user: any, language: string): Observable<any> {\r\n    let url: string = this.apiUrl + '/login/findUser';\r\n    if (language) {\r\n      url += '?language=' + language;\r\n    }\r\n\r\n    user.password = this.aesService.encrypt(user.password);\r\n\r\n    return this.http.post(url, user, {\r\n      headers: new HttpHeaders({\r\n        'Content-Type': 'application/json'\r\n      })\r\n    });\r\n  }\r\n\r\n  private buildForm(): void {\r\n    this.userForm = this.formBuilder.group({\r\n      username: this.formBuilder.control('', Validators.required),\r\n      password: this.formBuilder.control('', Validators.required)\r\n    }) as FormGroup<UserFormModel>;\r\n  }\r\n}\r\n","<h3 mat-dialog-title>Log in</h3>\r\n\r\n<mat-dialog-content>\r\n  <form (keyup.enter)=\"onLogin()\" [formGroup]=\"userForm\" class=\"d-flex flex-column\">\r\n    <div class=\"form-group\">\r\n      <mat-label>{{ 'CORE.LOGIN.USERNAME' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\r\n      </mat-label>\r\n      <mat-form-field appearance=\"outline\">\r\n        <input formControlName=\"username\" matInput/>\r\n      </mat-form-field>\r\n    </div>\r\n    <div class=\"form-group\">\r\n      <mat-label>{{ 'CORE.LOGIN.PASSWORD' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\r\n      </mat-label>\r\n      <mat-form-field appearance=\"outline\">\r\n        <input formControlName=\"password\" matInput type=\"password\"/>\r\n      </mat-form-field>\r\n    </div>\r\n  </form>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n  <button (click)=\"onLogin()\" [disabled]=\"loading\" class=\"primary w-100\" mat-raised-button\r\n          type=\"submit\">{{ 'CORE.LOGIN.SIGN_IN' | translate }}\r\n  </button>\r\n  @if (loading) {\r\n    <mat-spinner [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\r\n  }\r\n  @if (errorMessage !== null || errorMessage !== '') {\r\n    <div class=\"errorMessage not-so-close-from-button\"> {{ errorMessage }}</div>\r\n  }\r\n</mat-dialog-actions>\r\n\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ToasterEventsService {\r\n    public toasterSuccessEvent: EventEmitter<any> = new EventEmitter();\r\n    public toasterErrorEvent: EventEmitter<any> = new EventEmitter();\r\n    public toasterWarnEvent: EventEmitter<any> = new EventEmitter();\r\n    public toasterInfoEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n    // emit a success event toaster\r\n    public successEvent(message: string): void {\r\n        this.toasterSuccessEvent.emit(message);\r\n    }\r\n\r\n    // emit a success event toaster\r\n    public errorEvent(message: string): void {\r\n        this.toasterErrorEvent.emit(message);\r\n    }\r\n\r\n    // emit a success event toaster\r\n    public warnEvent(message: string): void {\r\n        this.toasterWarnEvent.emit(message);\r\n    }\r\n\r\n    // emit a success event toaster\r\n    public infoEvent(message: string): void {\r\n        this.toasterInfoEvent.emit(message);\r\n    }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class HeaderEventsService {\r\n\r\n    public toggleMenu: EventEmitter<any> = new EventEmitter<any>();\r\n    public toggleLight: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n    public menuSwitch(): void {\r\n        console.log('Menu switch');\r\n        this.toggleMenu.emit();\r\n    }\r\n\r\n    public lightSwitch(): void {\r\n        this.toggleLight.emit();\r\n    }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { LocalStorageService } from '../storage/local-storage.service';\r\n\r\n@Injectable()\r\nexport class HistoryService {\r\n  private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\r\n\r\n  public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any): void {\r\n    let history: any[] = [];\r\n    if (this.localStorageService.exist('history')) {\r\n      history = this.localStorageService.get('history');\r\n    }\r\n    // DELETE EXISTING SCREEN\r\n    history.forEach((element: any, index: number): void => {\r\n      if (this.exist(type, id, ref, element)) history.splice(index, 1);\r\n    });\r\n    // ADD THE LAST CONSULTED SCREEN TO THE BEGINNING\r\n    history.unshift({type: type, id: id, ref: ref});\r\n\r\n    // SHOW ONLY THE 10 LAST CONSULTED SCREENS\r\n    if (history.length >= 10) {\r\n      history = history.slice(0, 10);\r\n    }\r\n\r\n    // POST TO LOCAL STORAGE\r\n    this.localStorageService.post('history', history);\r\n  }\r\n\r\n  private exist(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: string, history: any): boolean {\r\n    return type == history.type && id == history.id && ref == history.ref;\r\n  }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\r\nimport { MatTooltip } from '@angular/material/tooltip';\r\n\r\n@Directive({\r\n  selector: '[matTooltip][appShowIfTruncated]'\r\n})\r\nexport class ShowIfTruncatedDirective {\r\n  private matTooltip: MatTooltip = inject(MatTooltip);\r\n  private elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\r\n\r\n  @HostListener('mouseenter', ['$event'])\r\n  setTooltipState(): void {\r\n    const element: HTMLElement = this.elementRef.nativeElement;\r\n    this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { AdressModel } from \"../models\";\r\n\r\n@Pipe({\r\n  name: 'thirdPartyAddress'\r\n})\r\nexport class ThirdPartyAddressPipe implements PipeTransform {\r\n\r\n  transform(thirdPartyAddress: AdressModel, ...args: unknown[]): unknown {\r\n    return thirdPartyAddress?.street1 + '-' + thirdPartyAddress?.zipCode + '-' + thirdPartyAddress?.city + '-' + thirdPartyAddress?.country?.label;\r\n  }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'formatDuration'\r\n})\r\nexport class FormatDurationPipe implements PipeTransform {\r\n  transform(value: any): string {\r\n     if (value > 0 && value < 60) {\r\n       return value + 'min';\r\n     } else {\r\n       const h: number = Math.floor(value / 60);\r\n       const min: number = value % 60;\r\n       return  min === 0 ? h + 'h' : h + 'h ' + min + 'min';\r\n     }\r\n  }\r\n}\r\n","import { inject, Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@Pipe({\r\n  name: 'formatCurrency'\r\n})\r\nexport class FormatCurrencyPipe implements PipeTransform {\r\n  private readonly currencyPipe: CurrencyPipe = inject(CurrencyPipe);\r\n\r\n  transform(value: number, currencyCode?: string, display?: string | boolean, digitsInfo?: string, language?: string): string {\r\n    let formattedValue: string = this.currencyPipe.transform(value, currencyCode, display, digitsInfo);\r\n    if(formattedValue) {\r\n      if (language == 'de') {\r\n        let [thousands, decimal] = formattedValue.split(',');\r\n        thousands = thousands.replace(/\\s/g, '.');\r\n        formattedValue = thousands + ',' + decimal;\r\n      } else {\r\n        formattedValue = formattedValue.replace(',', '.');\r\n      }\r\n    }\r\n\r\n    return formattedValue ? formattedValue : '';\r\n  }\r\n}\r\n","import { inject, Injectable, OnDestroy } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\r\n\r\n@Injectable()\r\nexport class CustomMatPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\r\n  unsubscribe: Subject<void> = new Subject<void>();\r\n  OF_LABEL: string = 'of';\r\n\r\n  private readonly translateService: TranslateService = inject(TranslateService);\r\n\r\n  constructor() {\r\n    super();\r\n\r\n    this.translateService.onLangChange\r\n      .pipe(takeUntil(this.unsubscribe))\r\n      .subscribe(() => {\r\n        this.getAndInitTranslations();\r\n      });\r\n\r\n    this.getAndInitTranslations();\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.unsubscribe.next();\r\n    this.unsubscribe.complete();\r\n  }\r\n\r\n  getAndInitTranslations(): void {\r\n    this.translateService\r\n      .get([\r\n        'PAGINATOR.ITEMS_PER_PAGE',\r\n        'PAGINATOR.NEXT_PAGE',\r\n        'PAGINATOR.PREVIOUS_PAGE',\r\n        'PAGINATOR.OF_LABEL',\r\n      ])\r\n      .pipe(takeUntil(this.unsubscribe))\r\n      .subscribe(translation => {\r\n        this.itemsPerPageLabel =\r\n          translation['PAGINATOR.ITEMS_PER_PAGE'];\r\n        this.nextPageLabel = translation['PAGINATOR.NEXT_PAGE'];\r\n        this.previousPageLabel =\r\n          translation['PAGINATOR.PREVIOUS_PAGE'];\r\n        this.OF_LABEL = translation['PAGINATOR.OF_LABEL'];\r\n        this.changes.next();\r\n      });\r\n  }\r\n\r\n  getRangeLabel = (\r\n    page: number,\r\n    pageSize: number,\r\n    length: number,\r\n  ): string => {\r\n    if (length === 0 || pageSize === 0) {\r\n      return `0 ${this.OF_LABEL} ${length}`;\r\n    }\r\n    length = Math.max(length, 0);\r\n    const startIndex: number = page * pageSize;\r\n    const endIndex: number =\r\n      startIndex < length\r\n        ? Math.min(startIndex + pageSize, length)\r\n        : startIndex + pageSize;\r\n    return `${startIndex + 1} - ${endIndex} ${\r\n      this.OF_LABEL\r\n    } ${length}`;\r\n  };\r\n}\r\n","import { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\r\n// Angular\r\nimport { inject, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CommonModule, CurrencyPipe, DatePipe, NgOptimizedImage } from '@angular/common';\r\n// Services\r\nimport { CommonApiService } from './services/api/common-api.service';\r\n// Modules\r\nimport { LocalStorageService } from './services/storage/local-storage.service';\r\nimport { InterceptorHttpService } from './services/jwt-security/interceptorhttp.service';\r\nimport { MyNumberFormatterDirective } from './directives/my-number-formatter-directive';\r\nimport { CapitalizefirstPipe } from './pipes/capitalizefirst.pipe';\r\nimport { SpacesNumberPipe } from './pipes/comma-separated-number.pipe';\r\nimport { SanitizeHtml } from './pipes/display-html.pipe';\r\nimport { DisplayNullPipe } from './pipes/display-null.pipe';\r\nimport { FormatNumberInput } from './pipes/format-number-input.pipe';\r\nimport { LocalDatePipe } from './pipes/local-date.pipe';\r\nimport { MyNumberPipe } from './pipes/my-number.pipe';\r\nimport { TrimStringPipe } from './pipes/trim-string.pipe';\r\nimport { ThemeEventsService } from './theme/theme-event.service';\r\nimport { SessionStorageService } from './services/storage/session-storage.service';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { PermissionsService } from './permissions/permissions.service';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { ArrayService } from './array.service';\r\nimport { OverlayComponent } from './component/overlay/overlay.component';\r\nimport { HeaderComponent } from './component/header/header.component';\r\nimport { SubHeaderComponent } from './component/sub-header/sub-header.component';\r\nimport { MyDialogPopupLoginComponent } from './component/popup/popup-login/popup-login.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { RouterModule } from '@angular/router';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { AesService } from './services/jwt-security/aes.service';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ToasterEventsService } from \"./toaster/toaster-events.service\";\r\nimport { HeaderEventsService } from \"./event/header/header-events.service\";\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { CommonTranslatePipe } from \"./pipes/common-translate.pipe\";\r\nimport { HistoryService } from \"./services/history/history.service\";\r\nimport { LangService } from \"./services/translate-language/lang.service\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { ElasticsearchService } from \"./services/elasticsearch/elasticsearch.service\";\r\nimport { ShowIfTruncatedDirective } from './directives/show-if-truncated.directive';\r\nimport { ThirdPartyAddressPipe } from \"./pipes/third-party-address.pipe\";\r\nimport { FormatDurationPipe } from \"./pipes/format-duration.pipe\";\r\nimport { FormatCurrencyPipe } from './pipes/format-currency.pipe';\r\nimport { CustomMatPaginatorIntl } from \"./paginator/custom-paginator-configuration\";\r\nimport { ThirdPartyAddressSearchPipe } from \"./pipes/third-party-address-search.pipe\";\r\nimport { VideoApiService } from \"./services/api/video-api.service\";\r\nimport { CommercialApiService } from \"./services/api/commercial-api.service\";\r\nimport { MenuComponent } from './component/header/menu/menu.component';\r\nimport { AuthService } from './services/auth/auth.service';\r\nimport { LegalApiService } from \"./services/api/legal-api.service\";\r\nimport { UserSubsidiaryService } from './services/user/user-subsidiary.service';\r\nimport {\r\n  PurchaseOrderRapidSearchComponent\r\n} from \"./component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component\";\r\nimport {\r\n  ProductRapidSearchComponent\r\n} from \"./component/header/advanced-search/product-rapid-search/product-rapid-search.component\";\r\nimport {\r\n  WorkVersionRapidSearchComponent\r\n} from \"./component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component\";\r\nimport {\r\n  DealRapidSearchComponent\r\n} from \"./component/header/advanced-search/deal-rapid-search/deal-rapid-search.component\";\r\nimport {\r\n  WorkRecordRapidSearchComponent\r\n} from \"./component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component\";\r\nimport {\r\n  ThirdPartyRapidSearchComponent\r\n} from \"./component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component\";\r\nimport {\r\n  ContractRapidSearchComponent\r\n} from \"./component/header/advanced-search/contract-rapid-search/contract-rapid-search.component\";\r\nimport {\r\n  InvoiceRapidSearchComponent\r\n} from \"./component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component\";\r\nimport { AdvancedSearchComponent } from \"./component/header/advanced-search/advanced-search.component\";\r\nimport { HistoryComponent } from \"./component/header/history/history.component\";\r\nimport { PersonalNotificationComponent } from \"./component/header/personal-notification/personal-notification.component\"\r\nimport { SettingsComponent } from \"./component/header/settings/settings.component\";\r\nimport {\r\n  RoyaltyContractRapidSearchComponent\r\n} from \"./component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component\";\r\nimport {\r\n  RoyaltyInvoiceRapidSearchComponent\r\n} from \"./component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component\";\r\nimport {\r\n  RoyaltyCountRapidSearchComponent\r\n} from \"./component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component\";\r\nimport { NotificationBarComponent } from './component/notification/notification-bar.component';\r\nimport { NotificationApiService } from './services/api/notification-api.service';\r\nimport { NotificationClassificationIconPipe } from './pipes/notification-classification-icon.pipe';\r\nimport { MatBadge } from \"@angular/material/badge\";\r\nimport { RapidSearchSelectionDirective } from './directives/rapid-search-selection-directive';\r\n\r\n@NgModule({\r\n  imports: [\r\n    MatInputModule,\r\n    MatTooltipModule,\r\n    MatButtonModule,\r\n    MatToolbarModule,\r\n    MatFormFieldModule,\r\n    CommonModule,\r\n    TranslateModule,\r\n    MatCardModule,\r\n    MatDialogModule,\r\n    NgxPermissionsModule,\r\n    MatProgressSpinnerModule,\r\n    RouterModule,\r\n    ReactiveFormsModule,\r\n    FormsModule,\r\n    MatIconModule,\r\n    MatMenuModule,\r\n    MatAutocompleteModule,\r\n    NgOptimizedImage,\r\n    MatBadge,\r\n    CapitalizefirstPipe\r\n  ],\r\n  declarations: [\r\n    MyNumberFormatterDirective,\r\n    SpacesNumberPipe,\r\n    SanitizeHtml,\r\n    DisplayNullPipe,\r\n    FormatNumberInput,\r\n    LocalDatePipe,\r\n    MyNumberPipe,\r\n    TrimStringPipe,\r\n    CommonTranslatePipe,\r\n    ThirdPartyAddressPipe,\r\n    ThirdPartyAddressSearchPipe,\r\n    FormatDurationPipe,\r\n    MyDialogPopupLoginComponent,\r\n    OverlayComponent,\r\n    HeaderComponent,\r\n    SubHeaderComponent,\r\n    ShowIfTruncatedDirective,\r\n    FormatCurrencyPipe,\r\n    MenuComponent,\r\n    PurchaseOrderRapidSearchComponent,\r\n    ProductRapidSearchComponent,\r\n    WorkVersionRapidSearchComponent,\r\n    DealRapidSearchComponent,\r\n    WorkRecordRapidSearchComponent,\r\n    ThirdPartyRapidSearchComponent,\r\n    ContractRapidSearchComponent,\r\n    InvoiceRapidSearchComponent,\r\n    AdvancedSearchComponent,\r\n    HistoryComponent,\r\n    PersonalNotificationComponent,\r\n    SettingsComponent,\r\n    RoyaltyContractRapidSearchComponent,\r\n    RoyaltyInvoiceRapidSearchComponent,\r\n    RoyaltyCountRapidSearchComponent,\r\n    NotificationBarComponent,\r\n    NotificationClassificationIconPipe,\r\n    RapidSearchSelectionDirective\r\n  ],\r\n  providers: [\r\n    {\r\n      provide: HTTP_INTERCEPTORS,\r\n      useClass: InterceptorHttpService,\r\n      multi: true\r\n    },\r\n    TranslateService,\r\n    ThemeEventsService,\r\n    SessionStorageService,\r\n    LocalStorageService,\r\n    PermissionsService,\r\n    ArrayService,\r\n    CustomMatPaginatorIntl,\r\n    CommonApiService,\r\n    DatePipe,\r\n    ThirdPartyAddressSearchPipe,\r\n    LocalDatePipe,\r\n    MyNumberPipe,\r\n    AesService,\r\n    CookieService,\r\n    ToasterEventsService,\r\n    HeaderEventsService,\r\n    HistoryService,\r\n    LangService,\r\n    ElasticsearchService,\r\n    LegalApiService,\r\n    CurrencyPipe,\r\n    MatTooltipModule,\r\n    CommercialApiService,\r\n    VideoApiService,\r\n    AuthService,\r\n    UserSubsidiaryService,\r\n    NotificationApiService,\r\n    NotificationClassificationIconPipe\r\n  ],\r\n  exports: [\r\n    MyNumberFormatterDirective,\r\n    CapitalizefirstPipe,\r\n    SpacesNumberPipe,\r\n    SanitizeHtml,\r\n    DisplayNullPipe,\r\n    FormatNumberInput,\r\n    LocalDatePipe,\r\n    MyNumberPipe,\r\n    FormatCurrencyPipe,\r\n    FormatDurationPipe,\r\n    TrimStringPipe,\r\n    ThirdPartyAddressPipe,\r\n    HeaderComponent,\r\n    OverlayComponent,\r\n    SubHeaderComponent,\r\n    ShowIfTruncatedDirective,\r\n    CommonTranslatePipe,\r\n    NotificationClassificationIconPipe\r\n  ]\r\n})\r\nexport class UtilModule {\r\n  private readonly langService: LangService = inject(LangService);\r\n\r\n  constructor() {\r\n    this.langService.translateLanguage();\r\n  }\r\n\r\n  public static forRoot(\r\n    config: Config = DEFAULT_WEB_CONFIG\r\n  ): ModuleWithProviders<UtilModule> {\r\n    return {\r\n      ngModule: UtilModule,\r\n      providers: [{provide: WEB_CONFIG, useValue: config}]\r\n    };\r\n  }\r\n\r\n  public static forChild(\r\n    config: Config = DEFAULT_WEB_CONFIG\r\n  ): ModuleWithProviders<UtilModule> {\r\n    return {\r\n      ngModule: UtilModule,\r\n      providers: [{provide: WEB_CONFIG, useValue: config}]\r\n    };\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class RegexService {\r\n    public isDecimalOrNegative(numberToCheck: number = null): boolean {\r\n        if (numberToCheck == null) {\r\n            return false;\r\n        } else {\r\n            const myRegexNoDecimal = new RegExp(/^\\d+$/, 'i');\r\n            if (!myRegexNoDecimal.test(numberToCheck.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isMiloCode(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(/^[C0-9][0-9]{5}$/, 'i');\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isAmount(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(/^\\d+\\.?\\d*$/, 'i');\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isYesNo(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(/^(y|Y|n|N|o|O)$/, 'i');\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isFinancialCondition(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(/^(f|F|s|S|g|G)$/, 'i');\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isOrderNumber(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(\r\n                /^[5](6|8)(2|4|9)(N|O|Y)[0-9]{1}[C0-9][0-9]{5}[0-9]{1}$/,\r\n                'i'\r\n            );\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public isDate(value: string = null): boolean {\r\n        if (value == null) {\r\n            return false;\r\n        } else {\r\n            const regex = new RegExp(\r\n                /^([0-9]{2}[-][0-9]{2}[-][0-9]{4}|[0-9]{4}[-][0-9]{2}[-][0-9]{2})$/,\r\n                'i'\r\n            );\r\n            if (regex.test(value.toString())) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n}\r\n","export class PeriodModel {\r\n\r\n    constructor(public years: number,\r\n                public months: number,\r\n                public days: number) {\r\n    }\r\n}\r\n","import { PeriodModel } from './PeriodModel';\r\n\r\n/**\r\n * Created by dstoian on 27/03/2017.\r\n */\r\n\r\nexport class DateUtil {\r\n    public static daysPerMonth: Map<number, number> = new Map<number, number>();\r\n\r\n    // Format Date to YYYY-MM-DD\r\n    public static formatDate(date: Date, language: string): string {\r\n        const mm: number = date.getMonth() + 1;\r\n        const dd: number = date.getDate();\r\n\r\n        if (language && 'fr' === language) {\r\n            return [(dd > 9 ? '' : '0') + dd,\r\n                (mm > 9 ? '' : '0') + mm,\r\n                date.getFullYear()\r\n            ].join('/');\r\n        }\r\n\r\n        return [date.getFullYear(),\r\n            (mm > 9 ? '' : '0') + mm,\r\n            (dd > 9 ? '' : '0') + dd\r\n        ].join('-');\r\n    }\r\n\r\n    // convert a string formatted \"YYYY-MM-DD\" into a date object\r\n    public static fromStringToDate(stringdate: string): Date {\r\n        const parts: string[] = stringdate.split('-');\r\n        const month: string = parts[1].toString();\r\n        const yearNumber: number = Number(parts[0]);\r\n        let monthNumber: number = 0;\r\n        if (month[0] === '0') {\r\n            monthNumber = +month[1];\r\n        } else {\r\n            monthNumber = +parts[1];\r\n        }\r\n        const numberOfDays = Number(parts[2]);\r\n        return new Date(yearNumber, monthNumber - 1, numberOfDays);\r\n    }\r\n\r\n    // convert a string formatted \"YYYY-MM-DD\" into a date object\r\n    public static fromStringToDateSecond(stringdate: string): Date {\r\n        const parts: string[] = stringdate.split(',');\r\n        const month: string = parts[1].toString();\r\n        const yearNumber: number = Number(parts[0]);\r\n        let monthNumber: number = 0;\r\n        if (month[0] === '0') {\r\n            monthNumber = +month[1];\r\n        } else {\r\n            monthNumber = +parts[1];\r\n        }\r\n        const numberOfDays: number = Number(parts[2]);\r\n        return new Date(yearNumber, monthNumber - 1, numberOfDays);\r\n    }\r\n\r\n    public static periodBetweenDates(startDate: string, endDate: string): PeriodModel {\r\n        DateUtil.initDaysPerMonths();\r\n        const a = new Date(startDate);\r\n        const b = new Date(endDate);\r\n        let numberOfDays: number = 0;\r\n        let numberOfYears: number = b.getFullYear() - a.getFullYear();\r\n        let numberOfMonths: number = (b.getMonth() - a.getMonth() + 12) % 12;\r\n        if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {\r\n            numberOfYears--;\r\n        }\r\n        if (a.getMonth() > b.getMonth()) {\r\n            numberOfYears--;\r\n        }\r\n        if (a.getDate() > b.getDate()) {\r\n            numberOfMonths--;\r\n            if (numberOfMonths < 0) {\r\n                numberOfMonths = 11;\r\n            }\r\n        }\r\n        if (b.getDate() < a.getDate()) {\r\n            let numberOfDaysPerMonth: number = DateUtil.daysPerMonth.get(a.getMonth());\r\n            if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {\r\n                numberOfDaysPerMonth++;\r\n            }\r\n            numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();\r\n        } else {\r\n            numberOfDays = b.getDate() - a.getDate();\r\n        }\r\n        return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);\r\n    }\r\n\r\n    public static checkLeapYear(year: number): boolean {\r\n        if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    public static initDaysPerMonths(): void {\r\n        DateUtil.daysPerMonth.set(0, 31);\r\n        DateUtil.daysPerMonth.set(1, 28);\r\n        DateUtil.daysPerMonth.set(2, 31);\r\n        DateUtil.daysPerMonth.set(3, 30);\r\n        DateUtil.daysPerMonth.set(4, 31);\r\n        DateUtil.daysPerMonth.set(5, 30);\r\n        DateUtil.daysPerMonth.set(6, 31);\r\n        DateUtil.daysPerMonth.set(7, 31);\r\n        DateUtil.daysPerMonth.set(8, 30);\r\n        DateUtil.daysPerMonth.set(9, 31);\r\n        DateUtil.daysPerMonth.set(10, 30);\r\n        DateUtil.daysPerMonth.set(11, 31);\r\n    }\r\n\r\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\r\n    public static compareLocalDates(first: Date, second: Date): number {\r\n        if (first.getFullYear() > second.getFullYear()) {\r\n            return 1;\r\n        } else if (first.getFullYear() < second.getFullYear()) {\r\n            return -1;\r\n        } else {\r\n            if (first.getMonth() > second.getMonth()) {\r\n                return 1;\r\n            } else if (first.getMonth() < second.getMonth()) {\r\n                return -1;\r\n            } else {\r\n                if (first.getDate() > second.getDate()) {\r\n                    return 1;\r\n                } else if (first.getDate() < second.getDate()) {\r\n                    return -1;\r\n                } else {\r\n                    return 0;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    /* From moment-precise-range plugin */\r\n    public static preciseDiff(d1: any, d2: any): PeriodModel {\r\n        //   let m1 = moment(d1);\r\n        //   let m2 = moment(d2);\r\n        //\r\n        //   if (m1.isSame(m2)) {\r\n        //     return new PeriodModel(0, 0, 0);\r\n        //   }\r\n        //   if (m1.isAfter(m2)) {\r\n        //     const tmp = m1;\r\n        //     m1 = m2;\r\n        //     m2 = tmp;\r\n        //   }\r\n        //\r\n        //   let yDiff = m2.year() - m1.year();\r\n        //   let mDiff = m2.month() - m1.month();\r\n        //   let dDiff = m2.date() - m1.date();\r\n        //   let hourDiff = m2.hour() - m1.hour();\r\n        //   let minDiff = m2.minute() - m1.minute();\r\n        //   let secDiff = m2.second() - m1.second();\r\n        //\r\n        //   if (secDiff < 0) {\r\n        //     secDiff = 60 + secDiff;\r\n        //     minDiff--;\r\n        //   }\r\n        //   if (minDiff < 0) {\r\n        //     minDiff = 60 + minDiff;\r\n        //     hourDiff--;\r\n        //   }\r\n        //   if (hourDiff < 0) {\r\n        //     hourDiff = 24 + hourDiff;\r\n        //     dDiff--;\r\n        //   }\r\n        //   if (dDiff < 0) {\r\n        //     const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')\r\n        //       .subtract(1, 'months').daysInMonth();\r\n        //     if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03\r\n        //       dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);\r\n        //     } else {\r\n        //       dDiff = daysInLastFullMonth + dDiff;\r\n        //     }\r\n        //     mDiff--;\r\n        //   }\r\n        //   if (mDiff < 0) {\r\n        //     mDiff = 12 + mDiff;\r\n        //     yDiff--;\r\n        //   }\r\n        //\r\n        //   const result = [];\r\n        //\r\n        //   moment.relativeTimeThreshold('s', 60);\r\n        //   moment.relativeTimeThreshold('m', 60);\r\n        //   moment.relativeTimeThreshold('h', 23);\r\n        //   moment.relativeTimeThreshold('dd', 28);\r\n        //   moment.relativeTimeThreshold('dm', 45);\r\n        //   moment.relativeTimeThreshold('dy', 365);\r\n        //\r\n        //   if (yDiff) {\r\n        //     result.push(moment.duration(yDiff, 'year').humanize());\r\n        //   }\r\n        //   if (mDiff) {\r\n        //     result.push(moment.duration(mDiff, 'month').humanize());\r\n        //   }\r\n        //   if (dDiff) {\r\n        //     result.push(moment.duration(dDiff, 'day').humanize());\r\n        //   }\r\n        //   if (hourDiff) {\r\n        //     result.push(moment.duration(hourDiff, 'hour').humanize());\r\n        //   }\r\n        //   if (minDiff) {\r\n        //     result.push(moment.duration(minDiff, 'minute').humanize());\r\n        //   }\r\n        //   if (secDiff) {\r\n        //     result.push(moment.duration(secDiff, 'second').humanize());\r\n        //   }\r\n        //\r\n        //   const period = new PeriodModel(0, 0, 0);\r\n        //   period.years = moment.duration(yDiff, 'year').asYears();\r\n        //   period.months = moment.duration(mDiff, 'month').asMonths();\r\n        //   period.days = moment.duration(dDiff, 'day').asDays();\r\n        //\r\n      return new PeriodModel(0, 0, 0);\r\n    }\r\n\r\n}\r\n","export const CUSTOM_DATE_FORMATS = {\r\n\r\n    parse: {\r\n        dateInput: {month: 'short', year: 'numeric', day: 'numeric'},\r\n    },\r\n    display: {\r\n        dateInput: 'input',\r\n        monthYearLabel: {year: 'numeric', month: 'long'},\r\n        dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\r\n        monthYearA11yLabel: {year: 'numeric', month: 'long'},\r\n    }\r\n};\r\n","export class SortBy {\r\n    // Function which sorts by no matter which field, in ascending and in descending order\r\n    // The last parameter is optional and is a mapper.\r\n    // Example of call :\r\n    // --> exampleArray.sort(sort_by('id', true, parseInt)); -Sort the elements in ascending order by id.\r\n    // If the id is not an integer and is for example a string, we may give a parameter the parseInt function\r\n    // to do the conversion.\r\n\r\n    // -->exampleArray.(sort_by('name', false, (a) =>{return a.toUpperCase()})); Sort the elements by name (case insensitive)\r\n    public sortByField = (\r\n        field: string,\r\n        ascending: boolean,\r\n        functionToApply?: Function\r\n    ) => {\r\n        let convertField = x => {\r\n            return functionToApply ? functionToApply(x[field]) : x[field];\r\n        };\r\n\r\n        return (a, b) => {\r\n            let A = convertField(a);\r\n            let B = convertField(b);\r\n            return (A < B ? -1 : A > B ? 1 : 0) * [-1, 1][+!!ascending];\r\n        };\r\n    };\r\n}\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n\r\n// @dynamic\r\nexport class NumberValidator {\r\n    public static validatorNumberGreaterThanZero(): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value === '' || control.value === undefined) {\r\n                return null;\r\n            } else if (control.value !== null) {\r\n                const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\r\n                if (+numberWithoutSpaces === 0) {\r\n                    return {validatorNumberGreaterThanZero: true};\r\n                }\r\n            } else {\r\n                return null;\r\n            }\r\n        };\r\n    }\r\n\r\n    /**\r\n     *\r\n     * @returns (control:AbstractControl)=>{}\r\n     */\r\n    // Tests if a number is negative or not. Returns true in case of negative numbers\r\n    public validatorNumberNegative(): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value === null || +control.value === 0) {\r\n                return null;\r\n            } else {\r\n                const numberWithoutSpaces: any = control.value\r\n                    .toString()\r\n                    .replace(/ /g, '')\r\n                    .replace(',', '.');\r\n                if (+numberWithoutSpaces >= 0) {\r\n                    return null;\r\n                } else {\r\n                    return {validatorNumberNegative: true};\r\n                }\r\n            }\r\n        };\r\n    }\r\n\r\n    // Tests if a number is a valid percentage value (between 0 and 100)\r\n    public validatorNumberValidPercentage(): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value == null) {\r\n                return null;\r\n            }\r\n            const numberWithoutComma: any = control.value.toString().replace(',', '.');\r\n            if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {\r\n                return null;\r\n            } else if (+control.value >= 0 && +control.value <= 100) {\r\n                return null;\r\n            } else {\r\n                return {validatorNumberValidPercentages: true};\r\n            }\r\n        };\r\n    }\r\n\r\n    /*\r\n   tests if a number is not an integer(it contains another characters than digits and -).\r\n     If the number is not an integer, it will return true.\r\n     Also tests if a number starts with 0. If the number starts with 0 -> return true\r\n  */\r\n    public validatorNumberInteger(): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value === '' || control.value === undefined) {\r\n                return null;\r\n            } else if (+control.value === 0) {\r\n                return null;\r\n            } else if (control.value !== null) {\r\n                const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\r\n                const myRegexNoDecimal = new RegExp(/^-?^[1-9]\\d*$/, 'i');\r\n                if (!myRegexNoDecimal.test(numberWithoutSpaces)) {\r\n                    return {validatorNumberInteger: true};\r\n                }\r\n            } else {\r\n                return null;\r\n            }\r\n        };\r\n    }\r\n\r\n    // tests if a number is lesser than another number\r\n    public validatorNumberLesserThanAnother(anotherValue: number): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value === null) {\r\n                return null;\r\n            } else {\r\n                const numberWithoutSpaces: any = control.value\r\n                    .toString()\r\n                    .replace(/ /g, '')\r\n                    .replace(',', '.');\r\n                if (+numberWithoutSpaces <= anotherValue) {\r\n                    return null;\r\n                } else {\r\n                    return {validatorNumberLesserThanAnother: true};\r\n                }\r\n            }\r\n        };\r\n    }\r\n\r\n    // tests if a number is MAX than another number\r\n    public validatorNumberMaxThanAnother(anotherValue: number): ValidatorFn {\r\n        return (control: AbstractControl): { [key: string]: any } => {\r\n            if (control.value === null) {\r\n                return null;\r\n            } else {\r\n                const numberWithoutSpaces: any = control.value\r\n                    .toString()\r\n                    .replace(/ /g, '')\r\n                    .replace(',', '.');\r\n                if (+numberWithoutSpaces > anotherValue) {\r\n                    return null;\r\n                } else {\r\n                    return {validatorNumberLesserThanAnother: true};\r\n                }\r\n            }\r\n        };\r\n    }\r\n}\r\n","export class ReferentielModel {\r\n    public id: number = null;\r\n    public active: boolean = null;\r\n    public category: string = null;\r\n    public label: string = null;\r\n    public order: number = null;\r\n    public codeRef: string = null;\r\n    public orderCode;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ReferentielModel[] {\r\n        const refs: ReferentielModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new ReferentielModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","/**\r\n * Created by mmichieli on 07/02/2017.\r\n */\r\nimport { ReferentielModel } from './referentiel.model';\r\n\r\nexport class AudioContentModel {\r\n    public id: number = null;\r\n    public isDefault: boolean = false;\r\n    public materialNumber: number;\r\n    public languageId: number;\r\n    public audioContentId: number;\r\n    public audioFormatId: number;\r\n    public licenceId: number;\r\n    public typeMixId: number;\r\n    public support: number;\r\n    public supportLabel: string = null;\r\n    public availabilityDate: string;\r\n\r\n    public languageLabel: string = null;\r\n    public audioContentLabel: string = null;\r\n    public audioFormatLabel: string = null;\r\n    public licenceLabel: string = null;\r\n    public typeMixLabel: string = null;\r\n    public statusLabel: string = null;\r\n\r\n    public status: ReferentielModel = new ReferentielModel();\r\n    public uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { AuthPermissionModel } from './authPermission.model';\r\nimport { SubsidiaryModel } from \"./subsidiary.model\";\r\n\r\nexport class AuthUserModel {\r\n    public id: number = null;\r\n    public login: string = null;\r\n    public name: string = null;\r\n    public firstName: string = null;\r\n    public email: string = null;\r\n    public admin: boolean;\r\n    public superAdmin: boolean;\r\n    public secondary: boolean = false;\r\n\r\n    public permissions: AuthPermissionModel[] = [];\r\n    public subsidiaries: SubsidiaryModel[] = [];\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class UserVideoModel {\r\n    public id: number;\r\n    public login: string;\r\n    public lastName: string;\r\n    public firstName: string;\r\n    public profile: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): UserVideoModel[] {\r\n        const refs: UserVideoModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new UserVideoModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","export class BasicModel {\r\n    public idtechnique: number;\r\n    public id: number;\r\n    public label: string;\r\n    public label2: string;\r\n    public checked: boolean;\r\n    public date: string;\r\n    public accountingDate: string;\r\n    public idParent: number;\r\n\r\n    /* Permet d'avoir un constructeur surchargé grace aux \"?\"*/\r\n    constructor(\r\n        id?: number,\r\n        label?: string,\r\n        label2?: string,\r\n        checked?: boolean,\r\n        idtechnique?: number,\r\n        date?: string,\r\n        accountingDate?: string,\r\n        idParent?: number\r\n    ) {\r\n        this.id = id;\r\n        this.label = label;\r\n        this.label2 = label2;\r\n        this.checked = checked;\r\n        this.idtechnique = idtechnique;\r\n        this.date = date;\r\n        this.accountingDate = accountingDate;\r\n        this.idParent = idParent;\r\n    }\r\n}\r\n","import { MenuLanguageModel } from './menu-language.model';\r\nimport { ReferentielModel } from './referentiel.model';\r\n\r\nexport class DiscDetailModel {\r\n    public id: number = null;\r\n    public laboratoryId: number = null;\r\n    public menuLanguages: MenuLanguageModel[] = [];\r\n    public startSequences: ReferentielModel[] = [];\r\n    public menuAudioFormat: ReferentielModel = new ReferentielModel();\r\n    public menuImageFormat: ReferentielModel = new ReferentielModel();\r\n    public filmSpeedId: number = null;\r\n    public laboratoryName: string = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ReferentielModel } from './referentiel.model';\r\nimport { DiscProgramModel } from './disc-program.model';\r\nimport { DiscDetailModel } from './product-disc-detail.model';\r\n\r\nexport class DiscModel {\r\n    public id: number = null;\r\n    public refEan: string = null;\r\n    public label: string = null;\r\n    public support: ReferentielModel = new ReferentielModel();\r\n    public pressingFormat: ReferentielModel = new ReferentielModel();\r\n    public discDetail: DiscDetailModel = new DiscDetailModel();\r\n    public programs: DiscProgramModel[] = [];\r\n    public formattedEan: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ReferentielModel } from './referentiel.model';\r\nimport { VideoContentModel } from './video-content.model';\r\nimport { AudioContentModel } from './audio-content.model';\r\nimport { SubtitleContentModel } from './subtitle-content.model';\r\n\r\nexport class ProgramModel {\r\n    public id: number = null;\r\n    public bonusType: ReferentielModel;\r\n    public restoration: ReferentielModel = new ReferentielModel();\r\n    public idWorkMilo: number = null;\r\n    public idVersionMilo: number = null;\r\n    public miloCode: string = null;\r\n    public property: ReferentielModel = new ReferentielModel();\r\n    public description: string = null;\r\n    public note: string = null;\r\n    public videoContents: VideoContentModel[] = [];\r\n    public audioContents: AudioContentModel[] = [];\r\n    public subtitleContents: SubtitleContentModel[] = [];\r\n    public order: number = 0;\r\n\r\n    constructor() {\r\n        this.bonusType = new ReferentielModel();\r\n        this.bonusType.id = 1;\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ProgramModel } from './program.model';\r\n\r\nexport class DiscProgramModel {\r\n    public id: number = null;\r\n    public position: number = null;\r\n    public program: ProgramModel = new ProgramModel();\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): DiscProgramModel[] {\r\n        const refs: DiscProgramModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new DiscProgramModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","export class MenuLanguageModel {\r\n    public id: number = null;\r\n    public languageId: number = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class ProductTypeModel {\r\n    public id: number;\r\n    public label: string;\r\n\r\n    constructor() {\r\n        this.id = null;\r\n        this.label = null;\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ProductTypeModel[] {\r\n        const refs: ProductTypeModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new ProductTypeModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class MediaModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public codeMedia = '',\r\n        public label = '',\r\n        public description = '',\r\n        public group: boolean = null,\r\n        public isGroup: boolean = null,\r\n        public groupMediaList: MediaModel[] = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { TerritoryModel } from './territory.model';\r\n\r\nexport class LanguageModel {\r\n    public id: number = null;\r\n    public label: string = '';\r\n    public isoCode: string = '';\r\n    public IsLanguageTech: boolean = null;\r\n    public order: number = 0;\r\n    public territories: TerritoryModel[];\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { LanguageModel } from './language.model';\r\n\r\nexport class TerritoryModel {\r\n    public id: number;\r\n    public label: string;\r\n    public codeISO: string;\r\n    public isGroup: boolean;\r\n    public groupTerritoryList: TerritoryModel[];\r\n    public languages: LanguageModel[];\r\n    public flagCode: string;\r\n\r\n    constructor() {\r\n        this.id = null;\r\n        this.label = '';\r\n        this.codeISO = '';\r\n        this.isGroup = null;\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { AdressModel } from './adress.model';\r\nimport { BankAccountModel } from './bank-account.model';\r\nimport { MediaModel } from './media.model';\r\nimport { LanguageModel } from './language.model';\r\nimport { TerritoryModel } from './territory.model';\r\nimport { ThirdPartyModuleModel } from './third-party-module.model';\r\nimport { BroadcastListItem } from './broadcast-list-item.model';\r\n\r\nexport class ThirdPartyModel {\r\n\r\n  public id: number = null;\r\n  public companyOrPersonName = '';\r\n  public code: string = null;\r\n  public corelId: number = null;\r\n  public idMaster: string = null;\r\n  public clientOrProviderCategory: string = null;\r\n  public thirdPartyType: string = null;\r\n  public thirdPartyCPType: string = null;\r\n  public poThirdPartyCPType: string = null;\r\n  public tel: string = null;\r\n  public fax: string = null;\r\n  public buyingBlocked: boolean;\r\n  public sellingBlocked: boolean;\r\n  public firstName: string = null;\r\n  public address: AdressModel = null;\r\n  public addresses: AdressModel[];\r\n  public thirdPartyModules: ThirdPartyModuleModel[];\r\n  public blocked: boolean;\r\n  public bankAccount: BankAccountModel = null;\r\n  public companyName1: string = null;\r\n  public companyName2: string = null;\r\n  public siret: string = null;\r\n  public siren: string = null;\r\n  public codeSap: string = null;\r\n  public name: string = null;\r\n  public managingTerritory: TerritoryModel = new TerritoryModel();\r\n  public managingMedia: MediaModel = new MediaModel();\r\n  public managingLanguage: LanguageModel = new LanguageModel();\r\n  public versionTimeStamp: string;\r\n\r\n  public addressesToDelete: AdressModel[];\r\n  public tpModulesToDelete: ThirdPartyModuleModel[];\r\n  public broadcast?: BroadcastListItem[];\r\n\r\n  constructor() {\r\n  }\r\n\r\n  public fromJSON(json: any): this {\r\n    for (const propName in json) {\r\n      if (json.hasOwnProperty(propName)) {\r\n        this[propName] = json[propName];\r\n      }\r\n    }\r\n    return this;\r\n  }\r\n  public static getCustomField(thirdPartyModel: ThirdPartyModel): string {\r\n    let customField = thirdPartyModel.companyOrPersonName;\r\n    customField = `${customField} (${thirdPartyModel.code})`;\r\n    let address = thirdPartyModel.code === '0009146668' ? '199 Avenue des Erables – ZI de la Butte Gayen II – Cellule F – 94440 Santeny' :\r\n      ThirdPartyModel.getAddress(thirdPartyModel);\r\n    if (address) {\r\n      customField = `${customField}, ${address}`;\r\n    }\r\n    if (thirdPartyModel.sellingBlocked) {\r\n      customField = `${customField}, SELLING BLOCKED`;\r\n    }\r\n    return customField;\r\n  }\r\n\r\n  static getAddress(thirdPartyModel: ThirdPartyModel): string {\r\n    let formattedAddress = '';\r\n    if (!thirdPartyModel.address) {\r\n      return formattedAddress;\r\n    }\r\n    if (thirdPartyModel.address.street1) {\r\n      formattedAddress = thirdPartyModel.address.street1;\r\n    } else if (thirdPartyModel.address.street2) {\r\n      formattedAddress = thirdPartyModel.address.street2;\r\n    } else if (thirdPartyModel.address.street3) {\r\n      formattedAddress = thirdPartyModel.address.street3;\r\n    }\r\n    if (thirdPartyModel.address.zipCode) {\r\n      formattedAddress = formattedAddress\r\n        ? `${formattedAddress} - ${thirdPartyModel.address.zipCode}`\r\n        : thirdPartyModel.address.zipCode;\r\n    }\r\n    if (thirdPartyModel.address.city) {\r\n      formattedAddress = formattedAddress\r\n        ? `${formattedAddress} - ${thirdPartyModel.address.city}`\r\n        : thirdPartyModel.address.city;\r\n    }\r\n    if (thirdPartyModel.address.country) {\r\n      formattedAddress = formattedAddress\r\n        ? `${formattedAddress} - ${thirdPartyModel.address.country.label}`\r\n        : thirdPartyModel.address.country.label;\r\n    }\r\n    return formattedAddress;\r\n  }\r\n\r\n}\r\n","import { ReferentielModel } from './referentiel.model';\r\nimport { WorkMiloModel } from './referential/work-milo.model';\r\nimport { ProductDiscModel } from './product-disc.model';\r\n\r\nimport { ProductBoxSetModel } from './product-box-set.model';\r\nimport { ProductTypeModel } from './product-type.model';\r\nimport { UserVideoModel } from './user-video.model';\r\nimport { ThirdPartyModel } from './referential/third-party.model';\r\nimport { ProductDivisionModel } from './product-division.model';\r\nimport { TerritoryModel } from './referential/territory.model';\r\n\r\nexport class ProductModel {\r\n    public id: number = null;\r\n    public support: ReferentielModel = new ReferentielModel();\r\n    public productType: ProductTypeModel = new ProductTypeModel();\r\n    public exploitation: ReferentielModel = new ReferentielModel();\r\n    public label: ReferentielModel = new ReferentielModel();\r\n    public category: ReferentielModel = new ReferentielModel();\r\n    public companyId: number = null;\r\n    public companyCode: string = null;\r\n    public editorId: number = null;\r\n    public editor: ReferentielModel = new ReferentielModel();\r\n    public status: ReferentielModel = new ReferentielModel();\r\n    public distributor: ReferentielModel = new ReferentielModel();\r\n    public productManager: UserVideoModel = new UserVideoModel();\r\n    public projectManager: UserVideoModel = new UserVideoModel();\r\n    public manufacturingManager: UserVideoModel = new UserVideoModel();\r\n    public designer: ThirdPartyModel = new ThirdPartyModel();\r\n    public pressOfficer: ThirdPartyModel = new ThirdPartyModel();\r\n    public title: string = null;\r\n    public descriptive: string = null;\r\n    public releaseDate: any = null;\r\n    public theatricalReleaseDate: any = null;\r\n    public initialGoal: number = null;\r\n    public numberOfDisc: number = null;\r\n    public achievedGoal: number = null;\r\n    public ean: string = null;\r\n    public articleNumber: string = null;\r\n    public pght: any = null;\r\n    public notes: string = null;\r\n    public productWorks: WorkMiloModel[] = [];\r\n    public productDivisions: ProductDivisionModel[] = [];\r\n    public territories: TerritoryModel[] = [];\r\n    public productDiscs: ProductDiscModel[] = [];\r\n    public productBoxSets: ProductBoxSetModel[] = [];\r\n    public financialDistributionInitialized: boolean;\r\n    public numFED: string = null;\r\n    public designerCode: string = '';\r\n    public pressOfficerCode: string = '';\r\n    public formattedEan: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ProductModel[] {\r\n        const refs: ProductModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new ProductModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","import { ReferentielModel } from './referentiel.model';\r\n\r\nexport class BoxSetItemModel {\r\n    public id: number = null;\r\n    public support: ReferentielModel = new ReferentielModel();\r\n    public ean: string = null;\r\n    public title: string = null;\r\n    public financialDistributionInitialized: boolean;\r\n    public idWorks: number[] = [];\r\n    public formattedEan: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { BoxSetItemModel } from './box-set-item.model';\r\n\r\nexport class ProductBoxSetModel {\r\n    public id: number = null;\r\n    public boxSetItem: BoxSetItemModel = new BoxSetItemModel();\r\n    uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { DiscModel } from './disc.model';\r\n\r\nexport class ProductDiscModel {\r\n    public id: number = null;\r\n    public position: number = null;\r\n    public disc: DiscModel = new DiscModel();\r\n    public checked: boolean = false;\r\n    uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ProductDiscModel[] {\r\n        const refs: ProductDiscModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new ProductDiscModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","/**\r\n * Created by mmichieli on 13/02/2017.\r\n */\r\nimport { ReferentielModel } from './referentiel.model';\r\n\r\nexport class SubtitleContentModel {\r\n    public id: number = null;\r\n    public isDefault = false;\r\n    public materialNumber: number;\r\n    public languageId: number;\r\n    public contentId: number;\r\n    public stateId: number;\r\n    public typeId: number;\r\n    public origin: string = null;\r\n    public localisation: string = null;\r\n    public availabilityDate: string = null;\r\n    public statusId: number;\r\n\r\n    public languageLabel: string = null;\r\n    public contentLabel: string = null;\r\n    public stateLabel: string = null;\r\n    public typeLabel: string = null;\r\n    public statusLabel: string = null;\r\n\r\n    public status: ReferentielModel = new ReferentielModel();\r\n    public uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ReferentielModel } from './referentiel.model';\r\n\r\nexport class VideoContentModel {\r\n    public id: number = null;\r\n    public materialNumber: string;\r\n    public diffusionFormatId: number;\r\n    public supportId: number;\r\n    public ratioId: number;\r\n    public colorId: number;\r\n    public localisation: string;\r\n    public duration: string;\r\n    public origin: string;\r\n    public isFormatRespected: boolean = false;\r\n    public availabilityDate: string;\r\n    public checked: boolean = false;\r\n\r\n    public ratioLabel: string;\r\n    public formatLabel: string;\r\n    public colorLabel: string;\r\n    public supportLabel: string;\r\n    public statusLabel: string;\r\n\r\n    public status: ReferentielModel = new ReferentielModel();\r\n    public uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ProductModel } from '../product.model';\r\nimport { ReferentielModel } from '../referentiel.model';\r\nimport { PurchaseOrderFileModel } from '../expenditure-commitment/purchase-order-file.model';\r\n\r\nexport class PurchaseOrderModel {\r\n    public id: number = null;\r\n    public number: number = null;\r\n    public product: ProductModel = new ProductModel();\r\n    public costCenterId: number = null;\r\n    public costCenterName = '';\r\n    public supplierMiloId: number = null;\r\n    public supplierMiloName: string = null;\r\n    public deliveryRadio = false;\r\n    public expectedDeliveryDate = null;\r\n    public description = '';\r\n    public type = '';\r\n    public currencyId = 32;\r\n    public currencyLabel = '';\r\n    public status: ReferentielModel = new ReferentielModel();\r\n    public totalAmmountTF: number = null;\r\n    public deliveryDate: string = null;\r\n    public realDeliveryDate: string = null;\r\n    public quantity = 1;\r\n    public deliveredQuantity: number = null;\r\n    public toBeDeliveredQuantity: number = null;\r\n    public finalDelivery: boolean;\r\n    public creator: string = null;\r\n    public basketNumber: number = null;\r\n    public orderSAPNumber: number = null;\r\n    public creationDate: string = null;\r\n    public currencyCode: string = null;\r\n    public deliveryLocation: string;\r\n    public unitPrice: number;\r\n    public checked = false;\r\n    public isDuplicate = false;\r\n    public files: PurchaseOrderFileModel[] = [];\r\n    public uuid: string;\r\n\r\n    constructor() {\r\n        this.status.id = 6;\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): PurchaseOrderModel[] {\r\n        const refs: PurchaseOrderModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new PurchaseOrderModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","export class AdressTypeModel {\r\n    constructor(public addressType: string = null) {\r\n    }\r\n\r\n    fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { CountryModel } from './coutry.model';\r\n\r\nexport class AdressModel {\r\n    constructor(\r\n        public id: number = 46,\r\n        public thirdPartyId: number = null,\r\n        public addressType: string = null,\r\n        public street1: string = null,\r\n        public street2: string = null,\r\n        public street3: string = null,\r\n        public bp: string = null,\r\n        public city: string = null,\r\n        public zipCode: string = null,\r\n        public country: CountryModel = null,\r\n        public tel: string = null,\r\n        public fax: string = null,\r\n        public email: string = null,\r\n        public checked = false,\r\n        public action: string = null\r\n    ) {\r\n    }\r\n\r\n    fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 13/09/2017.\r\n */\r\nexport class AttachedFileModel {\r\n    public id: number = null;\r\n    public name: string;\r\n    public path: string;\r\n    public url: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class BankAccountModel {\r\n    constructor(\r\n        public id: number = 46,\r\n        public bankCountryCode: string = null,\r\n        public bankNumber: string = null,\r\n        public bankName: string = null,\r\n        public bankType: string = null,\r\n        public accountNumber: string = null,\r\n        public accountHolder: string = null,\r\n        public ribKey: string = null,\r\n        public paiementMode: string = null,\r\n        public accountDRGLT: string = null,\r\n        public accountGen: string = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class InvoiceBankAccountModel {\r\n    public id: number;\r\n    public activated: boolean = null;\r\n    public company: string = null;\r\n    public bankName: string = null;\r\n    public accountNumber: string = null;\r\n    public iban: string = null;\r\n    public swift: string = null;\r\n    public label: string = null;\r\n    public collectionAccount: boolean = null;\r\n    public address: string = null;\r\n    public currency: string = null;\r\n    public miloCode: string = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons) {\r\n        const refs: InvoiceBankAccountModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new InvoiceBankAccountModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class BasicHierarchyModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null,\r\n        public idParents: number[] = []\r\n    ) {\r\n    }\r\n}\r\n","export class ColorModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class CompanyModel {\r\n    public code: string = null;\r\n    public label: string = null;\r\n    public id: number = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 03/08/2017.\r\n */\r\nexport class ContentTypeModel {\r\n    public id: number = null;\r\n    public label: string;\r\n    public category: string;\r\n    public code: string;\r\n    public codeBaseFileName: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class ContentModel {\r\n    public id: number;\r\n    public label: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ContentModel[] {\r\n        const refs: ContentModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new ContentModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","export class CostCenterCriteriaValueModel {\r\n    public id: number;\r\n    public code: string;\r\n    public value: string = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { CostCenterCriteriaValueModel } from './cost-center-criteria-values.model';\r\n\r\nexport class CostCenterCriteriaModel {\r\n    public id: number;\r\n    public code: string;\r\n    public name: string;\r\n    public value: string;\r\n    public idCostCenterCriteriaValue: number;\r\n    public criteriaValues: CostCenterCriteriaValueModel[];\r\n    public codeCostCenterCriteriaValue: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { CostCenterCriteriaModel } from './cost-center-criteria.model';\r\nimport { CompanyModel } from './company.model';\r\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\r\n\r\nexport class CostCenterModel {\r\n    public id: number = null;\r\n    public code: string = null;\r\n    public companyId: number = null;\r\n    public company: CompanyModel = null;\r\n    public doubling = false;\r\n    public entityStateDto: ReferentialEntityStateModel = null;\r\n    public label: string = null;\r\n    public criterias: CostCenterCriteriaModel[] = null;\r\n    public formattedLabel: string;\r\n\r\n    public formattedString: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): CostCenterModel[] {\r\n        const refs: CostCenterModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new CostCenterModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class CountryModel {\r\n    constructor(\r\n        public id: number = -1,\r\n        public isoCode: string = null,\r\n        public label: string = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { FixingModel } from './fixing.model';\r\n\r\nexport class CurrencyModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public code: string = null,\r\n        public label: string = null,\r\n        public fixings: FixingModel[] = null,\r\n        public blocked = false,\r\n        public activated = true // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ContentTypeModel } from './content-type.model';\r\nimport { WorkModel } from './work.model';\r\nimport { FSKModel } from './fsk.model';\r\nimport { FSKIndexModel } from './fsk-index.model';\r\n\r\n/**\r\n * Created by vsliwka on 03/08/2017.\r\n */\r\nexport class EditorialContentModel {\r\n    public id: number;\r\n    public episodeId: number;\r\n    public contentType: ContentTypeModel;\r\n    public work: WorkModel;\r\n    public number: string;\r\n    public diffusionNum: string;\r\n    public film24Duration: string;\r\n    public film25Duration: string;\r\n    public duration: string;\r\n    public state: boolean;\r\n    public descriptionTitle: string;\r\n    public timeLineVersionName: string;\r\n    public fsks: FSKModel[];\r\n    public fsksIndex: FSKIndexModel[];\r\n\r\n    constructor() {\r\n        this.contentType = new ContentTypeModel();\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { CurrencyModel } from './currency.model';\r\n\r\nexport class FixingModel {\r\n    public id = -1;\r\n    public dateFixing: any = null;\r\n    public currency: CurrencyModel;\r\n    public rate = 0;\r\n    public codeCurrencyRef: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n                return this;\r\n            }\r\n        }\r\n    }\r\n}\r\n","export class FlatMediaModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null,\r\n        public idParent: number = null,\r\n        public highlight = false,\r\n        public disabled = false\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class FormatImageModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null,\r\n        public displayOrder: number = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class FormatTypeModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class FormatModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null,\r\n        public codeFormat: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by hbentaher on 23/08/2017.\r\n */\r\nexport class ReferentialValueModel {\r\n    public category: string;\r\n    public label: string;\r\n    public order: number;\r\n    public id: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ReferentialValueModel } from './referential-value.model';\r\nimport { AttachedFileModel } from './attached-file.model';\r\n\r\n/**\r\n * Created by hbentaher on 23/08/2017.\r\n */\r\nexport class FSKIndexModel {\r\n    public id: number;\r\n    public editorialContentId: number;\r\n    public comments: string;\r\n    public dateIndexing: string;\r\n    public judgement: string;\r\n    public indexingNumber: string;\r\n    public provider: string;\r\n    public publication: string;\r\n    public indexingRuntime: string;\r\n    public sourceData: string;\r\n    public category: ReferentialValueModel;\r\n    public listab: ReferentialValueModel;\r\n    public attachedFiles: AttachedFileModel[];\r\n\r\n    constructor() {\r\n        this.category = new ReferentialValueModel();\r\n        this.listab = new ReferentialValueModel();\r\n        this.attachedFiles = [];\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { TerritoryModel } from './territory.model';\r\nimport { LanguageModel } from './language.model';\r\nimport { ReferentialValueModel } from './referential-value.model';\r\nimport { AttachedFileModel } from './attached-file.model';\r\n\r\n/**\r\n * Created by hbentaher on 23/08/2017.\r\n */\r\nexport class FSKModel {\r\n    public id: number;\r\n    public comments: string;\r\n    public dateAgeRating: string;\r\n    public lengthMeter: string;\r\n    public workId: number;\r\n    public lengthMinute: string;\r\n    public lengthRuntime: string;\r\n    public checkNumber: string;\r\n    public restrictions: boolean;\r\n    public indexed: boolean;\r\n    public sundayBHA: boolean;\r\n    public country: TerritoryModel;\r\n    public language: LanguageModel;\r\n    public subTitle: LanguageModel;\r\n    public duration24: number;\r\n    public duration25: number;\r\n    public dateOfAgeRating: string;\r\n    public oldLength: string;\r\n    public provider: string;\r\n    public ageRating: ReferentialValueModel;\r\n    public category: ReferentialValueModel;\r\n    public medium: ReferentialValueModel;\r\n    public refProvider: ReferentialValueModel;\r\n    public editorialContentId: number;\r\n    public versionTimeStamp: string;\r\n    public attachedFiles: AttachedFileModel[];\r\n\r\n    constructor() {\r\n        this.ageRating = new ReferentialValueModel();\r\n        this.medium = new ReferentialValueModel();\r\n        this.refProvider = new ReferentialValueModel();\r\n        this.category = new ReferentialValueModel();\r\n        this.attachedFiles = [];\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class FunctionModel {\r\n    public id: number = 0;\r\n    public label: string = '';\r\n    public order: number = 0;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any) : FunctionModel[] {\r\n        const refs: FunctionModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new FunctionModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class GenreModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public order: string = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class InvoiceProductTypeModel {\r\n    public id = 0;\r\n    public label = '';\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): InvoiceProductTypeModel[] {\r\n        const refs: InvoiceProductTypeModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new InvoiceProductTypeModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class KeywordsModel {\r\n    id: number;\r\n    label: string;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  public fromJSON(json: any): this {\r\n    for (const propName in json) {\r\n      if (json.hasOwnProperty(propName)) {\r\n        this[propName] = json[propName];\r\n      }\r\n    }\r\n    return this;\r\n  }\r\n}\r\n","export class MediaFilterModel {\r\n    public id: number;\r\n    public label: string;\r\n    public isGroup: boolean;\r\n    public idParent: number;\r\n    public listIdParent: number[];\r\n    public highlight: boolean;\r\n    public disabled: boolean;\r\n    public description: string;\r\n}\r\n","export class ModuleModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public category: string = null,\r\n        public labelFr: string = null,\r\n        public labelEn: string = null,\r\n        public labelDe: string = null,\r\n        public checked = false,\r\n        public action: string = null\r\n    ) {\r\n    }\r\n\r\n    fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { PersonModel } from './person.model';\r\nimport { FunctionModel } from './function.model';\r\n\r\nexport class ParticipantModel {\r\n    public id: number;\r\n    public person: PersonModel;\r\n    public function: FunctionModel;\r\n\r\n    /* Old Atributes */\r\n    public orderInFunction: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ParticipantModel[] {\r\n        const refs: ParticipantModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new ParticipantModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class PersonModel {\r\n    public id: number = 0;\r\n    public lastName: string = '';\r\n    public firstName: string = '';\r\n    public dateOfBirth?: String;\r\n    public placeOfBirth?: String;\r\n    public dateOfDeath?: String;\r\n    public placeOfDeath?: String;\r\n    public sex?: String;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): PersonModel[] {\r\n        const refs: PersonModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new PersonModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class ProjectStatusModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class QuotaModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public order: string = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 07/06/2017.\r\n */\r\n\r\nexport class ReferentialEntityStateModel {\r\n    public deleted: boolean;\r\n    public blocked: boolean;\r\n    public activated: boolean;\r\n    public updatable: boolean;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n                return this;\r\n            }\r\n        }\r\n    }\r\n}\r\n","export class ReferentielModel {\r\n    public id: number = null;\r\n    public active: boolean = null;\r\n    public category: string = null;\r\n    public label: string = null;\r\n    public order: number = null;\r\n    public codeRef: string = null;\r\n    public orderCode;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): ReferentielModel[] {\r\n        const refs: ReferentielModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new ReferentielModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","import { ParameterModel } from './parameter.model';\r\n\r\nexport class SapOrderModel {\r\n    public id: number;\r\n    public orderCode: string;\r\n    public designation: string;\r\n    public company: string;\r\n    public codeCompany: string;\r\n    public managmentCompany: string;\r\n    public category: string;\r\n    public subCategory: string;\r\n    public systemStatus: string;\r\n    public buLabel: string;\r\n    public validationDate: any;\r\n    public closingDate: any;\r\n    public technicalClosingDate: any;\r\n    public process: string;\r\n    // Concat orderCode + designation\r\n    public displayRow: string;\r\n    public codeManagmentCompany: string;\r\n    params: ParameterModel[];\r\n\r\n    // Informations Importants for work commercial\r\n    public workTitleVo: string;\r\n    public workStatusProject: string;\r\n    public miloCode: string;\r\n    public costCenterCategory: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): SapOrderModel[] {\r\n        const refs: SapOrderModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new SapOrderModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 02/03/2017.\r\n */\r\nexport class ServiceErrorModel {\r\n    public LEVEL_WARN: string = 'WARNING';\r\n    public LEVEL_ERROR: string  = 'ERROR';\r\n\r\n    public errorMessageKey: string  = '';\r\n    public status: number  = 0;\r\n    public severity: string  = '';\r\n    public parameters: string[] = [];\r\n    public statusText: string  = '';\r\n\r\n    constructor() {\r\n    }\r\n}\r\n","export class SoundModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { BasicModel } from '../basic.model';\r\n\r\nexport class TerritoriesLanguagesModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public country: string = null,\r\n        public languages: BasicModel[] = []\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class TerritoryFilterModel {\r\n    public id: number;\r\n    public label: string;\r\n    public codeISO: string;\r\n    public listIdParent: number[];\r\n}\r\n","export class ThemeModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public order: string = null,\r\n        public label: string = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { TerritoryModel } from './territory.model';\r\nimport { MediaModel } from './media.model';\r\nimport { CurrencyModel } from './currency.model';\r\n\r\nexport class ThirdPartyCreationRequestModel {\r\n    public id: number = null;\r\n    public requestType: string = '';\r\n    public supplierType: string = '';\r\n    public dateCreation: any = null;\r\n    public userCreation: string = '';\r\n    public service: string = '';\r\n    public tel: string = '';\r\n    public label: string = '';\r\n    public address: string = '';\r\n    public zipCode: string = '';\r\n    public country: TerritoryModel;\r\n    public city: string = '';\r\n    public intraCommunautaireTvaNumber: string = '';\r\n    public siret: string = '';\r\n    public socialSecurity: string = '';\r\n    public agessaAgrement: string = '';\r\n    public existMilo: boolean = false;\r\n    public blocageReason: string = '';\r\n    public miloIdentification: string = '';\r\n    public miloBlockedCompta: boolean = false;\r\n    public miloBlockedMM: boolean = false;\r\n    public email: string = '';\r\n    public thirdPartyType: string = '';\r\n    public honoraire: boolean = false;\r\n    public currency: CurrencyModel;\r\n    public amount: string = '';\r\n    public commandeVerso: boolean = false;\r\n    public commandeRambo: boolean = false;\r\n    public commandeBBP: boolean = false;\r\n    public contratRambo: boolean = false;\r\n    public clientType: string = '';\r\n    public clientCountry: TerritoryModel;\r\n    public mediaCountry: MediaModel;\r\n    public clientHermes: boolean;\r\n    public clientContratRambo: boolean;\r\n    public clientContratRamboUTD: boolean;\r\n    public clientVenteSD: boolean;\r\n    public clientAutres: boolean;\r\n    public category: string = '';\r\n    public personCompanyType: string = '';\r\n    public statusCreationRequest: boolean;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class ThirdPartyModuleModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public thirdPartyId: number = null,\r\n        public thirdPartyCodeSap: string = null,\r\n        public moduleId: number = null,\r\n        public module: string = null,\r\n        public checked = false,\r\n        public action: string = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 10/05/2017.\r\n */\r\nexport class TranslatedValueModel {\r\n    public id: number;\r\n    public label: string;\r\n    public order: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class TvaModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public code: string = null,\r\n        public label: string = null\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class TypeExportModel {\r\n    public id: number = null;\r\n    public codeTypeExport: string = '';\r\n    public nameTypeExport: string = '';\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class TypeTvaModel {\r\n    public id: number = 0;\r\n    public codeTva: string = null;\r\n    public rate: number = 0;\r\n    public label: string = '';\r\n    public codeLabel: string;\r\n\r\n    // public client = '';\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): TypeTvaModel[] {\r\n        const refs: TypeTvaModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new TypeTvaModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","export class ZoneModel {\r\n    public id: number;\r\n    public label: string = '';\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { InvoiceProductTypeModel } from './invoice-product-type.model';\r\nimport { TypeTvaModel } from './type-tva.model';\r\nimport { TerritoryModel } from './territory.model';\r\nimport { ZoneModel } from './zone.model';\r\n\r\nexport class TypeTvaCompanyTerritoryModel {\r\n    public id: number;\r\n    public label: string = null;\r\n    public codeLlabel: string = null;\r\n    public typeTva: TypeTvaModel = new TypeTvaModel();\r\n    public companyCode: string = null;\r\n    public invoiceProductType: InvoiceProductTypeModel = new InvoiceProductTypeModel();\r\n    public activated: boolean = null;\r\n    public territory: TerritoryModel = new TerritoryModel();\r\n    public zone: ZoneModel = new ZoneModel();\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): TypeTvaCompanyTerritoryModel[] {\r\n        const refs: TypeTvaCompanyTerritoryModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new TypeTvaCompanyTerritoryModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","import { TranslatedValueModel } from './translated-value-model';\r\nimport { LanguageModel } from './language.model';\r\n\r\n/**\r\n * Created by vsliwka on 10/05/2017.\r\n */\r\nexport class WorkAddonsModel {\r\n    public id: number;\r\n    public workId: number;\r\n    public addonType: TranslatedValueModel;\r\n    public countryIsoCode: string;\r\n    public addonContent: string;\r\n    public titleCmpl: string;\r\n    public authorCmpl: string;\r\n    public originCmpl: string;\r\n    public dateCmpl: string;\r\n    public synopsisType: TranslatedValueModel;\r\n    public sourceType: TranslatedValueModel;\r\n    public sourceLink: string;\r\n    public sourceNote: string;\r\n    public episodeNumber: number;\r\n    public isOnline: boolean;\r\n    public language: LanguageModel;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class WorkAppartenanceModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null,\r\n        public displayOrder: number = null // public url: string = null,\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkGenreModel {\r\n    public id: number;\r\n    public workId: number;\r\n    public label: string;\r\n    public order: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkLanguageModel {\r\n    public id: number;\r\n    public workId: number;\r\n    public label: string;\r\n    public principalLanguage: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class WorkMiloModel {\r\n    public id: number = null;\r\n    public idWorkMilo: number = null;\r\n    public miloCode: string = null;\r\n    public title: string = null;\r\n    public titleFr: string = null;\r\n    public completeTitle: string = null;\r\n    public mainTitle: string = null;\r\n    public genre: string = null;\r\n    public yearOfProduction: string = null;\r\n    public isoCode: string = null;\r\n    public idVersionMilo: number = null;\r\n    public checked: boolean = false;\r\n    public langueOri: string = null;\r\n    public codeOrdre: string = null;\r\n    public designation: string = null;\r\n    public processus: string = null;\r\n    public societe: string = null;\r\n    public societeGestion: string = null;\r\n    public sousCategorie: string = null;\r\n    public statutProjet: string = null;\r\n    public orderCode: string = null;\r\n    public referenceCurrencyCode: any = null;\r\n    public company: string = null;\r\n    public managmentCompany: string = null;\r\n    public category: string = null;\r\n    public subCategory: string = null;\r\n    public buLabel: string = null;\r\n    public process: string = null;\r\n    public valdiationDate: Date = null;\r\n    public closingDate: Date = null;\r\n    public technicalClosingDate: Date = null;\r\n    public systemStatus: string = null;\r\n    public quota: string = null;\r\n    public genres: string = null;\r\n    public languages: string = null;\r\n    public versions: any = null;\r\n    public idDivision: number = null;\r\n    public codeSap: string = null;\r\n    public percentage: number = null;\r\n    public index: number;\r\n    public uuid: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): WorkMiloModel[] {\r\n        const refs: WorkMiloModel[] = [];\r\n        if (jsons) {\r\n            jsons.forEach(json => {\r\n                refs.push(new WorkMiloModel().fromJSON(json));\r\n            });\r\n        }\r\n        return refs;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 30/05/2017.\r\n */\r\nimport { TerritoryModel } from './territory.model';\r\nimport { RestrictionModel } from './restriction.model';\r\n\r\nexport class WorkRestrictionModel {\r\n    public id: number;\r\n    public workId: number;\r\n\r\n    /* New Attributes */\r\n    public restriction: RestrictionModel;\r\n    public country: TerritoryModel;\r\n\r\n    /* Old Attributes */\r\n    public countryIsoCode: string;\r\n    public label: string;\r\n    public code: string;\r\n    public order: number;\r\n\r\n    public type: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkThemeModel {\r\n    public id: number;\r\n    public workId: number;\r\n    public label: string;\r\n    public principalTheme: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class WorkTitleModel {\r\n    public miloCode: string;\r\n    public completeTitle: string;\r\n    public titleVO: string;\r\n    public title: string;\r\n    public yearOfProduction: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n\r\n    public fromJSONs(jsons: any): WorkTitleModel[] {\r\n        const refs: WorkTitleModel[] = [];\r\n        jsons.forEach(json => {\r\n            refs.push(new WorkTitleModel().fromJSON(json));\r\n        });\r\n        return refs;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 21/04/2017.\r\n */\r\nexport class WorkVersionOriginModel {\r\n    public id: number;\r\n    public label: string;\r\n    public value: number;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 21/04/2017.\r\n */\r\n/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkVersionUsedModel {\r\n    public id: number;\r\n    public label: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkVersionArticleModel {\r\n    public id: number = null;\r\n    public label: string;\r\n    public isoCode: string;\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { WorkVersionArticleModel } from './WorkVersionArticleDto';\r\nimport { TerritoryModel } from './territory.model';\r\nimport { LanguageModel } from './language.model';\r\nimport { WorkVersionUsedModel } from './work-versions-used.model';\r\nimport { WorkVersionOriginModel } from './work-version-origin.model';\r\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\r\n\r\n/**\r\n * Created by vsliwka on 20/04/2017.\r\n */\r\nexport class WorkVersionModel {\r\n    public id: number;\r\n    public workId: number;\r\n    public title: string;\r\n    public principal: boolean;\r\n    public order: number = 0;\r\n    public origin: WorkVersionOriginModel;\r\n    public article: WorkVersionArticleModel;\r\n    public articleId: number;\r\n    public country: TerritoryModel;\r\n    public used: WorkVersionUsedModel;\r\n    public languageVersion: LanguageModel;\r\n    // Denormalized field for display purpose only\r\n    public restrictionTv: string;\r\n    // Denormalized field for display purpose only\r\n    public restrictionCine: string;\r\n    public entityState: ReferentialEntityStateModel;\r\n    public countryLabel: string;\r\n    public isEpisode: boolean = false;\r\n\r\n    constructor() {\r\n        this.article = new WorkVersionArticleModel();\r\n        this.origin = new WorkVersionOriginModel();\r\n        this.country = new TerritoryModel();\r\n        this.used = new WorkVersionUsedModel();\r\n        this.countryLabel = '';\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class WorkYearProductionModel {\r\n    public id: number;\r\n    public label: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { ParticipantModel } from './participant.model';\r\nimport { SapOrderModel } from './sap-order.model';\r\nimport { WorkVersionModel } from './work-versions.model';\r\nimport { WorkAddonsModel } from './work-addons-model';\r\nimport { WorkRestrictionModel } from './work-restrictions-model';\r\nimport { WorkThemeModel } from './work-theme.model';\r\nimport { WorkGenreModel } from './work-genre.model';\r\nimport { WorkLanguageModel } from './work-language.model';\r\nimport { ColorModel } from './color.model';\r\nimport { QuotaModel } from './quota.model';\r\nimport { SoundModel } from './sound.model';\r\nimport { FormatModel } from './format.model';\r\nimport { WorkAppartenanceModel } from './work-appartenance.model';\r\nimport { FormatImageModel } from './format-image.model';\r\nimport { ProjectStatusModel } from './project-status.model';\r\nimport { FormatTypeModel } from './format-type.model';\r\nimport { WorkYearProductionModel } from './work-year-production.model';\r\nimport { EditorialContentModel } from './editorial-content.model';\r\nimport { KeywordsModel } from './keywords.model';\r\nimport { WorkParticipantModel } from './work-participant.model';\r\n\r\n/**\r\n * Created by vsliwka on 05/04/2017.\r\n */\r\nexport class WorkModel {\r\n    public id: number;\r\n    public titleVO: string;\r\n    public territory: string;\r\n    public duration: any;\r\n    public expired: boolean;\r\n    public episodeNumber: number;\r\n    public clientLanguageTitle: string;\r\n    public title: string;\r\n    public completeTitle: string;\r\n    public miloCode: string;\r\n    public isoCode: string;\r\n    public eidrCode: string;\r\n    public idIMDB: string;\r\n    public workType: string;\r\n    public yearOfProduction: WorkYearProductionModel;\r\n    public director: string;\r\n    /* Old Attributes */\r\n    public participants: ParticipantModel[];\r\n    /* New Attributes */\r\n    public workParticipants: WorkParticipantModel[];\r\n    public sapOrders: SapOrderModel[];\r\n    public versions: WorkVersionModel[];\r\n    public addons: WorkAddonsModel[];\r\n    public tvRestrictions: WorkRestrictionModel[];\r\n    public movieRestrictions: WorkRestrictionModel[];\r\n    public themes: WorkThemeModel[];\r\n    public genres: WorkGenreModel[];\r\n    public languages: WorkLanguageModel[];\r\n    public arthouse: string;\r\n    public color: ColorModel;\r\n    public quota: QuotaModel;\r\n    public sound: SoundModel;\r\n    public format: FormatModel;\r\n    public workAppartenance: WorkAppartenanceModel;\r\n    public formatImage: FormatImageModel;\r\n    public projectStatus: ProjectStatusModel;\r\n    public formatType: FormatTypeModel;\r\n    public genresSelected: any[] = [];\r\n    public themesSelected: any[] = [];\r\n    public languageSelected: any[] = [];\r\n    public sapOrderId: number;\r\n    public customOrderLabel: string;\r\n    public percentage: number;\r\n    public keyInSession: string = 'Referential-WorkModel-Session-key';\r\n    public editorialContents: EditorialContentModel[];\r\n    public workKeywords: KeywordsModel[];\r\n    public exportableSap: boolean = false;\r\n    public header: boolean;\r\n    public seriesWorkId?: number;\r\n\r\n    constructor() {\r\n        this.versions = [];\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (const propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class BroadcastListItem {\r\n\r\n    public id: number;\r\n    public email: string;\r\n    public typeCode: string;\r\n    public thirdPartySapCode: string;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { BasicModel } from './basic.model';\r\n\r\nexport class AnyLineModel {\r\n    public action: string;\r\n    public rightId: number;\r\n\r\n    constructor(\r\n        public id: number = null,\r\n        public selected: any = new BasicModel(),\r\n        public included: BasicModel[] = [],\r\n        public excluded: BasicModel[] = [],\r\n        public toRemove: BasicModel[] = [],\r\n        public checked: boolean = false,\r\n        public edited: boolean = false,\r\n        public deleted: boolean = false,\r\n        public created: boolean = false,\r\n        public disabled: boolean = false,\r\n        public lineSize: boolean = false,\r\n        public hided: boolean = false,\r\n        public excludedStr: string = null,\r\n        public listExclSuggs: any[] = []\r\n    ) {\r\n    }\r\n\r\n    public getAllIdExcluded(): number[] {\r\n        return this.excluded.map(x => x.id);\r\n    }\r\n\r\n    public getAllIdIncluded(): number[] {\r\n        return this.included.map(x => x.id);\r\n    }\r\n\r\n    public getAllRemoved(): number[] {\r\n        return this.toRemove.map(x => x.id);\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class SearchResponseModel {\r\n    public content: any[] = [];\r\n    public totalNumberOfPages: number = 1;\r\n    public totalNumberOfContracts: number = 0;\r\n    public allSearchResultIds: number[] = [];\r\n    public totalResponseLenght: number = 0;\r\n}\r\n","import { BasicModel } from './basic.model';\r\n\r\nexport class LangLineModel {\r\n    public action: string;\r\n    public rightId: number;\r\n\r\n    constructor(public id: number = null,\r\n                public selected: any = new BasicModel(),\r\n                public dubbing: boolean = false,\r\n                public subtitle: boolean = false,\r\n                public checked: boolean = false,\r\n                public allLanguages: boolean = false,\r\n                public included: BasicModel[] = [],\r\n                public excluded: BasicModel[] = [],\r\n                public toRemove: BasicModel[] = [],\r\n                public excludedStr: string = null) {\r\n    }\r\n\r\n    public getAllIdExcluded(): number[] {\r\n        return this.excluded.map((x) => x.id);\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class EventTypeModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public label: string = null\r\n    ) {\r\n    }\r\n}\r\n","import { BasicModel } from './basic.model';\r\n\r\nexport class MediaLineModel {\r\n    constructor(\r\n        public id: number = null,\r\n        public selected: any = new BasicModel(),\r\n        public included: BasicModel[] = [],\r\n        public excluded: BasicModel[] = []\r\n    ) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","export class OptionHtmlModel {\r\n    constructor(\r\n        public id: string = null,\r\n        public value: number = null,\r\n        public label = null\r\n    ) {\r\n    }\r\n}\r\n","export class SelectHtmlModel {\r\n    constructor(public options: any[] = [], public disabled: boolean = false) {\r\n    }\r\n}\r\n","import { SectionModel } from './section.model';\r\nimport { PermissionModel } from './permission.model';\r\nimport { SubsidiaryModel } from \"./subsidiary.model\";\r\n\r\nexport class UserModel {\r\n    public id: number = null;\r\n    public login: string = null;\r\n    public password: string = null;\r\n    public name: string = null;\r\n    public firstName: string = null;\r\n    public fullName: string = null;\r\n    public serialNumber: string = null;\r\n    public type: number = null;\r\n    public dateBegin = null;\r\n    public dateEnd = null;\r\n    public entity: number = null;\r\n    public management: number = null;\r\n    public email: string = null;\r\n    public admin: boolean = false;\r\n    public active: boolean = true;\r\n    public comment: string = null;\r\n    public sections: SectionModel[] = [];\r\n    public permissions: PermissionModel[] = [];\r\n    public subsidiaries: SubsidiaryModel[] = [];\r\n    public mainSubsidiary: SubsidiaryModel = null;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public getFullName(): string {\r\n        return this.firstName + ' ' + this.name;\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","// import { WorkYearProductionModel } from '../referential/work-year-production.model';\r\nimport { BasicModel } from '../basic.model';\r\nimport { ContractWork2Model } from './contract-work2.model';\r\n\r\nexport class ContractWorkModel {\r\n\r\n    public id: number;\r\n    public idInSession: number;\r\n    public selected: any = new BasicModel();\r\n    public workCodeMilo: string;\r\n    public miloCode: string;\r\n    public completeTitle: string;\r\n    public title: string;\r\n    public titleVO: string;\r\n    public titleWork: string;\r\n    public yearOfProduction: string;\r\n    public workYearProductLabel: string;\r\n    public action: string;\r\n    public contractId: number;\r\n    public workRefId: number;\r\n    public idWork: number;\r\n    public financialAmount: number;\r\n    public checked: boolean = false;\r\n    public relatedWorks: ContractWork2Model[] = [];\r\n    public included: BasicModel[] = [];\r\n    public excluded: BasicModel[] = [];\r\n\r\n    constructor() {\r\n    }\r\n\r\n    public getAllIdExcluded(): number[] {\r\n        return this.excluded.map((x) => x.id);\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { BasicModel } from '../basic.model';\r\n\r\nexport class ContractWork2Model {\r\n\r\n    public id: number;\r\n    public selected: any = new BasicModel();\r\n    public workCodeMilo: string;\r\n    public miloCode: string;\r\n    public title: string;\r\n    public titleVO: string;\r\n    public titleWork: string;\r\n    public yearOfProduction: string;\r\n    public workYearProductLabel: string;\r\n    public action: string;\r\n    public contractId: number;\r\n    public workRefId: number;\r\n    public idWork: number;\r\n    public financialAmount: number;\r\n    public checked: boolean = false;\r\n    public included: BasicModel[] = [];\r\n    public excluded: BasicModel[] = [];\r\n\r\n    constructor() {\r\n\r\n    }\r\n\r\n    public getAllIdExcluded(): number[] {\r\n        return this.excluded.map((x) => x.id);\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { EventEmitter, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FormActionsEventsService {\r\n\r\n    public updateEvent: EventEmitter<boolean> = new EventEmitter<boolean>(true);\r\n    public consultToEdit: EventEmitter<boolean> = new EventEmitter<boolean>(true);\r\n    public EditToConsult: EventEmitter<boolean> = new EventEmitter<boolean>(true);\r\n    public consultToDuplicate: EventEmitter<boolean> = new EventEmitter<boolean>(true);\r\n\r\n    public emitUpdateEvent(): void {\r\n        this.updateEvent.emit();\r\n    }\r\n\r\n    public emitEventIsUpdateTrue(): void  {\r\n        this.consultToEdit.emit(true);\r\n    }\r\n\r\n    public emitConsultEvent(): void  {\r\n        this.EditToConsult.emit();\r\n    }\r\n}\r\n","import { SectionModel } from './section.model';\r\n\r\nexport class PermissionModel {\r\n    constructor(public id: number = null,\r\n                public label: string = null,\r\n                public code: string = null,\r\n                public priority: number = null,\r\n                public sectionId: number = null,\r\n                public section: SectionModel = null,\r\n                public description: string = null) {\r\n    }\r\n\r\n    public fromJSON(json: any): this {\r\n        for (let propName in json) {\r\n            if (json.hasOwnProperty(propName)) {\r\n                this[propName] = json[propName];\r\n            }\r\n        }\r\n        return this;\r\n    }\r\n}\r\n","import { PermissionModel } from './permission.model';\r\n\r\nexport class SectionModel {\r\n\r\n    public id: number = null;\r\n    public sectionName: string = null;\r\n    public permissions: PermissionModel[] = [];\r\n\r\n    constructor() {\r\n    }\r\n}\r\n","import { FamilyModel } from \"./family.model\";\r\n\r\nexport class SubsidiaryModel {\r\n  public id: number = null;\r\n  public label: string = null;\r\n  public family: FamilyModel = null;\r\n\r\n  constructor() {\r\n  }\r\n}\r\n","export class FamilyModel {\r\n    public id: number = null;\r\n    public label: string = null;\r\n    constructor() {\r\n    }\r\n}\r\n","import { SectionModel } from './section.model';\r\nimport { NotificationClassification } from '../enums/notification-classification.enum';\r\n\r\nexport class NotificationModel {\r\n  public id: number;\r\n  public description: string;\r\n  public classification: NotificationClassification;\r\n  public messageEn: string;\r\n  public messageFr: string;\r\n  public targetSections: SectionModel[];\r\n  public publicationDate: Date;\r\n  public expirationDate: Date;\r\n  public published: boolean;\r\n  public createdBy: string;\r\n  public createdDate: Date;\r\n}\r\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\r\nimport { Config, WEB_CONFIG } from '../../config';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CommonApiService } from '../api/common-api.service';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { AuthUserModel } from '../../models';\r\nimport { inject } from '@angular/core';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { Observable, of } from \"rxjs\";\r\n\r\nexport const authGuard: CanActivateFn = (\r\n  route: ActivatedRouteSnapshot,\r\n  state: RouterStateSnapshot\r\n) => {\r\n  const cookieService: CookieService = inject(CookieService);\r\n  const commonApiService: CommonApiService = inject(CommonApiService);\r\n  const webConfig: Config = inject(WEB_CONFIG);\r\n  const authService: AuthService = inject(AuthService);\r\n\r\n  if (state.url.includes('/login/invalid')) {\r\n    return true;\r\n  }\r\n\r\n  if (commonApiService.isTokenValid()) {\r\n    authService.setAuthenticated(true);\r\n    return true;\r\n  }\r\n\r\n  const user: AuthUserModel = commonApiService.getUserDataFromToken();\r\n  const email: string = user.secondary ? user.email : cookieService.get('auth-mail');\r\n\r\n  return commonApiService.ssoLogin(email).pipe(\r\n    map((data: any): boolean => {\r\n      user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\r\n      authService.setAuthenticated(true);\r\n      return true;\r\n    }),\r\n    catchError((): Observable<boolean> => {\r\n      authService.setAuthenticated(false);\r\n      window.location.href = webConfig.api_url + '/login/invalid';\r\n      return of(false);\r\n    })\r\n  );\r\n};\r\n","import { inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { map } from \"rxjs/operators\";\r\n\r\nexport const loginGuard = () => {\r\n    const dialog: MatDialog = inject(MatDialog);\r\n    const authService: AuthService = inject(AuthService);\r\n\r\n  if (sessionStorage.getItem('authToken') !== null) {\r\n      authService.setAuthenticated(true);\r\n      return true;\r\n  } else {\r\n    const dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = dialog.open(MyDialogPopupLoginComponent, {\r\n      disableClose: true\r\n    });\r\n\r\n    return dialogRef.afterClosed().pipe(\r\n      map((res: boolean): boolean => {\r\n        authService.setAuthenticated(res);\r\n        return res;\r\n      })\r\n    );\r\n  }\r\n};\r\n","import { HttpParams } from \"@angular/common/http\";\r\n\r\nexport class HttpParamsBuilder {\r\n  private params: HttpParams;\r\n\r\n  constructor() {\r\n    this.params = new HttpParams();\r\n  }\r\n\r\n  append(param: string, value: any): this {\r\n    if (this.isNotEmpty(value)) {\r\n      this.params = this.params.append(param, value);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  appendAll(criteriaModel: object): this {\r\n    for (const property in criteriaModel) {\r\n      this.append(property, criteriaModel[property]);\r\n    }\r\n    return this;\r\n  }\r\n\r\n  build(): HttpParams {\r\n    return this.params;\r\n  }\r\n\r\n  private isNotEmpty(value: any): boolean {\r\n    return value !== null\r\n      && value !== undefined\r\n      && !(typeof value === 'string' && value.trim().length === 0);\r\n  }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter, switchMap, take } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { CommonApiService } from '../api/common-api.service';\r\nimport { AuthUserModel } from '../../models';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n  private refreshTokenInProgress: boolean = false;\r\n  private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\r\n    null\r\n  );\r\n  private readonly commonApiService: CommonApiService = inject(CommonApiService);\r\n  private readonly cookieService: CookieService = inject(CookieService);\r\n\r\n  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {\r\n      return next.handle(request);\r\n    }\r\n\r\n    if (!this.commonApiService.isTokenValid()) {\r\n      if (this.refreshTokenInProgress) {\r\n        return this.refreshTokenSubject.pipe(\r\n          filter((result: any): boolean => result !== null),\r\n          take(1),\r\n          switchMap((): Observable<HttpEvent<any>> => next.handle(this.addToken(request)))\r\n        );\r\n      } else {\r\n        this.refreshTokenInProgress = true;\r\n        this.refreshTokenSubject.next(null);\r\n        const user: AuthUserModel = this.commonApiService.getUserDataFromToken();\r\n        const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\r\n\r\n        return this.commonApiService.ssoLogin(email)\r\n          .pipe(\r\n            switchMap((data: any): Observable<HttpEvent<any>> => {\r\n              this.commonApiService.setToken(data.token);\r\n              this.refreshTokenInProgress = false;\r\n              this.refreshTokenSubject.next(data.token);\r\n              return next.handle(this.addToken(request));\r\n            })\r\n          );\r\n      }\r\n    }\r\n\r\n    return next.handle(this.addToken(request));\r\n  }\r\n\r\n  private addToken(request: HttpRequest<any>): HttpRequest<any> {\r\n    const token: string = this.commonApiService.getToken();\r\n    if (!token) {\r\n      return request;\r\n    }\r\n\r\n    return request.clone({\r\n      headers: request.headers.set('Authorization', `Bearer ${token}`)\r\n    });\r\n  }\r\n}\r\n","export enum StatusColor {\r\n  BLUE = 'status-blue',\r\n  GREEN = 'status-green',\r\n  ORANGE = 'status-orange',\r\n  RED = 'status-red',\r\n  PINK = 'status-pink',\r\n  GREY = 'status-grey',\r\n  WHITE = 'status-white'\r\n}\r\n","export enum PersonalNotificationPriorityEnum {\r\n  INFO = 'INFO',\r\n  WARN = 'WARN',\r\n  CRITICAL = 'CRITICAL'\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { TranslateLoader } from '@ngx-translate/core';\r\nimport { forkJoin, Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport merge from 'deepmerge';\r\nimport { inject } from \"@angular/core\";\r\n\r\n\r\ninterface ITranslationResource {\r\n  prefix: string;\r\n  suffix: string;\r\n}\r\n\r\nexport class MultiTranslateHttpLoader implements TranslateLoader {\r\n  private readonly http: HttpClient = inject(HttpClient);\r\n\r\n  constructor(\r\n    private resources: ITranslationResource[],\r\n  ) {\r\n  }\r\n\r\n  public getTranslation(lang: string): Observable<any> {\r\n    const requests = this.resources.map(resource => {\r\n      const path: string = resource.prefix + lang + resource.suffix;\r\n      return this.http.get(path).pipe(catchError(res => {\r\n        console.error('Something went wrong for the following translation file:', path);\r\n        console.error(res.message);\r\n        return of({});\r\n      }));\r\n    });\r\n    return forkJoin(requests).pipe(map(response => merge.all(response)));\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of front-common-library-3\r\n */\r\n\r\nexport * from './lib/util/util.module';\r\nexport * from './lib/util/array.service';\r\nexport { User } from './lib/util/decorators/user.decorator';\r\nexport { Theme } from './lib/util/decorators/theme.decorator';\r\nexport { CustomMatPaginatorIntl } from './lib/util/paginator/custom-paginator-configuration';\r\nexport * from './lib/util/services/storage/local-storage.service';\r\nexport * from './lib/util/services/storage/session-storage.service';\r\nexport * from './lib/util/event/storage/local-storage-events.service';\r\nexport * from './lib/util/event/storage/session-storage-events.service';\r\nexport { PermissionsInterface } from './lib/util/interfaces/permissions.interface'\r\nexport * from './lib/util/config'\r\nexport * from './lib/util/theme/theme-event.service';\r\nexport * from './lib/util/regex/regex.service';\r\nexport * from './lib/util/permissions/permissions.service';\r\nexport * from './lib/util/date/date.util';\r\nexport * from './lib/util/date/date-format-constants';\r\nexport * from './lib/util/sort';\r\nexport * from './lib/util/number.validator';\r\n\r\nexport * from './lib/util/services/jwt-security/aes.service';\r\nexport * from './lib/util/component/overlay/overlay.service';\r\nexport * from './lib/util/component/overlay/overlay.component';\r\nexport * from './lib/util/component/header/header.component';\r\nexport * from './lib/util/component/sub-header/sub-header.component';\r\nexport * from './lib/util/component/popup/popup-login/popup-login.component';\r\n\r\n\r\nexport * from './lib/util/services/jwt-security/jwt.helpher';\r\nexport * from './lib/util/models';\r\n\r\n\r\nexport * from './lib/util/services/guard/auth.guard';\r\nexport * from './lib/util/services/guard/login.guard';\r\nexport * from './lib/util/services/form-action/form-actions-events.service';\r\nexport * from './lib/util/services/api/common-api.service';\r\nexport * from './lib/util/services/history/history.service';\r\nexport * from './lib/util/services/translate-language/lang.service';\r\nexport * from './lib/util/services/elasticsearch/elasticsearch.service';\r\nexport * from './lib/util/services/auth/auth.service';\r\nexport * from './lib/util/services/user/user-subsidiary.service';\r\nexport * from './lib/util/http/http-params.builder';\r\n\r\nexport * from './lib/util/date/PeriodModel';\r\nexport * from './lib/util/pipes/capitalizefirst.pipe';\r\nexport * from './lib/util/services/interceptor/auth.interceptor';\r\nexport * from './lib/util/pipes/local-date.pipe';\r\nexport * from './lib/util/pipes/trim-string.pipe';\r\nexport * from './lib/util/pipes/common-translate.pipe';\r\n\r\nexport * from './lib/util/pipes/my-number.pipe';\r\nexport * from './lib/util/pipes/comma-separated-number.pipe';\r\nexport * from './lib/util/pipes/display-html.pipe';\r\nexport * from './lib/util/pipes/display-null.pipe';\r\nexport * from './lib/util/pipes/format-number-input.pipe';\r\nexport * from './lib/util/directives/my-number-formatter-directive';\r\nexport * from './lib/util/pipes/third-party-address.pipe';\r\nexport * from './lib/util/pipes/format-duration.pipe';\r\nexport * from './lib/util/pipes/format-currency.pipe';\r\nexport * from './lib/util/pipes/notification-classification-icon.pipe';\r\n\r\nexport * from './lib/util/enums/status-color.enum';\r\nexport * from './lib/util/enums/notification-classification.enum';\r\nexport * from './lib/util/enums/personal-notification-priority.enum';\r\n\r\nexport * from './lib/util/toaster/toaster-events.service';\r\nexport * from './lib/util/event/header/header-events.service';\r\n\r\nexport * from './lib/util/directives/show-if-truncated.directive';\r\n\r\nexport * from './lib/util/i18n/multi-translate-http-loader';\r\n\r\nexport * from './lib/util/services/notification/notification.service';\r\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","i1.RapidSearchSelectionDirective","i3.CommonTranslatePipe","i2.CommonTranslatePipe","i3.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","Client","i1.NotificationApiService","i2.LocalStorageService","i3.AuthService","i1.NotificationService","i5.CommonTranslatePipe","i3.NotificationClassificationIconPipe","i5.MenuComponent","i6.AdvancedSearchComponent","i7.HistoryComponent","i8.PersonalNotificationComponent","i9.SettingsComponent","i10.NotificationBarComponent","i11.CommonTranslatePipe","i7","ReferentielModel"],"mappings":"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"}