new-front-common-library 18.0.2-REF2 → 18.0.2-REF3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"new-front-common-library.mjs","sources":["../../../projects/new-front-common-library/src/lib/util/config.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/jwt.helpher.ts","../../../projects/new-front-common-library/src/lib/util/services/api/common-api.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/local-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/local-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/interceptorhttp.service.ts","../../../projects/new-front-common-library/src/lib/util/pipes/my-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/directives/my-number-formatter-directive.ts","../../../projects/new-front-common-library/src/lib/util/pipes/capitalizefirst.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/comma-separated-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-html.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-null.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/format-number-input.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/local-date.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/trim-string.pipe.ts","../../../projects/new-front-common-library/src/lib/util/theme/theme-event.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/session-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/session-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/decorators/user.decorator.ts","../../../projects/new-front-common-library/src/lib/util/enums/family.enum.ts","../../../projects/new-front-common-library/src/lib/util/services/user/user-subsidiary.service.ts","../../../projects/new-front-common-library/src/lib/util/permissions/permissions.service.ts","../../../projects/new-front-common-library/src/lib/util/array.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.html","../../../projects/new-front-common-library/src/lib/util/models/commercial/work-record-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/models/commercial/invoice-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/services/api/legal-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/subsidiaries.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/elasticsearch.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/commercial-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/video-api.service.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.const.ts","../../../projects/new-front-common-library/src/lib/util/i18n/en.ts","../../../projects/new-front-common-library/src/lib/util/i18n/fr.ts","../../../projects/new-front-common-library/src/lib/util/i18n/de.ts","../../../projects/new-front-common-library/src/lib/util/pipes/common-translate.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.html","../../../projects/new-front-common-library/src/lib/util/enums/rapid-search-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/pipes/third-party-address-search.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.html","../../../projects/new-front-common-library/src/lib/util/enums/history-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.html","../../../projects/new-front-common-library/src/lib/util/services/translate-language/lang.service.ts","../../../projects/new-front-common-library/src/lib/util/decorators/theme.decorator.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/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/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/i18n/multi-translate-http-loader.ts","../../../projects/new-front-common-library/src/public-api.ts","../../../projects/new-front-common-library/src/new-front-common-library.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const WEB_CONFIG = new InjectionToken<Config>('WEB_CONFIG');\n\nexport interface Config {\n api_url: string;\n env: string;\n elasticsearch_url?: string;\n}\n\nexport const DEFAULT_WEB_CONFIG: Config = {\n api_url: 'http://localhost:8080',\n env: 'DEV',\n elasticsearch_url: 'https://vpc-unity-search-dev-nm5ydumospctjfaatstfjvoqey.eu-west-1.es.amazonaws.com'\n};\n","export class JwtHelper {\n\n public decodeToken(token: string): any {\n let parts: string[] = token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n let decoded: string = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token');\n }\n return JSON.parse(decoded);\n }\n\n private urlBase64Decode(str: string): string {\n let output: string = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw 'Illegal base64url string!';\n }\n }\n return decodeURIComponent((<any>window).escape(window.atob(output)));\n\n }\n\n\n}\n","import { ProductModel, PurchaseOrderModel } from '../../models';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n// Angular2\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { catchError } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { JwtHelper } from '../jwt-security/jwt.helpher';\n\n\nconst TOKEN_NAME = 'authToken';\nconst SECONDARY_TOKEN_NAME = 'authTokenSecondary';\n\n@Injectable()\nexport class CommonApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly http: HttpClient = inject(HttpClient);\n\n public headers: HttpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n public jwtHelper: JwtHelper = new JwtHelper();\n\n public static handleError(error: any): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError(() => errMsg);\n }\n\n // Global product search\n public getProductGlobalSearch(\n searchInput: string,\n language: string\n ): Observable<ProductModel[]> {\n return this.http\n .get<ProductModel[]>(\n this.config.api_url +\n '/video-api/products/globalSearch?searchInput=' +\n searchInput +\n '&language=' +\n language\n )\n .pipe(catchError(CommonApiService.handleError));\n }\n\n public getPurchaseOrderByGlobalSearch(\n searchInput: string,\n language: string\n ): Observable<PurchaseOrderModel[]> {\n return this.http\n .get<PurchaseOrderModel[]>(\n this.config.api_url +\n '/video-api/purchaseOrders/globalSearch?searchInput=' +\n searchInput +\n '&language=' +\n language\n )\n .pipe(catchError(CommonApiService.handleError));\n }\n\n public setToken(token: string): void {\n sessionStorage.removeItem(TOKEN_NAME);\n sessionStorage.setItem(TOKEN_NAME, token);\n }\n\n public setSecondaryToken(token: string): void {\n sessionStorage.removeItem(SECONDARY_TOKEN_NAME);\n sessionStorage.setItem(SECONDARY_TOKEN_NAME, token);\n }\n\n getToken(): string {\n const user: any = this.decodeToken(TOKEN_NAME);\n if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n return sessionStorage.getItem(SECONDARY_TOKEN_NAME);\n }\n\n return sessionStorage.getItem(TOKEN_NAME);\n }\n\n public decodeToken(tokenName: string): any {\n return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\n }\n\n public getUserDataFromToken(): any {\n const user: any = this.decodeToken(TOKEN_NAME);\n\n if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n return Object.assign({secondary: true}, this.decodeToken(SECONDARY_TOKEN_NAME));\n }\n\n return user;\n }\n\n public isTokenValid(): boolean {\n let payload: any;\n try {\n payload = this.getUserDataFromToken();\n } catch (e) {\n payload = {};\n }\n\n if (!payload.exp) {\n return false;\n }\n\n return payload.exp * 1000 > Date.now();\n }\n\n public ssoLogin(email: string): Observable<any> {\n const url: string = this.config.api_url + '/authorization-api/login/email';\n\n return this.http\n .post(url, email, {headers: this.headers})\n .pipe(catchError(CommonApiService.handleError));\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageEventsService {\n\n public localStorageEvent: EventEmitter<any> = new EventEmitter();\n\n // emit an event when local storage change\n public emitLocalStorageEvent(): void {\n this.localStorageEvent.emit('maj localstorage');\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\n\n@Injectable()\nexport class LocalStorageService {\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n\n // Check if the data exist in the session storage\n public exist(key: string): boolean {\n return localStorage.hasOwnProperty(key);\n }\n\n public get(key: string): any {\n return (this.exist(key) && !!localStorage.getItem(key)) ? JSON.parse(localStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any): void {\n localStorage.setItem(key, JSON.stringify(data));\n this.localStorageEventsService.emitLocalStorageEvent();\n }\n\n // check if the key exist in the local storage and if it equals to the value param\n public contains(key: string, data: any): boolean {\n return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1;\n }\n\n public delete(key: string): boolean {\n if (this.exist(key)) {\n localStorage.removeItem(key);\n return true;\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nconst AUTH_HEADER_KEY = 'Authorization';\nconst AUTH_PREFIX = 'Bearer ';\nconst TOKEN_NAME = 'authToken';\n\n@Injectable()\nexport class InterceptorHttpService implements HttpInterceptor {\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n return next.handle(req);\n }\n\n // TODO à refaire lorsque l'on réactivera l'interceptor du BACK d'orphe\n // public request(url: string | Request): Observable<Response> {\n //\n // const token = sessionStorage.getItem(TOKEN_NAME);\n //\n // const options = {headers: new Headers()};\n // if (typeof url === 'string') {\n //\n // options.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n // } else {\n // url.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n // }\n // return super.request(url, options).catch(this.catchError);\n // }\n //\n // public get(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.get(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public post(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.post(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public put(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.put(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public delete(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.delete(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public patch(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.patch(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public head(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.head(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public options(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.options(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // // Ajout de l'attribut Authorization au Header\n // private setAuthorizationHeader(options?) {\n //\n // const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n // // Copie du header dans le RequestOptions et ajout du token a 'Authorization'\n // const headers = {\n // ...options.headers.toJSON(),\n // Authorization: token\n // };\n // options.headers = new Headers(headers);\n // return options;\n // }\n //\n // // Response Interceptor\n // private catchError(error: any): Observable<any> {\n //\n // if (error instanceof HttpErrorResponse) {\n // return Observable.throw(error);\n // } else if (error instanceof Response) {\n // if (sessionStorage.getItem('loginFlag') === 'true' && error.status === 401) {\n // sessionStorage.removeItem(TOKEN_NAME);\n // sessionStorage.removeItem('loginFlag');\n // window.location.reload();\n // }\n // return Observable.throw(error);\n // } else {\n // return Observable.throw(error);\n // }\n // }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({name: 'myNumberFormat'})\nexport class MyNumberPipe implements PipeTransform {\n private DECIMAL_SEPARATOR: string;\n private THOUSANDS_SEPARATOR: string;\n\n constructor() {\n // TODO comes from configuration settings\n this.DECIMAL_SEPARATOR = '.';\n this.THOUSANDS_SEPARATOR = ' ';\n }\n\n public transform(value: number | string, fractionSize: number): string {\n if (value !== '' && value !== null) {\n let [integer, fraction = ''] = value\n .toString()\n .split(this.DECIMAL_SEPARATOR);\n\n fraction =\n fractionSize > 0\n ? this.DECIMAL_SEPARATOR +\n (fraction + PADDING).substring(0, fractionSize)\n : '';\n\n integer = integer.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n this.THOUSANDS_SEPARATOR\n );\n return integer + fraction;\n } else {\n return null;\n }\n }\n\n public parse(value: string, fractionSize: number): string {\n let [integer, fraction = ''] = (value || '').split(this.DECIMAL_SEPARATOR);\n\n integer = integer.replace(new RegExp(this.THOUSANDS_SEPARATOR, 'g'), '');\n\n fraction =\n parseInt(fraction, 10) > 0 && fractionSize > 0\n ? this.DECIMAL_SEPARATOR +\n (fraction + PADDING).substring(0, fractionSize)\n : '';\n\n return integer + fraction;\n }\n}\n","import { Directive, ElementRef, HostListener, inject, input, InputSignal, OnInit } from '@angular/core';\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\n\n@Directive({selector: '[myNumberFormatter]'})\nexport class MyNumberFormatterDirective implements OnInit {\n decimalNumber: InputSignal<number> = input<number>();\n private el: HTMLInputElement;\n\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly currencyPipe: MyNumberPipe = inject(MyNumberPipe);\n\n constructor() {\n this.el = this.elementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n this.el.value = this.currencyPipe.transform(\n this.el.value,\n this.decimalNumber()\n );\n }\n\n @HostListener('focus', ['$event.target.value'])\n public onFocus(value: any): void {\n this.el.value = this.currencyPipe.parse(value, this.decimalNumber()); // opposite of transform\n }\n\n @HostListener('blur', ['$event.target.value'])\n public onBlur(value: any): void {\n this.el.value = this.currencyPipe.transform(value, this.decimalNumber());\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'myCapitalizeFirst'\n})\nexport class CapitalizefirstPipe implements PipeTransform {\n public transform(value: string): string {\n if (value == null) {\n return '';\n }\n let valueArgs: string;\n\n let args: string[] = (value.split('-'));\n if (args.length === 2) {\n for (let i = 0; i < args.length; i++) {\n args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();\n valueArgs = args.join('-');\n }\n } else {\n args = value.split(' ');\n for (let i = 0; i < args.length; i++) {\n args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();\n valueArgs = args.join(' ');\n }\n }\n\n return valueArgs;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'mySpacesNumberPipe'})\nexport class SpacesNumberPipe implements PipeTransform {\n public transform(value: any): any {\n // we remove all spaces\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'mySanitizeHtml'\n})\nexport class SanitizeHtml implements PipeTransform {\n\n constructor(private _sanitizer: DomSanitizer) {\n }\n\n public transform(html: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myDisplayNullPipe'})\nexport class DisplayNullPipe implements PipeTransform {\n\n private static returnCorrectFormat(object: any): any {\n return (object) ? object : '-';\n }\n\n public transform(value: any, fieldName: string = ''): any {\n // Case 1: test value param\n if (!fieldName) {\n return DisplayNullPipe.returnCorrectFormat(value);\n } else {\n // Case 2: test sub attribut value\n return (value) ? DisplayNullPipe.returnCorrectFormat(value[fieldName]) : '-';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myAddSpacesInputPipe'})\nexport class FormatNumberInput implements PipeTransform {\n public transform(numberValue: any): any {\n if (numberValue === null || numberValue < 0 || isNaN(numberValue)) {\n return null;\n }\n numberValue = numberValue.toString();\n\n // remove spaces\n numberValue = numberValue.replace(/ /g, '');\n\n // add spaces\n numberValue = numberValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n return numberValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({name: 'myLocalDateFormat'})\nexport class LocalDatePipe implements PipeTransform {\n\n public perpetuityLabel: string = '';\n\n public transform(\n value: any,\n currentLanguage: string,\n format: string\n ): string {\n\n if (currentLanguage === 'fr') {\n this.perpetuityLabel = 'Perpétuité';\n } else if (currentLanguage === 'en' || currentLanguage === 'de') {\n this.perpetuityLabel = 'Perpetuity';\n }\n\n if (value === '-' || value === this.perpetuityLabel) {\n return this.perpetuityLabel;\n }\n return new DatePipe(currentLanguage).transform(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myTrimString'})\nexport class TrimStringPipe implements PipeTransform {\n\n public transform(value: string, size: number, message: string): string {\n // Case 1: test value param\n if (value === null || value === undefined || value === '') {\n return value;\n }\n\n if (value.length < size) {\n return value;\n }\n\n let posSpace: number = value.indexOf(' ', size);\n if (posSpace !== -1) {\n return value.substring(0, posSpace) + ' ' + message;\n }\n\n return value.substring(0, size) + ' ' + message;\n }\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ThemeEventsService {\n\n public switchThemeEmitter: EventEmitter<any> = new EventEmitter();\n\n // emit an event when local storage change\n public switchTheme(): void {\n this.switchThemeEmitter.emit();\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SessionStorageEventsService {\n public sessionsStorageUpdateEvent: EventEmitter<any> = new EventEmitter();\n public updateSubscriberEvent: EventEmitter<any> = new EventEmitter();\n\n // emit a success event toaster\n public emitUpdate(): void {\n this.sessionsStorageUpdateEvent.emit('update');\n }\n}\n","// Angular 2\nimport { inject, Injectable } from '@angular/core';\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\n\n// Services\n\n@Injectable()\nexport class SessionStorageService {\n private readonly sessionStorageEventsService: SessionStorageEventsService = inject(SessionStorageEventsService);\n\n // Check if the data exist in the session storage\n public exist(key: string): boolean {\n return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key));\n }\n\n public get(key: string): any {\n return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any): void {\n sessionStorage.setItem(key, JSON.stringify(data));\n this.sessionStorageEventsService.emitUpdate();\n }\n\n // check if the key exist in the session storage and if it equals to the value param\n public contains(key: string, data: any): boolean {\n return this.get(key).indexOf(JSON.stringify(data)) !== -1;\n }\n\n public delete(key: string): boolean {\n if (this.exist(key)) {\n sessionStorage.removeItem(key);\n return true;\n }\n return false;\n }\n}\n","import { JwtHelper } from '../services/jwt-security/jwt.helpher';\n\nexport function User(): (target: any, key: string) => void {\n\n const jwtHelper: JwtHelper = new JwtHelper();\n return (target: any, key: string): void => {\n\n // Check if the data exist in the local storage\n function exist(dataKey: string): boolean {\n return sessionStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(user: string): any {\n return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;\n }\n\n Object.defineProperty(target, key, {\n configurable: false,\n get: () => {\n const user: any = get('authToken');\n if (user && user.superAdmin && exist('authTokenSecondary')) {\n return Object.assign({secondary: true}, get('authTokenSecondary'));\n }\n return user;\n }\n });\n };\n\n}\n","export enum Family {\n CANAL_PLUS_INTERNATIONAL = 'Canal+ International',\n STUDIOCANAL = 'Studiocanal',\n}\n","import { Injectable } from '@angular/core';\nimport { SubsidiaryModel, UserModel } from '../../models';\nimport { Family } from '../../enums/family.enum';\nimport { User } from '../../decorators/user.decorator';\n\n@Injectable()\nexport class UserSubsidiaryService {\n @User() public user: UserModel;\n\n public isCanalPlusInternationalUser(): boolean {\n return this.user?.subsidiaries?.length > 0 && this.user.subsidiaries.every(\n (value: SubsidiaryModel): boolean => value.family?.label === Family.CANAL_PLUS_INTERNATIONAL.valueOf()\n );\n }\n\n public isStudiocanalUser(): boolean {\n return this.user?.subsidiaries?.length > 0 && this.user?.subsidiaries?.some(\n (value: SubsidiaryModel): boolean => value.family?.label === Family.STUDIOCANAL.valueOf()\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { User } from '../decorators/user.decorator';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\nimport { AuthUserModel } from \"../models\";\n\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\n\n@Injectable()\nexport class PermissionsService {\n @User() public user: AuthUserModel;\n\n\n private readonly permissionsService: NgxPermissionsService = inject(NgxPermissionsService);\n private readonly userSubsidiaryService: UserSubsidiaryService = inject(UserSubsidiaryService);\n\n public init(): void {\n if (this.user?.permissions?.length > 0 && this.shouldLoadUserPermissions()) {\n const userPermissions: string[] = this.user.permissions.map((p) => p.code);\n\n // Create a virtual permission that can be used to restrict access if user only has access to \"C+I\"\n // subsidiaries\n if (this.userSubsidiaryService.isCanalPlusInternationalUser()) {\n userPermissions.push(CANAL_PLUS_INTERNATIONAL_RESTRICTION);\n }\n\n this.permissionsService.loadPermissions(userPermissions);\n }\n }\n\n public hasPermission(code: string): boolean {\n return this.user?.permissions?.filter((p: any): boolean => p.code === code).length > 0;\n }\n\n private shouldLoadUserPermissions(): boolean {\n const loadedPermissions: string[] = Object.keys(this.permissionsService.getPermissions());\n if (loadedPermissions.length !== this.user.permissions.length) {\n return true;\n }\n let res: boolean = false;\n this.user.permissions.forEach((p: any): void => {\n if (loadedPermissions.indexOf(p.code) === -1) {\n res = true;\n }\n });\n return res;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ArrayService {\n\n /** Check if a value is in array */\n public inArray(value: any, array: any): boolean {\n if (value === null || array === null) {\n return false;\n } else {\n return array.indexOf(value) !== -1;\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class OverlayService {\n public showEvent: EventEmitter<string> = new EventEmitter<string>();\n public hideEvent: EventEmitter<any> = new EventEmitter<any>();\n public setMessageEvent: EventEmitter<string> = new EventEmitter<string>();\n\n public show(message?: string): void {\n this.showEvent.emit(message);\n }\n\n public setMessage(message: string): void {\n this.setMessageEvent.emit(message);\n }\n\n public hide(): void {\n this.hideEvent.emit();\n }\n}\n","import { ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\nimport { OverlayService } from './overlay.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'sc-overlay',\n styleUrls: ['./overlay.component.css'],\n templateUrl: './overlay.component.html'\n})\nexport class OverlayComponent implements OnInit {\n public message: string;\n public show: boolean = false;\n\n private readonly router: Router = inject(Router);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly overlayService: OverlayService = inject(OverlayService);\n private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n public ngOnInit(): void {\n this.router.events.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.showEvent.subscribe((message?: string): void => {\n this.message = message || this.message;\n this.show = true;\n this.cdr.detectChanges();\n });\n\n this.overlayService.hideEvent.subscribe((): void => {\n this.show = false;\n });\n\n this.overlayService.setMessageEvent.subscribe((message: string) => {\n this.message = message;\n });\n }\n}\n","@if (show) {\n <div class=\"blackshield\"></div>\n\n <div class=\"d-flex justify-content-center align-items-center\">\n <mat-card class=\"overshield\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center\">\n <span>{{ message || 'CORE.OVERLAY.LOADING' | translate }}</span>\n <mat-spinner diameter=\"40\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n </div>\n}\n\n\n","export class WorkRecordRapidSearchModel {\n id: string;\n workRecordId: string;\n dealNumber: string;\n thirdPartyClientName: string;\n miloCode: string;\n amount: number;\n currencyCode: string;\n titles: {\n vo: string;\n fr?: string;\n en?: string;\n de?: string;\n }\n docType: string;\n\n /**\n * Returns the title for the language. If the language is undefined or unsupported, returns the VO title.\n * @param language\n */\n getTitle(language?: string): string {\n if (!language || !this.titles[language] || this.titles[language].length === 0) {\n return this.titles.vo;\n }\n\n return this.titles[language];\n }\n}\n","export class InvoiceRapidSearchModel {\n number: string;\n dealNumber: string;\n thirdPartyClientName: string;\n miloCode: string;\n amount: number;\n currencyCode: string;\n right: boolean;\n invoiceId: number;\n docType: string;\n titles: {\n vo: string;\n fr?: string;\n en?: string;\n de?: string;\n }\n\n getTitle(language?: string): string {\n if (!language || !this.titles[language] || this.titles[language].length === 0) {\n return this.titles.vo;\n }\n\n return this.titles[language];\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { catchError } from \"rxjs/operators\";\nimport { HttpClient } from \"@angular/common/http\";\n\n@Injectable()\nexport class LegalApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly http: HttpClient = inject(HttpClient);\n\n public apiUrl: string = this.config.api_url + '/legal-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\n return this.http.get<Record<number, number[]>>(this.apiUrl + 'societe/subsidiary_mapping')\n .pipe(catchError(this.handleError));\n }\n\n public handleError(error: any): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError((): any => errMsg);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { SubsidiaryModel } from \"../../models\";\nimport { LegalApiService } from \"../api/legal-api.service\";\n\n@Injectable({providedIn: 'root'})\nexport class SubsidiariesService {\n\n private readonly legalService: LegalApiService = inject(LegalApiService);\n\n private defaultMapping: Record<number, number[]> = {\n 1: [4991],\n 2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1]\n }\n\n private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\n\n constructor() {\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n const isLocal = window.location.hostname === 'localhost';\n if (!isLocal) {\n this.loadTableSocieteAppartenance();\n } else {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n }\n }\n loadTableSocieteAppartenance(): void {\n this.legalService.getMappingSocietesSubsidiaries().subscribe({\n next: (map: Record<number, number[]>): void => {\n this.subsidiaryToSocieteMapLegal = map;\n },\n error: (): void => {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n }\n })\n }\n\n getSocieteAppartenance(subsidiaries: SubsidiaryModel[]): number[] {\n if (subsidiaries === null) {\n return null;\n }\n return subsidiaries\n .reduce((acc: number[], sub: SubsidiaryModel): number[] => {\n const societes: number[] = this.subsidiaryToSocieteMapLegal[sub.id] || [];\n return acc.concat(societes);\n }, [])\n .filter((v: number, i: number, arr: number[]): boolean => arr.indexOf(v) === i);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { Client as ClientJs } from 'elasticsearch-browser';\nimport { Client, MSearchResponse } from 'elasticsearch';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { WorkRecordRapidSearchModel } from \"../../models/commercial/work-record-rapid-search-model\";\nimport { InvoiceRapidSearchModel } from \"../../models/commercial/invoice-rapid-search-model\";\nimport { AuthUserModel, SubsidiaryModel } from \"../../models\";\nimport { SubsidiariesService } from \"./subsidiaries.service\";\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\n\n\n@Injectable()\nexport class ElasticsearchService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly subsidiariesMappingService: SubsidiariesService = inject(SubsidiariesService);\n\n private client: Client;\n PROFILE_SEARCH_CONFIG = {\n 'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'VIDEO_CONSULT': ['unity-product*'],\n 'BDC': ['unity-purchase-order*'],\n 'LEGAL': ['unity-contract*'],\n 'ROYALTY': ['unity-royalty-contract', 'unity-royalty-count', 'unity-royalty-invoice'],\n }\n\n private getElasticsearchClient(): Client {\n if (!this.client) {\n this.client = new ClientJs({\n host: this.config.elasticsearch_url\n });\n }\n return this.client;\n }\n\n public getSearchResponse(text: string, user: AuthUserModel): Observable<MSearchResponse<any>> {\n const allIndexes: Set<string> = new Set<string>();\n allIndexes.add('unity-work-version*')\n allIndexes.add('unity-third-party*')\n\n for (const permission of user.permissions) {\n const indexes: any = this.PROFILE_SEARCH_CONFIG[permission.code];\n indexes?.forEach(idx => allIndexes.add(idx));\n }\n\n const body: any[] = [];\n for (const index of allIndexes) {\n body.push({index});\n switch (index) {\n case 'unity-work-version*' :\n body.push({\n query: {\n dis_max: {\n queries: [{wildcard: {miloCode: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}, {wildcard: {title: {value: text + '*'}}}, {wildcard: {title: {value: text}}}],\n tie_breaker: 0.5\n }\n },\n sort: [{_score: {order: 'desc'}}, {title: {order: \"asc\"}}],\n size: 50\n });\n break;\n case 'unity-product*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}]}},\n sort: {releaseDate: {order: 'desc'}},\n size: 50\n });\n break;\n case 'unity-purchase-order*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {poNumber: {value: '*' + text + '*'}}}, {wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {basketNumber: {value: '*' + text + '*'}}}]}},\n size: 50\n });\n break;\n case 'unity-deal*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {dealNumber: {value: '*' + text + '*'}}}]}},\n sort: [{_score: {order: 'desc'}}, {'dealNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-work-record*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {workRecordId: {value: '*' + text + '*'}}}]}},\n sort: [{'workRecordId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-invoice*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {number: {value: '*' + text + '*'}}}]}},\n sort: [{'number.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-third-party*' :\n body.push({\n query: {\n dis_max: {\n queries: [{wildcard: {companyOrPersonName: {value: '*' + text + '*'}}}, {wildcard: {companyOrPersonName: {value: text + '*'}}}, {wildcard: {companyOrPersonName: {value: text}}}],\n tie_breaker: 0.5\n }\n },\n sort: [{_score: {order: 'desc'}}, {companyOrPersonName: {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-contract*': {\n const societes = this.subsidiariesMappingService.getSocieteAppartenance(user.subsidiaries);\n if (!societes || societes.length === 0) {\n break;\n }\n body.push({\n query: {\n bool: this.composeContractQuery(text, societes)\n },\n sort: [{'lisaId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n }\n case 'unity-royalty-contract' :\n body.push({\n query: {wildcard: {\"contractNumber.keyword\": {value: '*' + text + '*', case_insensitive: true}}},\n sort: [{'contractNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-count' :\n body.push({\n query: {wildcard: {\"countNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n sort: [{'countNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-invoice' :\n body.push({\n query: {wildcard: {\"invoiceNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n sort: [{'invoiceNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n }\n }\n return from(this.getElasticsearchClient().msearch({body}));\n }\n\n public getDocuments(searchResponse: any): RapidSearchAllDocumentModel[] {\n let results: any[] = [];\n if (searchResponse && searchResponse.responses) {\n for (const r of searchResponse.responses) {\n if (r.error || !r.hits) {\n continue;\n }\n\n const item: any = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];\n results = results.concat(item);\n }\n }\n return results;\n }\n\n mapDocument(doc: any): any {\n switch (doc._source.docType) {\n case 'INVOICE':\n return Object.assign(new InvoiceRapidSearchModel(), doc._source);\n case 'WORK_RECORD':\n return Object.assign(new WorkRecordRapidSearchModel(), doc._source);\n default:\n return doc._source;\n }\n }\n\n private composeContractQuery(text: string, societes: number[]) {\n return {\n must: [{wildcard: {lisaId: {value: `*${text}*`}}}],\n filter: [{terms: {'societeAppartenance.keyword': societes.map(String)}}]\n };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\n\n@Injectable()\nexport class CommercialApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n\n public apiUrl: string = this.config.api_url + '/commercial-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public static handleError(error: Response): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError((): any => errMsg);\n }\n\n public getAccountWrittingDownload(): void {\n window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class VideoApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly http: HttpClient = inject(HttpClient);\n\n public apiUrl: string = this.config.api_url + '/video-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public static handleError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error.message);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong,\n console.error(\n `Backend returned code ${error.status}, ` +\n `body was: ${error.ok}`);\n }\n // return an observable with a user-facing error message\n return throwError(() => 'Something bad happened; please try again later.');\n }\n\n public getProductExtractionXlsx(lang: string): Observable<any> {\n return this.http.get(this.apiUrl + `products/all-products-to-xlsx?language=${lang}`, {responseType: 'blob'})\n .pipe(catchError(VideoApiService.handleError));\n }\n\n}\n","import { Menu } from './menu.model';\nimport { CANAL_PLUS_INTERNATIONAL_RESTRICTION } from '../../../permissions/permissions.service';\n\nexport const MENU_SECTIONS: Menu[] = [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB',\n permissions: [],\n restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR',\n module: 'calendar',\n route: '',\n actionType: 'navigate',\n permissions: []\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT',\n permissions: ['PA_CAMPAIGN_SEARCH', 'PA_CAMPAIGN_CREATION'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD',\n module: 'slate-management',\n route: '/dashboard',\n actionType: 'navigate',\n permissions: ['PA_CAMPAIGN_SEARCH']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE',\n module: 'slate-management',\n route: '/dashboard',\n actionType: 'navigate',\n queryParams: '{\"createCampaign\" : true}',\n permissions: ['PA_CAMPAIGN_CREATION']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING',\n module: 'slate-management',\n route: '/calendar',\n actionType: 'navigate',\n permissions: ['PA_CAMPAIGN_CREATION']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY',\n permissions: ['ROYALTY'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT',\n module: 'royalty',\n route: '/contract/search',\n actionType: 'navigate',\n permissions: ['ROYALTY']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT',\n module: 'royalty',\n route: '/contract/init',\n actionType: 'navigate',\n permissions: ['ROYALTY_EDIT']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT',\n module: 'royalty',\n route: '/contract/create-blank',\n actionType: 'navigate',\n permissions: ['ROYALTY_EDIT']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING',\n module: 'royalty',\n route: '/reporting',\n actionType: 'navigate',\n permissions: ['ROYALTY']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE',\n permissions: ['ULTIMATES'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE',\n module: null,\n route: '/ultimates',\n actionType: 'navigate',\n permissions: ['ULTIMATES']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA',\n permissions: ['TVDATA'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA',\n module: 'tvdata',\n route: '/infos-center',\n actionType: 'navigate',\n permissions: ['TVDATA']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT',\n permissions: ['PILOT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT',\n module: 'pilot',\n route: '/tv-series',\n actionType: 'navigate',\n permissions: ['PILOT']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI',\n module: null,\n route: 'https://app.powerbi.com/groups/me/apps/3bdbab87-921d-4271-bb63-2136541ed7a5/reports/6ed06054-c77f-450e-8c37-3fbc66761525/ReportSection?ctid=bf5c5de1-6a54-4091-a72f-90e32801628c&experience=power-bi',\n actionType: 'redirect',\n permissions: []\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL',\n permissions: ['COMMERCIAL', 'ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH',\n permissions: ['COMMERCIAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL',\n module: 'commercial',\n route: '/deal/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD',\n module: 'commercial',\n route: '/work-record/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE',\n module: 'commercial',\n route: '/invoice/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING',\n module: 'commercial',\n route: '/e-invoicing/search',\n actionType: 'navigate',\n permissions: ['E-INVOICING']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD',\n module: 'commercial',\n route: '/vod/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME',\n module: 'commercial',\n route: '/vod/volumes',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER',\n module: 'commercial',\n route: '/turnover/search',\n actionType: 'navigate',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING',\n module: 'commercial',\n route: '/accounting-closing/consult',\n actionType: 'navigate',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION',\n module: 'commercial-api',\n route: '/accounting-writing/get-account-writting-file',\n actionType: 'exportAccountWriting',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS',\n permissions: ['COMMERCIAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE',\n module: 'commercial',\n route: '/deal/form',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING',\n module: 'commercial',\n route: '/work-record/reporting',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR',\n module: 'commercial',\n route: '/work-record/console',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL',\n permissions: ['LEGAL'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH',\n permissions: ['LEGAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS',\n module: 'legal',\n route: '/work-legal-details',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ',\n module: 'legal',\n route: '/contracts/search',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE',\n module: 'legal',\n route: '/contracts/search/CESS',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH',\n module: 'legal',\n route: '/advanced-search',\n actionType: 'navigate',\n permissions: ['LEGAL']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ',\n module: 'legal',\n route: '/contracts-details/createContract/acq',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE',\n module: 'legal',\n route: '/contracts-details/createContract/sales',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR',\n module: 'legal',\n route: '/contracts-details/createContract/auth',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER',\n permissions: ['LEGAL'],\n restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS',\n module: 'legal',\n route: '/electronic-documents',\n actionType: 'navigate',\n permissions: ['LEGAL']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY',\n module: 'legal',\n route: '/history',\n actionType: 'navigate',\n permissions: ['LEGAL']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO',\n permissions: ['VIDEO_CONSULT'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT',\n permissions: ['VIDEO_CONSULT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE',\n module: 'video',\n route: '/product/form',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL',\n module: 'video-api',\n route: '/products/all-products-to-xlsx',\n actionType: 'extractProduct',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH',\n module: null,\n route: '/advanced-search/product',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER',\n module: 'video',\n route: '/finance/sap-order-table',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT', 'SAP_ORDER']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT',\n module: 'video',\n route: '/product/validate-product',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT', 'VALIDATION PRUP/QEF']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.PO',\n permissions: ['BDC', 'BUDGET'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.PO.PO',\n permissions: ['BDC'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.PO.PO.DASHBOARD',\n module: 'expenditure-commitment',\n route: '/home/commands',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.CREATE',\n module: 'expenditure-commitment',\n route: '/purchase-orders/form',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.VALIDATE',\n module: 'expenditure-commitment',\n route: '/purchase-orders/validate',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.DELIVERY',\n module: 'expenditure-commitment',\n route: '/purchase-orders/delivery',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH',\n module: null,\n route: '/advanced-search/purchase-order',\n actionType: 'navigate',\n permissions: ['BDC']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.PO.BUDGET',\n permissions: ['BDC', 'BUDGET'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET',\n module: 'expenditure-commitment',\n route: '/budget/search',\n actionType: 'navigate',\n permissions: ['BDC', 'BUDGET']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.BI',\n permissions: ['MODULE BI'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.BI',\n permissions: ['MODULE BI'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.BI',\n module: 'bi',\n route: '/simple-search/form',\n actionType: 'navigate',\n permissions: ['MODULE BI']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL',\n permissions: [],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK',\n permissions: ['WORK_CREATOR'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK',\n module: 'referential',\n route: '/work/create-work',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER',\n module: 'referential',\n route: '/work/create-header',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE',\n module: 'referential',\n route: '/work/create-control-code',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING',\n module: 'mapping',\n route: '',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON',\n permissions: ['WORK_CREATOR'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON',\n module: 'referential',\n route: '/person/create-person',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS',\n module: 'referential',\n route: '/medias',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES',\n module: 'referential',\n route: '/territories',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES',\n module: 'referential',\n route: '/languages',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES',\n module: 'referential',\n route: '/alertes',\n actionType: 'navigate',\n permissions: []\n }\n ]\n }\n ]\n }\n];\n","export const en = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titles',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Count',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Emission date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'End date',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n 'COMMON.HEADER.HISTORY.PO': 'PO',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n 'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n 'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n 'COMMON.HEADER.STOP': 'Stop',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Legal',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Sales support',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","export const fr = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Tableau de bord',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Utilisateurs',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Mes préférences',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Communications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Référentiels',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Administration des Batches',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Engagement de dépenses',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Aide à la vente',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendrier',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'avancée',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Recherche ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Produit',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Date de sortie',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Commande',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'N° Panier',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Oeuvre',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Code milo',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Année de production',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Montant',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Date de validation',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Tiers',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Titre',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titres',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contrat N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Statut',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Cedant',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Facture',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Décompte',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Date d\\'émission',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'Date de fin',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Produit',\n 'COMMON.HEADER.HISTORY.PO': 'Commande',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contrat',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contrat',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contrat',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'Pas d\\'historique disponible',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'créer un produit',\n 'COMMON.HEADER.CREATION.PO': 'créer une commande',\n 'COMMON.HEADER.CREATION.DEAL': 'créer un deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'créer un contrat d\\'acquisition',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'créer un contrat de cession',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'créer un contrat d\\'auteur',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'créer une campagne',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connectée en tant que',\n 'COMMON.HEADER.STOP': 'Arrêter',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Changer le thème',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'changer de langue',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendrier',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendrier',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Créer une campagne',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Planning de sortie',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'P&A à valider',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Rechercher une campagne',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Rechercher un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Initialiser un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Créer un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Recherche',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Facture',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Compta/CDG',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Chiffre d\\'affaire',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Clôturer la période',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Extraction fichier comptable',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utiles',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Créer un deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Facturation en erreur',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Juridique',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Recherche',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Fiche juridique',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Contrat d\\'acquisition',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Contrat de cession',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Recherche avancée',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contrats',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Créer un contrat d\\'acquisition',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Créer un contrat de cession',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Créer un contrat d\\'auteur',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Autre',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Documents numérisés',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historique',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Vidéo',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Créer un produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Exporter tous les produits',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Rechercher un produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'Ordres SAP',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validation PRUP/QEF',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Commande',\n 'COMMON.HEADER.MENU.PO.PO': 'Commande',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Créer une commande',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Commandes à valider',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Commandes à réceptionner',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Rechercher une commande',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Aide à la vente',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Référentiel',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossaire',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Médias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territoires',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Langues',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Oeuvre',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Créer une oeuvre',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Créer un header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Créer un code de gestion',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Personne',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Créer une personne',\n};\n\n","export const de = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n 'COMMON.HEADER.HISTORY.PO': 'PO',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n 'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n 'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n 'COMMON.HEADER.STOP': 'Stop',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Legal',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Sales support',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { en } from '../i18n/en';\nimport { fr } from '../i18n/fr';\nimport { de } from '../i18n/de';\nimport { LocalStorageService } from \"../services/storage/local-storage.service\";\n\n\n@Pipe({name: 'commonTranslate'})\nexport class CommonTranslatePipe implements PipeTransform {\n\n private availableTranslations = {en, fr, de};\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public transform(value: string, lang?: string): string {\n let currentLang: string = lang;\n if (!lang) {\n currentLang = this.localStorageService.get('lang');\n }\n\n if (this.isValidLang(currentLang)) {\n const currentTranslation: any = this.availableTranslations[currentLang];\n return currentTranslation[value];\n }\n }\n\n private isValidLang(lang: string): boolean {\n if (lang) {\n const languages: string[] = ['en', 'fr', 'de'];\n if (languages.indexOf(lang) !== -1) {\n return true;\n }\n }\n return false;\n }\n}\n","import { Component, HostListener, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { CommercialApiService } from '../../../services/api/commercial-api.service';\nimport { VideoApiService } from '../../../services/api/video-api.service';\nimport { OverlayService } from '../../overlay/overlay.service';\nimport { MENU_SECTIONS } from './menu.const';\nimport { Menu, MenuLink } from './menu.model';\n\n@Component({\n selector: 'sc-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss']\n})\nexport class MenuComponent {\n lang: InputSignal<string> = input<string>();\n navigate: OutputEmitterRef<MenuLink> = output<MenuLink>();\n redirect: OutputEmitterRef<MenuLink> = output<MenuLink>();\n\n public activeMenu: string | null = null;\n public readonly menuButtons: Menu[] = MENU_SECTIONS;\n private menuTriggerRef: MatMenuTrigger | null = null;\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n const menuButton: Element = (event.target as HTMLElement).closest('.button-wrapper');\n const insideMenu: Element = (event.target as HTMLElement).closest('.mat-menu-panel');\n\n if (!menuButton && !insideMenu) {\n this.forceCloseMenu();\n }\n }\n\n private readonly overlayService: OverlayService = inject(OverlayService);\n private readonly videoApiService: VideoApiService = inject(VideoApiService);\n private readonly commercialApiService: CommercialApiService = inject(CommercialApiService);\n\n public openMenu(menuTrigger: MatMenuTrigger, menuLabel: string): void {\n if (this.activeMenu === menuLabel) {\n this.forceCloseMenu();\n return;\n }\n\n this.forceCloseMenu();\n this.activeMenu = menuLabel;\n this.menuTriggerRef = menuTrigger;\n menuTrigger.openMenu();\n }\n\n public forceCloseMenu(): void {\n this.activeMenu = null;\n this.menuTriggerRef?.closeMenu();\n }\n\n public extractAllProducts(): void {\n this.overlayService.show();\n this.videoApiService.getProductExtractionXlsx(this.lang()).subscribe(res => {\n const xlsFile = new Blob([res], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n const fileURL: string = URL.createObjectURL(xlsFile);\n window.open(fileURL);\n this.overlayService.hide();\n });\n }\n\n public extractAccountWrittingDownload(): void {\n this.overlayService.show();\n this.commercialApiService.getAccountWrittingDownload();\n this.overlayService.hide();\n }\n\n public performAction(link: MenuLink): void {\n this.forceCloseMenu();\n\n switch (link.actionType) {\n case 'navigate':\n this.navigate.emit(link);\n break;\n case 'redirect':\n this.redirect.emit(link);\n break;\n case 'exportAccountWriting':\n this.extractAccountWrittingDownload();\n break;\n case 'extractProduct':\n this.extractAllProducts();\n break;\n default:\n throw new Error(`performAction error - No action type on menuLink : ${link}`);\n }\n }\n}\n","<div class=\"d-flex justify-content-start\">\n @for (menuCurrent of menuButtons; track menuCurrent) {\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\n <mat-toolbar class=\"toolbar-padding\">\n <div\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\n class=\"button-wrapper\"\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\n >\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\n style=\"z-index: 99999\">\n <div class=\"text-menu-button\">\n <span>{{ menuCurrent.label | commonTranslate : lang() }}</span>\n <div class=\"indicator\">\n <div class=\"line primary\"></div>\n </div>\n </div>\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\n expand_more\n </mat-icon>\n </button>\n <div class=\"indicator\"></div>\n </div>\n </mat-toolbar>\n\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\n [hasBackdrop]=\"false\">\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\n @for (section of menuCurrent.sections; track section) {\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\n <div class=\"menu-section\">\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang() }}</h3>\n @for (link of section.links; track link) {\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\n class=\"custom-menu-item\">\n {{ link.label | commonTranslate : lang() }}\n </button>\n </ng-container>\n }\n </div>\n </ng-container>\n </ng-container>\n }\n </div>\n </mat-menu>\n </ng-container>\n }\n</div>\n","export enum RapidSearchItemType {\n PURCHASE_ORDER = 'PURCHASE_ORDER',\n PRODUCT = 'PRODUCT',\n WORK_VERSION = 'WORK_VERSION',\n DEAL = 'DEAL',\n WORK_RECORD = 'WORK_RECORD',\n THIRD_PARTY = 'THIRD_PARTY',\n CONTRACT ='CONTRACT',\n INVOICE = 'INVOICE',\n ROYALTY_CONTRACT = 'ROYALTY_CONTRACT',\n ROYALTY_INVOICE = 'ROYALTY_INVOICE',\n ROYALTY_COUNT = 'ROYALTY_COUNT',\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport {\n PurchaseOrderRapidSearchModel\n} from \"../../../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n\n@Component({\n selector: 'sc-purchase-order-rapid-search',\n templateUrl: './purchase-order-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class PurchaseOrderRapidSearchComponent {\n document: InputSignal<PurchaseOrderRapidSearchModel> = input<PurchaseOrderRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: 'expenditure-commitment', route: '/purchase-orders/' + this.document().poId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt_long</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-70\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER' | commonTranslate: lang() }}</span>\n <span>{{ document().poNumber }}\n - {{ document().totalAmount | currency: document().currencyCode:'symbol':undefined:'fr-FR' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER' | commonTranslate: lang() }}</span>\n <span>{{ document()?.basketNumber ? document().basketNumber : '-' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n <span>{{ document()?.ean ? document().ean : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ProductRapidSearchModel } from \"../../../../models/video/product-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-product-rapid-search',\n templateUrl: './product-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ProductRapidSearchComponent {\n document: InputSignal<ProductRapidSearchModel> = input<ProductRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n labelLang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: 'video', route: '/product/consult/' + this.document().productId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">movie</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"ellipsis d-flex flex-column max-width-60\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().title }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT' | commonTranslate: lang() }}</span>\n <span>{{ document().support[labelLang()] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n <span>{{ document().ean }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE' | commonTranslate: lang() }}</span>\n <span>{{ document()?.releaseDate ? document().releaseDate : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkVersionRapidSearchModel } from \"../../../../models/referential/work-version-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-work-version-rapid-search',\n templateUrl: './work-version-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class WorkVersionRapidSearchComponent {\n document: InputSignal<WorkVersionRapidSearchModel> = input<WorkVersionRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/work-summary/' + this.document().id + '/info'});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">theaters</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-75 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().title }} ({{ document().codeIso }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}</span>\n <span>{{ document().miloCode }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR' | commonTranslate: lang() }}</span>\n <span>{{ document().yearOfProduction }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { DealRapidSearchModel } from \"../../../../models/commercial/deal-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-deal-rapid-search',\n templateUrl: './deal-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class DealRapidSearchComponent {\n document: InputSignal<DealRapidSearchModel> = input<DealRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/commercial/deal/consult/' + this.document().id})\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">local_offer</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-70 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }} - {{ document().thirdPartyClientName }}\n ({{ document().thirdPartyClientSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().calculatedAmount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang() }}</span>\n <span>{{ document().validationDate }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkRecordRapidSearchModel } from \"../../../../models/commercial/work-record-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-work-record-rapid-search',\n templateUrl: './work-record-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class WorkRecordRapidSearchComponent {\n document: InputSignal<WorkRecordRapidSearchModel> = input<WorkRecordRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/commercial/work-record/consult/' + this.document().id + '/general'});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">assignment</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().id }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-35\">\n <span class=\"auto-complete-label\">\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }} {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}\n )\n </span>\n <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThirdPartyAddressRapidSearchModel } from \"../models/referential/third-party-address-rapid-search.model\";\n\n@Pipe({name: 'thirdPartyAddressSearch'})\nexport class ThirdPartyAddressSearchPipe implements PipeTransform {\n\n transform(thirdPartyAddressSearch: ThirdPartyAddressRapidSearchModel, lang?: string): string {\n const countryLabelMap = new Map<string, string>([['en', thirdPartyAddressSearch.countryEn], ['fr', thirdPartyAddressSearch.countryFr], ['de', thirdPartyAddressSearch.countryDe]]);\n return thirdPartyAddressSearch?.street + '-' + thirdPartyAddressSearch?.zipCode + '-' + thirdPartyAddressSearch?.city + '-' + countryLabelMap.get(lang);\n }\n\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ThirdPartyRapidSearchModel } from \"../../../../models/referential/third-party-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-third-party-rapid-search',\n templateUrl: './third-party-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ThirdPartyRapidSearchComponent {\n document: InputSignal<ThirdPartyRapidSearchModel> = input<ThirdPartyRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/referential/third-party/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">person</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-85 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().companyOrPersonName }}\n ({{ document().address | thirdPartyAddressSearch: lang() }}\n )</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE' | commonTranslate: lang() }}</span>\n <span>{{ document().code }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ContractRapidSearchModel } from \"../../../../models/legal/contract-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-contract-rapid-search',\n templateUrl: './contract-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ContractRapidSearchComponent {\n document: InputSignal<ContractRapidSearchModel> = input<ContractRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n labelLang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n public getContractType(type: string): 'cess' | 'acq' | 'auth' {\n return type === 'Sale' ? 'cess' : type === 'Acquisition' ? 'acq' : 'auth';\n }\n\n onSelectSearch(): void {\n this.redirect.emit({\n module: null,\n route: '/legal/contracts-details/' + this.getContractType(this.document().type.labelEn) + '/' + this.document().contractId\n })\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n @switch (getContractType(document().type.labelEn)) {\n @case ('cess') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n }\n @case ('acq') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\n }\n @case ('auth') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">account_circle</span>\n }\n }\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().lisaId }} </span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang() }}</span>\n <span>{{ document().type[labelLang()] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang() }}</span>\n <span>{{ document().status[labelLang()] }}</span>\n </div>\n @if (document().type.labelEn !== 'Sale') {\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang() }}</span>\n <span>{{ document().licensor ? document().licensor : '-' }}</span>\n </div>\n } @else {\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang() }}</span>\n <span>{{ document().customer ? document().customer : '-' }}</span>\n </div>\n }\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { InvoiceRapidSearchModel } from \"../../../../models/commercial/invoice-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-invoice-rapid-search',\n templateUrl: './invoice-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class InvoiceRapidSearchComponent {\n document: InputSignal<InvoiceRapidSearchModel> = input<InvoiceRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n if (this.document().right) {\n this.redirect.emit({\n module: null,\n route: '/commercial/invoice/right-payment-consult?idEcheance=' + this.document().invoiceId\n });\n } else {\n this.redirect.emit({\n module: null,\n route: '/commercial/invoice/material-payment-consult?idEcheance=' + this.document().invoiceId\n });\n }\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().number }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-35\">\n <span class=\"auto-complete-label\">\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }}\n ({{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }})\n </span>\n <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyContractRapidSearchModel } from \"../../../../models/royalty/royalty-contract-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-contract-rapid-search',\n templateUrl: './royalty-contract-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyContractRapidSearchComponent {\n document: InputSignal<RoyaltyContractRapidSearchModel> = input<RoyaltyContractRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/contract/consult/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{document().clientCodeSap}})</span>\n </div>\n <div class=\"d-flex flex-column max-width-50 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().works.join(', ') }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyInvoiceRapidSearchModel } from \"../../../../models/royalty/royalty-invoice-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-invoice-rapid-search',\n templateUrl: './royalty-invoice-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyInvoiceRapidSearchComponent {\n document: InputSignal<RoyaltyInvoiceRapidSearchModel> = input<RoyaltyInvoiceRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().countId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().invoiceNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().countNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().emissionDate }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyCountRapidSearchModel } from \"../../../../models/royalty/royalty-count-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-count-rapid-search',\n templateUrl: './royalty-count-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyCountRapidSearchComponent {\n document: InputSignal<RoyaltyCountRapidSearchModel> = input<RoyaltyCountRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().countNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().periodEnd ? document().periodEnd : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, inject, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { RapidSearchItemType } from \"../../../enums/rapid-search-item-type.enum\";\nimport { RapidSearchAllDocumentModel } from \"../../../models/rapid-search-all-document.model\";\nimport { LocalStorageEventsService } from \"../../../event/storage/local-storage-events.service\";\nimport { Observable, of } from \"rxjs\";\nimport { FormControl } from \"@angular/forms\";\nimport { debounceTime, map, switchMap } from \"rxjs/operators\";\nimport { ElasticsearchService } from \"../../../services/elasticsearch/elasticsearch.service\";\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-advanced-search',\n templateUrl: './advanced-search.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class AdvancedSearchComponent implements OnInit {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n @User() public user: AuthUserModel;\n\n documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n public formControlSearch: FormControl<string>;\n public labelLang: string = 'labelFr';\n\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n\n public ngOnInit(): void {\n this.updateLabelLang(this.lang());\n this.localStorageEventsService.localStorageEvent.subscribe(() => {\n this.updateLabelLang(this.lang());\n });\n this.formControlSearch = new FormControl<string>(null);\n this.documents$ = this.formControlSearch.valueChanges.pipe(\n debounceTime(500),\n switchMap(term => {\n if (!term) {\n return of([]);\n }\n return this.elasticsearchService\n .getSearchResponse(term, this.user)\n .pipe(\n map(searchResponse => {\n return this.elasticsearchService.getDocuments(searchResponse);\n })\n );\n })\n );\n }\n\n private updateLabelLang(lang: string): void {\n switch (lang) {\n case 'en':\n this.labelLang = 'labelEn';\n break;\n case 'de':\n this.labelLang = 'labelDe';\n break;\n default:\n this.labelLang = 'labelFr';\n break;\n }\n }\n\n onNavigateEvent($event: LinkRoutingModuleModel): void {\n this.redirect.emit($event);\n }\n\n onNavigateAdvancedSearch(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n\n protected readonly RapidSearchItemType = RapidSearchItemType;\n}\n","<div class=\"global-search\">\n <mat-icon class=\"header-icon\">search</mat-icon>\n <span class=\"global-search-separator\"></span>\n <mat-form-field class=\"max-width-100\" subscriptSizing=\"dynamic\">\n <input [formControl]=\"formControlSearch\"\n [matAutocomplete]=\"autoSearch\"\n class=\"global-search-input max-width-85\"\n matInput\n placeholder=\"search ...\"/>\n\n <button (click)=\"onNavigateAdvancedSearch(null, '/advanced-search')\"\n matSuffix\n class=\"btn advanced-button\" mat-raised-button>\n <mat-icon>flash_on</mat-icon>\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED' | commonTranslate: lang() }}\n </button>\n\n <mat-autocomplete #autoSearch=\"matAutocomplete\" class=\"mat-autocomplete-global-search\" panelWidth=\"54vw\">\n @for (document of documents$ | async; track document) {\n <mat-option class=\"mat-option-global-search\">\n @switch (document.docType) {\n @case (RapidSearchItemType.PURCHASE_ORDER) {\n <sc-purchase-order-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-purchase-order-rapid-search>\n }\n @case (RapidSearchItemType.PRODUCT) {\n <sc-product-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n (redirect)=\"onNavigateEvent($event)\"></sc-product-rapid-search>\n }\n @case (RapidSearchItemType.WORK_VERSION) {\n <sc-work-version-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-work-version-rapid-search>\n }\n @case (RapidSearchItemType.DEAL) {\n <sc-deal-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-deal-rapid-search>\n }\n @case (RapidSearchItemType.WORK_RECORD) {\n <sc-work-record-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-work-record-rapid-search>\n }\n @case (RapidSearchItemType.THIRD_PARTY) {\n <sc-third-party-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-third-party-rapid-search>\n }\n @case (RapidSearchItemType.CONTRACT) {\n <sc-contract-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n (redirect)=\"onNavigateEvent($event)\"></sc-contract-rapid-search>\n }\n @case (RapidSearchItemType.INVOICE) {\n <sc-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-invoice-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_CONTRACT) {\n <sc-royalty-contract-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-contract-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_INVOICE) {\n <sc-royalty-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-invoice-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_COUNT) {\n <sc-royalty-count-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-count-rapid-search>\n }\n }\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n","export enum HistoryItemTypeEnum {\n PRODUCT = 'PRODUCT',\n PURCHASE_ORDER = 'PO',\n DEAL = 'DEAL',\n WORK = 'WORK',\n CONTRACT_ACQ = 'CONTRACT_ACQ',\n CONTRACT_CESS = 'CONTRACT_CESS',\n CONTRACT_AUTH = 'CONTRACT_AUTH',\n BUDGET = 'BUDGET',\n NO_HISTORY_AVAILABLE = 'NO_HISTORY_AVAILABLE'\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { HistoryItemTypeEnum } from \"../../../enums/history-item-type.enum\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-history',\n templateUrl: './history.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class HistoryComponent {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n public historyList: any[] = [];\n\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public getHistory(): void {\n this.historyList = [];\n if (this.localStorageService.exist('history')) {\n this.historyList = this.localStorageService.get('history');\n }\n\n if (this.historyList.length === 0) {\n this.historyList.push({type: 'NO_HISTORY_AVAILABLE', id: null, ref: null});\n }\n }\n\n public onSelectHistory(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n\n protected readonly HistoryItemTypeEnum = HistoryItemTypeEnum;\n}\n","<span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\" class=\"material-icons header-icon\" style=\"width: 100%\">history</span>\n\n<mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\n @for (history of historyList; track history) {\n @switch (history.type) {\n @case (HistoryItemTypeEnum.PRODUCT) {\n <button (click)=\"onSelectHistory('video ', '/product/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">theaters</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.PRODUCT' | commonTranslate : lang() }}{{ history.type }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.PURCHASE_ORDER) {\n <button (click)=\"onSelectHistory('expenditure-commitment', '/purchase-orders/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">receipt_long</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.PO' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.DEAL) {\n <button (click)=\"onSelectHistory('commercial', '/deal/consult/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">local_offer</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.DEAL' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.WORK) {\n <button (click)=\"onSelectHistory('commercial', '/work-record/consult/'+ history.id +'/general')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">assignment</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.WORK_RECORD' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_ACQ) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/acq/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">shop_two</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_ACQ' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_CESS) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/cess/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">receipt</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_CESS' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_AUTH) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/auth/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">account_circle</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_AUTH' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.BUDGET) {\n <button (click)=\"onSelectHistory('expenditure-commitment', '/budget/form/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">payments</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.BUDGET' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.NO_HISTORY_AVAILABLE) {\n <button mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">not_interested</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE' | commonTranslate : lang() }}\n </button>\n }\n }\n }\n</mat-menu>\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from \"../storage/local-storage.service\";\n\n@Injectable()\nexport class LangService {\n public switchLangEmitter: EventEmitter<any> = new EventEmitter();\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n translateLanguage(): void {\n this.translateService.addLangs(['en', 'fr', 'de']);\n if (this.localStorageService.exist('lang') && this.translateService.getLangs().indexOf(this.localStorageService.get('lang')) != -1) {\n this.translateService.use(this.localStorageService.get('lang'));\n } else {\n this.translateService.use(this.translateService.getLangs().indexOf(this.translateService.getBrowserLang()) != -1 ? this.translateService.getBrowserLang() : 'en');\n }\n this.localStorageService.post('lang', this.translateService.currentLang);\n }\n\n // emit an event when local storage change\n public switchLang(): void {\n this.switchLangEmitter.emit();\n }\n}\n","export function Theme(): (target: any, key: string) => void {\n return (target: any, key: string): void => {\n // Check if the data exist in the local storage\n function exist(dataKey: string): boolean {\n return localStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(theme: string): any {\n return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;\n }\n\n // Set data in the local storage and return it\n function setDefault(theme: any): string {\n localStorage.setItem('newTheme', JSON.stringify(theme));\n return theme;\n }\n\n Object.defineProperty(target, key, {\n configurable: false,\n get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))\n });\n };\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\nimport { LangService } from \"../../../services/translate-language/lang.service\";\nimport { Theme } from \"../../../decorators/theme.decorator\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-settings',\n templateUrl: './settings.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class SettingsComponent {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n @Theme() public theme: string;\n @User() public user: AuthUserModel;\n\n public languagesAvailable: string[] = [\"en\", \"fr\", \"de\"]\n restrictions: string[] = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\n\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly overlayContainer: OverlayContainer = inject(OverlayContainer);\n private readonly langService: LangService = inject(LangService);\n\n public switchTheme(): void {\n if (this.theme === 'dark') {\n this.localStorageService.post('newTheme', 'light');\n this.overlayContainer\n .getContainerElement()\n .classList.remove('dark-theme');\n this.overlayContainer.getContainerElement().classList.add('light-theme');\n } else {\n this.localStorageService.post('newTheme', 'dark');\n this.overlayContainer\n .getContainerElement()\n .classList.remove('light-theme');\n this.overlayContainer.getContainerElement().classList.add('dark-theme');\n }\n }\n\n public switchLang(lang: string): void {\n this.localStorageService.post('lang', lang);\n this.translateService.use(lang);\n this.langService.switchLang();\n }\n\n onRedirect(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n}\n","<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track lang()) {\n @if (lang() !== language) {\n <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\n <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\n <span>{{ language }}</span>\n </button>\n }\n }\n\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--NOTIFICATIONS-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n</mat-menu>\n","import { Inject, Injectable } from '@angular/core';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { Observable } from 'rxjs';\nimport { NotificationModel } from '../../models/notification.model';\nimport { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { CommonApiService } from './common-api.service';\n\n@Injectable()\nexport class NotificationApiService {\n public apiUrl: string = this.config.api_url + '/authorization-api/';\n\n constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n private readonly http: HttpClient) {\n }\n\n public getLiveNotifications(): Observable<NotificationModel[]> {\n return this.http.get<NotificationModel[]>(this.apiUrl + `notifications/live`)\n .pipe(catchError(CommonApiService.handleError));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n private readonly isAuthenticatedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n isAuthenticated$: Observable<boolean> = this.isAuthenticatedSubject.asObservable();\n\n public setAuthenticated(isAuthenticated: boolean): void {\n this.isAuthenticatedSubject.next(isAuthenticated);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Client, Message } from '@stomp/stompjs';\nimport { BehaviorSubject } from 'rxjs';\nimport SockJS from 'sockjs-client';\nimport { User } from '../../decorators/user.decorator';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { NotificationModel, UserModel } from '../../models';\nimport { NotificationApiService } from '../api/notification-api.service';\nimport { LocalStorageService } from '../storage/local-storage.service';\nimport { AuthService } from '../auth/auth.service';\n\nexport const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';\nexport const NOTIFICATION_TOPIC = '/topic/notification';\nexport const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n @User() public user: UserModel;\n\n public apiUrl: string;\n private stompClient: Client | null = null;\n\n private readonly notificationSubject = new BehaviorSubject<NotificationModel>(null);\n\n // Observable for components to subscribe to messages\n public notifications$ = this.notificationSubject.asObservable();\n\n // Subject to track the connection status (connected/disconnected)\n private readonly connectionSubject = new BehaviorSubject<boolean>(false);\n\n constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n private readonly notificationApiService: NotificationApiService,\n private readonly localStorage: LocalStorageService,\n readonly authService: AuthService) {\n this.apiUrl = this.config.api_url + NOTIFICATION_WEBSOCKET_URL;\n authService.isAuthenticated$.subscribe(isAuthenticated => {\n if (isAuthenticated) {\n this.fetchLiveNotifications();\n this.subscribeToNotifications();\n }\n });\n }\n\n public ackNotification(notification: NotificationModel): void {\n const ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n ackedNotifications.push(notification.id);\n this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n }\n\n private fetchLiveNotifications(): void {\n this.notificationApiService.getLiveNotifications().subscribe(notifications => {\n const liveNotificationIds = notifications.map(notification => notification.id);\n\n // Clear up any acked notifications that have expired (no longer live)\n let ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n ackedNotifications = ackedNotifications.filter(ackedNotificationId => liveNotificationIds.indexOf(ackedNotificationId) >= 0)\n this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n\n // Handle new notifications\n notifications.filter(notification => notification.published)\n .filter(notification => ackedNotifications.indexOf(notification.id) === -1)\n .forEach(notification => this.handleNotification(notification));\n });\n }\n\n private subscribeToNotifications(): void {\n if (this.stompClient) {\n return;\n }\n\n // Start listening for new notifications\n const socket = new SockJS(this.apiUrl); // Initialize the SockJS WebSocket connection to the server\n\n // Configure the STOMP client with connection details\n this.stompClient = new Client({\n webSocketFactory: () => socket, // Use SockJS as the WebSocket factory\n reconnectDelay: 5000, // Reconnect delay if connection is lost\n });\n\n if (!this.stompClient) {\n console.error('Failed to initialize stomp client');\n return;\n }\n\n // On successful connection\n this.stompClient.onConnect = () => {\n this.connectionSubject.next(true);\n // Register notification callback\n this.stompClient.subscribe(NOTIFICATION_TOPIC, (message: Message) => {\n const notification: NotificationModel = JSON.parse(message.body);\n this.handleNotification(notification);\n });\n };\n\n this.stompClient.onStompError = (frame) => {\n console.error('Broker reported error: ' + frame.headers['message']);\n console.error('Additional details: ' + frame.body);\n };\n\n console.log('Activating stomp client');\n this.stompClient.activate();\n }\n\n private handleNotification(notification: NotificationModel): void {\n const targetSectionIds = notification.targetSections.map(section => section.id);\n const userSectionIds = this.user.permissions.map(permission => permission.sectionId);\n\n if (targetSectionIds.some((targetSectionId) => userSectionIds.includes(targetSectionId))) {\n this.notificationSubject.next(notification);\n }\n }\n}\n","import { Component, inject, input, InputSignal, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { NotificationService } from '../../services/notification/notification.service';\nimport { NotificationModel } from '../../models';\n\n@Component({\n selector: 'notification-bar',\n templateUrl: './notification-bar.component.html',\n styleUrls: [ './notification-bar.component.scss' ]\n})\nexport class NotificationBarComponent implements OnInit, OnDestroy {\n lang: InputSignal<string> = input<string>();\n\n public notifications: NotificationModel[] = [];\n\n private readonly subs = new Subscription();\n\n private readonly notificationService: NotificationService = inject(NotificationService);\n\n ngOnInit(): void {\n this.subs.add(this.notificationService.notifications$.subscribe(notification => {\n if (notification && !this.notifications.some(otherNotification => otherNotification.id === notification.id)) {\n this.notifications.push(notification);\n }\n }));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n public ackNotification(notification: NotificationModel): void {\n this.notificationService.ackNotification(notification);\n let index = this.notifications.indexOf(notification);\n this.notifications.splice(index, 1);\n }\n}\n","<div class=\"notification-bar-wrapper\">\n <div *ngFor=\"let notification of notifications\"\n [ngClass]=\"'notification-bar notification-bar-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n <ng-container *ngIf=\"notification.classification === 'INFO'\">info</ng-container>\n <ng-container *ngIf=\"notification.classification === 'FEAT'\">rocket_launch</ng-container>\n <ng-container *ngIf=\"notification.classification === 'MAINT'\">warning_amber</ng-container>\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n</div>\n","import { Component, HostListener, inject, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PermissionsInterface } from \"../../interfaces/permissions.interface\";\nimport { User } from \"../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../models\";\nimport { LocalStorageEventsService } from \"../../event/storage/local-storage-events.service\";\nimport { LocalStorageService } from \"../../services/storage/local-storage.service\";\nimport { PermissionsService } from \"../../permissions/permissions.service\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { ElasticsearchService } from \"../../services/elasticsearch/elasticsearch.service\";\nimport { FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\nimport { LinkRoutingModuleModel } from \"../../models/link-routing-module.model\";\n\n\n@Component({\n selector: 'sc-header',\n styleUrls: ['./header.component.scss'],\n templateUrl: './header.component.html'\n})\nexport class HeaderComponent implements OnInit, PermissionsInterface {\n @User() public user: AuthUserModel;\n toogleMenuEvent: OutputEmitterRef<any> = output<any>();\n\n public lang: string;\n public isHide: boolean = false;\n public currentScroll: number = 0;\n public env: string;\n public formControlSearch: FormControl<string>;\n public documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n\n private readonly router: Router = inject(Router);\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n private readonly permissionsService: PermissionsService = inject(PermissionsService);\n private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n private readonly config: Config = inject(WEB_CONFIG);\n\n public ngOnInit(): void {\n this.formControlSearch = new FormControl<string>(null);\n\n this.initPermissionsService();\n this.lang = this.localStorageService.get('lang') || 'fr';\n this.env = this.config.env.toLowerCase();\n this.localStorageEventsService.localStorageEvent.subscribe(() => {\n this.lang = this.localStorageService.get('lang');\n });\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll(): void {\n const numberVar: number = document.documentElement.scrollTop;\n if (numberVar > this.currentScroll) {\n this.isHide = true;\n }\n if (numberVar < this.currentScroll) {\n this.isHide = false;\n }\n this.currentScroll = numberVar;\n }\n\n\n public initPermissionsService(): void {\n this.permissionsService.init();\n }\n\n stopIdentityTheft(): void {\n sessionStorage.removeItem('authTokenSecondary');\n }\n\n public onNavigateEvent($event: LinkRoutingModuleModel): void {\n this.navigate($event.module, $event.route, $event.queryParamString);\n }\n\n public navigate(module = '', route: string, queryParamString?: string | null): void {\n if (!route.startsWith('/')) {\n route = '/' + route;\n }\n\n const url: string = this.config.api_url + (module ? `/${module}` : '') + route;\n let queryParams: any = null;\n if (queryParamString != null) {\n queryParams = JSON.parse(queryParamString);\n }\n\n if (window.location.href === url && queryParams == null) {\n window.location.reload();\n } else if (window.location.pathname.startsWith(`/${module}`)) {\n this.router\n .navigateByUrl('/', {skipLocationChange: true})\n .then(() => this.router.navigate([route], queryParams ? {queryParams} : {}));\n } else {\n window.location.href = url;\n }\n }\n\n public redirect(route: string): void {\n window.location.href = route;\n }\n}\n","<!-- Notifications container -->\n<notification-bar [lang]=\"lang\"></notification-bar>\n\n<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\n <!-- Unity Logo -->\n <span class=\"d-flex align-items-end\">\n <a\n [href]=\"env === 'prod' ? 'https://unity.studiocanal.com/dashboard' : (env === 'sbx' ? 'https://unity-sbx.cplus/dashboard' : 'https://unity-' + env + '.studiocanal.com/dashboard')\">\n <img class=\"logo-unity\" alt=\"\" ngSrc=\"./assets/img/unity_logo_48x48.png\" width=\"48\" height=\"48\">\n </a>\n @if (env !== 'prod') {\n <span [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\n }\n </span>\n\n <!-- Modules menu -->\n <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\n (redirect)=\"redirect($event.route)\" class=\"menu-header\"/>\n\n <!-- Search -->\n <sc-advanced-search [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"global-search\"/>\n\n <!-- Connected as -->\n @if (user && user.secondary) {\n <div class=\"connected-as d-flex justify-content-between align-items-center\">\n <span style=\"margin-right: 10px\">\n {{ 'COMMON.HEADER.CONNECTED_AS' | commonTranslate: lang }} {{ user.login + ' - ' + user.firstName + ' ' + user.name }}\n </span>\n\n @if (user.secondary) {\n <button (click)=\"stopIdentityTheft()\" color=\"warn\" mat-raised-button>\n {{ 'CORE.STOP' | commonTranslate: lang }}\n </button>\n }\n </div>\n }\n\n <!-- History -->\n <sc-history [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"material-icons header-icon max-width-5\"/>\n <span class=\"header-separator\"></span>\n <!-- Settings -->\n <sc-settings [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\"\n class=\"material-icons-outlined header-icon max-width-5\"/>\n\n</mat-toolbar>\n\n","// Angular 2\nimport { Component, HostListener, inject, OnInit } from '@angular/core';\n// Decorators\nimport { Theme } from '../../decorators/theme.decorator';\nimport { DOCUMENT } from '@angular/common';\n\n// Component configuration\n\n@Component({\n selector: 'sc-sub-header',\n templateUrl: './sub-header.component.html',\n styleUrls: ['./sub-header.component.css']\n})\nexport class SubHeaderComponent implements OnInit {\n @Theme() public theme: string;\n\n public isHide: boolean = false;\n public currentScroll: number = 0;\n\n private readonly document: any = inject(DOCUMENT);\n\n public ngOnInit(): void {\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll(): void {\n const numberVar: any = this.document.documentElement.scrollTop;\n if (numberVar > this.currentScroll) {\n this.isHide = true;\n }\n if (numberVar < this.currentScroll) {\n this.isHide = false;\n }\n this.currentScroll = numberVar;\n }\n}\n","<div id=\"template-header-container\">\n <div [ngClass]=\"{'header-hide':isHide}\" id=\"template-header\">\n\n <!-- What you want -->\n <div id=\"left-part\">\n <ng-content select=[left]></ng-content>\n </div>\n\n <!-- What you want -->\n <div id=\"middle-part\">\n <ng-content select=[middle]></ng-content>\n </div>\n\n <!-- What you want -->\n <div id=\"right-part\">\n <ng-content select=[right]></ng-content>\n </div>\n\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable()\nexport class AesService {\n\n private readonly SECRET_CODE: string = '1234567891234567';\n private keySize: number = 128 / 32;\n private iterationCount: number = 1000;\n private pwdEncrypted: string;\n\n public generateKey(salt: string): any {\n\n return CryptoJS.PBKDF2(\n this.SECRET_CODE,\n CryptoJS.enc.Hex.parse(salt),\n {keySize: this.keySize, iterations: this.iterationCount, hasher: CryptoJS.algo.SHA1 });\n }\n\n public encrypt(planText: string): string {\n const iv: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n const salt: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n\n const key: any = this.generateKey(salt);\n\n const encrypted: any = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\n\n const cipherText: any = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\n\n const aesPassword: string = (iv + '::' + salt + '::' + cipherText);\n // conversion en base 64\n this.pwdEncrypted = btoa(aesPassword);\n\n return this.pwdEncrypted;\n }\n\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { AesService } from '../../../services/jwt-security/aes.service';\nimport { Config, WEB_CONFIG } from '../../../config';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../../../services/api/common-api.service';\nimport { UserFormModel } from \"../../../models/referential/user-form.model\";\n\n@Component({\n selector: 'sc-popup-login',\n templateUrl: './popup-login.component.html',\n styleUrls: ['./popup-login.component.css']\n})\nexport class MyDialogPopupLoginComponent implements OnInit {\n public loading: boolean = false;\n public errorMessage: string = '';\n public apiUrl: string = '';\n public userForm: FormGroup<UserFormModel>;\n\n private readonly aesService: AesService = inject(AesService);\n private readonly http: HttpClient = inject(HttpClient);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly commonApiService: CommonApiService = inject(CommonApiService);\n private readonly config: Config = inject(WEB_CONFIG);\n public readonly dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = inject(MatDialogRef<MyDialogPopupLoginComponent>);\n private readonly formBuilder: FormBuilder = inject(FormBuilder);\n\n constructor() {\n this.apiUrl = this.config.api_url + '/authorization-api';\n }\n\n public ngOnInit(): void {\n this.buildForm();\n }\n\n public onLogin(): void {\n if (this.userForm.invalid) {\n this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n return;\n }\n this.loading = true;\n this.errorMessage = '';\n\n const {username, password} = this.userForm.value;\n\n this.login(\n {username: username, password: password},\n this.translateService.currentLang\n ).subscribe({\n next: (user: any): void => {\n this.loading = false;\n sessionStorage.setItem('loginFlag', 'true');\n sessionStorage.removeItem('authToken');\n sessionStorage.setItem('authToken', user.token);\n this.cookieService.set('auth-mail', this.commonApiService.getUserDataFromToken().email);\n this.dialogRef.close(true);\n },\n error: (err: any): void => {\n this.loading = false;\n this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n }\n }\n );\n }\n\n private login(user: any, language: string): Observable<any> {\n let url: string = this.apiUrl + '/login/findUser';\n if (language) {\n url += '?language=' + language;\n }\n\n user.password = this.aesService.encrypt(user.password);\n\n return this.http.post(url, user, {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n });\n }\n\n private buildForm(): void {\n this.userForm = this.formBuilder.group({\n username: this.formBuilder.control('', Validators.required),\n password: this.formBuilder.control('', Validators.required)\n }) as FormGroup<UserFormModel>;\n }\n}\n","<h3 mat-dialog-title>Log in</h3>\n\n<mat-dialog-content>\n <form (keyup.enter)=\"onLogin()\" [formGroup]=\"userForm\" class=\"d-flex flex-column\">\n <div class=\"form-group\">\n <mat-label>{{ 'CORE.LOGIN.USERNAME' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n </mat-label>\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"username\" matInput/>\n </mat-form-field>\n </div>\n <div class=\"form-group\">\n <mat-label>{{ 'CORE.LOGIN.PASSWORD' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n </mat-label>\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"password\" matInput type=\"password\"/>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button (click)=\"onLogin()\" [disabled]=\"loading\" class=\"primary w-100\" mat-raised-button\n type=\"submit\">{{ 'CORE.LOGIN.SIGN_IN' | translate }}\n </button>\n @if (loading) {\n <mat-spinner [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\n }\n @if (errorMessage !== null || errorMessage !== '') {\n <div class=\"errorMessage not-so-close-from-button\"> {{ errorMessage }}</div>\n }\n</mat-dialog-actions>\n\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ToasterEventsService {\n public toasterSuccessEvent: EventEmitter<any> = new EventEmitter();\n public toasterErrorEvent: EventEmitter<any> = new EventEmitter();\n public toasterWarnEvent: EventEmitter<any> = new EventEmitter();\n public toasterInfoEvent: EventEmitter<any> = new EventEmitter();\n\n // emit a success event toaster\n public successEvent(message: string): void {\n this.toasterSuccessEvent.emit(message);\n }\n\n // emit a success event toaster\n public errorEvent(message: string): void {\n this.toasterErrorEvent.emit(message);\n }\n\n // emit a success event toaster\n public warnEvent(message: string): void {\n this.toasterWarnEvent.emit(message);\n }\n\n // emit a success event toaster\n public infoEvent(message: string): void {\n this.toasterInfoEvent.emit(message);\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class HeaderEventsService {\n\n public toggleMenu: EventEmitter<any> = new EventEmitter<any>();\n public toggleLight: EventEmitter<any> = new EventEmitter<any>();\n\n public menuSwitch(): void {\n console.log('Menu switch');\n this.toggleMenu.emit();\n }\n\n public lightSwitch(): void {\n this.toggleLight.emit();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageService } from '../storage/local-storage.service';\n\n@Injectable()\nexport class HistoryService {\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any): void {\n let history: any[] = [];\n if (this.localStorageService.exist('history')) {\n history = this.localStorageService.get('history');\n }\n // DELETE EXISTING SCREEN\n history.forEach((element: any, index: number): void => {\n if (this.exist(type, id, ref, element)) history.splice(index, 1);\n });\n // ADD THE LAST CONSULTED SCREEN TO THE BEGINNING\n history.unshift({type: type, id: id, ref: ref});\n\n // SHOW ONLY THE 10 LAST CONSULTED SCREENS\n if (history.length >= 10) {\n history = history.slice(0, 10);\n }\n\n // POST TO LOCAL STORAGE\n this.localStorageService.post('history', history);\n }\n\n private exist(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: string, history: any): boolean {\n return type == history.type && id == history.id && ref == history.ref;\n }\n\n}\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip][appShowIfTruncated]'\n})\nexport class ShowIfTruncatedDirective {\n private matTooltip: MatTooltip = inject(MatTooltip);\n private elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('mouseenter', ['$event'])\n setTooltipState(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AdressModel } from \"../models\";\n\n@Pipe({\n name: 'thirdPartyAddress'\n})\nexport class ThirdPartyAddressPipe implements PipeTransform {\n\n transform(thirdPartyAddress: AdressModel, ...args: unknown[]): unknown {\n return thirdPartyAddress?.street1 + '-' + thirdPartyAddress?.zipCode + '-' + thirdPartyAddress?.city + '-' + thirdPartyAddress?.country?.label;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatDuration'\n})\nexport class FormatDurationPipe implements PipeTransform {\n transform(value: any): string {\n if (value > 0 && value < 60) {\n return value + 'min';\n } else {\n const h: number = Math.floor(value / 60);\n const min: number = value % 60;\n return min === 0 ? h + 'h' : h + 'h ' + min + 'min';\n }\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n name: 'formatCurrency'\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n private readonly currencyPipe: CurrencyPipe = inject(CurrencyPipe);\n\n transform(value: number, currencyCode?: string, display?: string | boolean, digitsInfo?: string, language?: string): string {\n let formattedValue: string = this.currencyPipe.transform(value, currencyCode, display, digitsInfo);\n if(formattedValue) {\n if (language == 'de') {\n let [thousands, decimal] = formattedValue.split(',');\n thousands = thousands.replace(/\\s/g, '.');\n formattedValue = thousands + ',' + decimal;\n } else {\n formattedValue = formattedValue.replace(',', '.');\n }\n }\n\n return formattedValue ? formattedValue : '';\n }\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\n\n@Injectable()\nexport class CustomMatPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\n unsubscribe: Subject<void> = new Subject<void>();\n OF_LABEL: string = 'of';\n\n private readonly translateService: TranslateService = inject(TranslateService);\n\n constructor() {\n super();\n\n this.translateService.onLangChange\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.getAndInitTranslations();\n });\n\n this.getAndInitTranslations();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n getAndInitTranslations(): void {\n this.translateService\n .get([\n 'PAGINATOR.ITEMS_PER_PAGE',\n 'PAGINATOR.NEXT_PAGE',\n 'PAGINATOR.PREVIOUS_PAGE',\n 'PAGINATOR.OF_LABEL',\n ])\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(translation => {\n this.itemsPerPageLabel =\n translation['PAGINATOR.ITEMS_PER_PAGE'];\n this.nextPageLabel = translation['PAGINATOR.NEXT_PAGE'];\n this.previousPageLabel =\n translation['PAGINATOR.PREVIOUS_PAGE'];\n this.OF_LABEL = translation['PAGINATOR.OF_LABEL'];\n this.changes.next();\n });\n }\n\n getRangeLabel = (\n page: number,\n pageSize: number,\n length: number,\n ): string => {\n if (length === 0 || pageSize === 0) {\n return `0 ${this.OF_LABEL} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex: number = page * pageSize;\n const endIndex: number =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${\n this.OF_LABEL\n } ${length}`;\n };\n}\n","import { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\n// Angular\nimport { inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule, CurrencyPipe, DatePipe, NgOptimizedImage } from '@angular/common';\n// Services\nimport { CommonApiService } from './services/api/common-api.service';\n// Modules\nimport { LocalStorageService } from './services/storage/local-storage.service';\nimport { InterceptorHttpService } from './services/jwt-security/interceptorhttp.service';\nimport { MyNumberFormatterDirective } from './directives/my-number-formatter-directive';\nimport { CapitalizefirstPipe } from './pipes/capitalizefirst.pipe';\nimport { SpacesNumberPipe } from './pipes/comma-separated-number.pipe';\nimport { SanitizeHtml } from './pipes/display-html.pipe';\nimport { DisplayNullPipe } from './pipes/display-null.pipe';\nimport { FormatNumberInput } from './pipes/format-number-input.pipe';\nimport { LocalDatePipe } from './pipes/local-date.pipe';\nimport { MyNumberPipe } from './pipes/my-number.pipe';\nimport { TrimStringPipe } from './pipes/trim-string.pipe';\nimport { ThemeEventsService } from './theme/theme-event.service';\nimport { SessionStorageService } from './services/storage/session-storage.service';\nimport { MatCardModule } from '@angular/material/card';\nimport { PermissionsService } from './permissions/permissions.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ArrayService } from './array.service';\nimport { OverlayComponent } from './component/overlay/overlay.component';\nimport { HeaderComponent } from './component/header/header.component';\nimport { SubHeaderComponent } from './component/sub-header/sub-header.component';\nimport { MyDialogPopupLoginComponent } from './component/popup/popup-login/popup-login.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { RouterModule } from '@angular/router';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AesService } from './services/jwt-security/aes.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ToasterEventsService } from \"./toaster/toaster-events.service\";\nimport { HeaderEventsService } from \"./event/header/header-events.service\";\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonTranslatePipe } from \"./pipes/common-translate.pipe\";\nimport { HistoryService } from \"./services/history/history.service\";\nimport { LangService } from \"./services/translate-language/lang.service\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { ElasticsearchService } from \"./services/elasticsearch/elasticsearch.service\";\nimport { ShowIfTruncatedDirective } from './directives/show-if-truncated.directive';\nimport { ThirdPartyAddressPipe } from \"./pipes/third-party-address.pipe\";\nimport { FormatDurationPipe } from \"./pipes/format-duration.pipe\";\nimport { FormatCurrencyPipe } from './pipes/format-currency.pipe';\nimport { CustomMatPaginatorIntl } from \"./paginator/custom-paginator-configuration\";\nimport { ThirdPartyAddressSearchPipe } from \"./pipes/third-party-address-search.pipe\";\nimport { VideoApiService } from \"./services/api/video-api.service\";\nimport { CommercialApiService } from \"./services/api/commercial-api.service\";\nimport { MenuComponent } from './component/header/menu/menu.component';\nimport { AuthService } from './services/auth/auth.service';\nimport { LegalApiService } from \"./services/api/legal-api.service\";\nimport { UserSubsidiaryService } from './services/user/user-subsidiary.service';\nimport {\n PurchaseOrderRapidSearchComponent\n} from \"./component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component\";\nimport {\n ProductRapidSearchComponent\n} from \"./component/header/advanced-search/product-rapid-search/product-rapid-search.component\";\nimport {\n WorkVersionRapidSearchComponent\n} from \"./component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component\";\nimport {\n DealRapidSearchComponent\n} from \"./component/header/advanced-search/deal-rapid-search/deal-rapid-search.component\";\nimport {\n WorkRecordRapidSearchComponent\n} from \"./component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component\";\nimport {\n ThirdPartyRapidSearchComponent\n} from \"./component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component\";\nimport {\n ContractRapidSearchComponent\n} from \"./component/header/advanced-search/contract-rapid-search/contract-rapid-search.component\";\nimport {\n InvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component\";\nimport { AdvancedSearchComponent } from \"./component/header/advanced-search/advanced-search.component\";\nimport { HistoryComponent } from \"./component/header/history/history.component\";\nimport { SettingsComponent } from \"./component/header/settings/settings.component\";\nimport {\n RoyaltyContractRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component\";\nimport {\n RoyaltyInvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component\";\nimport {\n RoyaltyCountRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component\";\nimport { NotificationBarComponent } from './component/notification/notification-bar.component';\nimport { NotificationApiService } from './services/api/notification-api.service';\n\n@NgModule({\n imports: [\n MatInputModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n MatFormFieldModule,\n CommonModule,\n TranslateModule,\n MatCardModule,\n MatDialogModule,\n NgxPermissionsModule,\n MatProgressSpinnerModule,\n RouterModule,\n ReactiveFormsModule,\n FormsModule,\n MatIconModule,\n MatMenuModule,\n MatAutocompleteModule,\n NgOptimizedImage\n ],\n declarations: [\n MyNumberFormatterDirective,\n CapitalizefirstPipe,\n SpacesNumberPipe,\n SanitizeHtml,\n DisplayNullPipe,\n FormatNumberInput,\n LocalDatePipe,\n MyNumberPipe,\n TrimStringPipe,\n CommonTranslatePipe,\n ThirdPartyAddressPipe,\n ThirdPartyAddressSearchPipe,\n FormatDurationPipe,\n MyDialogPopupLoginComponent,\n OverlayComponent,\n HeaderComponent,\n SubHeaderComponent,\n ShowIfTruncatedDirective,\n FormatCurrencyPipe,\n MenuComponent,\n PurchaseOrderRapidSearchComponent,\n ProductRapidSearchComponent,\n WorkVersionRapidSearchComponent,\n DealRapidSearchComponent,\n WorkRecordRapidSearchComponent,\n ThirdPartyRapidSearchComponent,\n ContractRapidSearchComponent,\n InvoiceRapidSearchComponent,\n AdvancedSearchComponent,\n HistoryComponent,\n SettingsComponent,\n RoyaltyContractRapidSearchComponent,\n RoyaltyInvoiceRapidSearchComponent,\n RoyaltyCountRapidSearchComponent,\n NotificationBarComponent\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: InterceptorHttpService,\n multi: true\n },\n TranslateService,\n ThemeEventsService,\n SessionStorageService,\n LocalStorageService,\n PermissionsService,\n ArrayService,\n CustomMatPaginatorIntl,\n CommonApiService,\n DatePipe,\n ThirdPartyAddressSearchPipe,\n LocalDatePipe,\n MyNumberPipe,\n AesService,\n CookieService,\n ToasterEventsService,\n HeaderEventsService,\n HistoryService,\n LangService,\n ElasticsearchService,\n LegalApiService,\n CurrencyPipe,\n MatTooltipModule,\n CommercialApiService,\n VideoApiService,\n AuthService,\n UserSubsidiaryService,\n NotificationApiService\n ],\n exports: [\n MyNumberFormatterDirective,\n CapitalizefirstPipe,\n SpacesNumberPipe,\n SanitizeHtml,\n DisplayNullPipe,\n FormatNumberInput,\n LocalDatePipe,\n MyNumberPipe,\n FormatCurrencyPipe,\n FormatDurationPipe,\n TrimStringPipe,\n ThirdPartyAddressPipe,\n HeaderComponent,\n OverlayComponent,\n SubHeaderComponent,\n ShowIfTruncatedDirective,\n CommonTranslatePipe\n ]\n})\nexport class UtilModule {\n private readonly langService: LangService = inject(LangService);\n\n constructor() {\n this.langService.translateLanguage();\n }\n\n public static forRoot(\n config: Config = DEFAULT_WEB_CONFIG\n ): ModuleWithProviders<UtilModule> {\n return {\n ngModule: UtilModule,\n providers: [{provide: WEB_CONFIG, useValue: config}]\n };\n }\n\n public static forChild(\n config: Config = DEFAULT_WEB_CONFIG\n ): ModuleWithProviders<UtilModule> {\n return {\n ngModule: UtilModule,\n providers: [{provide: WEB_CONFIG, useValue: config}]\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class RegexService {\n public isDecimalOrNegative(numberToCheck: number = null): boolean {\n if (numberToCheck == null) {\n return false;\n } else {\n const myRegexNoDecimal = new RegExp(/^\\d+$/, 'i');\n if (!myRegexNoDecimal.test(numberToCheck.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isMiloCode(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^[C0-9][0-9]{5}$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isAmount(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^\\d+\\.?\\d*$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isYesNo(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^(y|Y|n|N|o|O)$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isFinancialCondition(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^(f|F|s|S|g|G)$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isOrderNumber(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(\n /^[5](6|8)(2|4|9)(N|O|Y)[0-9]{1}[C0-9][0-9]{5}[0-9]{1}$/,\n 'i'\n );\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isDate(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(\n /^([0-9]{2}[-][0-9]{2}[-][0-9]{4}|[0-9]{4}[-][0-9]{2}[-][0-9]{2})$/,\n 'i'\n );\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n}\n","export class PeriodModel {\n\n constructor(public years: number,\n public months: number,\n public days: number) {\n }\n}\n","import { PeriodModel } from './PeriodModel';\n\n/**\n * Created by dstoian on 27/03/2017.\n */\n\nexport class DateUtil {\n public static daysPerMonth: Map<number, number> = new Map<number, number>();\n\n // Format Date to YYYY-MM-DD\n public static formatDate(date: Date, language: string): string {\n const mm: number = date.getMonth() + 1;\n const dd: number = date.getDate();\n\n if (language && 'fr' === language) {\n return [(dd > 9 ? '' : '0') + dd,\n (mm > 9 ? '' : '0') + mm,\n date.getFullYear()\n ].join('/');\n }\n\n return [date.getFullYear(),\n (mm > 9 ? '' : '0') + mm,\n (dd > 9 ? '' : '0') + dd\n ].join('-');\n }\n\n // convert a string formatted \"YYYY-MM-DD\" into a date object\n public static fromStringToDate(stringdate: string): Date {\n const parts: string[] = stringdate.split('-');\n const month: string = parts[1].toString();\n const yearNumber: number = Number(parts[0]);\n let monthNumber: number = 0;\n if (month[0] === '0') {\n monthNumber = +month[1];\n } else {\n monthNumber = +parts[1];\n }\n const numberOfDays = Number(parts[2]);\n return new Date(yearNumber, monthNumber - 1, numberOfDays);\n }\n\n // convert a string formatted \"YYYY-MM-DD\" into a date object\n public static fromStringToDateSecond(stringdate: string): Date {\n const parts: string[] = stringdate.split(',');\n const month: string = parts[1].toString();\n const yearNumber: number = Number(parts[0]);\n let monthNumber: number = 0;\n if (month[0] === '0') {\n monthNumber = +month[1];\n } else {\n monthNumber = +parts[1];\n }\n const numberOfDays: number = Number(parts[2]);\n return new Date(yearNumber, monthNumber - 1, numberOfDays);\n }\n\n public static periodBetweenDates(startDate: string, endDate: string): PeriodModel {\n DateUtil.initDaysPerMonths();\n const a = new Date(startDate);\n const b = new Date(endDate);\n let numberOfDays: number = 0;\n let numberOfYears: number = b.getFullYear() - a.getFullYear();\n let numberOfMonths: number = (b.getMonth() - a.getMonth() + 12) % 12;\n if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {\n numberOfYears--;\n }\n if (a.getMonth() > b.getMonth()) {\n numberOfYears--;\n }\n if (a.getDate() > b.getDate()) {\n numberOfMonths--;\n if (numberOfMonths < 0) {\n numberOfMonths = 11;\n }\n }\n if (b.getDate() < a.getDate()) {\n let numberOfDaysPerMonth: number = DateUtil.daysPerMonth.get(a.getMonth());\n if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {\n numberOfDaysPerMonth++;\n }\n numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();\n } else {\n numberOfDays = b.getDate() - a.getDate();\n }\n return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);\n }\n\n public static checkLeapYear(year: number): boolean {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n return true;\n }\n return false;\n }\n\n public static initDaysPerMonths(): void {\n DateUtil.daysPerMonth.set(0, 31);\n DateUtil.daysPerMonth.set(1, 28);\n DateUtil.daysPerMonth.set(2, 31);\n DateUtil.daysPerMonth.set(3, 30);\n DateUtil.daysPerMonth.set(4, 31);\n DateUtil.daysPerMonth.set(5, 30);\n DateUtil.daysPerMonth.set(6, 31);\n DateUtil.daysPerMonth.set(7, 31);\n DateUtil.daysPerMonth.set(8, 30);\n DateUtil.daysPerMonth.set(9, 31);\n DateUtil.daysPerMonth.set(10, 30);\n DateUtil.daysPerMonth.set(11, 31);\n }\n\n // returns 0 if the 2 dates are equal, 1 if the first date is greater than the second one or -1 when it's the opposite\n public static compareLocalDates(first: Date, second: Date): number {\n if (first.getFullYear() > second.getFullYear()) {\n return 1;\n } else if (first.getFullYear() < second.getFullYear()) {\n return -1;\n } else {\n if (first.getMonth() > second.getMonth()) {\n return 1;\n } else if (first.getMonth() < second.getMonth()) {\n return -1;\n } else {\n if (first.getDate() > second.getDate()) {\n return 1;\n } else if (first.getDate() < second.getDate()) {\n return -1;\n } else {\n return 0;\n }\n }\n }\n }\n\n /* From moment-precise-range plugin */\n public static preciseDiff(d1: any, d2: any): PeriodModel {\n // let m1 = moment(d1);\n // let m2 = moment(d2);\n //\n // if (m1.isSame(m2)) {\n // return new PeriodModel(0, 0, 0);\n // }\n // if (m1.isAfter(m2)) {\n // const tmp = m1;\n // m1 = m2;\n // m2 = tmp;\n // }\n //\n // let yDiff = m2.year() - m1.year();\n // let mDiff = m2.month() - m1.month();\n // let dDiff = m2.date() - m1.date();\n // let hourDiff = m2.hour() - m1.hour();\n // let minDiff = m2.minute() - m1.minute();\n // let secDiff = m2.second() - m1.second();\n //\n // if (secDiff < 0) {\n // secDiff = 60 + secDiff;\n // minDiff--;\n // }\n // if (minDiff < 0) {\n // minDiff = 60 + minDiff;\n // hourDiff--;\n // }\n // if (hourDiff < 0) {\n // hourDiff = 24 + hourDiff;\n // dDiff--;\n // }\n // if (dDiff < 0) {\n // const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')\n // .subtract(1, 'months').daysInMonth();\n // if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03\n // dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);\n // } else {\n // dDiff = daysInLastFullMonth + dDiff;\n // }\n // mDiff--;\n // }\n // if (mDiff < 0) {\n // mDiff = 12 + mDiff;\n // yDiff--;\n // }\n //\n // const result = [];\n //\n // moment.relativeTimeThreshold('s', 60);\n // moment.relativeTimeThreshold('m', 60);\n // moment.relativeTimeThreshold('h', 23);\n // moment.relativeTimeThreshold('dd', 28);\n // moment.relativeTimeThreshold('dm', 45);\n // moment.relativeTimeThreshold('dy', 365);\n //\n // if (yDiff) {\n // result.push(moment.duration(yDiff, 'year').humanize());\n // }\n // if (mDiff) {\n // result.push(moment.duration(mDiff, 'month').humanize());\n // }\n // if (dDiff) {\n // result.push(moment.duration(dDiff, 'day').humanize());\n // }\n // if (hourDiff) {\n // result.push(moment.duration(hourDiff, 'hour').humanize());\n // }\n // if (minDiff) {\n // result.push(moment.duration(minDiff, 'minute').humanize());\n // }\n // if (secDiff) {\n // result.push(moment.duration(secDiff, 'second').humanize());\n // }\n //\n // const period = new PeriodModel(0, 0, 0);\n // period.years = moment.duration(yDiff, 'year').asYears();\n // period.months = moment.duration(mDiff, 'month').asMonths();\n // period.days = moment.duration(dDiff, 'day').asDays();\n //\n return new PeriodModel(0, 0, 0);\n }\n\n}\n","export const CUSTOM_DATE_FORMATS = {\n\n parse: {\n dateInput: {month: 'short', year: 'numeric', day: 'numeric'},\n },\n display: {\n dateInput: 'input',\n monthYearLabel: {year: 'numeric', month: 'long'},\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\n }\n};\n","export class SortBy {\n // Function which sorts by no matter which field, in ascending and in descending order\n // The last parameter is optional and is a mapper.\n // Example of call :\n // --> exampleArray.sort(sort_by('id', true, parseInt)); -Sort the elements in ascending order by id.\n // If the id is not an integer and is for example a string, we may give a parameter the parseInt function\n // to do the conversion.\n\n // -->exampleArray.(sort_by('name', false, (a) =>{return a.toUpperCase()})); Sort the elements by name (case insensitive)\n public sortByField = (\n field: string,\n ascending: boolean,\n functionToApply?: Function\n ) => {\n let convertField = x => {\n return functionToApply ? functionToApply(x[field]) : x[field];\n };\n\n return (a, b) => {\n let A = convertField(a);\n let B = convertField(b);\n return (A < B ? -1 : A > B ? 1 : 0) * [-1, 1][+!!ascending];\n };\n };\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n// @dynamic\nexport class NumberValidator {\n public static validatorNumberGreaterThanZero(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === '' || control.value === undefined) {\n return null;\n } else if (control.value !== null) {\n const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n if (+numberWithoutSpaces === 0) {\n return {validatorNumberGreaterThanZero: true};\n }\n } else {\n return null;\n }\n };\n }\n\n /**\n *\n * @returns (control:AbstractControl)=>{}\n */\n // Tests if a number is negative or not. Returns true in case of negative numbers\n public validatorNumberNegative(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null || +control.value === 0) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces >= 0) {\n return null;\n } else {\n return {validatorNumberNegative: true};\n }\n }\n };\n }\n\n // Tests if a number is a valid percentage value (between 0 and 100)\n public validatorNumberValidPercentage(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value == null) {\n return null;\n }\n const numberWithoutComma: any = control.value.toString().replace(',', '.');\n if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {\n return null;\n } else if (+control.value >= 0 && +control.value <= 100) {\n return null;\n } else {\n return {validatorNumberValidPercentages: true};\n }\n };\n }\n\n /*\n tests if a number is not an integer(it contains another characters than digits and -).\n If the number is not an integer, it will return true.\n Also tests if a number starts with 0. If the number starts with 0 -> return true\n */\n public validatorNumberInteger(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === '' || control.value === undefined) {\n return null;\n } else if (+control.value === 0) {\n return null;\n } else if (control.value !== null) {\n const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n const myRegexNoDecimal = new RegExp(/^-?^[1-9]\\d*$/, 'i');\n if (!myRegexNoDecimal.test(numberWithoutSpaces)) {\n return {validatorNumberInteger: true};\n }\n } else {\n return null;\n }\n };\n }\n\n // tests if a number is lesser than another number\n public validatorNumberLesserThanAnother(anotherValue: number): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces <= anotherValue) {\n return null;\n } else {\n return {validatorNumberLesserThanAnother: true};\n }\n }\n };\n }\n\n // tests if a number is MAX than another number\n public validatorNumberMaxThanAnother(anotherValue: number): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces > anotherValue) {\n return null;\n } else {\n return {validatorNumberLesserThanAnother: true};\n }\n }\n };\n }\n}\n","export class ReferentielModel {\n public id: number = null;\n public active: boolean = null;\n public category: string = null;\n public label: string = null;\n public order: number = null;\n public codeRef: string = null;\n public orderCode;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ReferentielModel[] {\n const refs: ReferentielModel[] = [];\n jsons.forEach(json => {\n refs.push(new ReferentielModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by mmichieli on 07/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class AudioContentModel {\n public id: number = null;\n public isDefault: boolean = false;\n public materialNumber: number;\n public languageId: number;\n public audioContentId: number;\n public audioFormatId: number;\n public licenceId: number;\n public typeMixId: number;\n public support: number;\n public supportLabel: string = null;\n public availabilityDate: string;\n\n public languageLabel: string = null;\n public audioContentLabel: string = null;\n public audioFormatLabel: string = null;\n public licenceLabel: string = null;\n public typeMixLabel: string = null;\n public statusLabel: string = null;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { AuthPermissionModel } from './authPermission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class AuthUserModel {\n public id: number = null;\n public login: string = null;\n public name: string = null;\n public firstName: string = null;\n public email: string = null;\n public admin: boolean;\n public superAdmin: boolean;\n public secondary: boolean = false;\n\n public permissions: AuthPermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class UserVideoModel {\n public id: number;\n public login: string;\n public lastName: string;\n public firstName: string;\n public profile: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): UserVideoModel[] {\n const refs: UserVideoModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new UserVideoModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class BasicModel {\n public idtechnique: number;\n public id: number;\n public label: string;\n public label2: string;\n public checked: boolean;\n public date: string;\n public accountingDate: string;\n public idParent: number;\n\n /* Permet d'avoir un constructeur surchargé grace aux \"?\"*/\n constructor(\n id?: number,\n label?: string,\n label2?: string,\n checked?: boolean,\n idtechnique?: number,\n date?: string,\n accountingDate?: string,\n idParent?: number\n ) {\n this.id = id;\n this.label = label;\n this.label2 = label2;\n this.checked = checked;\n this.idtechnique = idtechnique;\n this.date = date;\n this.accountingDate = accountingDate;\n this.idParent = idParent;\n }\n}\n","import { MenuLanguageModel } from './menu-language.model';\nimport { ReferentielModel } from './referentiel.model';\n\nexport class DiscDetailModel {\n public id: number = null;\n public laboratoryId: number = null;\n public menuLanguages: MenuLanguageModel[] = [];\n public startSequences: ReferentielModel[] = [];\n public menuAudioFormat: ReferentielModel = new ReferentielModel();\n public menuImageFormat: ReferentielModel = new ReferentielModel();\n public filmSpeedId: number = null;\n public laboratoryName: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { DiscProgramModel } from './disc-program.model';\nimport { DiscDetailModel } from './product-disc-detail.model';\n\nexport class DiscModel {\n public id: number = null;\n public refEan: string = null;\n public label: string = null;\n public support: ReferentielModel = new ReferentielModel();\n public pressingFormat: ReferentielModel = new ReferentielModel();\n public discDetail: DiscDetailModel = new DiscDetailModel();\n public programs: DiscProgramModel[] = [];\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { VideoContentModel } from './video-content.model';\nimport { AudioContentModel } from './audio-content.model';\nimport { SubtitleContentModel } from './subtitle-content.model';\n\nexport class ProgramModel {\n public id: number = null;\n public bonusType: ReferentielModel;\n public restoration: ReferentielModel = new ReferentielModel();\n public idWorkMilo: number = null;\n public idVersionMilo: number = null;\n public miloCode: string = null;\n public property: ReferentielModel = new ReferentielModel();\n public description: string = null;\n public note: string = null;\n public videoContents: VideoContentModel[] = [];\n public audioContents: AudioContentModel[] = [];\n public subtitleContents: SubtitleContentModel[] = [];\n public order: number = 0;\n\n constructor() {\n this.bonusType = new ReferentielModel();\n this.bonusType.id = 1;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ProgramModel } from './program.model';\n\nexport class DiscProgramModel {\n public id: number = null;\n public position: number = null;\n public program: ProgramModel = new ProgramModel();\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): DiscProgramModel[] {\n const refs: DiscProgramModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new DiscProgramModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class MenuLanguageModel {\n public id: number = null;\n public languageId: number = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ProductTypeModel {\n public id: number;\n public label: string;\n\n constructor() {\n this.id = null;\n this.label = null;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductTypeModel[] {\n const refs: ProductTypeModel[] = [];\n jsons.forEach(json => {\n refs.push(new ProductTypeModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class MediaModel {\n constructor(\n public id: number = null,\n public codeMedia = '',\n public label = '',\n public description = '',\n public group: boolean = null,\n public isGroup: boolean = null,\n public groupMediaList: MediaModel[] = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\n\nexport class LanguageModel {\n public id: number = null;\n public label: string = '';\n public isoCode: string = '';\n public IsLanguageTech: boolean = null;\n public order: number = 0;\n public territories: TerritoryModel[];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { LanguageModel } from './language.model';\n\nexport class TerritoryModel {\n public id: number;\n public label: string;\n public codeISO: string;\n public isGroup: boolean;\n public groupTerritoryList: TerritoryModel[];\n public languages: LanguageModel[];\n public flagCode: string;\n\n constructor() {\n this.id = null;\n this.label = '';\n this.codeISO = '';\n this.isGroup = null;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { AdressModel } from './adress.model';\nimport { BankAccountModel } from './bank-account.model';\nimport { MediaModel } from './media.model';\nimport { LanguageModel } from './language.model';\nimport { TerritoryModel } from './territory.model';\nimport { ThirdPartyModuleModel } from './third-party-module.model';\nimport { BroadcastListItem } from './broadcast-list-item.model';\n\nexport class ThirdPartyModel {\n\n public id: number = null;\n public companyOrPersonName = '';\n public code: string = null;\n public corelId: number = null;\n public idMaster: string = null;\n public clientOrProviderCategory: string = null;\n public thirdPartyType: string = null;\n public thirdPartyCPType: string = null;\n public poThirdPartyCPType: string = null;\n public tel: string = null;\n public fax: string = null;\n public buyingBlocked: boolean;\n public sellingBlocked: boolean;\n public firstName: string = null;\n public address: AdressModel = null;\n public addresses: AdressModel[];\n public thirdPartyModules: ThirdPartyModuleModel[];\n public blocked: boolean;\n public bankAccount: BankAccountModel = null;\n public companyName1: string = null;\n public companyName2: string = null;\n public siret: string = null;\n public siren: string = null;\n public codeSap: string = null;\n public name: string = null;\n public managingTerritory: TerritoryModel = new TerritoryModel();\n public managingMedia: MediaModel = new MediaModel();\n public managingLanguage: LanguageModel = new LanguageModel();\n public versionTimeStamp: string;\n\n public addressesToDelete: AdressModel[];\n public tpModulesToDelete: ThirdPartyModuleModel[];\n public broadcast?: BroadcastListItem[];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n public static getCustomField(thirdPartyModel: ThirdPartyModel): string {\n let customField = thirdPartyModel.companyOrPersonName;\n customField = `${customField} (${thirdPartyModel.code})`;\n let address = thirdPartyModel.code === '0009146668' ? '199 Avenue des Erables – ZI de la Butte Gayen II – Cellule F – 94440 Santeny' :\n ThirdPartyModel.getAddress(thirdPartyModel);\n if (address) {\n customField = `${customField}, ${address}`;\n }\n if (thirdPartyModel.sellingBlocked) {\n customField = `${customField}, SELLING BLOCKED`;\n }\n return customField;\n }\n\n static getAddress(thirdPartyModel: ThirdPartyModel): string {\n let formattedAddress = '';\n if (!thirdPartyModel.address) {\n return formattedAddress;\n }\n if (thirdPartyModel.address.street1) {\n formattedAddress = thirdPartyModel.address.street1;\n } else if (thirdPartyModel.address.street2) {\n formattedAddress = thirdPartyModel.address.street2;\n } else if (thirdPartyModel.address.street3) {\n formattedAddress = thirdPartyModel.address.street3;\n }\n if (thirdPartyModel.address.zipCode) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.zipCode}`\n : thirdPartyModel.address.zipCode;\n }\n if (thirdPartyModel.address.city) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.city}`\n : thirdPartyModel.address.city;\n }\n if (thirdPartyModel.address.country) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.country.label}`\n : thirdPartyModel.address.country.label;\n }\n return formattedAddress;\n }\n\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { WorkMiloModel } from './referential/work-milo.model';\nimport { ProductDiscModel } from './product-disc.model';\n\nimport { ProductBoxSetModel } from './product-box-set.model';\nimport { ProductTypeModel } from './product-type.model';\nimport { UserVideoModel } from './user-video.model';\nimport { ThirdPartyModel } from './referential/third-party.model';\nimport { ProductDivisionModel } from './product-division.model';\nimport { TerritoryModel } from './referential/territory.model';\n\nexport class ProductModel {\n public id: number = null;\n public support: ReferentielModel = new ReferentielModel();\n public productType: ProductTypeModel = new ProductTypeModel();\n public exploitation: ReferentielModel = new ReferentielModel();\n public label: ReferentielModel = new ReferentielModel();\n public category: ReferentielModel = new ReferentielModel();\n public companyId: number = null;\n public companyCode: string = null;\n public editorId: number = null;\n public editor: ReferentielModel = new ReferentielModel();\n public status: ReferentielModel = new ReferentielModel();\n public distributor: ReferentielModel = new ReferentielModel();\n public productManager: UserVideoModel = new UserVideoModel();\n public projectManager: UserVideoModel = new UserVideoModel();\n public manufacturingManager: UserVideoModel = new UserVideoModel();\n public designer: ThirdPartyModel = new ThirdPartyModel();\n public pressOfficer: ThirdPartyModel = new ThirdPartyModel();\n public title: string = null;\n public descriptive: string = null;\n public releaseDate: any = null;\n public theatricalReleaseDate: any = null;\n public initialGoal: number = null;\n public numberOfDisc: number = null;\n public achievedGoal: number = null;\n public ean: string = null;\n public articleNumber: string = null;\n public pght: any = null;\n public notes: string = null;\n public productWorks: WorkMiloModel[] = [];\n public productDivisions: ProductDivisionModel[] = [];\n public territories: TerritoryModel[] = [];\n public productDiscs: ProductDiscModel[] = [];\n public productBoxSets: ProductBoxSetModel[] = [];\n public financialDistributionInitialized: boolean;\n public numFED: string = null;\n public designerCode: string = '';\n public pressOfficerCode: string = '';\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductModel[] {\n const refs: ProductModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ProductModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class BoxSetItemModel {\n public id: number = null;\n public support: ReferentielModel = new ReferentielModel();\n public ean: string = null;\n public title: string = null;\n public financialDistributionInitialized: boolean;\n public idWorks: number[] = [];\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BoxSetItemModel } from './box-set-item.model';\n\nexport class ProductBoxSetModel {\n public id: number = null;\n public boxSetItem: BoxSetItemModel = new BoxSetItemModel();\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { DiscModel } from './disc.model';\n\nexport class ProductDiscModel {\n public id: number = null;\n public position: number = null;\n public disc: DiscModel = new DiscModel();\n public checked: boolean = false;\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductDiscModel[] {\n const refs: ProductDiscModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ProductDiscModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","/**\n * Created by mmichieli on 13/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class SubtitleContentModel {\n public id: number = null;\n public isDefault = false;\n public materialNumber: number;\n public languageId: number;\n public contentId: number;\n public stateId: number;\n public typeId: number;\n public origin: string = null;\n public localisation: string = null;\n public availabilityDate: string = null;\n public statusId: number;\n\n public languageLabel: string = null;\n public contentLabel: string = null;\n public stateLabel: string = null;\n public typeLabel: string = null;\n public statusLabel: string = null;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class VideoContentModel {\n public id: number = null;\n public materialNumber: string;\n public diffusionFormatId: number;\n public supportId: number;\n public ratioId: number;\n public colorId: number;\n public localisation: string;\n public duration: string;\n public origin: string;\n public isFormatRespected: boolean = false;\n public availabilityDate: string;\n public checked: boolean = false;\n\n public ratioLabel: string;\n public formatLabel: string;\n public colorLabel: string;\n public supportLabel: string;\n public statusLabel: string;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ProductModel } from '../product.model';\nimport { ReferentielModel } from '../referentiel.model';\nimport { PurchaseOrderFileModel } from '../expenditure-commitment/purchase-order-file.model';\n\nexport class PurchaseOrderModel {\n public id: number = null;\n public number: number = null;\n public product: ProductModel = new ProductModel();\n public costCenterId: number = null;\n public costCenterName = '';\n public supplierMiloId: number = null;\n public supplierMiloName: string = null;\n public deliveryRadio = false;\n public expectedDeliveryDate = null;\n public description = '';\n public type = '';\n public currencyId = 32;\n public currencyLabel = '';\n public status: ReferentielModel = new ReferentielModel();\n public totalAmmountTF: number = null;\n public deliveryDate: string = null;\n public realDeliveryDate: string = null;\n public quantity = 1;\n public deliveredQuantity: number = null;\n public toBeDeliveredQuantity: number = null;\n public finalDelivery: boolean;\n public creator: string = null;\n public basketNumber: number = null;\n public orderSAPNumber: number = null;\n public creationDate: string = null;\n public currencyCode: string = null;\n public deliveryLocation: string;\n public unitPrice: number;\n public checked = false;\n public isDuplicate = false;\n public files: PurchaseOrderFileModel[] = [];\n public uuid: string;\n\n constructor() {\n this.status.id = 6;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): PurchaseOrderModel[] {\n const refs: PurchaseOrderModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new PurchaseOrderModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class AdressTypeModel {\n constructor(public addressType: string = null) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CountryModel } from './coutry.model';\n\nexport class AdressModel {\n constructor(\n public id: number = 46,\n public thirdPartyId: number = null,\n public addressType: string = null,\n public street1: string = null,\n public street2: string = null,\n public street3: string = null,\n public bp: string = null,\n public city: string = null,\n public zipCode: string = null,\n public country: CountryModel = null,\n public tel: string = null,\n public fax: string = null,\n public email: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 13/09/2017.\n */\nexport class AttachedFileModel {\n public id: number = null;\n public name: string;\n public path: string;\n public url: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class BankAccountModel {\n constructor(\n public id: number = 46,\n public bankCountryCode: string = null,\n public bankNumber: string = null,\n public bankName: string = null,\n public bankType: string = null,\n public accountNumber: string = null,\n public accountHolder: string = null,\n public ribKey: string = null,\n public paiementMode: string = null,\n public accountDRGLT: string = null,\n public accountGen: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class InvoiceBankAccountModel {\n public id: number;\n public activated: boolean = null;\n public company: string = null;\n public bankName: string = null;\n public accountNumber: string = null;\n public iban: string = null;\n public swift: string = null;\n public label: string = null;\n public collectionAccount: boolean = null;\n public address: string = null;\n public currency: string = null;\n public miloCode: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons) {\n const refs: InvoiceBankAccountModel[] = [];\n jsons.forEach(json => {\n refs.push(new InvoiceBankAccountModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class BasicHierarchyModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public idParents: number[] = []\n ) {\n }\n}\n","export class ColorModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class CompanyModel {\n public code: string = null;\n public label: string = null;\n public id: number = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class ContentTypeModel {\n public id: number = null;\n public label: string;\n public category: string;\n public code: string;\n public codeBaseFileName: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ContentModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ContentModel[] {\n const refs: ContentModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ContentModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class CostCenterCriteriaValueModel {\n public id: number;\n public code: string;\n public value: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CostCenterCriteriaValueModel } from './cost-center-criteria-values.model';\n\nexport class CostCenterCriteriaModel {\n public id: number;\n public code: string;\n public name: string;\n public value: string;\n public idCostCenterCriteriaValue: number;\n public criteriaValues: CostCenterCriteriaValueModel[];\n public codeCostCenterCriteriaValue: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CostCenterCriteriaModel } from './cost-center-criteria.model';\nimport { CompanyModel } from './company.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\nexport class CostCenterModel {\n public id: number = null;\n public code: string = null;\n public companyId: number = null;\n public company: CompanyModel = null;\n public doubling = false;\n public entityStateDto: ReferentialEntityStateModel = null;\n public label: string = null;\n public criterias: CostCenterCriteriaModel[] = null;\n public formattedLabel: string;\n\n public formattedString: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): CostCenterModel[] {\n const refs: CostCenterModel[] = [];\n jsons.forEach(json => {\n refs.push(new CostCenterModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class CountryModel {\n constructor(\n public id: number = -1,\n public isoCode: string = null,\n public label: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { FixingModel } from './fixing.model';\n\nexport class CurrencyModel {\n constructor(\n public id: number = null,\n public code: string = null,\n public label: string = null,\n public fixings: FixingModel[] = null,\n public blocked = false,\n public activated = true // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ContentTypeModel } from './content-type.model';\nimport { WorkModel } from './work.model';\nimport { FSKModel } from './fsk.model';\nimport { FSKIndexModel } from './fsk-index.model';\n\n/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class EditorialContentModel {\n public id: number;\n public episodeId: number;\n public contentType: ContentTypeModel;\n public work: WorkModel;\n public number: string;\n public diffusionNum: string;\n public film24Duration: string;\n public film25Duration: string;\n public duration: string;\n public state: boolean;\n public descriptionTitle: string;\n public timeLineVersionName: string;\n public fsks: FSKModel[];\n public fsksIndex: FSKIndexModel[];\n\n constructor() {\n this.contentType = new ContentTypeModel();\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CurrencyModel } from './currency.model';\n\nexport class FixingModel {\n public id = -1;\n public dateFixing: any = null;\n public currency: CurrencyModel;\n public rate = 0;\n public codeCurrencyRef: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n return this;\n }\n }\n }\n}\n","export class FlatMediaModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public idParent: number = null,\n public highlight = false,\n public disabled = false\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatImageModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public displayOrder: number = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatTypeModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public codeFormat: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class ReferentialValueModel {\n public category: string;\n public label: string;\n public order: number;\n public id: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKIndexModel {\n public id: number;\n public editorialContentId: number;\n public comments: string;\n public dateIndexing: string;\n public judgement: string;\n public indexingNumber: string;\n public provider: string;\n public publication: string;\n public indexingRuntime: string;\n public sourceData: string;\n public category: ReferentialValueModel;\n public listab: ReferentialValueModel;\n public attachedFiles: AttachedFileModel[];\n\n constructor() {\n this.category = new ReferentialValueModel();\n this.listab = new ReferentialValueModel();\n this.attachedFiles = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKModel {\n public id: number;\n public comments: string;\n public dateAgeRating: string;\n public lengthMeter: string;\n public workId: number;\n public lengthMinute: string;\n public lengthRuntime: string;\n public checkNumber: string;\n public restrictions: boolean;\n public indexed: boolean;\n public sundayBHA: boolean;\n public country: TerritoryModel;\n public language: LanguageModel;\n public subTitle: LanguageModel;\n public duration24: number;\n public duration25: number;\n public dateOfAgeRating: string;\n public oldLength: string;\n public provider: string;\n public ageRating: ReferentialValueModel;\n public category: ReferentialValueModel;\n public medium: ReferentialValueModel;\n public refProvider: ReferentialValueModel;\n public editorialContentId: number;\n public versionTimeStamp: string;\n public attachedFiles: AttachedFileModel[];\n\n constructor() {\n this.ageRating = new ReferentialValueModel();\n this.medium = new ReferentialValueModel();\n this.refProvider = new ReferentialValueModel();\n this.category = new ReferentialValueModel();\n this.attachedFiles = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FunctionModel {\n public id: number = 0;\n public label: string = '';\n public order: number = 0;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any) : FunctionModel[] {\n const refs: FunctionModel[] = [];\n jsons.forEach(json => {\n refs.push(new FunctionModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class GenreModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class InvoiceProductTypeModel {\n public id = 0;\n public label = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): InvoiceProductTypeModel[] {\n const refs: InvoiceProductTypeModel[] = [];\n jsons.forEach(json => {\n refs.push(new InvoiceProductTypeModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class KeywordsModel {\n id: number;\n label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class MediaFilterModel {\n public id: number;\n public label: string;\n public isGroup: boolean;\n public idParent: number;\n public listIdParent: number[];\n public highlight: boolean;\n public disabled: boolean;\n public description: string;\n}\n","export class ModuleModel {\n constructor(\n public id: number = null,\n public category: string = null,\n public labelFr: string = null,\n public labelEn: string = null,\n public labelDe: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { PersonModel } from './person.model';\nimport { FunctionModel } from './function.model';\n\nexport class ParticipantModel {\n public id: number;\n public person: PersonModel;\n public function: FunctionModel;\n\n /* Old Atributes */\n public orderInFunction: number;\n\n constructor() {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ParticipantModel[] {\n const refs: ParticipantModel[] = [];\n jsons.forEach(json => {\n refs.push(new ParticipantModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class PersonModel {\n public id: number = 0;\n public lastName: string = '';\n public firstName: string = '';\n public dateOfBirth?: String;\n public placeOfBirth?: String;\n public dateOfDeath?: String;\n public placeOfDeath?: String;\n public sex?: String;\n\n constructor() {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): PersonModel[] {\n const refs: PersonModel[] = [];\n jsons.forEach(json => {\n refs.push(new PersonModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class ProjectStatusModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class QuotaModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 07/06/2017.\n */\n\nexport class ReferentialEntityStateModel {\n public deleted: boolean;\n public blocked: boolean;\n public activated: boolean;\n public updatable: boolean;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n return this;\n }\n }\n }\n}\n","export class ReferentielModel {\n public id: number = null;\n public active: boolean = null;\n public category: string = null;\n public label: string = null;\n public order: number = null;\n public codeRef: string = null;\n public orderCode;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ReferentielModel[] {\n const refs: ReferentielModel[] = [];\n jsons.forEach(json => {\n refs.push(new ReferentielModel().fromJSON(json));\n });\n return refs;\n }\n}\n","import { ParameterModel } from './parameter.model';\n\nexport class SapOrderModel {\n public id: number;\n public orderCode: string;\n public designation: string;\n public company: string;\n public codeCompany: string;\n public managmentCompany: string;\n public category: string;\n public subCategory: string;\n public systemStatus: string;\n public buLabel: string;\n public validationDate: any;\n public closingDate: any;\n public technicalClosingDate: any;\n public process: string;\n // Concat orderCode + designation\n public displayRow: string;\n public codeManagmentCompany: string;\n params: ParameterModel[];\n\n // Informations Importants for work commercial\n public workTitleVo: string;\n public workStatusProject: string;\n public miloCode: string;\n public costCenterCategory: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): SapOrderModel[] {\n const refs: SapOrderModel[] = [];\n jsons.forEach(json => {\n refs.push(new SapOrderModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 02/03/2017.\n */\nexport class ServiceErrorModel {\n public LEVEL_WARN: string = 'WARNING';\n public LEVEL_ERROR: string = 'ERROR';\n\n public errorMessageKey: string = '';\n public status: number = 0;\n public severity: string = '';\n public parameters: string[] = [];\n public statusText: string = '';\n\n constructor() {\n }\n}\n","export class SoundModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class TerritoriesLanguagesModel {\n constructor(\n public id: number = null,\n public country: string = null,\n public languages: BasicModel[] = []\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TerritoryFilterModel {\n public id: number;\n public label: string;\n public codeISO: string;\n public listIdParent: number[];\n}\n","export class ThemeModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\nimport { MediaModel } from './media.model';\nimport { CurrencyModel } from './currency.model';\n\nexport class ThirdPartyCreationRequestModel {\n public id: number = null;\n public requestType: string = '';\n public supplierType: string = '';\n public dateCreation: any = null;\n public userCreation: string = '';\n public service: string = '';\n public tel: string = '';\n public label: string = '';\n public address: string = '';\n public zipCode: string = '';\n public country: TerritoryModel;\n public city: string = '';\n public intraCommunautaireTvaNumber: string = '';\n public siret: string = '';\n public socialSecurity: string = '';\n public agessaAgrement: string = '';\n public existMilo: boolean = false;\n public blocageReason: string = '';\n public miloIdentification: string = '';\n public miloBlockedCompta: boolean = false;\n public miloBlockedMM: boolean = false;\n public email: string = '';\n public thirdPartyType: string = '';\n public honoraire: boolean = false;\n public currency: CurrencyModel;\n public amount: string = '';\n public commandeVerso: boolean = false;\n public commandeRambo: boolean = false;\n public commandeBBP: boolean = false;\n public contratRambo: boolean = false;\n public clientType: string = '';\n public clientCountry: TerritoryModel;\n public mediaCountry: MediaModel;\n public clientHermes: boolean;\n public clientContratRambo: boolean;\n public clientContratRamboUTD: boolean;\n public clientVenteSD: boolean;\n public clientAutres: boolean;\n public category: string = '';\n public personCompanyType: string = '';\n public statusCreationRequest: boolean;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ThirdPartyModuleModel {\n constructor(\n public id: number = null,\n public thirdPartyId: number = null,\n public thirdPartyCodeSap: string = null,\n public moduleId: number = null,\n public module: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class TranslatedValueModel {\n public id: number;\n public label: string;\n public order: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TvaModel {\n constructor(\n public id: number = null,\n public code: string = null,\n public label: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TypeExportModel {\n public id: number = null;\n public codeTypeExport: string = '';\n public nameTypeExport: string = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TypeTvaModel {\n public id: number = 0;\n public codeTva: string = null;\n public rate: number = 0;\n public label: string = '';\n public codeLabel: string;\n\n // public client = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): TypeTvaModel[] {\n const refs: TypeTvaModel[] = [];\n jsons.forEach(json => {\n refs.push(new TypeTvaModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class ZoneModel {\n public id: number;\n public label: string = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { InvoiceProductTypeModel } from './invoice-product-type.model';\nimport { TypeTvaModel } from './type-tva.model';\nimport { TerritoryModel } from './territory.model';\nimport { ZoneModel } from './zone.model';\n\nexport class TypeTvaCompanyTerritoryModel {\n public id: number;\n public label: string = null;\n public codeLlabel: string = null;\n public typeTva: TypeTvaModel = new TypeTvaModel();\n public companyCode: string = null;\n public invoiceProductType: InvoiceProductTypeModel = new InvoiceProductTypeModel();\n public activated: boolean = null;\n public territory: TerritoryModel = new TerritoryModel();\n public zone: ZoneModel = new ZoneModel();\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): TypeTvaCompanyTerritoryModel[] {\n const refs: TypeTvaCompanyTerritoryModel[] = [];\n jsons.forEach(json => {\n refs.push(new TypeTvaCompanyTerritoryModel().fromJSON(json));\n });\n return refs;\n }\n}\n","import { TranslatedValueModel } from './translated-value-model';\nimport { LanguageModel } from './language.model';\n\n/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class WorkAddonsModel {\n public id: number;\n public workId: number;\n public addonType: TranslatedValueModel;\n public countryIsoCode: string;\n public addonContent: string;\n public titleCmpl: string;\n public authorCmpl: string;\n public originCmpl: string;\n public dateCmpl: string;\n public synopsisType: TranslatedValueModel;\n public sourceType: TranslatedValueModel;\n public sourceLink: string;\n public sourceNote: string;\n public episodeNumber: number;\n public isOnline: boolean;\n public language: LanguageModel;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkAppartenanceModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public displayOrder: number = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkGenreModel {\n public id: number;\n public workId: number;\n public label: string;\n public order: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkLanguageModel {\n public id: number;\n public workId: number;\n public label: string;\n public principalLanguage: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkMiloModel {\n public id: number = null;\n public idWorkMilo: number = null;\n public miloCode: string = null;\n public title: string = null;\n public titleFr: string = null;\n public completeTitle: string = null;\n public mainTitle: string = null;\n public genre: string = null;\n public yearOfProduction: string = null;\n public isoCode: string = null;\n public idVersionMilo: number = null;\n public checked: boolean = false;\n public langueOri: string = null;\n public codeOrdre: string = null;\n public designation: string = null;\n public processus: string = null;\n public societe: string = null;\n public societeGestion: string = null;\n public sousCategorie: string = null;\n public statutProjet: string = null;\n public orderCode: string = null;\n public referenceCurrencyCode: any = null;\n public company: string = null;\n public managmentCompany: string = null;\n public category: string = null;\n public subCategory: string = null;\n public buLabel: string = null;\n public process: string = null;\n public valdiationDate: Date = null;\n public closingDate: Date = null;\n public technicalClosingDate: Date = null;\n public systemStatus: string = null;\n public quota: string = null;\n public genres: string = null;\n public languages: string = null;\n public versions: any = null;\n public idDivision: number = null;\n public codeSap: string = null;\n public percentage: number = null;\n public index: number;\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): WorkMiloModel[] {\n const refs: WorkMiloModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new WorkMiloModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 30/05/2017.\n */\nimport { TerritoryModel } from './territory.model';\nimport { RestrictionModel } from './restriction.model';\n\nexport class WorkRestrictionModel {\n public id: number;\n public workId: number;\n\n /* New Attributes */\n public restriction: RestrictionModel;\n public country: TerritoryModel;\n\n /* Old Attributes */\n public countryIsoCode: string;\n public label: string;\n public code: string;\n public order: number;\n\n public type: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkThemeModel {\n public id: number;\n public workId: number;\n public label: string;\n public principalTheme: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkTitleModel {\n public miloCode: string;\n public completeTitle: string;\n public titleVO: string;\n public title: string;\n public yearOfProduction: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): WorkTitleModel[] {\n const refs: WorkTitleModel[] = [];\n jsons.forEach(json => {\n refs.push(new WorkTitleModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\nexport class WorkVersionOriginModel {\n public id: number;\n public label: string;\n public value: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionUsedModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionArticleModel {\n public id: number = null;\n public label: string;\n public isoCode: string;\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { WorkVersionArticleModel } from './WorkVersionArticleDto';\nimport { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { WorkVersionUsedModel } from './work-versions-used.model';\nimport { WorkVersionOriginModel } from './work-version-origin.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionModel {\n public id: number;\n public workId: number;\n public title: string;\n public principal: boolean;\n public order: number = 0;\n public origin: WorkVersionOriginModel;\n public article: WorkVersionArticleModel;\n public articleId: number;\n public country: TerritoryModel;\n public used: WorkVersionUsedModel;\n public languageVersion: LanguageModel;\n // Denormalized field for display purpose only\n public restrictionTv: string;\n // Denormalized field for display purpose only\n public restrictionCine: string;\n public entityState: ReferentialEntityStateModel;\n public countryLabel: string;\n public isEpisode: boolean = false;\n\n constructor() {\n this.article = new WorkVersionArticleModel();\n this.origin = new WorkVersionOriginModel();\n this.country = new TerritoryModel();\n this.used = new WorkVersionUsedModel();\n this.countryLabel = '';\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkYearProductionModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ParticipantModel } from './participant.model';\nimport { SapOrderModel } from './sap-order.model';\nimport { WorkVersionModel } from './work-versions.model';\nimport { WorkAddonsModel } from './work-addons-model';\nimport { WorkRestrictionModel } from './work-restrictions-model';\nimport { WorkThemeModel } from './work-theme.model';\nimport { WorkGenreModel } from './work-genre.model';\nimport { WorkLanguageModel } from './work-language.model';\nimport { ColorModel } from './color.model';\nimport { QuotaModel } from './quota.model';\nimport { SoundModel } from './sound.model';\nimport { FormatModel } from './format.model';\nimport { WorkAppartenanceModel } from './work-appartenance.model';\nimport { FormatImageModel } from './format-image.model';\nimport { ProjectStatusModel } from './project-status.model';\nimport { FormatTypeModel } from './format-type.model';\nimport { WorkYearProductionModel } from './work-year-production.model';\nimport { EditorialContentModel } from './editorial-content.model';\nimport { KeywordsModel } from './keywords.model';\nimport { WorkParticipantModel } from './work-participant.model';\n\n/**\n * Created by vsliwka on 05/04/2017.\n */\nexport class WorkModel {\n public id: number;\n public titleVO: string;\n public territory: string;\n public duration: any;\n public expired: boolean;\n public episodeNumber: number;\n public clientLanguageTitle: string;\n public title: string;\n public completeTitle: string;\n public miloCode: string;\n public isoCode: string;\n public eidrCode: string;\n public idIMDB: string;\n public workType: string;\n public yearOfProduction: WorkYearProductionModel;\n public director: string;\n /* Old Attributes */\n public participants: ParticipantModel[];\n /* New Attributes */\n public workParticipants: WorkParticipantModel[];\n public sapOrders: SapOrderModel[];\n public versions: WorkVersionModel[];\n public addons: WorkAddonsModel[];\n public tvRestrictions: WorkRestrictionModel[];\n public movieRestrictions: WorkRestrictionModel[];\n public themes: WorkThemeModel[];\n public genres: WorkGenreModel[];\n public languages: WorkLanguageModel[];\n public arthouse: string;\n public color: ColorModel;\n public quota: QuotaModel;\n public sound: SoundModel;\n public format: FormatModel;\n public workAppartenance: WorkAppartenanceModel;\n public formatImage: FormatImageModel;\n public projectStatus: ProjectStatusModel;\n public formatType: FormatTypeModel;\n public genresSelected: any[] = [];\n public themesSelected: any[] = [];\n public languageSelected: any[] = [];\n public sapOrderId: number;\n public customOrderLabel: string;\n public percentage: number;\n public keyInSession: string = 'Referential-WorkModel-Session-key';\n public editorialContents: EditorialContentModel[];\n public workKeywords: KeywordsModel[];\n public exportableSap: boolean = false;\n public header: boolean;\n public seriesWorkId?: number;\n\n constructor() {\n this.versions = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class BroadcastListItem {\n\n public id: number;\n public email: string;\n public typeCode: string;\n public thirdPartySapCode: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from './basic.model';\n\nexport class AnyLineModel {\n public action: string;\n public rightId: number;\n\n constructor(\n public id: number = null,\n public selected: any = new BasicModel(),\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = [],\n public toRemove: BasicModel[] = [],\n public checked: boolean = false,\n public edited: boolean = false,\n public deleted: boolean = false,\n public created: boolean = false,\n public disabled: boolean = false,\n public lineSize: boolean = false,\n public hided: boolean = false,\n public excludedStr: string = null,\n public listExclSuggs: any[] = []\n ) {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map(x => x.id);\n }\n\n public getAllIdIncluded(): number[] {\n return this.included.map(x => x.id);\n }\n\n public getAllRemoved(): number[] {\n return this.toRemove.map(x => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class SearchResponseModel {\n public content: any[] = [];\n public totalNumberOfPages: number = 1;\n public totalNumberOfContracts: number = 0;\n public allSearchResultIds: number[] = [];\n public totalResponseLenght: number = 0;\n}\n","import { BasicModel } from './basic.model';\n\nexport class LangLineModel {\n public action: string;\n public rightId: number;\n\n constructor(public id: number = null,\n public selected: any = new BasicModel(),\n public dubbing: boolean = false,\n public subtitle: boolean = false,\n public checked: boolean = false,\n public allLanguages: boolean = false,\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = [],\n public toRemove: BasicModel[] = [],\n public excludedStr: string = null) {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class EventTypeModel {\n constructor(\n public id: number = null,\n public label: string = null\n ) {\n }\n}\n","import { BasicModel } from './basic.model';\n\nexport class MediaLineModel {\n constructor(\n public id: number = null,\n public selected: any = new BasicModel(),\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = []\n ) {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class OptionHtmlModel {\n constructor(\n public id: string = null,\n public value: number = null,\n public label = null\n ) {\n }\n}\n","export class SelectHtmlModel {\n constructor(public options: any[] = [], public disabled: boolean = false) {\n }\n}\n","import { SectionModel } from './section.model';\nimport { PermissionModel } from './permission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class UserModel {\n public id: number = null;\n public login: string = null;\n public password: string = null;\n public name: string = null;\n public firstName: string = null;\n public fullName: string = null;\n public serialNumber: string = null;\n public type: number = null;\n public dateBegin = null;\n public dateEnd = null;\n public entity: number = null;\n public management: number = null;\n public email: string = null;\n public administrator: boolean = false;\n public active: boolean = true;\n public comment: string = null;\n public sections: SectionModel[] = [];\n public permissions: PermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n public mainSubsidiary: SubsidiaryModel = null;\n\n constructor() {\n }\n\n public getFullName(): string {\n return this.firstName + ' ' + this.name;\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","// import { WorkYearProductionModel } from '../referential/work-year-production.model';\nimport { BasicModel } from '../basic.model';\nimport { ContractWork2Model } from './contract-work2.model';\n\nexport class ContractWorkModel {\n\n public id: number;\n public idInSession: number;\n public selected: any = new BasicModel();\n public workCodeMilo: string;\n public miloCode: string;\n public completeTitle: string;\n public title: string;\n public titleVO: string;\n public titleWork: string;\n public yearOfProduction: string;\n public workYearProductLabel: string;\n public action: string;\n public contractId: number;\n public workRefId: number;\n public idWork: number;\n public financialAmount: number;\n public checked: boolean = false;\n public relatedWorks: ContractWork2Model[] = [];\n public included: BasicModel[] = [];\n public excluded: BasicModel[] = [];\n\n constructor() {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class ContractWork2Model {\n\n public id: number;\n public selected: any = new BasicModel();\n public workCodeMilo: string;\n public miloCode: string;\n public title: string;\n public titleVO: string;\n public titleWork: string;\n public yearOfProduction: string;\n public workYearProductLabel: string;\n public action: string;\n public contractId: number;\n public workRefId: number;\n public idWork: number;\n public financialAmount: number;\n public checked: boolean = false;\n public included: BasicModel[] = [];\n public excluded: BasicModel[] = [];\n\n constructor() {\n\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class FormActionsEventsService {\n\n public updateEvent: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public consultToEdit: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public EditToConsult: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public consultToDuplicate: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n\n public emitUpdateEvent(): void {\n this.updateEvent.emit();\n }\n\n public emitEventIsUpdateTrue(): void {\n this.consultToEdit.emit(true);\n }\n\n public emitConsultEvent(): void {\n this.EditToConsult.emit();\n }\n}\n","import { SectionModel } from './section.model';\n\nexport class PermissionModel {\n constructor(public id: number = null,\n public label: string = null,\n public code: string = null,\n public priority: number = null,\n public sectionId: number = null,\n public section: SectionModel = null,\n public description: string = null) {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { PermissionModel } from './permission.model';\n\nexport class SectionModel {\n\n public id: number = null;\n public sectionName: string = null;\n public permissions: PermissionModel[] = [];\n\n constructor() {\n }\n}\n","import { FamilyModel } from \"./family.model\";\n\nexport class SubsidiaryModel {\n public id: number = null;\n public label: string = null;\n public family: FamilyModel = null;\n\n constructor() {\n }\n}\n","export class FamilyModel {\n public id: number = null;\n public label: string = null;\n constructor() {\n }\n}\n","import { SectionModel } from './section.model';\n\nexport class NotificationModel {\n public id: number;\n public description: string;\n public classification: string;\n public messageEn: string;\n public messageFr: string;\n public targetSections: SectionModel[];\n public publicationDate: Date;\n public expirationDate: Date;\n public published: boolean;\n public createdBy: string;\n public createdDate: Date;\n}\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { catchError, map } from 'rxjs/operators';\nimport { AuthUserModel } from '../../models';\nimport { inject } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { Observable, of } from \"rxjs\";\n\nexport const authGuard: CanActivateFn = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n) => {\n const cookieService: CookieService = inject(CookieService);\n const commonApiService: CommonApiService = inject(CommonApiService);\n const webConfig: Config = inject(WEB_CONFIG);\n const authService: AuthService = inject(AuthService);\n\n if (state.url.includes('/login/invalid')) {\n return true;\n }\n\n if (commonApiService.isTokenValid()) {\n authService.setAuthenticated(true);\n return true;\n }\n\n const user: AuthUserModel = commonApiService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : cookieService.get('auth-mail');\n\n return commonApiService.ssoLogin(email).pipe(\n map((data: any): boolean => {\n user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\n authService.setAuthenticated(true);\n return true;\n }),\n catchError((): Observable<boolean> => {\n authService.setAuthenticated(false);\n window.location.href = webConfig.api_url + '/login/invalid';\n return of(false);\n })\n );\n};\n","import { inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from \"rxjs/operators\";\n\nexport const loginGuard = () => {\n const dialog: MatDialog = inject(MatDialog);\n const authService: AuthService = inject(AuthService);\n\n if (sessionStorage.getItem('authToken') !== null) {\n authService.setAuthenticated(true);\n return true;\n } else {\n const dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = dialog.open(MyDialogPopupLoginComponent, {\n disableClose: true\n });\n\n return dialogRef.afterClosed().pipe(\n map((res: boolean): boolean => {\n authService.setAuthenticated(res);\n return res;\n })\n );\n }\n};\n","import { HttpParams } from \"@angular/common/http\";\n\nexport class HttpParamsBuilder {\n private params: HttpParams;\n\n constructor() {\n this.params = new HttpParams();\n }\n\n append(param: string, value: any): this {\n if (this.isNotEmpty(value)) {\n this.params = this.params.append(param, value);\n }\n return this;\n }\n\n appendAll(criteriaModel: object): this {\n for (const property in criteriaModel) {\n this.append(property, criteriaModel[property]);\n }\n return this;\n }\n\n build(): HttpParams {\n return this.params;\n }\n\n private isNotEmpty(value: any): boolean {\n return value !== null\n && value !== undefined\n && !(typeof value === 'string' && value.trim().length === 0);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, switchMap, take } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { AuthUserModel } from '../../models';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n private refreshTokenInProgress: boolean = false;\n private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\n null\n );\n private readonly commonApiService: CommonApiService = inject(CommonApiService);\n private readonly cookieService: CookieService = inject(CookieService);\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {\n return next.handle(request);\n }\n\n if (!this.commonApiService.isTokenValid()) {\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject.pipe(\n filter((result: any): boolean => result !== null),\n take(1),\n switchMap((): Observable<HttpEvent<any>> => next.handle(this.addToken(request)))\n );\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n const user: AuthUserModel = this.commonApiService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\n\n return this.commonApiService.ssoLogin(email)\n .pipe(\n switchMap((data: any): Observable<HttpEvent<any>> => {\n this.commonApiService.setToken(data.token);\n this.refreshTokenInProgress = false;\n this.refreshTokenSubject.next(data.token);\n return next.handle(this.addToken(request));\n })\n );\n }\n }\n\n return next.handle(this.addToken(request));\n }\n\n private addToken(request: HttpRequest<any>): HttpRequest<any> {\n const token: string = this.commonApiService.getToken();\n if (!token) {\n return request;\n }\n\n return request.clone({\n headers: request.headers.set('Authorization', `Bearer ${token}`)\n });\n }\n}\n","export enum StatusColor {\n BLUE = 'status-blue',\n GREEN = 'status-green',\n ORANGE = 'status-orange',\n RED = 'status-red',\n PINK = 'status-pink',\n GREY = 'status-grey',\n WHITE = 'status-white'\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport merge from 'deepmerge';\nimport { inject } from \"@angular/core\";\n\n\ninterface ITranslationResource {\n prefix: string;\n suffix: string;\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n private readonly http: HttpClient = inject(HttpClient);\n\n constructor(\n private resources: ITranslationResource[],\n ) {\n }\n\n public getTranslation(lang: string): Observable<any> {\n const requests = this.resources.map(resource => {\n const path: string = resource.prefix + lang + resource.suffix;\n return this.http.get(path).pipe(catchError(res => {\n console.error('Something went wrong for the following translation file:', path);\n console.error(res.message);\n return of({});\n }));\n });\n return forkJoin(requests).pipe(map(response => merge.all(response)));\n }\n}\n","/*\n * Public API Surface of front-common-library-3\n */\n\nexport * from './lib/util/util.module';\nexport * from './lib/util/array.service';\nexport { User } from './lib/util/decorators/user.decorator';\nexport { Theme } from './lib/util/decorators/theme.decorator';\nexport { CustomMatPaginatorIntl } from './lib/util/paginator/custom-paginator-configuration';\nexport * from './lib/util/services/storage/local-storage.service';\nexport * from './lib/util/services/storage/session-storage.service';\nexport * from './lib/util/event/storage/local-storage-events.service';\nexport * from './lib/util/event/storage/session-storage-events.service';\nexport { PermissionsInterface } from './lib/util/interfaces/permissions.interface'\nexport * from './lib/util/config'\nexport * from './lib/util/theme/theme-event.service';\nexport * from './lib/util/regex/regex.service';\nexport * from './lib/util/permissions/permissions.service';\nexport * from './lib/util/date/date.util';\nexport * from './lib/util/date/date-format-constants';\nexport * from './lib/util/sort';\nexport * from './lib/util/number.validator';\n\nexport * from './lib/util/services/jwt-security/aes.service';\nexport * from './lib/util/component/overlay/overlay.service';\nexport * from './lib/util/component/overlay/overlay.component';\nexport * from './lib/util/component/header/header.component';\nexport * from './lib/util/component/sub-header/sub-header.component';\nexport * from './lib/util/component/popup/popup-login/popup-login.component';\n\n\nexport * from './lib/util/services/jwt-security/jwt.helpher';\nexport * from './lib/util/models';\n\n\nexport * from './lib/util/services/guard/auth.guard';\nexport * from './lib/util/services/guard/login.guard';\nexport * from './lib/util/services/form-action/form-actions-events.service';\nexport * from './lib/util/services/api/common-api.service';\nexport * from './lib/util/services/history/history.service';\nexport * from './lib/util/services/translate-language/lang.service';\nexport * from './lib/util/services/elasticsearch/elasticsearch.service';\nexport * from './lib/util/services/auth/auth.service';\nexport * from './lib/util/services/user/user-subsidiary.service';\nexport * from './lib/util/http/http-params.builder';\n\nexport * from './lib/util/date/PeriodModel';\nexport * from './lib/util/pipes/capitalizefirst.pipe';\nexport * from './lib/util/services/interceptor/auth.interceptor';\nexport * from './lib/util/pipes/local-date.pipe';\nexport * from './lib/util/pipes/trim-string.pipe';\nexport * from './lib/util/pipes/common-translate.pipe';\n\nexport * from './lib/util/pipes/my-number.pipe';\nexport * from './lib/util/pipes/comma-separated-number.pipe';\nexport * from './lib/util/pipes/display-html.pipe';\nexport * from './lib/util/pipes/display-null.pipe';\nexport * from './lib/util/pipes/format-number-input.pipe';\nexport * from './lib/util/directives/my-number-formatter-directive';\nexport * from './lib/util/pipes/third-party-address.pipe';\nexport * from './lib/util/pipes/format-duration.pipe';\nexport * from './lib/util/pipes/format-currency.pipe';\n\nexport * from './lib/util/enums/status-color.enum';\n\nexport * from './lib/util/toaster/toaster-events.service';\nexport * from './lib/util/event/header/header-events.service';\n\nexport * from './lib/util/directives/show-if-truncated.directive';\n\nexport * from './lib/util/i18n/multi-translate-http-loader';\n\nexport * from './lib/util/services/notification/notification.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TOKEN_NAME","i1","ClientJs","i2","i3","i4","i6.CommonTranslatePipe","i2.CommonTranslatePipe","i1.CommonTranslatePipe","i2.ThirdPartyAddressSearchPipe","i5","i6","i8.PurchaseOrderRapidSearchComponent","i9.ProductRapidSearchComponent","i10.WorkVersionRapidSearchComponent","i11.DealRapidSearchComponent","i12.WorkRecordRapidSearchComponent","i13.ThirdPartyRapidSearchComponent","i14.ContractRapidSearchComponent","i15.InvoiceRapidSearchComponent","i16.RoyaltyContractRapidSearchComponent","i17.RoyaltyInvoiceRapidSearchComponent","i18.RoyaltyCountRapidSearchComponent","i19","i20.CommonTranslatePipe","i3.CommonTranslatePipe","i5.CommonTranslatePipe","Client","i1.NotificationApiService","i2.LocalStorageService","i3.AuthService","i4.MenuComponent","i5.AdvancedSearchComponent","i6.HistoryComponent","i7.SettingsComponent","i8.NotificationBarComponent","i9.CommonTranslatePipe","i7","ReferentielModel"],"mappings":"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"}
1
+ {"version":3,"file":"new-front-common-library.mjs","sources":["../../../projects/new-front-common-library/src/lib/util/config.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/jwt.helpher.ts","../../../projects/new-front-common-library/src/lib/util/services/api/common-api.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/local-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/local-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/services/jwt-security/interceptorhttp.service.ts","../../../projects/new-front-common-library/src/lib/util/pipes/my-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/directives/my-number-formatter-directive.ts","../../../projects/new-front-common-library/src/lib/util/pipes/capitalizefirst.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/comma-separated-number.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-html.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/display-null.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/format-number-input.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/local-date.pipe.ts","../../../projects/new-front-common-library/src/lib/util/pipes/trim-string.pipe.ts","../../../projects/new-front-common-library/src/lib/util/theme/theme-event.service.ts","../../../projects/new-front-common-library/src/lib/util/event/storage/session-storage-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/storage/session-storage.service.ts","../../../projects/new-front-common-library/src/lib/util/decorators/user.decorator.ts","../../../projects/new-front-common-library/src/lib/util/enums/family.enum.ts","../../../projects/new-front-common-library/src/lib/util/services/user/user-subsidiary.service.ts","../../../projects/new-front-common-library/src/lib/util/permissions/permissions.service.ts","../../../projects/new-front-common-library/src/lib/util/array.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.service.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.ts","../../../projects/new-front-common-library/src/lib/util/component/overlay/overlay.component.html","../../../projects/new-front-common-library/src/lib/util/models/commercial/work-record-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/models/commercial/invoice-rapid-search-model.ts","../../../projects/new-front-common-library/src/lib/util/services/api/legal-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/subsidiaries.service.ts","../../../projects/new-front-common-library/src/lib/util/services/elasticsearch/elasticsearch.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/commercial-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/video-api.service.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.const.ts","../../../projects/new-front-common-library/src/lib/util/i18n/en.ts","../../../projects/new-front-common-library/src/lib/util/i18n/fr.ts","../../../projects/new-front-common-library/src/lib/util/i18n/de.ts","../../../projects/new-front-common-library/src/lib/util/pipes/common-translate.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/menu/menu.component.html","../../../projects/new-front-common-library/src/lib/util/enums/rapid-search-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/product-rapid-search/product-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/deal-rapid-search/deal-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/pipes/third-party-address-search.pipe.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/contract-rapid-search/contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component.html","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/advanced-search/advanced-search.component.html","../../../projects/new-front-common-library/src/lib/util/enums/history-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.ts","../../../projects/new-front-common-library/src/lib/util/component/header/history/history.component.html","../../../projects/new-front-common-library/src/lib/util/services/translate-language/lang.service.ts","../../../projects/new-front-common-library/src/lib/util/decorators/theme.decorator.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/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/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/i18n/multi-translate-http-loader.ts","../../../projects/new-front-common-library/src/public-api.ts","../../../projects/new-front-common-library/src/new-front-common-library.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const WEB_CONFIG = new InjectionToken<Config>('WEB_CONFIG');\n\nexport interface Config {\n api_url: string;\n env: string;\n elasticsearch_url?: string;\n}\n\nexport const DEFAULT_WEB_CONFIG: Config = {\n api_url: 'http://localhost:8080',\n env: 'DEV',\n elasticsearch_url: 'https://vpc-unity-search-dev-nm5ydumospctjfaatstfjvoqey.eu-west-1.es.amazonaws.com'\n};\n","export class JwtHelper {\n\n public decodeToken(token: string): any {\n let parts: string[] = token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n let decoded: string = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token');\n }\n return JSON.parse(decoded);\n }\n\n private urlBase64Decode(str: string): string {\n let output: string = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw 'Illegal base64url string!';\n }\n }\n return decodeURIComponent((<any>window).escape(window.atob(output)));\n\n }\n\n\n}\n","import { ProductModel, PurchaseOrderModel } from '../../models';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n// Angular2\nimport { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { catchError } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { JwtHelper } from '../jwt-security/jwt.helpher';\n\n\nconst TOKEN_NAME = 'authToken';\nconst SECONDARY_TOKEN_NAME = 'authTokenSecondary';\n\n@Injectable()\nexport class CommonApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly http: HttpClient = inject(HttpClient);\n\n public headers: HttpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n public jwtHelper: JwtHelper = new JwtHelper();\n\n public static handleError(error: any): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError(() => errMsg);\n }\n\n // Global product search\n public getProductGlobalSearch(\n searchInput: string,\n language: string\n ): Observable<ProductModel[]> {\n return this.http\n .get<ProductModel[]>(\n this.config.api_url +\n '/video-api/products/globalSearch?searchInput=' +\n searchInput +\n '&language=' +\n language\n )\n .pipe(catchError(CommonApiService.handleError));\n }\n\n public getPurchaseOrderByGlobalSearch(\n searchInput: string,\n language: string\n ): Observable<PurchaseOrderModel[]> {\n return this.http\n .get<PurchaseOrderModel[]>(\n this.config.api_url +\n '/video-api/purchaseOrders/globalSearch?searchInput=' +\n searchInput +\n '&language=' +\n language\n )\n .pipe(catchError(CommonApiService.handleError));\n }\n\n public setToken(token: string): void {\n sessionStorage.removeItem(TOKEN_NAME);\n sessionStorage.setItem(TOKEN_NAME, token);\n }\n\n public setSecondaryToken(token: string): void {\n sessionStorage.removeItem(SECONDARY_TOKEN_NAME);\n sessionStorage.setItem(SECONDARY_TOKEN_NAME, token);\n }\n\n getToken(): string {\n const user: any = this.decodeToken(TOKEN_NAME);\n if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n return sessionStorage.getItem(SECONDARY_TOKEN_NAME);\n }\n\n return sessionStorage.getItem(TOKEN_NAME);\n }\n\n public decodeToken(tokenName: string): any {\n return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\n }\n\n public getUserDataFromToken(): any {\n const user: any = this.decodeToken(TOKEN_NAME);\n\n if (user && user.superAdmin && sessionStorage.hasOwnProperty(SECONDARY_TOKEN_NAME)) {\n return Object.assign({secondary: true}, this.decodeToken(SECONDARY_TOKEN_NAME));\n }\n\n return user;\n }\n\n public isTokenValid(): boolean {\n let payload: any;\n try {\n payload = this.getUserDataFromToken();\n } catch (e) {\n payload = {};\n }\n\n if (!payload.exp) {\n return false;\n }\n\n return payload.exp * 1000 > Date.now();\n }\n\n public ssoLogin(email: string): Observable<any> {\n const url: string = this.config.api_url + '/authorization-api/login/email';\n\n return this.http\n .post(url, email, {headers: this.headers})\n .pipe(catchError(CommonApiService.handleError));\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class LocalStorageEventsService {\n\n public localStorageEvent: EventEmitter<any> = new EventEmitter();\n\n // emit an event when local storage change\n public emitLocalStorageEvent(): void {\n this.localStorageEvent.emit('maj localstorage');\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\n\n@Injectable()\nexport class LocalStorageService {\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n\n // Check if the data exist in the session storage\n public exist(key: string): boolean {\n return localStorage.hasOwnProperty(key);\n }\n\n public get(key: string): any {\n return (this.exist(key) && !!localStorage.getItem(key)) ? JSON.parse(localStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any): void {\n localStorage.setItem(key, JSON.stringify(data));\n this.localStorageEventsService.emitLocalStorageEvent();\n }\n\n // check if the key exist in the local storage and if it equals to the value param\n public contains(key: string, data: any): boolean {\n return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1;\n }\n\n public delete(key: string): boolean {\n if (this.exist(key)) {\n localStorage.removeItem(key);\n return true;\n }\n return false;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nconst AUTH_HEADER_KEY = 'Authorization';\nconst AUTH_PREFIX = 'Bearer ';\nconst TOKEN_NAME = 'authToken';\n\n@Injectable()\nexport class InterceptorHttpService implements HttpInterceptor {\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n req.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n return next.handle(req);\n }\n\n // TODO à refaire lorsque l'on réactivera l'interceptor du BACK d'orphe\n // public request(url: string | Request): Observable<Response> {\n //\n // const token = sessionStorage.getItem(TOKEN_NAME);\n //\n // const options = {headers: new Headers()};\n // if (typeof url === 'string') {\n //\n // options.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n // } else {\n // url.headers.set(AUTH_HEADER_KEY, `${AUTH_PREFIX} ${token}`);\n // }\n // return super.request(url, options).catch(this.catchError);\n // }\n //\n // public get(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.get(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public post(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.post(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public put(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.put(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public delete(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.delete(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public patch(url: string, body: any, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.patch(url, body, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public head(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.head(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // public options(url: string, options?): Observable<Response> {\n // const enhacedOptions = this.setAuthorizationHeader(options);\n // return super.options(url, enhacedOptions).pipe(catchError(this.catchError));\n // }\n //\n // // Ajout de l'attribut Authorization au Header\n // private setAuthorizationHeader(options?) {\n //\n // const token = `${AUTH_PREFIX}${sessionStorage.getItem(TOKEN_NAME)}`;\n // // Copie du header dans le RequestOptions et ajout du token a 'Authorization'\n // const headers = {\n // ...options.headers.toJSON(),\n // Authorization: token\n // };\n // options.headers = new Headers(headers);\n // return options;\n // }\n //\n // // Response Interceptor\n // private catchError(error: any): Observable<any> {\n //\n // if (error instanceof HttpErrorResponse) {\n // return Observable.throw(error);\n // } else if (error instanceof Response) {\n // if (sessionStorage.getItem('loginFlag') === 'true' && error.status === 401) {\n // sessionStorage.removeItem(TOKEN_NAME);\n // sessionStorage.removeItem('loginFlag');\n // window.location.reload();\n // }\n // return Observable.throw(error);\n // } else {\n // return Observable.throw(error);\n // }\n // }\n}\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst PADDING = '000000';\n\n@Pipe({name: 'myNumberFormat'})\nexport class MyNumberPipe implements PipeTransform {\n private DECIMAL_SEPARATOR: string;\n private THOUSANDS_SEPARATOR: string;\n\n constructor() {\n // TODO comes from configuration settings\n this.DECIMAL_SEPARATOR = '.';\n this.THOUSANDS_SEPARATOR = ' ';\n }\n\n public transform(value: number | string, fractionSize: number): string {\n if (value !== '' && value !== null) {\n let [integer, fraction = ''] = value\n .toString()\n .split(this.DECIMAL_SEPARATOR);\n\n fraction =\n fractionSize > 0\n ? this.DECIMAL_SEPARATOR +\n (fraction + PADDING).substring(0, fractionSize)\n : '';\n\n integer = integer.replace(\n /\\B(?=(\\d{3})+(?!\\d))/g,\n this.THOUSANDS_SEPARATOR\n );\n return integer + fraction;\n } else {\n return null;\n }\n }\n\n public parse(value: string, fractionSize: number): string {\n let [integer, fraction = ''] = (value || '').split(this.DECIMAL_SEPARATOR);\n\n integer = integer.replace(new RegExp(this.THOUSANDS_SEPARATOR, 'g'), '');\n\n fraction =\n parseInt(fraction, 10) > 0 && fractionSize > 0\n ? this.DECIMAL_SEPARATOR +\n (fraction + PADDING).substring(0, fractionSize)\n : '';\n\n return integer + fraction;\n }\n}\n","import { Directive, ElementRef, HostListener, inject, input, InputSignal, OnInit } from '@angular/core';\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\n\n@Directive({selector: '[myNumberFormatter]'})\nexport class MyNumberFormatterDirective implements OnInit {\n decimalNumber: InputSignal<number> = input<number>();\n private el: HTMLInputElement;\n\n private readonly elementRef: ElementRef = inject(ElementRef);\n private readonly currencyPipe: MyNumberPipe = inject(MyNumberPipe);\n\n constructor() {\n this.el = this.elementRef.nativeElement;\n }\n\n public ngOnInit(): void {\n this.el.value = this.currencyPipe.transform(\n this.el.value,\n this.decimalNumber()\n );\n }\n\n @HostListener('focus', ['$event.target.value'])\n public onFocus(value: any): void {\n this.el.value = this.currencyPipe.parse(value, this.decimalNumber()); // opposite of transform\n }\n\n @HostListener('blur', ['$event.target.value'])\n public onBlur(value: any): void {\n this.el.value = this.currencyPipe.transform(value, this.decimalNumber());\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'myCapitalizeFirst'\n})\nexport class CapitalizefirstPipe implements PipeTransform {\n public transform(value: string): string {\n if (value == null) {\n return '';\n }\n let valueArgs: string;\n\n let args: string[] = (value.split('-'));\n if (args.length === 2) {\n for (let i = 0; i < args.length; i++) {\n args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();\n valueArgs = args.join('-');\n }\n } else {\n args = value.split(' ');\n for (let i = 0; i < args.length; i++) {\n args[i] = args[i].charAt(0).toUpperCase() + args[i].slice(1).toLowerCase();\n valueArgs = args.join(' ');\n }\n }\n\n return valueArgs;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'mySpacesNumberPipe'})\nexport class SpacesNumberPipe implements PipeTransform {\n public transform(value: any): any {\n // we remove all spaces\n return value.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'mySanitizeHtml'\n})\nexport class SanitizeHtml implements PipeTransform {\n\n constructor(private _sanitizer: DomSanitizer) {\n }\n\n public transform(html: string): SafeHtml {\n return this._sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myDisplayNullPipe'})\nexport class DisplayNullPipe implements PipeTransform {\n\n private static returnCorrectFormat(object: any): any {\n return (object) ? object : '-';\n }\n\n public transform(value: any, fieldName: string = ''): any {\n // Case 1: test value param\n if (!fieldName) {\n return DisplayNullPipe.returnCorrectFormat(value);\n } else {\n // Case 2: test sub attribut value\n return (value) ? DisplayNullPipe.returnCorrectFormat(value[fieldName]) : '-';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myAddSpacesInputPipe'})\nexport class FormatNumberInput implements PipeTransform {\n public transform(numberValue: any): any {\n if (numberValue === null || numberValue < 0 || isNaN(numberValue)) {\n return null;\n }\n numberValue = numberValue.toString();\n\n // remove spaces\n numberValue = numberValue.replace(/ /g, '');\n\n // add spaces\n numberValue = numberValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\n return numberValue;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\n@Pipe({name: 'myLocalDateFormat'})\nexport class LocalDatePipe implements PipeTransform {\n\n public perpetuityLabel: string = '';\n\n public transform(\n value: any,\n currentLanguage: string,\n format: string\n ): string {\n\n if (currentLanguage === 'fr') {\n this.perpetuityLabel = 'Perpétuité';\n } else if (currentLanguage === 'en' || currentLanguage === 'de') {\n this.perpetuityLabel = 'Perpetuity';\n }\n\n if (value === '-' || value === this.perpetuityLabel) {\n return this.perpetuityLabel;\n }\n return new DatePipe(currentLanguage).transform(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'myTrimString'})\nexport class TrimStringPipe implements PipeTransform {\n\n public transform(value: string, size: number, message: string): string {\n // Case 1: test value param\n if (value === null || value === undefined || value === '') {\n return value;\n }\n\n if (value.length < size) {\n return value;\n }\n\n let posSpace: number = value.indexOf(' ', size);\n if (posSpace !== -1) {\n return value.substring(0, posSpace) + ' ' + message;\n }\n\n return value.substring(0, size) + ' ' + message;\n }\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ThemeEventsService {\n\n public switchThemeEmitter: EventEmitter<any> = new EventEmitter();\n\n // emit an event when local storage change\n public switchTheme(): void {\n this.switchThemeEmitter.emit();\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class SessionStorageEventsService {\n public sessionsStorageUpdateEvent: EventEmitter<any> = new EventEmitter();\n public updateSubscriberEvent: EventEmitter<any> = new EventEmitter();\n\n // emit a success event toaster\n public emitUpdate(): void {\n this.sessionsStorageUpdateEvent.emit('update');\n }\n}\n","// Angular 2\nimport { inject, Injectable } from '@angular/core';\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\n\n// Services\n\n@Injectable()\nexport class SessionStorageService {\n private readonly sessionStorageEventsService: SessionStorageEventsService = inject(SessionStorageEventsService);\n\n // Check if the data exist in the session storage\n public exist(key: string): boolean {\n return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key));\n }\n\n public get(key: string): any {\n return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any): void {\n sessionStorage.setItem(key, JSON.stringify(data));\n this.sessionStorageEventsService.emitUpdate();\n }\n\n // check if the key exist in the session storage and if it equals to the value param\n public contains(key: string, data: any): boolean {\n return this.get(key).indexOf(JSON.stringify(data)) !== -1;\n }\n\n public delete(key: string): boolean {\n if (this.exist(key)) {\n sessionStorage.removeItem(key);\n return true;\n }\n return false;\n }\n}\n","import { JwtHelper } from '../services/jwt-security/jwt.helpher';\n\nexport function User(): (target: any, key: string) => void {\n\n const jwtHelper: JwtHelper = new JwtHelper();\n return (target: any, key: string): void => {\n\n // Check if the data exist in the local storage\n function exist(dataKey: string): boolean {\n return sessionStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(user: string): any {\n return exist(user) ? jwtHelper.decodeToken(sessionStorage.getItem(user)) : null;\n }\n\n Object.defineProperty(target, key, {\n configurable: false,\n get: () => {\n const user: any = get('authToken');\n if (user && user.superAdmin && exist('authTokenSecondary')) {\n return Object.assign({secondary: true}, get('authTokenSecondary'));\n }\n return user;\n }\n });\n };\n\n}\n","export enum Family {\n CANAL_PLUS_INTERNATIONAL = 'Canal+ International',\n STUDIOCANAL = 'Studiocanal',\n}\n","import { Injectable } from '@angular/core';\nimport { SubsidiaryModel, UserModel } from '../../models';\nimport { Family } from '../../enums/family.enum';\nimport { User } from '../../decorators/user.decorator';\n\n@Injectable()\nexport class UserSubsidiaryService {\n @User() public user: UserModel;\n\n public isCanalPlusInternationalUser(): boolean {\n return this.user?.subsidiaries?.length > 0 && this.user.subsidiaries.every(\n (value: SubsidiaryModel): boolean => value.family?.label === Family.CANAL_PLUS_INTERNATIONAL.valueOf()\n );\n }\n\n public isStudiocanalUser(): boolean {\n return this.user?.subsidiaries?.length > 0 && this.user?.subsidiaries?.some(\n (value: SubsidiaryModel): boolean => value.family?.label === Family.STUDIOCANAL.valueOf()\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { User } from '../decorators/user.decorator';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\nimport { AuthUserModel } from \"../models\";\n\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\n\n@Injectable()\nexport class PermissionsService {\n @User() public user: AuthUserModel;\n\n\n private readonly permissionsService: NgxPermissionsService = inject(NgxPermissionsService);\n private readonly userSubsidiaryService: UserSubsidiaryService = inject(UserSubsidiaryService);\n\n public init(): void {\n if (this.user?.permissions?.length > 0 && this.shouldLoadUserPermissions()) {\n const userPermissions: string[] = this.user.permissions.map((p) => p.code);\n\n // Create a virtual permission that can be used to restrict access if user only has access to \"C+I\"\n // subsidiaries\n if (this.userSubsidiaryService.isCanalPlusInternationalUser()) {\n userPermissions.push(CANAL_PLUS_INTERNATIONAL_RESTRICTION);\n }\n\n this.permissionsService.loadPermissions(userPermissions);\n }\n }\n\n public hasPermission(code: string): boolean {\n return this.user?.permissions?.filter((p: any): boolean => p.code === code).length > 0;\n }\n\n private shouldLoadUserPermissions(): boolean {\n const loadedPermissions: string[] = Object.keys(this.permissionsService.getPermissions());\n if (loadedPermissions.length !== this.user.permissions.length) {\n return true;\n }\n let res: boolean = false;\n this.user.permissions.forEach((p: any): void => {\n if (loadedPermissions.indexOf(p.code) === -1) {\n res = true;\n }\n });\n return res;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ArrayService {\n\n /** Check if a value is in array */\n public inArray(value: any, array: any): boolean {\n if (value === null || array === null) {\n return false;\n } else {\n return array.indexOf(value) !== -1;\n }\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class OverlayService {\n public showEvent: EventEmitter<string> = new EventEmitter<string>();\n public hideEvent: EventEmitter<any> = new EventEmitter<any>();\n public setMessageEvent: EventEmitter<string> = new EventEmitter<string>();\n\n public show(message?: string): void {\n this.showEvent.emit(message);\n }\n\n public setMessage(message: string): void {\n this.setMessageEvent.emit(message);\n }\n\n public hide(): void {\n this.hideEvent.emit();\n }\n}\n","import { ChangeDetectorRef, Component, inject, OnInit } from '@angular/core';\nimport { OverlayService } from './overlay.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'sc-overlay',\n styleUrls: ['./overlay.component.css'],\n templateUrl: './overlay.component.html'\n})\nexport class OverlayComponent implements OnInit {\n public message: string;\n public show: boolean = false;\n\n private readonly router: Router = inject(Router);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly overlayService: OverlayService = inject(OverlayService);\n private readonly cdr: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n public ngOnInit(): void {\n this.router.events.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.showEvent.subscribe((message?: string): void => {\n this.message = message || this.message;\n this.show = true;\n this.cdr.detectChanges();\n });\n\n this.overlayService.hideEvent.subscribe((): void => {\n this.show = false;\n });\n\n this.overlayService.setMessageEvent.subscribe((message: string) => {\n this.message = message;\n });\n }\n}\n","@if (show) {\n <div class=\"blackshield\"></div>\n\n <div class=\"d-flex justify-content-center align-items-center\">\n <mat-card class=\"overshield\">\n <mat-card-content class=\"d-flex justify-content-between align-items-center\">\n <span>{{ message || 'CORE.OVERLAY.LOADING' | translate }}</span>\n <mat-spinner diameter=\"40\"></mat-spinner>\n </mat-card-content>\n </mat-card>\n </div>\n}\n\n\n","export class WorkRecordRapidSearchModel {\n id: string;\n workRecordId: string;\n dealNumber: string;\n thirdPartyClientName: string;\n miloCode: string;\n amount: number;\n currencyCode: string;\n titles: {\n vo: string;\n fr?: string;\n en?: string;\n de?: string;\n }\n docType: string;\n\n /**\n * Returns the title for the language. If the language is undefined or unsupported, returns the VO title.\n * @param language\n */\n getTitle(language?: string): string {\n if (!language || !this.titles[language] || this.titles[language].length === 0) {\n return this.titles.vo;\n }\n\n return this.titles[language];\n }\n}\n","export class InvoiceRapidSearchModel {\n number: string;\n dealNumber: string;\n thirdPartyClientName: string;\n miloCode: string;\n amount: number;\n currencyCode: string;\n right: boolean;\n invoiceId: number;\n docType: string;\n titles: {\n vo: string;\n fr?: string;\n en?: string;\n de?: string;\n }\n\n getTitle(language?: string): string {\n if (!language || !this.titles[language] || this.titles[language].length === 0) {\n return this.titles.vo;\n }\n\n return this.titles[language];\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { catchError } from \"rxjs/operators\";\nimport { HttpClient } from \"@angular/common/http\";\n\n@Injectable()\nexport class LegalApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly http: HttpClient = inject(HttpClient);\n\n public apiUrl: string = this.config.api_url + '/legal-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\n return this.http.get<Record<number, number[]>>(this.apiUrl + 'societe/subsidiary_mapping')\n .pipe(catchError(this.handleError));\n }\n\n public handleError(error: any): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError((): any => errMsg);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { SubsidiaryModel } from \"../../models\";\nimport { LegalApiService } from \"../api/legal-api.service\";\n\n@Injectable({providedIn: 'root'})\nexport class SubsidiariesService {\n\n private readonly legalService: LegalApiService = inject(LegalApiService);\n\n private defaultMapping: Record<number, number[]> = {\n 1: [4991],\n 2: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1],\n 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990, 4992, -1]\n }\n\n private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\n\n constructor() {\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n const isLocal = window.location.hostname === 'localhost';\n if (!isLocal) {\n this.loadTableSocieteAppartenance();\n } else {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n }\n }\n loadTableSocieteAppartenance(): void {\n this.legalService.getMappingSocietesSubsidiaries().subscribe({\n next: (map: Record<number, number[]>): void => {\n this.subsidiaryToSocieteMapLegal = map;\n },\n error: (): void => {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n }\n })\n }\n\n getSocieteAppartenance(subsidiaries: SubsidiaryModel[]): number[] {\n if (subsidiaries === null) {\n return null;\n }\n return subsidiaries\n .reduce((acc: number[], sub: SubsidiaryModel): number[] => {\n const societes: number[] = this.subsidiaryToSocieteMapLegal[sub.id] || [];\n return acc.concat(societes);\n }, [])\n .filter((v: number, i: number, arr: number[]): boolean => arr.indexOf(v) === i);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { from, Observable } from 'rxjs';\nimport { Client as ClientJs } from 'elasticsearch-browser';\nimport { Client, MSearchResponse } from 'elasticsearch';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { WorkRecordRapidSearchModel } from \"../../models/commercial/work-record-rapid-search-model\";\nimport { InvoiceRapidSearchModel } from \"../../models/commercial/invoice-rapid-search-model\";\nimport { AuthUserModel, SubsidiaryModel } from \"../../models\";\nimport { SubsidiariesService } from \"./subsidiaries.service\";\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\n\n\n@Injectable()\nexport class ElasticsearchService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly subsidiariesMappingService: SubsidiariesService = inject(SubsidiariesService);\n\n private client: Client;\n PROFILE_SEARCH_CONFIG = {\n 'COMMERCIAL': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'ACCOUNTANT': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'ADMINISTRATIVE_CONTROLLER': ['unity-invoice*', 'unity-deal*', 'unity-work-record*'],\n 'VIDEO_CONSULT': ['unity-product*'],\n 'BDC': ['unity-purchase-order*'],\n 'LEGAL': ['unity-contract*'],\n 'ROYALTY': ['unity-royalty-contract', 'unity-royalty-count', 'unity-royalty-invoice'],\n }\n\n private getElasticsearchClient(): Client {\n if (!this.client) {\n this.client = new ClientJs({\n host: this.config.elasticsearch_url\n });\n }\n return this.client;\n }\n\n public getSearchResponse(text: string, user: AuthUserModel): Observable<MSearchResponse<any>> {\n const allIndexes: Set<string> = new Set<string>();\n allIndexes.add('unity-work-version*')\n allIndexes.add('unity-third-party*')\n\n for (const permission of user.permissions) {\n const indexes: any = this.PROFILE_SEARCH_CONFIG[permission.code];\n indexes?.forEach(idx => allIndexes.add(idx));\n }\n\n const body: any[] = [];\n for (const index of allIndexes) {\n body.push({index});\n switch (index) {\n case 'unity-work-version*' :\n body.push({\n query: {\n dis_max: {\n queries: [{wildcard: {miloCode: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}, {wildcard: {title: {value: text + '*'}}}, {wildcard: {title: {value: text}}}],\n tie_breaker: 0.5\n }\n },\n sort: [{_score: {order: 'desc'}}, {title: {order: \"asc\"}}],\n size: 50\n });\n break;\n case 'unity-product*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {title: {value: '*' + text + '*'}}}]}},\n sort: {releaseDate: {order: 'desc'}},\n size: 50\n });\n break;\n case 'unity-purchase-order*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {poNumber: {value: '*' + text + '*'}}}, {wildcard: {ean: {value: '*' + text + '*'}}}, {wildcard: {basketNumber: {value: '*' + text + '*'}}}]}},\n size: 50\n });\n break;\n case 'unity-deal*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {dealNumber: {value: '*' + text + '*'}}}]}},\n sort: [{_score: {order: 'desc'}}, {'dealNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-work-record*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {workRecordId: {value: '*' + text + '*'}}}]}},\n sort: [{'workRecordId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-invoice*' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {number: {value: '*' + text + '*'}}}]}},\n sort: [{'number.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-third-party*' :\n body.push({\n query: {\n dis_max: {\n queries: [{wildcard: {companyOrPersonName: {value: '*' + text + '*'}}}, {wildcard: {companyOrPersonName: {value: text + '*'}}}, {wildcard: {companyOrPersonName: {value: text}}}],\n tie_breaker: 0.5\n }\n },\n sort: [{_score: {order: 'desc'}}, {companyOrPersonName: {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-contract*': {\n const societes = this.subsidiariesMappingService.getSocieteAppartenance(user.subsidiaries);\n if (!societes || societes.length === 0) {\n break;\n }\n body.push({\n query: {\n bool: this.composeContractQuery(text, societes)\n },\n sort: [{'lisaId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n }\n case 'unity-royalty-contract' :\n body.push({\n query: {wildcard: {\"contractNumber.keyword\": {value: '*' + text + '*', case_insensitive: true}}},\n sort: [{'contractNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-count' :\n body.push({\n query: {wildcard: {\"countNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n sort: [{'countNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-invoice' :\n body.push({\n query: {wildcard: {\"invoiceNumber.keyword\": {value: '*' + text + '*',case_insensitive: true}}},\n sort: [{'invoiceNumber.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n }\n }\n return from(this.getElasticsearchClient().msearch({body}));\n }\n\n public getDocuments(searchResponse: any): RapidSearchAllDocumentModel[] {\n let results: any[] = [];\n if (searchResponse && searchResponse.responses) {\n for (const r of searchResponse.responses) {\n if (r.error || !r.hits) {\n continue;\n }\n\n const item: any = r.hits.hits && r.hits.hits.length > 0 ? r.hits.hits.map(v => this.mapDocument(v)) : [];\n results = results.concat(item);\n }\n }\n return results;\n }\n\n mapDocument(doc: any): any {\n switch (doc._source.docType) {\n case 'INVOICE':\n return Object.assign(new InvoiceRapidSearchModel(), doc._source);\n case 'WORK_RECORD':\n return Object.assign(new WorkRecordRapidSearchModel(), doc._source);\n default:\n return doc._source;\n }\n }\n\n private composeContractQuery(text: string, societes: number[]) {\n return {\n must: [{wildcard: {lisaId: {value: `*${text}*`}}}],\n filter: [{terms: {'societeAppartenance.keyword': societes.map(String)}}]\n };\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Observable, throwError } from \"rxjs\";\nimport { Config, WEB_CONFIG } from \"../../config\";\n\n@Injectable()\nexport class CommercialApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n\n public apiUrl: string = this.config.api_url + '/commercial-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public static handleError(error: Response): Observable<never> {\n const errMsg: any = (error as any)?.error ?? 'api error';\n return throwError((): any => errMsg);\n }\n\n public getAccountWrittingDownload(): void {\n window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpErrorResponse } from \"@angular/common/http\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { Observable, throwError } from \"rxjs\";\nimport { catchError } from \"rxjs/operators\";\n\n@Injectable()\nexport class VideoApiService {\n private readonly config: Config = inject(WEB_CONFIG);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly http: HttpClient = inject(HttpClient);\n\n public apiUrl: string = this.config.api_url + '/video-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n public static handleError(error: HttpErrorResponse): Observable<never> {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error.message);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong,\n console.error(\n `Backend returned code ${error.status}, ` +\n `body was: ${error.ok}`);\n }\n // return an observable with a user-facing error message\n return throwError(() => 'Something bad happened; please try again later.');\n }\n\n public getProductExtractionXlsx(lang: string): Observable<any> {\n return this.http.get(this.apiUrl + `products/all-products-to-xlsx?language=${lang}`, {responseType: 'blob'})\n .pipe(catchError(VideoApiService.handleError));\n }\n\n}\n","import { Menu } from './menu.model';\nimport { CANAL_PLUS_INTERNATIONAL_RESTRICTION } from '../../../permissions/permissions.service';\n\nexport const MENU_SECTIONS: Menu[] = [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB',\n permissions: [],\n restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR',\n module: 'calendar',\n route: '',\n actionType: 'navigate',\n permissions: []\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT',\n permissions: ['PA_CAMPAIGN_SEARCH', 'PA_CAMPAIGN_CREATION'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD',\n module: 'slate-management',\n route: '/dashboard',\n actionType: 'navigate',\n permissions: ['PA_CAMPAIGN_SEARCH']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE',\n module: 'slate-management',\n route: '/dashboard',\n actionType: 'navigate',\n queryParams: '{\"createCampaign\" : true}',\n permissions: ['PA_CAMPAIGN_CREATION']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING',\n module: 'slate-management',\n route: '/calendar',\n actionType: 'navigate',\n permissions: ['PA_CAMPAIGN_CREATION']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY',\n permissions: ['ROYALTY'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT',\n module: 'royalty',\n route: '/contract/search',\n actionType: 'navigate',\n permissions: ['ROYALTY']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT',\n module: 'royalty',\n route: '/contract/init',\n actionType: 'navigate',\n permissions: ['ROYALTY_EDIT']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT',\n module: 'royalty',\n route: '/contract/create-blank',\n actionType: 'navigate',\n permissions: ['ROYALTY_EDIT']\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING',\n module: 'royalty',\n route: '/reporting',\n actionType: 'navigate',\n permissions: ['ROYALTY']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE',\n permissions: ['ULTIMATES'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE',\n module: null,\n route: '/ultimates',\n actionType: 'navigate',\n permissions: ['ULTIMATES']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA',\n permissions: ['TVDATA'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA',\n module: 'tvdata',\n route: '/infos-center',\n actionType: 'navigate',\n permissions: ['TVDATA']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT',\n permissions: ['PILOT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT',\n module: 'pilot',\n route: '/tv-series',\n actionType: 'navigate',\n permissions: ['PILOT']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI',\n module: null,\n route: 'https://app.powerbi.com/groups/me/apps/3bdbab87-921d-4271-bb63-2136541ed7a5/reports/6ed06054-c77f-450e-8c37-3fbc66761525/ReportSection?ctid=bf5c5de1-6a54-4091-a72f-90e32801628c&experience=power-bi',\n actionType: 'redirect',\n permissions: []\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL',\n permissions: ['COMMERCIAL', 'ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH',\n permissions: ['COMMERCIAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL',\n module: 'commercial',\n route: '/deal/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD',\n module: 'commercial',\n route: '/work-record/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE',\n module: 'commercial',\n route: '/invoice/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING',\n module: 'commercial',\n route: '/e-invoicing/search',\n actionType: 'navigate',\n permissions: ['E-INVOICING']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD',\n module: 'commercial',\n route: '/vod/search',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME',\n module: 'commercial',\n route: '/vod/volumes',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER',\n module: 'commercial',\n route: '/turnover/search',\n actionType: 'navigate',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING',\n module: 'commercial',\n route: '/accounting-closing/consult',\n actionType: 'navigate',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION',\n module: 'commercial-api',\n route: '/accounting-writing/get-account-writting-file',\n actionType: 'exportAccountWriting',\n permissions: ['ACCOUNTANT', 'ADMINISTRATIVE_CONTROLLER']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS',\n permissions: ['COMMERCIAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE',\n module: 'commercial',\n route: '/deal/form',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING',\n module: 'commercial',\n route: '/work-record/reporting',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n },\n {\n label: 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR',\n module: 'commercial',\n route: '/work-record/console',\n actionType: 'navigate',\n permissions: ['COMMERCIAL']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL',\n permissions: ['LEGAL'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH',\n permissions: ['LEGAL'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS',\n module: 'legal',\n route: '/work-legal-details',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ',\n module: 'legal',\n route: '/contracts/search',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE',\n module: 'legal',\n route: '/contracts/search/CESS',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH',\n module: 'legal',\n route: '/advanced-search',\n actionType: 'navigate',\n permissions: ['LEGAL']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ',\n module: 'legal',\n route: '/contracts-details/createContract/acq',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE',\n module: 'legal',\n route: '/contracts-details/createContract/sales',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR',\n module: 'legal',\n route: '/contracts-details/createContract/auth',\n actionType: 'navigate',\n permissions: ['LEGAL'],\n restrictions: ['LEGAL_CONSULT']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER',\n permissions: ['LEGAL'],\n restrictions: [CANAL_PLUS_INTERNATIONAL_RESTRICTION],\n links: [\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS',\n module: 'legal',\n route: '/electronic-documents',\n actionType: 'navigate',\n permissions: ['LEGAL']\n },\n {\n label: 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY',\n module: 'legal',\n route: '/history',\n actionType: 'navigate',\n permissions: ['LEGAL']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO',\n permissions: ['VIDEO_CONSULT'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT',\n permissions: ['VIDEO_CONSULT'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE',\n module: 'video',\n route: '/product/form',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL',\n module: 'video-api',\n route: '/products/all-products-to-xlsx',\n actionType: 'extractProduct',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH',\n module: null,\n route: '/advanced-search/product',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER',\n module: 'video',\n route: '/finance/sap-order-table',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT', 'SAP_ORDER']\n },\n {\n label: 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT',\n module: 'video',\n route: '/product/validate-product',\n actionType: 'navigate',\n permissions: ['VIDEO_CONSULT', 'VALIDATION PRUP/QEF']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.PO',\n permissions: ['BDC', 'BUDGET'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.PO.PO',\n permissions: ['BDC'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.PO.PO.DASHBOARD',\n module: 'expenditure-commitment',\n route: '/home/commands',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.CREATE',\n module: 'expenditure-commitment',\n route: '/purchase-orders/form',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.VALIDATE',\n module: 'expenditure-commitment',\n route: '/purchase-orders/validate',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.DELIVERY',\n module: 'expenditure-commitment',\n route: '/purchase-orders/delivery',\n actionType: 'navigate',\n permissions: ['BDC']\n },\n {\n label: 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH',\n module: null,\n route: '/advanced-search/purchase-order',\n actionType: 'navigate',\n permissions: ['BDC']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.PO.BUDGET',\n permissions: ['BDC', 'BUDGET'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET',\n module: 'expenditure-commitment',\n route: '/budget/search',\n actionType: 'navigate',\n permissions: ['BDC', 'BUDGET']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.BI',\n permissions: ['MODULE BI'],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.BI',\n permissions: ['MODULE BI'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.BI',\n module: 'bi',\n route: '/simple-search/form',\n actionType: 'navigate',\n permissions: ['MODULE BI']\n }\n ]\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL',\n permissions: [],\n sections: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK',\n permissions: ['WORK_CREATOR'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK',\n module: 'referential',\n route: '/work/create-work',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER',\n module: 'referential',\n route: '/work/create-header',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE',\n module: 'referential',\n route: '/work/create-control-code',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING',\n module: 'mapping',\n route: '',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON',\n permissions: ['WORK_CREATOR'],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON',\n module: 'referential',\n route: '/person/create-person',\n actionType: 'navigate',\n permissions: ['WORK_CREATOR']\n }\n ]\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY',\n permissions: [],\n links: [\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS',\n module: 'referential',\n route: '/medias',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES',\n module: 'referential',\n route: '/territories',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES',\n module: 'referential',\n route: '/languages',\n actionType: 'navigate',\n permissions: []\n },\n {\n label: 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES',\n module: 'referential',\n route: '/alertes',\n actionType: 'navigate',\n permissions: []\n }\n ]\n }\n ]\n }\n];\n","export const en = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titles',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Count',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Emission date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'End date',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n 'COMMON.HEADER.HISTORY.PO': 'PO',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n 'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n 'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n 'COMMON.HEADER.STOP': 'Stop',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Legal',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Sales support',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","export const fr = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Tableau de bord',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Utilisateurs',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Mes préférences',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Communications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Référentiels',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Administration des Batches',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Engagement de dépenses',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Aide à la vente',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendrier',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'avancée',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Recherche ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Produit',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Date de sortie',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Commande',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'N° Panier',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Oeuvre',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Code milo',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Année de production',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Montant',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Date de validation',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Tiers',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Titre',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES': 'Titres',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contrat N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Statut',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Cedant',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Facture',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT': 'Décompte',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE': 'Date d\\'émission',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE': 'Date de fin',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Produit',\n 'COMMON.HEADER.HISTORY.PO': 'Commande',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contrat',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contrat',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contrat',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'Pas d\\'historique disponible',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'créer un produit',\n 'COMMON.HEADER.CREATION.PO': 'créer une commande',\n 'COMMON.HEADER.CREATION.DEAL': 'créer un deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'créer un contrat d\\'acquisition',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'créer un contrat de cession',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'créer un contrat d\\'auteur',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'créer une campagne',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connectée en tant que',\n 'COMMON.HEADER.STOP': 'Arrêter',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Changer le thème',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'changer de langue',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendrier',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendrier',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Créer une campagne',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Planning de sortie',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'P&A à valider',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Rechercher une campagne',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Rechercher un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Initialiser un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Créer un contrat Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Recherche',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Fiche',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Facture',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Compta/CDG',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Chiffre d\\'affaire',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Clôturer la période',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Extraction fichier comptable',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utiles',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Créer un deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Facturation en erreur',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Juridique',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Recherche',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Fiche juridique',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Contrat d\\'acquisition',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Contrat de cession',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Recherche avancée',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contrats',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Créer un contrat d\\'acquisition',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Créer un contrat de cession',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Créer un contrat d\\'auteur',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Autre',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Documents numérisés',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historique',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Vidéo',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Créer un produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Exporter tous les produits',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Rechercher un produit',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'Ordres SAP',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validation PRUP/QEF',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Commande',\n 'COMMON.HEADER.MENU.PO.PO': 'Commande',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Créer une commande',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Commandes à valider',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Commandes à réceptionner',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Rechercher une commande',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Aide à la vente',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Référentiel',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossaire',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Médias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territoires',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Langues',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Oeuvre',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Créer une oeuvre',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Créer un header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Créer un code de gestion',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Personne',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Créer une personne',\n};\n\n","export const de = {\n //HEADER MENU COMMERCIAL\n 'COMMON.HEADER.MENU.DASHBOARD': 'Dashboard',\n\n //HEADER MENU USER\n 'COMMON.HEADER.MENU.USER.SECTION_TITLE': 'Users management',\n 'COMMON.HEADER.MENU.USER.SETTINGS': 'Settings',\n 'COMMON.HEADER.MENU.USER.NOTIFICATIONS': 'Notifications',\n\n //HEADER MENU REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL.SUPPORT': 'Support',\n 'COMMON.HEADER.MENU.REFERENTIAL.BATCH': 'Batch',\n 'COMMON.HEADER.MENU.TV-DATA': 'TV Data',\n 'COMMON.HEADER.MENU.EXPENDITURE_COMMITMENT': 'Expenditure Commitment',\n 'COMMON.HEADER.MENU.BI.SEARCH': 'Sales Support',\n 'COMMON.HEADER.MENU.CALENDAR': 'Calendar',\n\n // HEADER MENU ROYALTY\n 'COMMON.HEADER.MENU.ROYALTY': 'Royalty',\n\n // HEADER GOLBAL SEARCH\n 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED': 'advanced',\n 'COMMON.HEADER.GLOBAL_SEARCH.PLACEHOLDER': 'Search ...',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT': 'Product',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT': 'Support',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN': 'EAN',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE': 'Release date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER': 'Purchase order',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER': 'Basket N°',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK': 'Work',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE': 'Milo code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR': 'Production year',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL': 'Deal',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT': 'Amount',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE': 'Validation date',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY': 'Third party',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE': 'Code',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE': 'Title',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD': 'Work Record',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT': 'Client',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT': 'Contract N',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE': 'Type',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS': 'Status',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER': 'Customer',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR': 'Licensor',\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE': 'Invoice',\n\n // HEADER HISTORY\n 'COMMON.HEADER.HISTORY.PRODUCT': 'Product',\n 'COMMON.HEADER.HISTORY.PO': 'PO',\n 'COMMON.HEADER.HISTORY.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.HISTORY.DEAL': 'Deal',\n 'COMMON.HEADER.HISTORY.CONTRACT_ACQ': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_CESS': 'Contract',\n 'COMMON.HEADER.HISTORY.CONTRACT_AUTH': 'Contract',\n 'COMMON.HEADER.HISTORY.BUDGET': 'Budget',\n 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE': 'No history available',\n\n // HEADER CREATION\n 'COMMON.HEADER.CREATION.PRODUCT': 'create a product',\n 'COMMON.HEADER.CREATION.PO': 'create a purchase order',\n 'COMMON.HEADER.CREATION.DEAL': 'create a deal',\n 'COMMON.HEADER.CREATION.CREATION_ACQ': 'create an acquisition contract',\n 'COMMON.HEADER.CREATION.CREATION_CESS': 'create a cession contract',\n 'COMMON.HEADER.CREATION.CREATION_AUTH': 'create an author contract',\n 'COMMON.HEADER.CREATION.CAMPAIGN': 'create a campaign',\n\n // HEADER CONNECTED AS\n 'COMMON.HEADER.CONNECTED_AS': 'Connected as',\n 'COMMON.HEADER.STOP': 'Stop',\n\n // HEADER PARAMETERS\n 'COMMON.HEADER.PARAMETERS.THEME': 'Switch theme',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES': 'change language',\n\n // HEADER DISTRIBUTION HUB\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB': 'Distribution Hub',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.CALENDAR.CALENDAR': 'Calendar',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT': 'Slate Management',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_CREATE': 'Create a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.RELEASE_PLANNING': 'Release planning',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.PA_TO_VALIDATE': 'PA to validate',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.SLATE_MANAGEMENT.CAMPAIGN_ADVANCED_SEARCH': 'Search a campaign',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY': 'Royalty',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.SEARCH_CONTRACT': 'Search for a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.INIT_CONTRACT': 'Royalty contract initialization',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.CREATE_CONTRACT': 'Create a Royalty contract',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.ROYALTY.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.MILKSHAKE.MILKSHAKE': 'Milkshake',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.TV_DATA.TV_DATA': 'TV Data',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.REPORTING.BI': 'Power BI Studiocanal',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT': 'Pilot',\n 'COMMON.HEADER.MENU.DISTRIBUTION_HUB.PILOT.PILOT': 'Pilot',\n\n // HEADER COMMERCIAL\n 'COMMON.HEADER.MENU.COMMERCIAL': 'Commercial',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.DEAL': 'Deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.WORK_RECORD': 'Work record',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.INVOICE': 'Invoice',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.E-INVOICING': 'E-Invoicing',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOD': 'VOD',\n 'COMMON.HEADER.MENU.COMMERCIAL.SEARCH.VOLUME': 'Volumes',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE': 'Finance',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.TURNOVER': 'Turnover',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNTING_CLOSING': 'Close accounting period',\n 'COMMON.HEADER.MENU.COMMERCIAL.FINANCE.ACCOUNT_EXTRACTION': 'Accounting file extraction',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS': 'Utils',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.DEAL_CREATE': 'Create a deal',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.REPORTING': 'Reporting',\n 'COMMON.HEADER.MENU.COMMERCIAL.UTILS.WORK_RECORD_ERROR': 'Failed invoicing',\n\n // HEADER LEGAL\n 'COMMON.HEADER.MENU.LEGAL': 'Legal',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH': 'Search',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.LEGAL_DETAILS': 'Legal details',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ACQ': 'Acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.SALE': 'Sale contract',\n 'COMMON.HEADER.MENU.LEGAL.SEARCH.ADVANCED_SEARCH': 'Advanced search',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT': 'Contracts',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_ACQ': 'Create an acquisition contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_SALE': 'Create a sale contract',\n 'COMMON.HEADER.MENU.LEGAL.CONTRACT.CREATE_AUTHOR': 'Create an author contract',\n 'COMMON.HEADER.MENU.LEGAL.OTHER': 'Other',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.ELECTRONIC_DOCUMENTS': 'Electronic documents',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.HISTORY': 'Historical',\n 'COMMON.HEADER.MENU.LEGAL.OTHER.PILOT': 'Pilot',\n\n // HEADER VIDEO\n 'COMMON.HEADER.MENU.VIDEO': 'Home Entertainment',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT': 'Product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.CREATE': 'Create a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.EXTRACT_ALL': 'Extract all products',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.ADVANCED_SEARCH': 'Search a product',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.SAP_ORDER': 'SAP Order',\n 'COMMON.HEADER.MENU.VIDEO.PRODUCT.VALIDATE_PRODUCT': 'Validate EUCP/EMQ',\n\n // HEADER PO\n 'COMMON.HEADER.MENU.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO': 'Purchase order',\n 'COMMON.HEADER.MENU.PO.PO.CREATE': 'Create a purchase order',\n 'COMMON.HEADER.MENU.PO.PO.DASHBOARD': 'Dashboard',\n 'COMMON.HEADER.MENU.PO.PO.VALIDATE': 'Purchase order approval',\n 'COMMON.HEADER.MENU.PO.PO.DELIVERY': 'Purchase order delivery',\n 'COMMON.HEADER.MENU.PO.PO.ADVANCED_SEARCH': 'Search a purchase order',\n 'COMMON.HEADER.MENU.PO.BUDGET': 'Budget',\n 'COMMON.HEADER.MENU.PO.BUDGET.BUDGET': 'Budget',\n\n // HEADER BI\n 'COMMON.HEADER.MENU.BI': 'Sales support',\n\n // HEADER REFERENTIAL\n 'COMMON.HEADER.MENU.REFERENTIAL': 'Referential',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY': 'Glossary',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.MEDIAS': 'Medias',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.TERRITORIES': 'Territories',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.LANGUAGES': 'Languages',\n 'COMMON.HEADER.MENU.REFERENTIAL.GLOSSARY.ALERTES': 'Alertes',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK': 'Work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_WORK': 'Create a work',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_HEADER': 'Create a header',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.MAPPING': 'Mapping',\n 'COMMON.HEADER.MENU.REFERENTIAL.WORK.CREATE_CONTROL_CODE': 'Create a control code',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON': 'Person',\n 'COMMON.HEADER.MENU.REFERENTIAL.PERSON.CREATE_PERSON': 'Create a person',\n};\n\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { en } from '../i18n/en';\nimport { fr } from '../i18n/fr';\nimport { de } from '../i18n/de';\nimport { LocalStorageService } from \"../services/storage/local-storage.service\";\n\n\n@Pipe({name: 'commonTranslate'})\nexport class CommonTranslatePipe implements PipeTransform {\n\n private availableTranslations = {en, fr, de};\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public transform(value: string, lang?: string): string {\n let currentLang: string = lang;\n if (!lang) {\n currentLang = this.localStorageService.get('lang');\n }\n\n if (this.isValidLang(currentLang)) {\n const currentTranslation: any = this.availableTranslations[currentLang];\n return currentTranslation[value];\n }\n }\n\n private isValidLang(lang: string): boolean {\n if (lang) {\n const languages: string[] = ['en', 'fr', 'de'];\n if (languages.indexOf(lang) !== -1) {\n return true;\n }\n }\n return false;\n }\n}\n","import { Component, HostListener, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { CommercialApiService } from '../../../services/api/commercial-api.service';\nimport { VideoApiService } from '../../../services/api/video-api.service';\nimport { OverlayService } from '../../overlay/overlay.service';\nimport { MENU_SECTIONS } from './menu.const';\nimport { Menu, MenuLink } from './menu.model';\n\n@Component({\n selector: 'sc-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss']\n})\nexport class MenuComponent {\n lang: InputSignal<string> = input<string>();\n navigate: OutputEmitterRef<MenuLink> = output<MenuLink>();\n redirect: OutputEmitterRef<MenuLink> = output<MenuLink>();\n\n public activeMenu: string | null = null;\n public readonly menuButtons: Menu[] = MENU_SECTIONS;\n private menuTriggerRef: MatMenuTrigger | null = null;\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n const menuButton: Element = (event.target as HTMLElement).closest('.button-wrapper');\n const insideMenu: Element = (event.target as HTMLElement).closest('.mat-menu-panel');\n\n if (!menuButton && !insideMenu) {\n this.forceCloseMenu();\n }\n }\n\n private readonly overlayService: OverlayService = inject(OverlayService);\n private readonly videoApiService: VideoApiService = inject(VideoApiService);\n private readonly commercialApiService: CommercialApiService = inject(CommercialApiService);\n\n public openMenu(menuTrigger: MatMenuTrigger, menuLabel: string): void {\n if (this.activeMenu === menuLabel) {\n this.forceCloseMenu();\n return;\n }\n\n this.forceCloseMenu();\n this.activeMenu = menuLabel;\n this.menuTriggerRef = menuTrigger;\n menuTrigger.openMenu();\n }\n\n public forceCloseMenu(): void {\n this.activeMenu = null;\n this.menuTriggerRef?.closeMenu();\n }\n\n public extractAllProducts(): void {\n this.overlayService.show();\n this.videoApiService.getProductExtractionXlsx(this.lang()).subscribe(res => {\n const xlsFile = new Blob([res], {\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n });\n const fileURL: string = URL.createObjectURL(xlsFile);\n window.open(fileURL);\n this.overlayService.hide();\n });\n }\n\n public extractAccountWrittingDownload(): void {\n this.overlayService.show();\n this.commercialApiService.getAccountWrittingDownload();\n this.overlayService.hide();\n }\n\n public performAction(link: MenuLink): void {\n this.forceCloseMenu();\n\n switch (link.actionType) {\n case 'navigate':\n this.navigate.emit(link);\n break;\n case 'redirect':\n this.redirect.emit(link);\n break;\n case 'exportAccountWriting':\n this.extractAccountWrittingDownload();\n break;\n case 'extractProduct':\n this.extractAllProducts();\n break;\n default:\n throw new Error(`performAction error - No action type on menuLink : ${link}`);\n }\n }\n}\n","<div class=\"d-flex justify-content-start\">\n @for (menuCurrent of menuButtons; track menuCurrent) {\n <ng-container *ngxPermissionsExcept=\"menuCurrent.restrictions\">\n <mat-toolbar class=\"toolbar-padding\">\n <div\n [attr.aria-label]=\"menuCurrent.label + '-btn'\"\n class=\"button-wrapper\"\n [ngClass]=\"{ active: activeMenu === menuCurrent.label }\"\n *ngxPermissionsOnly=\"menuCurrent.permissions\"\n (click)=\"openMenu(menuTrigger, menuCurrent.label)\"\n >\n <button class=\"menu-button primary-color\" [matMenuTriggerFor]=\"i\" #menuTrigger=\"matMenuTrigger\"\n style=\"z-index: 99999\">\n <div class=\"text-menu-button\">\n <span>{{ menuCurrent.label | commonTranslate : lang() }}</span>\n <div class=\"indicator\">\n <div class=\"line primary\"></div>\n </div>\n </div>\n <mat-icon class=\"primary-color icon-more\" [ngClass]=\"{ rotated: activeMenu === menuCurrent.label }\">\n expand_more\n </mat-icon>\n </button>\n <div class=\"indicator\"></div>\n </div>\n </mat-toolbar>\n\n <mat-menu #i=\"matMenu\" [aria-label]=\"menuCurrent.label + '-menu'\" class=\"custom-menu custom-menu-panel\"\n [hasBackdrop]=\"false\">\n <div class=\"menu-container d-flex\" (click)=\"$event.stopPropagation()\">\n @for (section of menuCurrent.sections; track section) {\n <ng-container *ngxPermissionsOnly=\"section.permissions\">\n <ng-container *ngxPermissionsExcept=\"section.restrictions\">\n <div class=\"menu-section\">\n <h3 class=\"primary-color\">{{ section.label | commonTranslate : lang() }}</h3>\n @for (link of section.links; track link) {\n <ng-container *ngxPermissionsOnly=\"link.permissions\">\n <button (click)=\"performAction(link)\" *ngxPermissionsExcept=\"link.restrictions\" mat-menu-item\n class=\"custom-menu-item\">\n {{ link.label | commonTranslate : lang() }}\n </button>\n </ng-container>\n }\n </div>\n </ng-container>\n </ng-container>\n }\n </div>\n </mat-menu>\n </ng-container>\n }\n</div>\n","export enum RapidSearchItemType {\n PURCHASE_ORDER = 'PURCHASE_ORDER',\n PRODUCT = 'PRODUCT',\n WORK_VERSION = 'WORK_VERSION',\n DEAL = 'DEAL',\n WORK_RECORD = 'WORK_RECORD',\n THIRD_PARTY = 'THIRD_PARTY',\n CONTRACT ='CONTRACT',\n INVOICE = 'INVOICE',\n ROYALTY_CONTRACT = 'ROYALTY_CONTRACT',\n ROYALTY_INVOICE = 'ROYALTY_INVOICE',\n ROYALTY_COUNT = 'ROYALTY_COUNT',\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport {\n PurchaseOrderRapidSearchModel\n} from \"../../../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n\n@Component({\n selector: 'sc-purchase-order-rapid-search',\n templateUrl: './purchase-order-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class PurchaseOrderRapidSearchComponent {\n document: InputSignal<PurchaseOrderRapidSearchModel> = input<PurchaseOrderRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: 'expenditure-commitment', route: '/purchase-orders/' + this.document().poId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt_long</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-70\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PURCHASE_ORDER' | commonTranslate: lang() }}</span>\n <span>{{ document().poNumber }}\n - {{ document().totalAmount | currency: document().currencyCode:'symbol':undefined:'fr-FR' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.BASKET_NUMBER' | commonTranslate: lang() }}</span>\n <span>{{ document()?.basketNumber ? document().basketNumber : '-' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n <span>{{ document()?.ean ? document().ean : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ProductRapidSearchModel } from \"../../../../models/video/product-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-product-rapid-search',\n templateUrl: './product-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ProductRapidSearchComponent {\n document: InputSignal<ProductRapidSearchModel> = input<ProductRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n labelLang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: 'video', route: '/product/consult/' + this.document().productId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">movie</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"ellipsis d-flex flex-column max-width-60\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().title }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.SUPPORT' | commonTranslate: lang() }}</span>\n <span>{{ document().support[labelLang()] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EAN' | commonTranslate: lang() }}</span>\n <span>{{ document().ean }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.RELEASE_DATE' | commonTranslate: lang() }}</span>\n <span>{{ document()?.releaseDate ? document().releaseDate : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkVersionRapidSearchModel } from \"../../../../models/referential/work-version-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-work-version-rapid-search',\n templateUrl: './work-version-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class WorkVersionRapidSearchComponent {\n document: InputSignal<WorkVersionRapidSearchModel> = input<WorkVersionRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/work-summary/' + this.document().id + '/info'});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">theaters</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-75 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().title }} ({{ document().codeIso }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}</span>\n <span>{{ document().miloCode }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.PRODUCTION_YEAR' | commonTranslate: lang() }}</span>\n <span>{{ document().yearOfProduction }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { DealRapidSearchModel } from \"../../../../models/commercial/deal-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-deal-rapid-search',\n templateUrl: './deal-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class DealRapidSearchComponent {\n document: InputSignal<DealRapidSearchModel> = input<DealRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/commercial/deal/consult/' + this.document().id})\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">local_offer</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-70 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }} - {{ document().thirdPartyClientName }}\n ({{ document().thirdPartyClientSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().calculatedAmount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang() }}</span>\n <span>{{ document().validationDate }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { WorkRecordRapidSearchModel } from \"../../../../models/commercial/work-record-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-work-record-rapid-search',\n templateUrl: './work-record-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class WorkRecordRapidSearchComponent {\n document: InputSignal<WorkRecordRapidSearchModel> = input<WorkRecordRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/commercial/work-record/consult/' + this.document().id + '/general'});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">assignment</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK_RECORD' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().id }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-35\">\n <span class=\"auto-complete-label\">\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }} {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }}\n )\n </span>\n <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ThirdPartyAddressRapidSearchModel } from \"../models/referential/third-party-address-rapid-search.model\";\n\n@Pipe({name: 'thirdPartyAddressSearch'})\nexport class ThirdPartyAddressSearchPipe implements PipeTransform {\n\n transform(thirdPartyAddressSearch: ThirdPartyAddressRapidSearchModel, lang?: string): string {\n const countryLabelMap = new Map<string, string>([['en', thirdPartyAddressSearch.countryEn], ['fr', thirdPartyAddressSearch.countryFr], ['de', thirdPartyAddressSearch.countryDe]]);\n return thirdPartyAddressSearch?.street + '-' + thirdPartyAddressSearch?.zipCode + '-' + thirdPartyAddressSearch?.city + '-' + countryLabelMap.get(lang);\n }\n\n}\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ThirdPartyRapidSearchModel } from \"../../../../models/referential/third-party-rapid-search.model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-third-party-rapid-search',\n templateUrl: './third-party-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ThirdPartyRapidSearchComponent {\n document: InputSignal<ThirdPartyRapidSearchModel> = input<ThirdPartyRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/referential/third-party/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">person</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-85 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.THIRD_PARTY' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().companyOrPersonName }}\n ({{ document().address | thirdPartyAddressSearch: lang() }}\n )</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CODE' | commonTranslate: lang() }}</span>\n <span>{{ document().code }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { ContractRapidSearchModel } from \"../../../../models/legal/contract-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-contract-rapid-search',\n templateUrl: './contract-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class ContractRapidSearchComponent {\n document: InputSignal<ContractRapidSearchModel> = input<ContractRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n labelLang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n public getContractType(type: string): 'cess' | 'acq' | 'auth' {\n return type === 'Sale' ? 'cess' : type === 'Acquisition' ? 'acq' : 'auth';\n }\n\n onSelectSearch(): void {\n this.redirect.emit({\n module: null,\n route: '/legal/contracts-details/' + this.getContractType(this.document().type.labelEn) + '/' + this.document().contractId\n })\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n @switch (getContractType(document().type.labelEn)) {\n @case ('cess') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n }\n @case ('acq') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\n }\n @case ('auth') {\n <span class=\"material-icons-outlined rapid-search-type-icon\">account_circle</span>\n }\n }\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().lisaId }} </span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang() }}</span>\n <span>{{ document().type[labelLang()] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang() }}</span>\n <span>{{ document().status[labelLang()] }}</span>\n </div>\n @if (document().type.labelEn !== 'Sale') {\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang() }}</span>\n <span>{{ document().licensor ? document().licensor : '-' }}</span>\n </div>\n } @else {\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang() }}</span>\n <span>{{ document().customer ? document().customer : '-' }}</span>\n </div>\n }\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { InvoiceRapidSearchModel } from \"../../../../models/commercial/invoice-rapid-search-model\";\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-invoice-rapid-search',\n templateUrl: './invoice-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class InvoiceRapidSearchComponent {\n document: InputSignal<InvoiceRapidSearchModel> = input<InvoiceRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n if (this.document().right) {\n this.redirect.emit({\n module: null,\n route: '/commercial/invoice/right-payment-consult?idEcheance=' + this.document().invoiceId\n });\n } else {\n this.redirect.emit({\n module: null,\n route: '/commercial/invoice/material-payment-consult?idEcheance=' + this.document().invoiceId\n });\n }\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().number }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().thirdPartyClientName }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-35\">\n <span class=\"auto-complete-label\">\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLE' | commonTranslate: lang() }}\n ({{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.MILO_CODE' | commonTranslate: lang() }})\n </span>\n <span class=\"ellipsis\">{{ document().getTitle(lang()) }} ({{ document().miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang() }}</span>\n <span>{{ document().amount | currency: document().currencyCode:'symbol' }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyContractRapidSearchModel } from \"../../../../models/royalty/royalty-contract-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-contract-rapid-search',\n templateUrl: './royalty-contract-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyContractRapidSearchComponent {\n document: InputSignal<RoyaltyContractRapidSearchModel> = input<RoyaltyContractRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/contract/consult/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{document().clientCodeSap}})</span>\n </div>\n <div class=\"d-flex flex-column max-width-50 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().works.join(', ') }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyInvoiceRapidSearchModel } from \"../../../../models/royalty/royalty-invoice-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-invoice-rapid-search',\n templateUrl: './royalty-invoice-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyInvoiceRapidSearchComponent {\n document: InputSignal<RoyaltyInvoiceRapidSearchModel> = input<RoyaltyInvoiceRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().countId});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.INVOICE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().invoiceNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().countNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.EMISSION_DATE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().emissionDate }}</span>\n </div>\n </div>\n</div>\n","import { Component, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LinkRoutingModuleModel } from \"../../../../models/link-routing-module.model\";\nimport { RoyaltyCountRapidSearchModel } from \"../../../../models/royalty/royalty-count-rapid-search.model\";\n\n@Component({\n selector: 'sc-royalty-count-rapid-search',\n templateUrl: './royalty-count-rapid-search.component.html',\n styleUrl: '../advanced-search.scss'\n})\nexport class RoyaltyCountRapidSearchComponent {\n document: InputSignal<RoyaltyCountRapidSearchModel> = input<RoyaltyCountRapidSearchModel>();\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n onSelectSearch(): void {\n this.redirect.emit({module: null, route: '/royalty/count/consult/' + this.document().id});\n }\n}\n","<div class=\"d-flex align-items-center\" (click)=\"onSelectSearch()\">\n <div class=\"max-width-5\">\n <span class=\"material-icons-outlined rapid-search-type-icon\">savings</span>\n </div>\n <div class=\"d-flex max-width-95\">\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.COUNT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().countNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CONTRACT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().clientName }} ({{ document().clientCodeSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-20 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.END_DATE' | commonTranslate: lang() }}</span>\n <span class=\"ellipsis\">{{ document().periodEnd ? document().periodEnd : '-' }}</span>\n </div>\n </div>\n</div>\n","import { Component, inject, input, InputSignal, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { RapidSearchItemType } from \"../../../enums/rapid-search-item-type.enum\";\nimport { RapidSearchAllDocumentModel } from \"../../../models/rapid-search-all-document.model\";\nimport { LocalStorageEventsService } from \"../../../event/storage/local-storage-events.service\";\nimport { Observable, of } from \"rxjs\";\nimport { FormControl } from \"@angular/forms\";\nimport { debounceTime, map, switchMap } from \"rxjs/operators\";\nimport { ElasticsearchService } from \"../../../services/elasticsearch/elasticsearch.service\";\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-advanced-search',\n templateUrl: './advanced-search.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class AdvancedSearchComponent implements OnInit {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n @User() public user: AuthUserModel;\n\n documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n public formControlSearch: FormControl<string>;\n public labelLang: string = 'labelFr';\n\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n\n public ngOnInit(): void {\n this.updateLabelLang(this.lang());\n this.localStorageEventsService.localStorageEvent.subscribe(() => {\n this.updateLabelLang(this.lang());\n });\n this.formControlSearch = new FormControl<string>(null);\n this.documents$ = this.formControlSearch.valueChanges.pipe(\n debounceTime(500),\n switchMap(term => {\n if (!term) {\n return of([]);\n }\n return this.elasticsearchService\n .getSearchResponse(term, this.user)\n .pipe(\n map(searchResponse => {\n return this.elasticsearchService.getDocuments(searchResponse);\n })\n );\n })\n );\n }\n\n private updateLabelLang(lang: string): void {\n switch (lang) {\n case 'en':\n this.labelLang = 'labelEn';\n break;\n case 'de':\n this.labelLang = 'labelDe';\n break;\n default:\n this.labelLang = 'labelFr';\n break;\n }\n }\n\n onNavigateEvent($event: LinkRoutingModuleModel): void {\n this.redirect.emit($event);\n }\n\n onNavigateAdvancedSearch(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n\n protected readonly RapidSearchItemType = RapidSearchItemType;\n}\n","<div class=\"global-search\">\n <mat-icon class=\"header-icon\">search</mat-icon>\n <span class=\"global-search-separator\"></span>\n <mat-form-field class=\"max-width-100\" subscriptSizing=\"dynamic\">\n <input [formControl]=\"formControlSearch\"\n [matAutocomplete]=\"autoSearch\"\n class=\"global-search-input max-width-85\"\n matInput\n placeholder=\"search ...\"/>\n\n <button (click)=\"onNavigateAdvancedSearch(null, '/advanced-search')\"\n matSuffix\n class=\"btn advanced-button\" mat-raised-button>\n <mat-icon>flash_on</mat-icon>\n {{ 'COMMON.HEADER.GLOBAL_SEARCH.ADVANCED' | commonTranslate: lang() }}\n </button>\n\n <mat-autocomplete #autoSearch=\"matAutocomplete\" class=\"mat-autocomplete-global-search\" panelWidth=\"54vw\">\n @for (document of documents$ | async; track document) {\n <mat-option class=\"mat-option-global-search\">\n @switch (document.docType) {\n @case (RapidSearchItemType.PURCHASE_ORDER) {\n <sc-purchase-order-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-purchase-order-rapid-search>\n }\n @case (RapidSearchItemType.PRODUCT) {\n <sc-product-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n (redirect)=\"onNavigateEvent($event)\"></sc-product-rapid-search>\n }\n @case (RapidSearchItemType.WORK_VERSION) {\n <sc-work-version-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-work-version-rapid-search>\n }\n @case (RapidSearchItemType.DEAL) {\n <sc-deal-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-deal-rapid-search>\n }\n @case (RapidSearchItemType.WORK_RECORD) {\n <sc-work-record-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-work-record-rapid-search>\n }\n @case (RapidSearchItemType.THIRD_PARTY) {\n <sc-third-party-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-third-party-rapid-search>\n }\n @case (RapidSearchItemType.CONTRACT) {\n <sc-contract-rapid-search [document]=\"document\" [lang]=\"lang()\" [labelLang]=\"labelLang\"\n (redirect)=\"onNavigateEvent($event)\"></sc-contract-rapid-search>\n }\n @case (RapidSearchItemType.INVOICE) {\n <sc-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-invoice-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_CONTRACT) {\n <sc-royalty-contract-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-contract-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_INVOICE) {\n <sc-royalty-invoice-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-invoice-rapid-search>\n }\n @case (RapidSearchItemType.ROYALTY_COUNT) {\n <sc-royalty-count-rapid-search [document]=\"document\" [lang]=\"lang()\"\n (redirect)=\"onNavigateEvent($event)\"></sc-royalty-count-rapid-search>\n }\n }\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</div>\n","export enum HistoryItemTypeEnum {\n PRODUCT = 'PRODUCT',\n PURCHASE_ORDER = 'PO',\n DEAL = 'DEAL',\n WORK = 'WORK',\n CONTRACT_ACQ = 'CONTRACT_ACQ',\n CONTRACT_CESS = 'CONTRACT_CESS',\n CONTRACT_AUTH = 'CONTRACT_AUTH',\n BUDGET = 'BUDGET',\n NO_HISTORY_AVAILABLE = 'NO_HISTORY_AVAILABLE'\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { HistoryItemTypeEnum } from \"../../../enums/history-item-type.enum\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-history',\n templateUrl: './history.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class HistoryComponent {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n public historyList: any[] = [];\n\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public getHistory(): void {\n this.historyList = [];\n if (this.localStorageService.exist('history')) {\n this.historyList = this.localStorageService.get('history');\n }\n\n if (this.historyList.length === 0) {\n this.historyList.push({type: 'NO_HISTORY_AVAILABLE', id: null, ref: null});\n }\n }\n\n public onSelectHistory(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n\n protected readonly HistoryItemTypeEnum = HistoryItemTypeEnum;\n}\n","<span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\" class=\"material-icons header-icon\" style=\"width: 100%\">history</span>\n\n<mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\n @for (history of historyList; track history) {\n @switch (history.type) {\n @case (HistoryItemTypeEnum.PRODUCT) {\n <button (click)=\"onSelectHistory('video ', '/product/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">theaters</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.PRODUCT' | commonTranslate : lang() }}{{ history.type }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.PURCHASE_ORDER) {\n <button (click)=\"onSelectHistory('expenditure-commitment', '/purchase-orders/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">receipt_long</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.PO' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.DEAL) {\n <button (click)=\"onSelectHistory('commercial', '/deal/consult/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">local_offer</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.DEAL' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.WORK) {\n <button (click)=\"onSelectHistory('commercial', '/work-record/consult/'+ history.id +'/general')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">assignment</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.WORK_RECORD' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_ACQ) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/acq/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">shop_two</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_ACQ' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_CESS) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/cess/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">receipt</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_CESS' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.CONTRACT_AUTH) {\n <button (click)=\"onSelectHistory('legal', '/contracts-details/auth/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">account_circle</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.CONTRACT_AUTH' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.BUDGET) {\n <button (click)=\"onSelectHistory('expenditure-commitment', '/budget/form/' + history.id)\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">payments</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.BUDGET' | commonTranslate : lang() }} {{ history.ref }}\n </button>\n }\n @case (HistoryItemTypeEnum.NO_HISTORY_AVAILABLE) {\n <button mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">not_interested</mat-icon>\n {{ 'COMMON.HEADER.HISTORY.NO_HISTORY_AVAILABLE' | commonTranslate : lang() }}\n </button>\n }\n }\n }\n</mat-menu>\n","import { EventEmitter, inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LocalStorageService } from \"../storage/local-storage.service\";\n\n@Injectable()\nexport class LangService {\n public switchLangEmitter: EventEmitter<any> = new EventEmitter();\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n translateLanguage(): void {\n this.translateService.addLangs(['en', 'fr', 'de']);\n if (this.localStorageService.exist('lang') && this.translateService.getLangs().indexOf(this.localStorageService.get('lang')) != -1) {\n this.translateService.use(this.localStorageService.get('lang'));\n } else {\n this.translateService.use(this.translateService.getLangs().indexOf(this.translateService.getBrowserLang()) != -1 ? this.translateService.getBrowserLang() : 'en');\n }\n this.localStorageService.post('lang', this.translateService.currentLang);\n }\n\n // emit an event when local storage change\n public switchLang(): void {\n this.switchLangEmitter.emit();\n }\n}\n","export function Theme(): (target: any, key: string) => void {\n return (target: any, key: string): void => {\n // Check if the data exist in the local storage\n function exist(dataKey: string): boolean {\n return localStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(theme: string): any {\n return exist(theme) ? JSON.parse(localStorage.getItem(theme)) : null;\n }\n\n // Set data in the local storage and return it\n function setDefault(theme: any): string {\n localStorage.setItem('newTheme', JSON.stringify(theme));\n return theme;\n }\n\n Object.defineProperty(target, key, {\n configurable: false,\n get: () => (exist('newTheme') ? get('newTheme') : setDefault('light'))\n });\n };\n}\n","import { Component, inject, input, InputSignal, output, OutputEmitterRef } from '@angular/core';\nimport { User } from \"../../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../../models\";\nimport { LocalStorageService } from \"../../../services/storage/local-storage.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\nimport { LangService } from \"../../../services/translate-language/lang.service\";\nimport { Theme } from \"../../../decorators/theme.decorator\";\nimport { LinkRoutingModuleModel } from \"../../../models/link-routing-module.model\";\n\n@Component({\n selector: 'sc-settings',\n templateUrl: './settings.component.html',\n styleUrl: '../header.component.scss'\n})\nexport class SettingsComponent {\n lang: InputSignal<string> = input<string>();\n redirect: OutputEmitterRef<LinkRoutingModuleModel> = output<LinkRoutingModuleModel>();\n\n @Theme() public theme: string;\n @User() public user: AuthUserModel;\n\n public languagesAvailable: string[] = [\"en\", \"fr\", \"de\"]\n restrictions: string[] = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\n\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly overlayContainer: OverlayContainer = inject(OverlayContainer);\n private readonly langService: LangService = inject(LangService);\n\n public switchTheme(): void {\n if (this.theme === 'dark') {\n this.localStorageService.post('newTheme', 'light');\n this.overlayContainer\n .getContainerElement()\n .classList.remove('dark-theme');\n this.overlayContainer.getContainerElement().classList.add('light-theme');\n } else {\n this.localStorageService.post('newTheme', 'dark');\n this.overlayContainer\n .getContainerElement()\n .classList.remove('light-theme');\n this.overlayContainer.getContainerElement().classList.add('dark-theme');\n }\n }\n\n public switchLang(lang: string): void {\n this.localStorageService.post('lang', lang);\n this.translateService.use(lang);\n this.langService.switchLang();\n }\n\n onRedirect(module: string, route: string): void {\n this.redirect.emit({module: module, route: route});\n }\n}\n","<span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon\" style=\"width: 100%\">settings</span>\n\n<!-- #enddocregion mat-menu-trigger-for -->\n<mat-menu #settings=\"matMenu\" class=\"settings-menu\">\n <button (click)=\"switchTheme()\" mat-menu-item>\n <mat-icon class=\"theme-icon\">toggle_on</mat-icon>\n <span>{{ 'COMMON.HEADER.PARAMETERS.THEME' | commonTranslate: lang() }}</span>\n </button>\n\n <!-- Language -->\n @for (language of languagesAvailable; track language) {\n @if (lang() !== language) {\n <button class=\"img-btn\" (click)='switchLang(language)' mat-menu-item>\n <img class=\"mat-icon\" ngSrc=\"assets/img/flag/{{language}}-flag.png\" height=\"47\" width=\"70\" alt=\"\">\n <span>{{ language }}</span>\n </button>\n }\n }\n\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/account/authorization/search')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">manage_accounts</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SECTION_TITLE' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"onRedirect('user', '/account/settings')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">settings</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.SETTINGS' | commonTranslate: lang() }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--NOTIFICATIONS-->\n @if (user && user.admin) {\n <button (click)=\"onRedirect('user', '/notifications')\" mat-menu-item>\n <mat-icon class=\"material-icons-outlined\">announcement</mat-icon>\n <span>{{ 'COMMON.HEADER.MENU.USER.NOTIFICATIONS' | commonTranslate: lang() }}</span>\n </button>\n }\n </ng-container>\n</mat-menu>\n","import { Inject, Injectable } from '@angular/core';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { Observable } from 'rxjs';\nimport { NotificationModel } from '../../models/notification.model';\nimport { catchError } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { CommonApiService } from './common-api.service';\n\n@Injectable()\nexport class NotificationApiService {\n public apiUrl: string = this.config.api_url + '/authorization-api/';\n\n constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n private readonly http: HttpClient) {\n }\n\n public getLiveNotifications(): Observable<NotificationModel[]> {\n return this.http.get<NotificationModel[]>(this.apiUrl + `notifications/live`)\n .pipe(catchError(CommonApiService.handleError));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n private isAuthenticatedSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n isAuthenticated$: Observable<boolean> = this.isAuthenticatedSubject.asObservable();\n\n public setAuthenticated(isAuthenticated: boolean): void {\n this.isAuthenticatedSubject.next(isAuthenticated);\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Client, Message } from '@stomp/stompjs';\nimport { BehaviorSubject } from 'rxjs';\nimport SockJS from 'sockjs-client';\nimport { User } from '../../decorators/user.decorator';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { NotificationModel, UserModel } from '../../models';\nimport { NotificationApiService } from '../api/notification-api.service';\nimport { LocalStorageService } from '../storage/local-storage.service';\nimport { AuthService } from '../auth/auth.service';\n\nexport const NOTIFICATION_WEBSOCKET_URL = '/authorization-api/ws';\nexport const NOTIFICATION_TOPIC = '/topic/notification';\nexport const ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY = 'ackedNotifications';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n @User() public user: UserModel;\n\n private stompClient: Client | null = null;\n\n private readonly notificationSubject = new BehaviorSubject<NotificationModel>(null);\n\n // Observable for components to subscribe to messages\n public notifications$ = this.notificationSubject.asObservable();\n\n constructor(@Inject(WEB_CONFIG) private readonly config: Config,\n private readonly notificationApiService: NotificationApiService,\n private readonly localStorage: LocalStorageService,\n readonly authService: AuthService) {\n authService.isAuthenticated$.subscribe(isAuthenticated => {\n if (isAuthenticated) {\n this.fetchLiveNotifications();\n this.subscribeToNotifications(this.config.api_url + NOTIFICATION_WEBSOCKET_URL);\n }\n });\n }\n\n public ackNotification(notification: NotificationModel): void {\n const ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n ackedNotifications.push(notification.id);\n this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n }\n\n private fetchLiveNotifications(): void {\n this.notificationApiService.getLiveNotifications().subscribe(notifications => {\n const liveNotificationIds = notifications.map(notification => notification.id);\n\n // Clear up any acked notifications that have expired (no longer live)\n let ackedNotifications: number[] = this.localStorage.get(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY) ?? [];\n ackedNotifications = ackedNotifications.filter(ackedNotificationId => liveNotificationIds.indexOf(ackedNotificationId) >= 0)\n this.localStorage.post(ACKED_NOTIFICATIONS_LOCAL_STORAGE_KEY, ackedNotifications);\n\n // Handle new notifications\n notifications.filter(notification => notification.published)\n .filter(notification => ackedNotifications.indexOf(notification.id) === -1)\n .forEach(notification => this.handleNotification(notification));\n });\n }\n\n private subscribeToNotifications(wsApiUrl: string): void {\n if (this.stompClient) {\n return;\n }\n\n // Start listening for new notifications\n const socket = new SockJS(wsApiUrl); // Initialize the SockJS WebSocket connection to the server\n\n // Configure the STOMP client with connection details\n this.stompClient = new Client({\n webSocketFactory: () => socket, // Use SockJS as the WebSocket factory\n reconnectDelay: 5000, // Reconnect delay if connection is lost\n });\n\n if (!this.stompClient) {\n console.error('Failed to initialize stomp client');\n return;\n }\n\n // On successful connection\n this.stompClient.onConnect = () => {\n // Register notification callback\n this.stompClient.subscribe(NOTIFICATION_TOPIC, (message: Message) => {\n const notification: NotificationModel = JSON.parse(message.body);\n this.handleNotification(notification);\n });\n };\n\n this.stompClient.onStompError = (frame) => {\n console.error('Broker reported error: ' + frame.headers['message']);\n console.error('Additional details: ' + frame.body);\n };\n\n console.log('Activating stomp client');\n this.stompClient.activate();\n }\n\n private handleNotification(notification: NotificationModel): void {\n const targetSectionIds = notification.targetSections.map(section => section.id);\n const userSectionIds = this.user.permissions.map(permission => permission.sectionId);\n\n if (targetSectionIds.some((targetSectionId) => userSectionIds.includes(targetSectionId))) {\n this.notificationSubject.next(notification);\n }\n }\n}\n","import { Component, inject, input, InputSignal, OnDestroy, OnInit } from '@angular/core';\n\nimport { Subscription } from 'rxjs';\nimport { NotificationService } from '../../services/notification/notification.service';\nimport { NotificationModel } from '../../models';\n\n@Component({\n selector: 'notification-bar',\n templateUrl: './notification-bar.component.html',\n styleUrls: [ './notification-bar.component.scss' ]\n})\nexport class NotificationBarComponent implements OnInit, OnDestroy {\n lang: InputSignal<string> = input<string>();\n\n public notifications: NotificationModel[] = [];\n\n private readonly subs = new Subscription();\n\n private readonly notificationService: NotificationService = inject(NotificationService);\n\n ngOnInit(): void {\n this.subs.add(this.notificationService.notifications$.subscribe(notification => {\n if (notification && !this.notifications.some(otherNotification => otherNotification.id === notification.id)) {\n this.notifications.push(notification);\n }\n }));\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n public ackNotification(notification: NotificationModel): void {\n this.notificationService.ackNotification(notification);\n let index = this.notifications.indexOf(notification);\n this.notifications.splice(index, 1);\n }\n}\n","<div class=\"notification-bar-wrapper\">\n @for (notification of notifications; track notification) {\n <div [ngClass]=\"'notification-bar notification-bar-' + notification.classification\">\n <div class=\"notification-bar-message\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">\n @if (notification.classification === 'INFO') {\n info\n } @else if (notification.classification === 'FEAT') {\n rocket_launch\n } @else {\n warning_amber\n }\n </mat-icon>\n <span>{{ lang() === 'fr' ? notification.messageFr : notification.messageEn }}</span>\n </div>\n <button class=\"notification-close-button\" (click)=\"ackNotification(notification)\">\n <mat-icon class=\"material-icons-outlined mat-icon-small\">close</mat-icon>\n </button>\n </div>\n }\n</div>\n","import { Component, HostListener, inject, OnInit, output, OutputEmitterRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PermissionsInterface } from \"../../interfaces/permissions.interface\";\nimport { User } from \"../../decorators/user.decorator\";\nimport { AuthUserModel } from \"../../models\";\nimport { LocalStorageEventsService } from \"../../event/storage/local-storage-events.service\";\nimport { LocalStorageService } from \"../../services/storage/local-storage.service\";\nimport { PermissionsService } from \"../../permissions/permissions.service\";\nimport { Config, WEB_CONFIG } from \"../../config\";\nimport { ElasticsearchService } from \"../../services/elasticsearch/elasticsearch.service\";\nimport { FormControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { RapidSearchAllDocumentModel } from \"../../models/rapid-search-all-document.model\";\nimport { LinkRoutingModuleModel } from \"../../models/link-routing-module.model\";\n\n\n@Component({\n selector: 'sc-header',\n styleUrls: ['./header.component.scss'],\n templateUrl: './header.component.html'\n})\nexport class HeaderComponent implements OnInit, PermissionsInterface {\n @User() public user: AuthUserModel;\n toogleMenuEvent: OutputEmitterRef<any> = output<any>();\n\n public lang: string;\n public isHide: boolean = false;\n public currentScroll: number = 0;\n public env: string;\n public formControlSearch: FormControl<string>;\n public documents$: Observable<(RapidSearchAllDocumentModel)[]>;\n\n private readonly router: Router = inject(Router);\n private readonly localStorageEventsService: LocalStorageEventsService = inject(LocalStorageEventsService);\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n private readonly permissionsService: PermissionsService = inject(PermissionsService);\n private readonly elasticsearchService: ElasticsearchService = inject(ElasticsearchService);\n private readonly config: Config = inject(WEB_CONFIG);\n\n public ngOnInit(): void {\n this.formControlSearch = new FormControl<string>(null);\n\n this.initPermissionsService();\n this.lang = this.localStorageService.get('lang') || 'fr';\n this.env = this.config.env.toLowerCase();\n this.localStorageEventsService.localStorageEvent.subscribe(() => {\n this.lang = this.localStorageService.get('lang');\n });\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll(): void {\n const numberVar: number = document.documentElement.scrollTop;\n if (numberVar > this.currentScroll) {\n this.isHide = true;\n }\n if (numberVar < this.currentScroll) {\n this.isHide = false;\n }\n this.currentScroll = numberVar;\n }\n\n\n public initPermissionsService(): void {\n this.permissionsService.init();\n }\n\n stopIdentityTheft(): void {\n sessionStorage.removeItem('authTokenSecondary');\n }\n\n public onNavigateEvent($event: LinkRoutingModuleModel): void {\n this.navigate($event.module, $event.route, $event.queryParamString);\n }\n\n public navigate(module = '', route: string, queryParamString?: string | null): void {\n if (!route.startsWith('/')) {\n route = '/' + route;\n }\n\n const url: string = this.config.api_url + (module ? `/${module}` : '') + route;\n let queryParams: any = null;\n if (queryParamString != null) {\n queryParams = JSON.parse(queryParamString);\n }\n\n if (window.location.href === url && queryParams == null) {\n window.location.reload();\n } else if (window.location.pathname.startsWith(`/${module}`)) {\n this.router\n .navigateByUrl('/', {skipLocationChange: true})\n .then(() => this.router.navigate([route], queryParams ? {queryParams} : {}));\n } else {\n window.location.href = url;\n }\n }\n\n public redirect(route: string): void {\n window.location.href = route;\n }\n}\n","<!-- Notifications container -->\n<notification-bar [lang]=\"lang\"></notification-bar>\n\n<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\n <!-- Unity Logo -->\n <span class=\"d-flex align-items-end\">\n <a\n [href]=\"env === 'prod' ? 'https://unity.studiocanal.com/dashboard' : (env === 'sbx' ? 'https://unity-sbx.cplus/dashboard' : 'https://unity-' + env + '.studiocanal.com/dashboard')\">\n <img class=\"logo-unity\" alt=\"\" ngSrc=\"./assets/img/unity_logo_48x48.png\" width=\"48\" height=\"48\">\n </a>\n @if (env !== 'prod') {\n <span [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\n }\n </span>\n\n <!-- Modules menu -->\n <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\n (redirect)=\"redirect($event.route)\" class=\"menu-header\"/>\n\n <!-- Search -->\n <sc-advanced-search [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"global-search\"/>\n\n <!-- Connected as -->\n @if (user && user.secondary) {\n <div class=\"connected-as d-flex justify-content-between align-items-center\">\n <span style=\"margin-right: 10px\">\n {{ 'COMMON.HEADER.CONNECTED_AS' | commonTranslate: lang }} {{ user.login + ' - ' + user.firstName + ' ' + user.name }}\n </span>\n\n @if (user.secondary) {\n <button (click)=\"stopIdentityTheft()\" color=\"warn\" mat-raised-button>\n {{ 'CORE.STOP' | commonTranslate: lang }}\n </button>\n }\n </div>\n }\n\n <!-- History -->\n <sc-history [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\" class=\"material-icons header-icon max-width-5\"/>\n <span class=\"header-separator\"></span>\n <!-- Settings -->\n <sc-settings [lang]=\"lang\" (redirect)=\"onNavigateEvent($event)\"\n class=\"material-icons-outlined header-icon max-width-5\"/>\n\n</mat-toolbar>\n\n","// Angular 2\nimport { Component, HostListener, inject, OnInit } from '@angular/core';\n// Decorators\nimport { Theme } from '../../decorators/theme.decorator';\nimport { DOCUMENT } from '@angular/common';\n\n// Component configuration\n\n@Component({\n selector: 'sc-sub-header',\n templateUrl: './sub-header.component.html',\n styleUrls: ['./sub-header.component.css']\n})\nexport class SubHeaderComponent implements OnInit {\n @Theme() public theme: string;\n\n public isHide: boolean = false;\n public currentScroll: number = 0;\n\n private readonly document: any = inject(DOCUMENT);\n\n public ngOnInit(): void {\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll(): void {\n const numberVar: any = this.document.documentElement.scrollTop;\n if (numberVar > this.currentScroll) {\n this.isHide = true;\n }\n if (numberVar < this.currentScroll) {\n this.isHide = false;\n }\n this.currentScroll = numberVar;\n }\n}\n","<div id=\"template-header-container\">\n <div [ngClass]=\"{'header-hide':isHide}\" id=\"template-header\">\n\n <!-- What you want -->\n <div id=\"left-part\">\n <ng-content select=[left]></ng-content>\n </div>\n\n <!-- What you want -->\n <div id=\"middle-part\">\n <ng-content select=[middle]></ng-content>\n </div>\n\n <!-- What you want -->\n <div id=\"right-part\">\n <ng-content select=[right]></ng-content>\n </div>\n\n </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport * as CryptoJS from 'crypto-js';\n\n@Injectable()\nexport class AesService {\n\n private readonly SECRET_CODE: string = '1234567891234567';\n private keySize: number = 128 / 32;\n private iterationCount: number = 1000;\n private pwdEncrypted: string;\n\n public generateKey(salt: string): any {\n\n return CryptoJS.PBKDF2(\n this.SECRET_CODE,\n CryptoJS.enc.Hex.parse(salt),\n {keySize: this.keySize, iterations: this.iterationCount, hasher: CryptoJS.algo.SHA1 });\n }\n\n public encrypt(planText: string): string {\n const iv: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n const salt: any = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n\n const key: any = this.generateKey(salt);\n\n const encrypted: any = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\n\n const cipherText: any = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\n\n const aesPassword: string = (iv + '::' + salt + '::' + cipherText);\n // conversion en base 64\n this.pwdEncrypted = btoa(aesPassword);\n\n return this.pwdEncrypted;\n }\n\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { AesService } from '../../../services/jwt-security/aes.service';\nimport { Config, WEB_CONFIG } from '../../../config';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../../../services/api/common-api.service';\nimport { UserFormModel } from \"../../../models/referential/user-form.model\";\n\n@Component({\n selector: 'sc-popup-login',\n templateUrl: './popup-login.component.html',\n styleUrls: ['./popup-login.component.css']\n})\nexport class MyDialogPopupLoginComponent implements OnInit {\n public loading: boolean = false;\n public errorMessage: string = '';\n public apiUrl: string = '';\n public userForm: FormGroup<UserFormModel>;\n\n private readonly aesService: AesService = inject(AesService);\n private readonly http: HttpClient = inject(HttpClient);\n private readonly translateService: TranslateService = inject(TranslateService);\n private readonly cookieService: CookieService = inject(CookieService);\n private readonly commonApiService: CommonApiService = inject(CommonApiService);\n private readonly config: Config = inject(WEB_CONFIG);\n public readonly dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = inject(MatDialogRef<MyDialogPopupLoginComponent>);\n private readonly formBuilder: FormBuilder = inject(FormBuilder);\n\n constructor() {\n this.apiUrl = this.config.api_url + '/authorization-api';\n }\n\n public ngOnInit(): void {\n this.buildForm();\n }\n\n public onLogin(): void {\n if (this.userForm.invalid) {\n this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n return;\n }\n this.loading = true;\n this.errorMessage = '';\n\n const {username, password} = this.userForm.value;\n\n this.login(\n {username: username, password: password},\n this.translateService.currentLang\n ).subscribe({\n next: (user: any): void => {\n this.loading = false;\n sessionStorage.setItem('loginFlag', 'true');\n sessionStorage.removeItem('authToken');\n sessionStorage.setItem('authToken', user.token);\n this.cookieService.set('auth-mail', this.commonApiService.getUserDataFromToken().email);\n this.dialogRef.close(true);\n },\n error: (err: any): void => {\n this.loading = false;\n this.errorMessage = this.translateService.instant('CORE.LOGIN.ACCESS_DENIED');\n }\n }\n );\n }\n\n private login(user: any, language: string): Observable<any> {\n let url: string = this.apiUrl + '/login/findUser';\n if (language) {\n url += '?language=' + language;\n }\n\n user.password = this.aesService.encrypt(user.password);\n\n return this.http.post(url, user, {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n });\n }\n\n private buildForm(): void {\n this.userForm = this.formBuilder.group({\n username: this.formBuilder.control('', Validators.required),\n password: this.formBuilder.control('', Validators.required)\n }) as FormGroup<UserFormModel>;\n }\n}\n","<h3 mat-dialog-title>Log in</h3>\n\n<mat-dialog-content>\n <form (keyup.enter)=\"onLogin()\" [formGroup]=\"userForm\" class=\"d-flex flex-column\">\n <div class=\"form-group\">\n <mat-label>{{ 'CORE.LOGIN.USERNAME' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n </mat-label>\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"username\" matInput/>\n </mat-form-field>\n </div>\n <div class=\"form-group\">\n <mat-label>{{ 'CORE.LOGIN.PASSWORD' | translate }} <span style=\"color:#ef5350; font-weight: bold\">*</span>\n </mat-label>\n <mat-form-field appearance=\"outline\">\n <input formControlName=\"password\" matInput type=\"password\"/>\n </mat-form-field>\n </div>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button (click)=\"onLogin()\" [disabled]=\"loading\" class=\"primary w-100\" mat-raised-button\n type=\"submit\">{{ 'CORE.LOGIN.SIGN_IN' | translate }}\n </button>\n @if (loading) {\n <mat-spinner [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\n }\n @if (errorMessage !== null || errorMessage !== '') {\n <div class=\"errorMessage not-so-close-from-button\"> {{ errorMessage }}</div>\n }\n</mat-dialog-actions>\n\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ToasterEventsService {\n public toasterSuccessEvent: EventEmitter<any> = new EventEmitter();\n public toasterErrorEvent: EventEmitter<any> = new EventEmitter();\n public toasterWarnEvent: EventEmitter<any> = new EventEmitter();\n public toasterInfoEvent: EventEmitter<any> = new EventEmitter();\n\n // emit a success event toaster\n public successEvent(message: string): void {\n this.toasterSuccessEvent.emit(message);\n }\n\n // emit a success event toaster\n public errorEvent(message: string): void {\n this.toasterErrorEvent.emit(message);\n }\n\n // emit a success event toaster\n public warnEvent(message: string): void {\n this.toasterWarnEvent.emit(message);\n }\n\n // emit a success event toaster\n public infoEvent(message: string): void {\n this.toasterInfoEvent.emit(message);\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class HeaderEventsService {\n\n public toggleMenu: EventEmitter<any> = new EventEmitter<any>();\n public toggleLight: EventEmitter<any> = new EventEmitter<any>();\n\n public menuSwitch(): void {\n console.log('Menu switch');\n this.toggleMenu.emit();\n }\n\n public lightSwitch(): void {\n this.toggleLight.emit();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { LocalStorageService } from '../storage/local-storage.service';\n\n@Injectable()\nexport class HistoryService {\n private readonly localStorageService: LocalStorageService = inject(LocalStorageService);\n\n public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any): void {\n let history: any[] = [];\n if (this.localStorageService.exist('history')) {\n history = this.localStorageService.get('history');\n }\n // DELETE EXISTING SCREEN\n history.forEach((element: any, index: number): void => {\n if (this.exist(type, id, ref, element)) history.splice(index, 1);\n });\n // ADD THE LAST CONSULTED SCREEN TO THE BEGINNING\n history.unshift({type: type, id: id, ref: ref});\n\n // SHOW ONLY THE 10 LAST CONSULTED SCREENS\n if (history.length >= 10) {\n history = history.slice(0, 10);\n }\n\n // POST TO LOCAL STORAGE\n this.localStorageService.post('history', history);\n }\n\n private exist(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: string, history: any): boolean {\n return type == history.type && id == history.id && ref == history.ref;\n }\n\n}\n","import { Directive, ElementRef, HostListener, inject } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip][appShowIfTruncated]'\n})\nexport class ShowIfTruncatedDirective {\n private matTooltip: MatTooltip = inject(MatTooltip);\n private elementRef: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n\n @HostListener('mouseenter', ['$event'])\n setTooltipState(): void {\n const element: HTMLElement = this.elementRef.nativeElement;\n this.matTooltip.disabled = element.scrollWidth <= element.clientWidth;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AdressModel } from \"../models\";\n\n@Pipe({\n name: 'thirdPartyAddress'\n})\nexport class ThirdPartyAddressPipe implements PipeTransform {\n\n transform(thirdPartyAddress: AdressModel, ...args: unknown[]): unknown {\n return thirdPartyAddress?.street1 + '-' + thirdPartyAddress?.zipCode + '-' + thirdPartyAddress?.city + '-' + thirdPartyAddress?.country?.label;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatDuration'\n})\nexport class FormatDurationPipe implements PipeTransform {\n transform(value: any): string {\n if (value > 0 && value < 60) {\n return value + 'min';\n } else {\n const h: number = Math.floor(value / 60);\n const min: number = value % 60;\n return min === 0 ? h + 'h' : h + 'h ' + min + 'min';\n }\n }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n name: 'formatCurrency'\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n private readonly currencyPipe: CurrencyPipe = inject(CurrencyPipe);\n\n transform(value: number, currencyCode?: string, display?: string | boolean, digitsInfo?: string, language?: string): string {\n let formattedValue: string = this.currencyPipe.transform(value, currencyCode, display, digitsInfo);\n if(formattedValue) {\n if (language == 'de') {\n let [thousands, decimal] = formattedValue.split(',');\n thousands = thousands.replace(/\\s/g, '.');\n formattedValue = thousands + ',' + decimal;\n } else {\n formattedValue = formattedValue.replace(',', '.');\n }\n }\n\n return formattedValue ? formattedValue : '';\n }\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { MatPaginatorIntl } from \"@angular/material/paginator\";\n\n@Injectable()\nexport class CustomMatPaginatorIntl extends MatPaginatorIntl implements OnDestroy {\n unsubscribe: Subject<void> = new Subject<void>();\n OF_LABEL: string = 'of';\n\n private readonly translateService: TranslateService = inject(TranslateService);\n\n constructor() {\n super();\n\n this.translateService.onLangChange\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.getAndInitTranslations();\n });\n\n this.getAndInitTranslations();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n getAndInitTranslations(): void {\n this.translateService\n .get([\n 'PAGINATOR.ITEMS_PER_PAGE',\n 'PAGINATOR.NEXT_PAGE',\n 'PAGINATOR.PREVIOUS_PAGE',\n 'PAGINATOR.OF_LABEL',\n ])\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(translation => {\n this.itemsPerPageLabel =\n translation['PAGINATOR.ITEMS_PER_PAGE'];\n this.nextPageLabel = translation['PAGINATOR.NEXT_PAGE'];\n this.previousPageLabel =\n translation['PAGINATOR.PREVIOUS_PAGE'];\n this.OF_LABEL = translation['PAGINATOR.OF_LABEL'];\n this.changes.next();\n });\n }\n\n getRangeLabel = (\n page: number,\n pageSize: number,\n length: number,\n ): string => {\n if (length === 0 || pageSize === 0) {\n return `0 ${this.OF_LABEL} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex: number = page * pageSize;\n const endIndex: number =\n startIndex < length\n ? Math.min(startIndex + pageSize, length)\n : startIndex + pageSize;\n return `${startIndex + 1} - ${endIndex} ${\n this.OF_LABEL\n } ${length}`;\n };\n}\n","import { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\n// Angular\nimport { inject, ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { CommonModule, CurrencyPipe, DatePipe, NgOptimizedImage } from '@angular/common';\n// Services\nimport { CommonApiService } from './services/api/common-api.service';\n// Modules\nimport { LocalStorageService } from './services/storage/local-storage.service';\nimport { InterceptorHttpService } from './services/jwt-security/interceptorhttp.service';\nimport { MyNumberFormatterDirective } from './directives/my-number-formatter-directive';\nimport { CapitalizefirstPipe } from './pipes/capitalizefirst.pipe';\nimport { SpacesNumberPipe } from './pipes/comma-separated-number.pipe';\nimport { SanitizeHtml } from './pipes/display-html.pipe';\nimport { DisplayNullPipe } from './pipes/display-null.pipe';\nimport { FormatNumberInput } from './pipes/format-number-input.pipe';\nimport { LocalDatePipe } from './pipes/local-date.pipe';\nimport { MyNumberPipe } from './pipes/my-number.pipe';\nimport { TrimStringPipe } from './pipes/trim-string.pipe';\nimport { ThemeEventsService } from './theme/theme-event.service';\nimport { SessionStorageService } from './services/storage/session-storage.service';\nimport { MatCardModule } from '@angular/material/card';\nimport { PermissionsService } from './permissions/permissions.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { ArrayService } from './array.service';\nimport { OverlayComponent } from './component/overlay/overlay.component';\nimport { HeaderComponent } from './component/header/header.component';\nimport { SubHeaderComponent } from './component/sub-header/sub-header.component';\nimport { MyDialogPopupLoginComponent } from './component/popup/popup-login/popup-login.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { RouterModule } from '@angular/router';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AesService } from './services/jwt-security/aes.service';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ToasterEventsService } from \"./toaster/toaster-events.service\";\nimport { HeaderEventsService } from \"./event/header/header-events.service\";\nimport { MatInputModule } from '@angular/material/input';\nimport { CommonTranslatePipe } from \"./pipes/common-translate.pipe\";\nimport { HistoryService } from \"./services/history/history.service\";\nimport { LangService } from \"./services/translate-language/lang.service\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { ElasticsearchService } from \"./services/elasticsearch/elasticsearch.service\";\nimport { ShowIfTruncatedDirective } from './directives/show-if-truncated.directive';\nimport { ThirdPartyAddressPipe } from \"./pipes/third-party-address.pipe\";\nimport { FormatDurationPipe } from \"./pipes/format-duration.pipe\";\nimport { FormatCurrencyPipe } from './pipes/format-currency.pipe';\nimport { CustomMatPaginatorIntl } from \"./paginator/custom-paginator-configuration\";\nimport { ThirdPartyAddressSearchPipe } from \"./pipes/third-party-address-search.pipe\";\nimport { VideoApiService } from \"./services/api/video-api.service\";\nimport { CommercialApiService } from \"./services/api/commercial-api.service\";\nimport { MenuComponent } from './component/header/menu/menu.component';\nimport { AuthService } from './services/auth/auth.service';\nimport { LegalApiService } from \"./services/api/legal-api.service\";\nimport { UserSubsidiaryService } from './services/user/user-subsidiary.service';\nimport {\n PurchaseOrderRapidSearchComponent\n} from \"./component/header/advanced-search/purchase-order-rapid-search/purchase-order-rapid-search.component\";\nimport {\n ProductRapidSearchComponent\n} from \"./component/header/advanced-search/product-rapid-search/product-rapid-search.component\";\nimport {\n WorkVersionRapidSearchComponent\n} from \"./component/header/advanced-search/work-version-rapid-search/work-version-rapid-search.component\";\nimport {\n DealRapidSearchComponent\n} from \"./component/header/advanced-search/deal-rapid-search/deal-rapid-search.component\";\nimport {\n WorkRecordRapidSearchComponent\n} from \"./component/header/advanced-search/work-record-rapid-search/work-record-rapid-search.component\";\nimport {\n ThirdPartyRapidSearchComponent\n} from \"./component/header/advanced-search/third-party-rapid-search/third-party-rapid-search.component\";\nimport {\n ContractRapidSearchComponent\n} from \"./component/header/advanced-search/contract-rapid-search/contract-rapid-search.component\";\nimport {\n InvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/invoice-rapid-search/invoice-rapid-search.component\";\nimport { AdvancedSearchComponent } from \"./component/header/advanced-search/advanced-search.component\";\nimport { HistoryComponent } from \"./component/header/history/history.component\";\nimport { SettingsComponent } from \"./component/header/settings/settings.component\";\nimport {\n RoyaltyContractRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-contract-rapid-search/royalty-contract-rapid-search.component\";\nimport {\n RoyaltyInvoiceRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-invoice-rapid-search/royalty-invoice-rapid-search.component\";\nimport {\n RoyaltyCountRapidSearchComponent\n} from \"./component/header/advanced-search/royalty-count-rapid-search/royalty-count-rapid-search.component\";\nimport { NotificationBarComponent } from './component/notification/notification-bar.component';\nimport { NotificationApiService } from './services/api/notification-api.service';\n\n@NgModule({\n imports: [\n MatInputModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n MatFormFieldModule,\n CommonModule,\n TranslateModule,\n MatCardModule,\n MatDialogModule,\n NgxPermissionsModule,\n MatProgressSpinnerModule,\n RouterModule,\n ReactiveFormsModule,\n FormsModule,\n MatIconModule,\n MatMenuModule,\n MatAutocompleteModule,\n NgOptimizedImage\n ],\n declarations: [\n MyNumberFormatterDirective,\n CapitalizefirstPipe,\n SpacesNumberPipe,\n SanitizeHtml,\n DisplayNullPipe,\n FormatNumberInput,\n LocalDatePipe,\n MyNumberPipe,\n TrimStringPipe,\n CommonTranslatePipe,\n ThirdPartyAddressPipe,\n ThirdPartyAddressSearchPipe,\n FormatDurationPipe,\n MyDialogPopupLoginComponent,\n OverlayComponent,\n HeaderComponent,\n SubHeaderComponent,\n ShowIfTruncatedDirective,\n FormatCurrencyPipe,\n MenuComponent,\n PurchaseOrderRapidSearchComponent,\n ProductRapidSearchComponent,\n WorkVersionRapidSearchComponent,\n DealRapidSearchComponent,\n WorkRecordRapidSearchComponent,\n ThirdPartyRapidSearchComponent,\n ContractRapidSearchComponent,\n InvoiceRapidSearchComponent,\n AdvancedSearchComponent,\n HistoryComponent,\n SettingsComponent,\n RoyaltyContractRapidSearchComponent,\n RoyaltyInvoiceRapidSearchComponent,\n RoyaltyCountRapidSearchComponent,\n NotificationBarComponent\n ],\n providers: [\n {\n provide: HTTP_INTERCEPTORS,\n useClass: InterceptorHttpService,\n multi: true\n },\n TranslateService,\n ThemeEventsService,\n SessionStorageService,\n LocalStorageService,\n PermissionsService,\n ArrayService,\n CustomMatPaginatorIntl,\n CommonApiService,\n DatePipe,\n ThirdPartyAddressSearchPipe,\n LocalDatePipe,\n MyNumberPipe,\n AesService,\n CookieService,\n ToasterEventsService,\n HeaderEventsService,\n HistoryService,\n LangService,\n ElasticsearchService,\n LegalApiService,\n CurrencyPipe,\n MatTooltipModule,\n CommercialApiService,\n VideoApiService,\n AuthService,\n UserSubsidiaryService,\n NotificationApiService\n ],\n exports: [\n MyNumberFormatterDirective,\n CapitalizefirstPipe,\n SpacesNumberPipe,\n SanitizeHtml,\n DisplayNullPipe,\n FormatNumberInput,\n LocalDatePipe,\n MyNumberPipe,\n FormatCurrencyPipe,\n FormatDurationPipe,\n TrimStringPipe,\n ThirdPartyAddressPipe,\n HeaderComponent,\n OverlayComponent,\n SubHeaderComponent,\n ShowIfTruncatedDirective,\n CommonTranslatePipe\n ]\n})\nexport class UtilModule {\n private readonly langService: LangService = inject(LangService);\n\n constructor() {\n this.langService.translateLanguage();\n }\n\n public static forRoot(\n config: Config = DEFAULT_WEB_CONFIG\n ): ModuleWithProviders<UtilModule> {\n return {\n ngModule: UtilModule,\n providers: [{provide: WEB_CONFIG, useValue: config}]\n };\n }\n\n public static forChild(\n config: Config = DEFAULT_WEB_CONFIG\n ): ModuleWithProviders<UtilModule> {\n return {\n ngModule: UtilModule,\n providers: [{provide: WEB_CONFIG, useValue: config}]\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class RegexService {\n public isDecimalOrNegative(numberToCheck: number = null): boolean {\n if (numberToCheck == null) {\n return false;\n } else {\n const myRegexNoDecimal = new RegExp(/^\\d+$/, 'i');\n if (!myRegexNoDecimal.test(numberToCheck.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isMiloCode(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^[C0-9][0-9]{5}$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isAmount(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^\\d+\\.?\\d*$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isYesNo(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^(y|Y|n|N|o|O)$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isFinancialCondition(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(/^(f|F|s|S|g|G)$/, 'i');\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isOrderNumber(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(\n /^[5](6|8)(2|4|9)(N|O|Y)[0-9]{1}[C0-9][0-9]{5}[0-9]{1}$/,\n 'i'\n );\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n\n public isDate(value: string = null): boolean {\n if (value == null) {\n return false;\n } else {\n const regex = new RegExp(\n /^([0-9]{2}[-][0-9]{2}[-][0-9]{4}|[0-9]{4}[-][0-9]{2}[-][0-9]{2})$/,\n 'i'\n );\n if (regex.test(value.toString())) {\n return true;\n }\n }\n return false;\n }\n}\n","export class PeriodModel {\n\n constructor(public years: number,\n public months: number,\n public days: number) {\n }\n}\n","import { PeriodModel } from './PeriodModel';\n\n/**\n * Created by dstoian on 27/03/2017.\n */\n\nexport class DateUtil {\n public static daysPerMonth: Map<number, number> = new Map<number, number>();\n\n // Format Date to YYYY-MM-DD\n public static formatDate(date: Date, language: string): string {\n const mm: number = date.getMonth() + 1;\n const dd: number = date.getDate();\n\n if (language && 'fr' === language) {\n return [(dd > 9 ? '' : '0') + dd,\n (mm > 9 ? '' : '0') + mm,\n date.getFullYear()\n ].join('/');\n }\n\n return [date.getFullYear(),\n (mm > 9 ? '' : '0') + mm,\n (dd > 9 ? '' : '0') + dd\n ].join('-');\n }\n\n // convert a string formatted \"YYYY-MM-DD\" into a date object\n public static fromStringToDate(stringdate: string): Date {\n const parts: string[] = stringdate.split('-');\n const month: string = parts[1].toString();\n const yearNumber: number = Number(parts[0]);\n let monthNumber: number = 0;\n if (month[0] === '0') {\n monthNumber = +month[1];\n } else {\n monthNumber = +parts[1];\n }\n const numberOfDays = Number(parts[2]);\n return new Date(yearNumber, monthNumber - 1, numberOfDays);\n }\n\n // convert a string formatted \"YYYY-MM-DD\" into a date object\n public static fromStringToDateSecond(stringdate: string): Date {\n const parts: string[] = stringdate.split(',');\n const month: string = parts[1].toString();\n const yearNumber: number = Number(parts[0]);\n let monthNumber: number = 0;\n if (month[0] === '0') {\n monthNumber = +month[1];\n } else {\n monthNumber = +parts[1];\n }\n const numberOfDays: number = Number(parts[2]);\n return new Date(yearNumber, monthNumber - 1, numberOfDays);\n }\n\n public static periodBetweenDates(startDate: string, endDate: string): PeriodModel {\n DateUtil.initDaysPerMonths();\n const a = new Date(startDate);\n const b = new Date(endDate);\n let numberOfDays: number = 0;\n let numberOfYears: number = b.getFullYear() - a.getFullYear();\n let numberOfMonths: number = (b.getMonth() - a.getMonth() + 12) % 12;\n if (a.getMonth() === b.getMonth() && a.getTime() > b.getTime()) {\n numberOfYears--;\n }\n if (a.getMonth() > b.getMonth()) {\n numberOfYears--;\n }\n if (a.getDate() > b.getDate()) {\n numberOfMonths--;\n if (numberOfMonths < 0) {\n numberOfMonths = 11;\n }\n }\n if (b.getDate() < a.getDate()) {\n let numberOfDaysPerMonth: number = DateUtil.daysPerMonth.get(a.getMonth());\n if (a.getMonth() === 1 && DateUtil.checkLeapYear(a.getFullYear())) {\n numberOfDaysPerMonth++;\n }\n numberOfDays = numberOfDaysPerMonth - a.getDate() + b.getDate();\n } else {\n numberOfDays = b.getDate() - a.getDate();\n }\n return new PeriodModel(numberOfYears, numberOfMonths, numberOfDays);\n }\n\n public static checkLeapYear(year: number): boolean {\n if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {\n return true;\n }\n return false;\n }\n\n public static initDaysPerMonths(): void {\n DateUtil.daysPerMonth.set(0, 31);\n DateUtil.daysPerMonth.set(1, 28);\n DateUtil.daysPerMonth.set(2, 31);\n DateUtil.daysPerMonth.set(3, 30);\n DateUtil.daysPerMonth.set(4, 31);\n DateUtil.daysPerMonth.set(5, 30);\n DateUtil.daysPerMonth.set(6, 31);\n DateUtil.daysPerMonth.set(7, 31);\n DateUtil.daysPerMonth.set(8, 30);\n DateUtil.daysPerMonth.set(9, 31);\n DateUtil.daysPerMonth.set(10, 30);\n DateUtil.daysPerMonth.set(11, 31);\n }\n\n // returns 0 if the 2 dates are equal, 1 if the first date is greater than the second one or -1 when it's the opposite\n public static compareLocalDates(first: Date, second: Date): number {\n if (first.getFullYear() > second.getFullYear()) {\n return 1;\n } else if (first.getFullYear() < second.getFullYear()) {\n return -1;\n } else {\n if (first.getMonth() > second.getMonth()) {\n return 1;\n } else if (first.getMonth() < second.getMonth()) {\n return -1;\n } else {\n if (first.getDate() > second.getDate()) {\n return 1;\n } else if (first.getDate() < second.getDate()) {\n return -1;\n } else {\n return 0;\n }\n }\n }\n }\n\n /* From moment-precise-range plugin */\n public static preciseDiff(d1: any, d2: any): PeriodModel {\n // let m1 = moment(d1);\n // let m2 = moment(d2);\n //\n // if (m1.isSame(m2)) {\n // return new PeriodModel(0, 0, 0);\n // }\n // if (m1.isAfter(m2)) {\n // const tmp = m1;\n // m1 = m2;\n // m2 = tmp;\n // }\n //\n // let yDiff = m2.year() - m1.year();\n // let mDiff = m2.month() - m1.month();\n // let dDiff = m2.date() - m1.date();\n // let hourDiff = m2.hour() - m1.hour();\n // let minDiff = m2.minute() - m1.minute();\n // let secDiff = m2.second() - m1.second();\n //\n // if (secDiff < 0) {\n // secDiff = 60 + secDiff;\n // minDiff--;\n // }\n // if (minDiff < 0) {\n // minDiff = 60 + minDiff;\n // hourDiff--;\n // }\n // if (hourDiff < 0) {\n // hourDiff = 24 + hourDiff;\n // dDiff--;\n // }\n // if (dDiff < 0) {\n // const daysInLastFullMonth = moment(m2.year() + '-' + (m2.month() + 1), 'YYYY-MM')\n // .subtract(1, 'months').daysInMonth();\n // if (daysInLastFullMonth < m1.date()) { // 31/01 -> 2/03\n // dDiff = daysInLastFullMonth + dDiff + (m1.date() - daysInLastFullMonth);\n // } else {\n // dDiff = daysInLastFullMonth + dDiff;\n // }\n // mDiff--;\n // }\n // if (mDiff < 0) {\n // mDiff = 12 + mDiff;\n // yDiff--;\n // }\n //\n // const result = [];\n //\n // moment.relativeTimeThreshold('s', 60);\n // moment.relativeTimeThreshold('m', 60);\n // moment.relativeTimeThreshold('h', 23);\n // moment.relativeTimeThreshold('dd', 28);\n // moment.relativeTimeThreshold('dm', 45);\n // moment.relativeTimeThreshold('dy', 365);\n //\n // if (yDiff) {\n // result.push(moment.duration(yDiff, 'year').humanize());\n // }\n // if (mDiff) {\n // result.push(moment.duration(mDiff, 'month').humanize());\n // }\n // if (dDiff) {\n // result.push(moment.duration(dDiff, 'day').humanize());\n // }\n // if (hourDiff) {\n // result.push(moment.duration(hourDiff, 'hour').humanize());\n // }\n // if (minDiff) {\n // result.push(moment.duration(minDiff, 'minute').humanize());\n // }\n // if (secDiff) {\n // result.push(moment.duration(secDiff, 'second').humanize());\n // }\n //\n // const period = new PeriodModel(0, 0, 0);\n // period.years = moment.duration(yDiff, 'year').asYears();\n // period.months = moment.duration(mDiff, 'month').asMonths();\n // period.days = moment.duration(dDiff, 'day').asDays();\n //\n return new PeriodModel(0, 0, 0);\n }\n\n}\n","export const CUSTOM_DATE_FORMATS = {\n\n parse: {\n dateInput: {month: 'short', year: 'numeric', day: 'numeric'},\n },\n display: {\n dateInput: 'input',\n monthYearLabel: {year: 'numeric', month: 'long'},\n dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},\n monthYearA11yLabel: {year: 'numeric', month: 'long'},\n }\n};\n","export class SortBy {\n // Function which sorts by no matter which field, in ascending and in descending order\n // The last parameter is optional and is a mapper.\n // Example of call :\n // --> exampleArray.sort(sort_by('id', true, parseInt)); -Sort the elements in ascending order by id.\n // If the id is not an integer and is for example a string, we may give a parameter the parseInt function\n // to do the conversion.\n\n // -->exampleArray.(sort_by('name', false, (a) =>{return a.toUpperCase()})); Sort the elements by name (case insensitive)\n public sortByField = (\n field: string,\n ascending: boolean,\n functionToApply?: Function\n ) => {\n let convertField = x => {\n return functionToApply ? functionToApply(x[field]) : x[field];\n };\n\n return (a, b) => {\n let A = convertField(a);\n let B = convertField(b);\n return (A < B ? -1 : A > B ? 1 : 0) * [-1, 1][+!!ascending];\n };\n };\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n// @dynamic\nexport class NumberValidator {\n public static validatorNumberGreaterThanZero(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === '' || control.value === undefined) {\n return null;\n } else if (control.value !== null) {\n const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n if (+numberWithoutSpaces === 0) {\n return {validatorNumberGreaterThanZero: true};\n }\n } else {\n return null;\n }\n };\n }\n\n /**\n *\n * @returns (control:AbstractControl)=>{}\n */\n // Tests if a number is negative or not. Returns true in case of negative numbers\n public validatorNumberNegative(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null || +control.value === 0) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces >= 0) {\n return null;\n } else {\n return {validatorNumberNegative: true};\n }\n }\n };\n }\n\n // Tests if a number is a valid percentage value (between 0 and 100)\n public validatorNumberValidPercentage(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value == null) {\n return null;\n }\n const numberWithoutComma: any = control.value.toString().replace(',', '.');\n if (+numberWithoutComma >= 0 && +numberWithoutComma <= 100) {\n return null;\n } else if (+control.value >= 0 && +control.value <= 100) {\n return null;\n } else {\n return {validatorNumberValidPercentages: true};\n }\n };\n }\n\n /*\n tests if a number is not an integer(it contains another characters than digits and -).\n If the number is not an integer, it will return true.\n Also tests if a number starts with 0. If the number starts with 0 -> return true\n */\n public validatorNumberInteger(): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === '' || control.value === undefined) {\n return null;\n } else if (+control.value === 0) {\n return null;\n } else if (control.value !== null) {\n const numberWithoutSpaces: any = control.value.toString().replace(/ /g, '');\n const myRegexNoDecimal = new RegExp(/^-?^[1-9]\\d*$/, 'i');\n if (!myRegexNoDecimal.test(numberWithoutSpaces)) {\n return {validatorNumberInteger: true};\n }\n } else {\n return null;\n }\n };\n }\n\n // tests if a number is lesser than another number\n public validatorNumberLesserThanAnother(anotherValue: number): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces <= anotherValue) {\n return null;\n } else {\n return {validatorNumberLesserThanAnother: true};\n }\n }\n };\n }\n\n // tests if a number is MAX than another number\n public validatorNumberMaxThanAnother(anotherValue: number): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } => {\n if (control.value === null) {\n return null;\n } else {\n const numberWithoutSpaces: any = control.value\n .toString()\n .replace(/ /g, '')\n .replace(',', '.');\n if (+numberWithoutSpaces > anotherValue) {\n return null;\n } else {\n return {validatorNumberLesserThanAnother: true};\n }\n }\n };\n }\n}\n","export class ReferentielModel {\n public id: number = null;\n public active: boolean = null;\n public category: string = null;\n public label: string = null;\n public order: number = null;\n public codeRef: string = null;\n public orderCode;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ReferentielModel[] {\n const refs: ReferentielModel[] = [];\n jsons.forEach(json => {\n refs.push(new ReferentielModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by mmichieli on 07/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class AudioContentModel {\n public id: number = null;\n public isDefault: boolean = false;\n public materialNumber: number;\n public languageId: number;\n public audioContentId: number;\n public audioFormatId: number;\n public licenceId: number;\n public typeMixId: number;\n public support: number;\n public supportLabel: string = null;\n public availabilityDate: string;\n\n public languageLabel: string = null;\n public audioContentLabel: string = null;\n public audioFormatLabel: string = null;\n public licenceLabel: string = null;\n public typeMixLabel: string = null;\n public statusLabel: string = null;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { AuthPermissionModel } from './authPermission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class AuthUserModel {\n public id: number = null;\n public login: string = null;\n public name: string = null;\n public firstName: string = null;\n public email: string = null;\n public admin: boolean;\n public superAdmin: boolean;\n public secondary: boolean = false;\n\n public permissions: AuthPermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class UserVideoModel {\n public id: number;\n public login: string;\n public lastName: string;\n public firstName: string;\n public profile: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): UserVideoModel[] {\n const refs: UserVideoModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new UserVideoModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class BasicModel {\n public idtechnique: number;\n public id: number;\n public label: string;\n public label2: string;\n public checked: boolean;\n public date: string;\n public accountingDate: string;\n public idParent: number;\n\n /* Permet d'avoir un constructeur surchargé grace aux \"?\"*/\n constructor(\n id?: number,\n label?: string,\n label2?: string,\n checked?: boolean,\n idtechnique?: number,\n date?: string,\n accountingDate?: string,\n idParent?: number\n ) {\n this.id = id;\n this.label = label;\n this.label2 = label2;\n this.checked = checked;\n this.idtechnique = idtechnique;\n this.date = date;\n this.accountingDate = accountingDate;\n this.idParent = idParent;\n }\n}\n","import { MenuLanguageModel } from './menu-language.model';\nimport { ReferentielModel } from './referentiel.model';\n\nexport class DiscDetailModel {\n public id: number = null;\n public laboratoryId: number = null;\n public menuLanguages: MenuLanguageModel[] = [];\n public startSequences: ReferentielModel[] = [];\n public menuAudioFormat: ReferentielModel = new ReferentielModel();\n public menuImageFormat: ReferentielModel = new ReferentielModel();\n public filmSpeedId: number = null;\n public laboratoryName: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { DiscProgramModel } from './disc-program.model';\nimport { DiscDetailModel } from './product-disc-detail.model';\n\nexport class DiscModel {\n public id: number = null;\n public refEan: string = null;\n public label: string = null;\n public support: ReferentielModel = new ReferentielModel();\n public pressingFormat: ReferentielModel = new ReferentielModel();\n public discDetail: DiscDetailModel = new DiscDetailModel();\n public programs: DiscProgramModel[] = [];\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { VideoContentModel } from './video-content.model';\nimport { AudioContentModel } from './audio-content.model';\nimport { SubtitleContentModel } from './subtitle-content.model';\n\nexport class ProgramModel {\n public id: number = null;\n public bonusType: ReferentielModel;\n public restoration: ReferentielModel = new ReferentielModel();\n public idWorkMilo: number = null;\n public idVersionMilo: number = null;\n public miloCode: string = null;\n public property: ReferentielModel = new ReferentielModel();\n public description: string = null;\n public note: string = null;\n public videoContents: VideoContentModel[] = [];\n public audioContents: AudioContentModel[] = [];\n public subtitleContents: SubtitleContentModel[] = [];\n public order: number = 0;\n\n constructor() {\n this.bonusType = new ReferentielModel();\n this.bonusType.id = 1;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ProgramModel } from './program.model';\n\nexport class DiscProgramModel {\n public id: number = null;\n public position: number = null;\n public program: ProgramModel = new ProgramModel();\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): DiscProgramModel[] {\n const refs: DiscProgramModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new DiscProgramModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class MenuLanguageModel {\n public id: number = null;\n public languageId: number = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ProductTypeModel {\n public id: number;\n public label: string;\n\n constructor() {\n this.id = null;\n this.label = null;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductTypeModel[] {\n const refs: ProductTypeModel[] = [];\n jsons.forEach(json => {\n refs.push(new ProductTypeModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class MediaModel {\n constructor(\n public id: number = null,\n public codeMedia = '',\n public label = '',\n public description = '',\n public group: boolean = null,\n public isGroup: boolean = null,\n public groupMediaList: MediaModel[] = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\n\nexport class LanguageModel {\n public id: number = null;\n public label: string = '';\n public isoCode: string = '';\n public IsLanguageTech: boolean = null;\n public order: number = 0;\n public territories: TerritoryModel[];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { LanguageModel } from './language.model';\n\nexport class TerritoryModel {\n public id: number;\n public label: string;\n public codeISO: string;\n public isGroup: boolean;\n public groupTerritoryList: TerritoryModel[];\n public languages: LanguageModel[];\n public flagCode: string;\n\n constructor() {\n this.id = null;\n this.label = '';\n this.codeISO = '';\n this.isGroup = null;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { AdressModel } from './adress.model';\nimport { BankAccountModel } from './bank-account.model';\nimport { MediaModel } from './media.model';\nimport { LanguageModel } from './language.model';\nimport { TerritoryModel } from './territory.model';\nimport { ThirdPartyModuleModel } from './third-party-module.model';\nimport { BroadcastListItem } from './broadcast-list-item.model';\n\nexport class ThirdPartyModel {\n\n public id: number = null;\n public companyOrPersonName = '';\n public code: string = null;\n public corelId: number = null;\n public idMaster: string = null;\n public clientOrProviderCategory: string = null;\n public thirdPartyType: string = null;\n public thirdPartyCPType: string = null;\n public poThirdPartyCPType: string = null;\n public tel: string = null;\n public fax: string = null;\n public buyingBlocked: boolean;\n public sellingBlocked: boolean;\n public firstName: string = null;\n public address: AdressModel = null;\n public addresses: AdressModel[];\n public thirdPartyModules: ThirdPartyModuleModel[];\n public blocked: boolean;\n public bankAccount: BankAccountModel = null;\n public companyName1: string = null;\n public companyName2: string = null;\n public siret: string = null;\n public siren: string = null;\n public codeSap: string = null;\n public name: string = null;\n public managingTerritory: TerritoryModel = new TerritoryModel();\n public managingMedia: MediaModel = new MediaModel();\n public managingLanguage: LanguageModel = new LanguageModel();\n public versionTimeStamp: string;\n\n public addressesToDelete: AdressModel[];\n public tpModulesToDelete: ThirdPartyModuleModel[];\n public broadcast?: BroadcastListItem[];\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n public static getCustomField(thirdPartyModel: ThirdPartyModel): string {\n let customField = thirdPartyModel.companyOrPersonName;\n customField = `${customField} (${thirdPartyModel.code})`;\n let address = thirdPartyModel.code === '0009146668' ? '199 Avenue des Erables – ZI de la Butte Gayen II – Cellule F – 94440 Santeny' :\n ThirdPartyModel.getAddress(thirdPartyModel);\n if (address) {\n customField = `${customField}, ${address}`;\n }\n if (thirdPartyModel.sellingBlocked) {\n customField = `${customField}, SELLING BLOCKED`;\n }\n return customField;\n }\n\n static getAddress(thirdPartyModel: ThirdPartyModel): string {\n let formattedAddress = '';\n if (!thirdPartyModel.address) {\n return formattedAddress;\n }\n if (thirdPartyModel.address.street1) {\n formattedAddress = thirdPartyModel.address.street1;\n } else if (thirdPartyModel.address.street2) {\n formattedAddress = thirdPartyModel.address.street2;\n } else if (thirdPartyModel.address.street3) {\n formattedAddress = thirdPartyModel.address.street3;\n }\n if (thirdPartyModel.address.zipCode) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.zipCode}`\n : thirdPartyModel.address.zipCode;\n }\n if (thirdPartyModel.address.city) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.city}`\n : thirdPartyModel.address.city;\n }\n if (thirdPartyModel.address.country) {\n formattedAddress = formattedAddress\n ? `${formattedAddress} - ${thirdPartyModel.address.country.label}`\n : thirdPartyModel.address.country.label;\n }\n return formattedAddress;\n }\n\n}\n","import { ReferentielModel } from './referentiel.model';\nimport { WorkMiloModel } from './referential/work-milo.model';\nimport { ProductDiscModel } from './product-disc.model';\n\nimport { ProductBoxSetModel } from './product-box-set.model';\nimport { ProductTypeModel } from './product-type.model';\nimport { UserVideoModel } from './user-video.model';\nimport { ThirdPartyModel } from './referential/third-party.model';\nimport { ProductDivisionModel } from './product-division.model';\nimport { TerritoryModel } from './referential/territory.model';\n\nexport class ProductModel {\n public id: number = null;\n public support: ReferentielModel = new ReferentielModel();\n public productType: ProductTypeModel = new ProductTypeModel();\n public exploitation: ReferentielModel = new ReferentielModel();\n public label: ReferentielModel = new ReferentielModel();\n public category: ReferentielModel = new ReferentielModel();\n public companyId: number = null;\n public companyCode: string = null;\n public editorId: number = null;\n public editor: ReferentielModel = new ReferentielModel();\n public status: ReferentielModel = new ReferentielModel();\n public distributor: ReferentielModel = new ReferentielModel();\n public productManager: UserVideoModel = new UserVideoModel();\n public projectManager: UserVideoModel = new UserVideoModel();\n public manufacturingManager: UserVideoModel = new UserVideoModel();\n public designer: ThirdPartyModel = new ThirdPartyModel();\n public pressOfficer: ThirdPartyModel = new ThirdPartyModel();\n public title: string = null;\n public descriptive: string = null;\n public releaseDate: any = null;\n public theatricalReleaseDate: any = null;\n public initialGoal: number = null;\n public numberOfDisc: number = null;\n public achievedGoal: number = null;\n public ean: string = null;\n public articleNumber: string = null;\n public pght: any = null;\n public notes: string = null;\n public productWorks: WorkMiloModel[] = [];\n public productDivisions: ProductDivisionModel[] = [];\n public territories: TerritoryModel[] = [];\n public productDiscs: ProductDiscModel[] = [];\n public productBoxSets: ProductBoxSetModel[] = [];\n public financialDistributionInitialized: boolean;\n public numFED: string = null;\n public designerCode: string = '';\n public pressOfficerCode: string = '';\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductModel[] {\n const refs: ProductModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ProductModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class BoxSetItemModel {\n public id: number = null;\n public support: ReferentielModel = new ReferentielModel();\n public ean: string = null;\n public title: string = null;\n public financialDistributionInitialized: boolean;\n public idWorks: number[] = [];\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BoxSetItemModel } from './box-set-item.model';\n\nexport class ProductBoxSetModel {\n public id: number = null;\n public boxSetItem: BoxSetItemModel = new BoxSetItemModel();\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { DiscModel } from './disc.model';\n\nexport class ProductDiscModel {\n public id: number = null;\n public position: number = null;\n public disc: DiscModel = new DiscModel();\n public checked: boolean = false;\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ProductDiscModel[] {\n const refs: ProductDiscModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ProductDiscModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","/**\n * Created by mmichieli on 13/02/2017.\n */\nimport { ReferentielModel } from './referentiel.model';\n\nexport class SubtitleContentModel {\n public id: number = null;\n public isDefault = false;\n public materialNumber: number;\n public languageId: number;\n public contentId: number;\n public stateId: number;\n public typeId: number;\n public origin: string = null;\n public localisation: string = null;\n public availabilityDate: string = null;\n public statusId: number;\n\n public languageLabel: string = null;\n public contentLabel: string = null;\n public stateLabel: string = null;\n public typeLabel: string = null;\n public statusLabel: string = null;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentielModel } from './referentiel.model';\n\nexport class VideoContentModel {\n public id: number = null;\n public materialNumber: string;\n public diffusionFormatId: number;\n public supportId: number;\n public ratioId: number;\n public colorId: number;\n public localisation: string;\n public duration: string;\n public origin: string;\n public isFormatRespected: boolean = false;\n public availabilityDate: string;\n public checked: boolean = false;\n\n public ratioLabel: string;\n public formatLabel: string;\n public colorLabel: string;\n public supportLabel: string;\n public statusLabel: string;\n\n public status: ReferentielModel = new ReferentielModel();\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ProductModel } from '../product.model';\nimport { ReferentielModel } from '../referentiel.model';\nimport { PurchaseOrderFileModel } from '../expenditure-commitment/purchase-order-file.model';\n\nexport class PurchaseOrderModel {\n public id: number = null;\n public number: number = null;\n public product: ProductModel = new ProductModel();\n public costCenterId: number = null;\n public costCenterName = '';\n public supplierMiloId: number = null;\n public supplierMiloName: string = null;\n public deliveryRadio = false;\n public expectedDeliveryDate = null;\n public description = '';\n public type = '';\n public currencyId = 32;\n public currencyLabel = '';\n public status: ReferentielModel = new ReferentielModel();\n public totalAmmountTF: number = null;\n public deliveryDate: string = null;\n public realDeliveryDate: string = null;\n public quantity = 1;\n public deliveredQuantity: number = null;\n public toBeDeliveredQuantity: number = null;\n public finalDelivery: boolean;\n public creator: string = null;\n public basketNumber: number = null;\n public orderSAPNumber: number = null;\n public creationDate: string = null;\n public currencyCode: string = null;\n public deliveryLocation: string;\n public unitPrice: number;\n public checked = false;\n public isDuplicate = false;\n public files: PurchaseOrderFileModel[] = [];\n public uuid: string;\n\n constructor() {\n this.status.id = 6;\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): PurchaseOrderModel[] {\n const refs: PurchaseOrderModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new PurchaseOrderModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class AdressTypeModel {\n constructor(public addressType: string = null) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CountryModel } from './coutry.model';\n\nexport class AdressModel {\n constructor(\n public id: number = 46,\n public thirdPartyId: number = null,\n public addressType: string = null,\n public street1: string = null,\n public street2: string = null,\n public street3: string = null,\n public bp: string = null,\n public city: string = null,\n public zipCode: string = null,\n public country: CountryModel = null,\n public tel: string = null,\n public fax: string = null,\n public email: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 13/09/2017.\n */\nexport class AttachedFileModel {\n public id: number = null;\n public name: string;\n public path: string;\n public url: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class BankAccountModel {\n constructor(\n public id: number = 46,\n public bankCountryCode: string = null,\n public bankNumber: string = null,\n public bankName: string = null,\n public bankType: string = null,\n public accountNumber: string = null,\n public accountHolder: string = null,\n public ribKey: string = null,\n public paiementMode: string = null,\n public accountDRGLT: string = null,\n public accountGen: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class InvoiceBankAccountModel {\n public id: number;\n public activated: boolean = null;\n public company: string = null;\n public bankName: string = null;\n public accountNumber: string = null;\n public iban: string = null;\n public swift: string = null;\n public label: string = null;\n public collectionAccount: boolean = null;\n public address: string = null;\n public currency: string = null;\n public miloCode: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons) {\n const refs: InvoiceBankAccountModel[] = [];\n jsons.forEach(json => {\n refs.push(new InvoiceBankAccountModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class BasicHierarchyModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public idParents: number[] = []\n ) {\n }\n}\n","export class ColorModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class CompanyModel {\n public code: string = null;\n public label: string = null;\n public id: number = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class ContentTypeModel {\n public id: number = null;\n public label: string;\n public category: string;\n public code: string;\n public codeBaseFileName: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ContentModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ContentModel[] {\n const refs: ContentModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new ContentModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","export class CostCenterCriteriaValueModel {\n public id: number;\n public code: string;\n public value: string = null;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CostCenterCriteriaValueModel } from './cost-center-criteria-values.model';\n\nexport class CostCenterCriteriaModel {\n public id: number;\n public code: string;\n public name: string;\n public value: string;\n public idCostCenterCriteriaValue: number;\n public criteriaValues: CostCenterCriteriaValueModel[];\n public codeCostCenterCriteriaValue: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CostCenterCriteriaModel } from './cost-center-criteria.model';\nimport { CompanyModel } from './company.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\nexport class CostCenterModel {\n public id: number = null;\n public code: string = null;\n public companyId: number = null;\n public company: CompanyModel = null;\n public doubling = false;\n public entityStateDto: ReferentialEntityStateModel = null;\n public label: string = null;\n public criterias: CostCenterCriteriaModel[] = null;\n public formattedLabel: string;\n\n public formattedString: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): CostCenterModel[] {\n const refs: CostCenterModel[] = [];\n jsons.forEach(json => {\n refs.push(new CostCenterModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class CountryModel {\n constructor(\n public id: number = -1,\n public isoCode: string = null,\n public label: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { FixingModel } from './fixing.model';\n\nexport class CurrencyModel {\n constructor(\n public id: number = null,\n public code: string = null,\n public label: string = null,\n public fixings: FixingModel[] = null,\n public blocked = false,\n public activated = true // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ContentTypeModel } from './content-type.model';\nimport { WorkModel } from './work.model';\nimport { FSKModel } from './fsk.model';\nimport { FSKIndexModel } from './fsk-index.model';\n\n/**\n * Created by vsliwka on 03/08/2017.\n */\nexport class EditorialContentModel {\n public id: number;\n public episodeId: number;\n public contentType: ContentTypeModel;\n public work: WorkModel;\n public number: string;\n public diffusionNum: string;\n public film24Duration: string;\n public film25Duration: string;\n public duration: string;\n public state: boolean;\n public descriptionTitle: string;\n public timeLineVersionName: string;\n public fsks: FSKModel[];\n public fsksIndex: FSKIndexModel[];\n\n constructor() {\n this.contentType = new ContentTypeModel();\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { CurrencyModel } from './currency.model';\n\nexport class FixingModel {\n public id = -1;\n public dateFixing: any = null;\n public currency: CurrencyModel;\n public rate = 0;\n public codeCurrencyRef: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n return this;\n }\n }\n }\n}\n","export class FlatMediaModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public idParent: number = null,\n public highlight = false,\n public disabled = false\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatImageModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public displayOrder: number = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatTypeModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FormatModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public codeFormat: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class ReferentialValueModel {\n public category: string;\n public label: string;\n public order: number;\n public id: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKIndexModel {\n public id: number;\n public editorialContentId: number;\n public comments: string;\n public dateIndexing: string;\n public judgement: string;\n public indexingNumber: string;\n public provider: string;\n public publication: string;\n public indexingRuntime: string;\n public sourceData: string;\n public category: ReferentialValueModel;\n public listab: ReferentialValueModel;\n public attachedFiles: AttachedFileModel[];\n\n constructor() {\n this.category = new ReferentialValueModel();\n this.listab = new ReferentialValueModel();\n this.attachedFiles = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { ReferentialValueModel } from './referential-value.model';\nimport { AttachedFileModel } from './attached-file.model';\n\n/**\n * Created by hbentaher on 23/08/2017.\n */\nexport class FSKModel {\n public id: number;\n public comments: string;\n public dateAgeRating: string;\n public lengthMeter: string;\n public workId: number;\n public lengthMinute: string;\n public lengthRuntime: string;\n public checkNumber: string;\n public restrictions: boolean;\n public indexed: boolean;\n public sundayBHA: boolean;\n public country: TerritoryModel;\n public language: LanguageModel;\n public subTitle: LanguageModel;\n public duration24: number;\n public duration25: number;\n public dateOfAgeRating: string;\n public oldLength: string;\n public provider: string;\n public ageRating: ReferentialValueModel;\n public category: ReferentialValueModel;\n public medium: ReferentialValueModel;\n public refProvider: ReferentialValueModel;\n public editorialContentId: number;\n public versionTimeStamp: string;\n public attachedFiles: AttachedFileModel[];\n\n constructor() {\n this.ageRating = new ReferentialValueModel();\n this.medium = new ReferentialValueModel();\n this.refProvider = new ReferentialValueModel();\n this.category = new ReferentialValueModel();\n this.attachedFiles = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class FunctionModel {\n public id: number = 0;\n public label: string = '';\n public order: number = 0;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any) : FunctionModel[] {\n const refs: FunctionModel[] = [];\n jsons.forEach(json => {\n refs.push(new FunctionModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class GenreModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class InvoiceProductTypeModel {\n public id = 0;\n public label = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): InvoiceProductTypeModel[] {\n const refs: InvoiceProductTypeModel[] = [];\n jsons.forEach(json => {\n refs.push(new InvoiceProductTypeModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class KeywordsModel {\n id: number;\n label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class MediaFilterModel {\n public id: number;\n public label: string;\n public isGroup: boolean;\n public idParent: number;\n public listIdParent: number[];\n public highlight: boolean;\n public disabled: boolean;\n public description: string;\n}\n","export class ModuleModel {\n constructor(\n public id: number = null,\n public category: string = null,\n public labelFr: string = null,\n public labelEn: string = null,\n public labelDe: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { PersonModel } from './person.model';\nimport { FunctionModel } from './function.model';\n\nexport class ParticipantModel {\n public id: number;\n public person: PersonModel;\n public function: FunctionModel;\n\n /* Old Atributes */\n public orderInFunction: number;\n\n constructor() {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ParticipantModel[] {\n const refs: ParticipantModel[] = [];\n jsons.forEach(json => {\n refs.push(new ParticipantModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class PersonModel {\n public id: number = 0;\n public lastName: string = '';\n public firstName: string = '';\n public dateOfBirth?: String;\n public placeOfBirth?: String;\n public dateOfDeath?: String;\n public placeOfDeath?: String;\n public sex?: String;\n\n constructor() {\n }\n\n fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): PersonModel[] {\n const refs: PersonModel[] = [];\n jsons.forEach(json => {\n refs.push(new PersonModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class ProjectStatusModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class QuotaModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 07/06/2017.\n */\n\nexport class ReferentialEntityStateModel {\n public deleted: boolean;\n public blocked: boolean;\n public activated: boolean;\n public updatable: boolean;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n return this;\n }\n }\n }\n}\n","export class ReferentielModel {\n public id: number = null;\n public active: boolean = null;\n public category: string = null;\n public label: string = null;\n public order: number = null;\n public codeRef: string = null;\n public orderCode;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): ReferentielModel[] {\n const refs: ReferentielModel[] = [];\n jsons.forEach(json => {\n refs.push(new ReferentielModel().fromJSON(json));\n });\n return refs;\n }\n}\n","import { ParameterModel } from './parameter.model';\n\nexport class SapOrderModel {\n public id: number;\n public orderCode: string;\n public designation: string;\n public company: string;\n public codeCompany: string;\n public managmentCompany: string;\n public category: string;\n public subCategory: string;\n public systemStatus: string;\n public buLabel: string;\n public validationDate: any;\n public closingDate: any;\n public technicalClosingDate: any;\n public process: string;\n // Concat orderCode + designation\n public displayRow: string;\n public codeManagmentCompany: string;\n params: ParameterModel[];\n\n // Informations Importants for work commercial\n public workTitleVo: string;\n public workStatusProject: string;\n public miloCode: string;\n public costCenterCategory: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): SapOrderModel[] {\n const refs: SapOrderModel[] = [];\n jsons.forEach(json => {\n refs.push(new SapOrderModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 02/03/2017.\n */\nexport class ServiceErrorModel {\n public LEVEL_WARN: string = 'WARNING';\n public LEVEL_ERROR: string = 'ERROR';\n\n public errorMessageKey: string = '';\n public status: number = 0;\n public severity: string = '';\n public parameters: string[] = [];\n public statusText: string = '';\n\n constructor() {\n }\n}\n","export class SoundModel {\n constructor(\n public id: number = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class TerritoriesLanguagesModel {\n constructor(\n public id: number = null,\n public country: string = null,\n public languages: BasicModel[] = []\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TerritoryFilterModel {\n public id: number;\n public label: string;\n public codeISO: string;\n public listIdParent: number[];\n}\n","export class ThemeModel {\n constructor(\n public id: number = null,\n public order: string = null,\n public label: string = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { TerritoryModel } from './territory.model';\nimport { MediaModel } from './media.model';\nimport { CurrencyModel } from './currency.model';\n\nexport class ThirdPartyCreationRequestModel {\n public id: number = null;\n public requestType: string = '';\n public supplierType: string = '';\n public dateCreation: any = null;\n public userCreation: string = '';\n public service: string = '';\n public tel: string = '';\n public label: string = '';\n public address: string = '';\n public zipCode: string = '';\n public country: TerritoryModel;\n public city: string = '';\n public intraCommunautaireTvaNumber: string = '';\n public siret: string = '';\n public socialSecurity: string = '';\n public agessaAgrement: string = '';\n public existMilo: boolean = false;\n public blocageReason: string = '';\n public miloIdentification: string = '';\n public miloBlockedCompta: boolean = false;\n public miloBlockedMM: boolean = false;\n public email: string = '';\n public thirdPartyType: string = '';\n public honoraire: boolean = false;\n public currency: CurrencyModel;\n public amount: string = '';\n public commandeVerso: boolean = false;\n public commandeRambo: boolean = false;\n public commandeBBP: boolean = false;\n public contratRambo: boolean = false;\n public clientType: string = '';\n public clientCountry: TerritoryModel;\n public mediaCountry: MediaModel;\n public clientHermes: boolean;\n public clientContratRambo: boolean;\n public clientContratRamboUTD: boolean;\n public clientVenteSD: boolean;\n public clientAutres: boolean;\n public category: string = '';\n public personCompanyType: string = '';\n public statusCreationRequest: boolean;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class ThirdPartyModuleModel {\n constructor(\n public id: number = null,\n public thirdPartyId: number = null,\n public thirdPartyCodeSap: string = null,\n public moduleId: number = null,\n public module: string = null,\n public checked = false,\n public action: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class TranslatedValueModel {\n public id: number;\n public label: string;\n public order: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TvaModel {\n constructor(\n public id: number = null,\n public code: string = null,\n public label: string = null\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TypeExportModel {\n public id: number = null;\n public codeTypeExport: string = '';\n public nameTypeExport: string = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class TypeTvaModel {\n public id: number = 0;\n public codeTva: string = null;\n public rate: number = 0;\n public label: string = '';\n public codeLabel: string;\n\n // public client = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): TypeTvaModel[] {\n const refs: TypeTvaModel[] = [];\n jsons.forEach(json => {\n refs.push(new TypeTvaModel().fromJSON(json));\n });\n return refs;\n }\n}\n","export class ZoneModel {\n public id: number;\n public label: string = '';\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { InvoiceProductTypeModel } from './invoice-product-type.model';\nimport { TypeTvaModel } from './type-tva.model';\nimport { TerritoryModel } from './territory.model';\nimport { ZoneModel } from './zone.model';\n\nexport class TypeTvaCompanyTerritoryModel {\n public id: number;\n public label: string = null;\n public codeLlabel: string = null;\n public typeTva: TypeTvaModel = new TypeTvaModel();\n public companyCode: string = null;\n public invoiceProductType: InvoiceProductTypeModel = new InvoiceProductTypeModel();\n public activated: boolean = null;\n public territory: TerritoryModel = new TerritoryModel();\n public zone: ZoneModel = new ZoneModel();\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): TypeTvaCompanyTerritoryModel[] {\n const refs: TypeTvaCompanyTerritoryModel[] = [];\n jsons.forEach(json => {\n refs.push(new TypeTvaCompanyTerritoryModel().fromJSON(json));\n });\n return refs;\n }\n}\n","import { TranslatedValueModel } from './translated-value-model';\nimport { LanguageModel } from './language.model';\n\n/**\n * Created by vsliwka on 10/05/2017.\n */\nexport class WorkAddonsModel {\n public id: number;\n public workId: number;\n public addonType: TranslatedValueModel;\n public countryIsoCode: string;\n public addonContent: string;\n public titleCmpl: string;\n public authorCmpl: string;\n public originCmpl: string;\n public dateCmpl: string;\n public synopsisType: TranslatedValueModel;\n public sourceType: TranslatedValueModel;\n public sourceLink: string;\n public sourceNote: string;\n public episodeNumber: number;\n public isOnline: boolean;\n public language: LanguageModel;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkAppartenanceModel {\n constructor(\n public id: number = null,\n public label: string = null,\n public displayOrder: number = null // public url: string = null,\n ) {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkGenreModel {\n public id: number;\n public workId: number;\n public label: string;\n public order: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkLanguageModel {\n public id: number;\n public workId: number;\n public label: string;\n public principalLanguage: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkMiloModel {\n public id: number = null;\n public idWorkMilo: number = null;\n public miloCode: string = null;\n public title: string = null;\n public titleFr: string = null;\n public completeTitle: string = null;\n public mainTitle: string = null;\n public genre: string = null;\n public yearOfProduction: string = null;\n public isoCode: string = null;\n public idVersionMilo: number = null;\n public checked: boolean = false;\n public langueOri: string = null;\n public codeOrdre: string = null;\n public designation: string = null;\n public processus: string = null;\n public societe: string = null;\n public societeGestion: string = null;\n public sousCategorie: string = null;\n public statutProjet: string = null;\n public orderCode: string = null;\n public referenceCurrencyCode: any = null;\n public company: string = null;\n public managmentCompany: string = null;\n public category: string = null;\n public subCategory: string = null;\n public buLabel: string = null;\n public process: string = null;\n public valdiationDate: Date = null;\n public closingDate: Date = null;\n public technicalClosingDate: Date = null;\n public systemStatus: string = null;\n public quota: string = null;\n public genres: string = null;\n public languages: string = null;\n public versions: any = null;\n public idDivision: number = null;\n public codeSap: string = null;\n public percentage: number = null;\n public index: number;\n public uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): WorkMiloModel[] {\n const refs: WorkMiloModel[] = [];\n if (jsons) {\n jsons.forEach(json => {\n refs.push(new WorkMiloModel().fromJSON(json));\n });\n }\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 30/05/2017.\n */\nimport { TerritoryModel } from './territory.model';\nimport { RestrictionModel } from './restriction.model';\n\nexport class WorkRestrictionModel {\n public id: number;\n public workId: number;\n\n /* New Attributes */\n public restriction: RestrictionModel;\n public country: TerritoryModel;\n\n /* Old Attributes */\n public countryIsoCode: string;\n public label: string;\n public code: string;\n public order: number;\n\n public type: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkThemeModel {\n public id: number;\n public workId: number;\n public label: string;\n public principalTheme: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkTitleModel {\n public miloCode: string;\n public completeTitle: string;\n public titleVO: string;\n public title: string;\n public yearOfProduction: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n\n public fromJSONs(jsons: any): WorkTitleModel[] {\n const refs: WorkTitleModel[] = [];\n jsons.forEach(json => {\n refs.push(new WorkTitleModel().fromJSON(json));\n });\n return refs;\n }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\nexport class WorkVersionOriginModel {\n public id: number;\n public label: string;\n public value: number;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 21/04/2017.\n */\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionUsedModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionArticleModel {\n public id: number = null;\n public label: string;\n public isoCode: string;\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { WorkVersionArticleModel } from './WorkVersionArticleDto';\nimport { TerritoryModel } from './territory.model';\nimport { LanguageModel } from './language.model';\nimport { WorkVersionUsedModel } from './work-versions-used.model';\nimport { WorkVersionOriginModel } from './work-version-origin.model';\nimport { ReferentialEntityStateModel } from './referential-entity-state.model';\n\n/**\n * Created by vsliwka on 20/04/2017.\n */\nexport class WorkVersionModel {\n public id: number;\n public workId: number;\n public title: string;\n public principal: boolean;\n public order: number = 0;\n public origin: WorkVersionOriginModel;\n public article: WorkVersionArticleModel;\n public articleId: number;\n public country: TerritoryModel;\n public used: WorkVersionUsedModel;\n public languageVersion: LanguageModel;\n // Denormalized field for display purpose only\n public restrictionTv: string;\n // Denormalized field for display purpose only\n public restrictionCine: string;\n public entityState: ReferentialEntityStateModel;\n public countryLabel: string;\n public isEpisode: boolean = false;\n\n constructor() {\n this.article = new WorkVersionArticleModel();\n this.origin = new WorkVersionOriginModel();\n this.country = new TerritoryModel();\n this.used = new WorkVersionUsedModel();\n this.countryLabel = '';\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class WorkYearProductionModel {\n public id: number;\n public label: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { ParticipantModel } from './participant.model';\nimport { SapOrderModel } from './sap-order.model';\nimport { WorkVersionModel } from './work-versions.model';\nimport { WorkAddonsModel } from './work-addons-model';\nimport { WorkRestrictionModel } from './work-restrictions-model';\nimport { WorkThemeModel } from './work-theme.model';\nimport { WorkGenreModel } from './work-genre.model';\nimport { WorkLanguageModel } from './work-language.model';\nimport { ColorModel } from './color.model';\nimport { QuotaModel } from './quota.model';\nimport { SoundModel } from './sound.model';\nimport { FormatModel } from './format.model';\nimport { WorkAppartenanceModel } from './work-appartenance.model';\nimport { FormatImageModel } from './format-image.model';\nimport { ProjectStatusModel } from './project-status.model';\nimport { FormatTypeModel } from './format-type.model';\nimport { WorkYearProductionModel } from './work-year-production.model';\nimport { EditorialContentModel } from './editorial-content.model';\nimport { KeywordsModel } from './keywords.model';\nimport { WorkParticipantModel } from './work-participant.model';\n\n/**\n * Created by vsliwka on 05/04/2017.\n */\nexport class WorkModel {\n public id: number;\n public titleVO: string;\n public territory: string;\n public duration: any;\n public expired: boolean;\n public episodeNumber: number;\n public clientLanguageTitle: string;\n public title: string;\n public completeTitle: string;\n public miloCode: string;\n public isoCode: string;\n public eidrCode: string;\n public idIMDB: string;\n public workType: string;\n public yearOfProduction: WorkYearProductionModel;\n public director: string;\n /* Old Attributes */\n public participants: ParticipantModel[];\n /* New Attributes */\n public workParticipants: WorkParticipantModel[];\n public sapOrders: SapOrderModel[];\n public versions: WorkVersionModel[];\n public addons: WorkAddonsModel[];\n public tvRestrictions: WorkRestrictionModel[];\n public movieRestrictions: WorkRestrictionModel[];\n public themes: WorkThemeModel[];\n public genres: WorkGenreModel[];\n public languages: WorkLanguageModel[];\n public arthouse: string;\n public color: ColorModel;\n public quota: QuotaModel;\n public sound: SoundModel;\n public format: FormatModel;\n public workAppartenance: WorkAppartenanceModel;\n public formatImage: FormatImageModel;\n public projectStatus: ProjectStatusModel;\n public formatType: FormatTypeModel;\n public genresSelected: any[] = [];\n public themesSelected: any[] = [];\n public languageSelected: any[] = [];\n public sapOrderId: number;\n public customOrderLabel: string;\n public percentage: number;\n public keyInSession: string = 'Referential-WorkModel-Session-key';\n public editorialContents: EditorialContentModel[];\n public workKeywords: KeywordsModel[];\n public exportableSap: boolean = false;\n public header: boolean;\n public seriesWorkId?: number;\n\n constructor() {\n this.versions = [];\n }\n\n public fromJSON(json: any): this {\n for (const propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class BroadcastListItem {\n\n public id: number;\n public email: string;\n public typeCode: string;\n public thirdPartySapCode: string;\n\n constructor() {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from './basic.model';\n\nexport class AnyLineModel {\n public action: string;\n public rightId: number;\n\n constructor(\n public id: number = null,\n public selected: any = new BasicModel(),\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = [],\n public toRemove: BasicModel[] = [],\n public checked: boolean = false,\n public edited: boolean = false,\n public deleted: boolean = false,\n public created: boolean = false,\n public disabled: boolean = false,\n public lineSize: boolean = false,\n public hided: boolean = false,\n public excludedStr: string = null,\n public listExclSuggs: any[] = []\n ) {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map(x => x.id);\n }\n\n public getAllIdIncluded(): number[] {\n return this.included.map(x => x.id);\n }\n\n public getAllRemoved(): number[] {\n return this.toRemove.map(x => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class SearchResponseModel {\n public content: any[] = [];\n public totalNumberOfPages: number = 1;\n public totalNumberOfContracts: number = 0;\n public allSearchResultIds: number[] = [];\n public totalResponseLenght: number = 0;\n}\n","import { BasicModel } from './basic.model';\n\nexport class LangLineModel {\n public action: string;\n public rightId: number;\n\n constructor(public id: number = null,\n public selected: any = new BasicModel(),\n public dubbing: boolean = false,\n public subtitle: boolean = false,\n public checked: boolean = false,\n public allLanguages: boolean = false,\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = [],\n public toRemove: BasicModel[] = [],\n public excludedStr: string = null) {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class EventTypeModel {\n constructor(\n public id: number = null,\n public label: string = null\n ) {\n }\n}\n","import { BasicModel } from './basic.model';\n\nexport class MediaLineModel {\n constructor(\n public id: number = null,\n public selected: any = new BasicModel(),\n public included: BasicModel[] = [],\n public excluded: BasicModel[] = []\n ) {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","export class OptionHtmlModel {\n constructor(\n public id: string = null,\n public value: number = null,\n public label = null\n ) {\n }\n}\n","export class SelectHtmlModel {\n constructor(public options: any[] = [], public disabled: boolean = false) {\n }\n}\n","import { SectionModel } from './section.model';\nimport { PermissionModel } from './permission.model';\nimport { SubsidiaryModel } from \"./subsidiary.model\";\n\nexport class UserModel {\n public id: number = null;\n public login: string = null;\n public password: string = null;\n public name: string = null;\n public firstName: string = null;\n public fullName: string = null;\n public serialNumber: string = null;\n public type: number = null;\n public dateBegin = null;\n public dateEnd = null;\n public entity: number = null;\n public management: number = null;\n public email: string = null;\n public administrator: boolean = false;\n public active: boolean = true;\n public comment: string = null;\n public sections: SectionModel[] = [];\n public permissions: PermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n public mainSubsidiary: SubsidiaryModel = null;\n\n constructor() {\n }\n\n public getFullName(): string {\n return this.firstName + ' ' + this.name;\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","// import { WorkYearProductionModel } from '../referential/work-year-production.model';\nimport { BasicModel } from '../basic.model';\nimport { ContractWork2Model } from './contract-work2.model';\n\nexport class ContractWorkModel {\n\n public id: number;\n public idInSession: number;\n public selected: any = new BasicModel();\n public workCodeMilo: string;\n public miloCode: string;\n public completeTitle: string;\n public title: string;\n public titleVO: string;\n public titleWork: string;\n public yearOfProduction: string;\n public workYearProductLabel: string;\n public action: string;\n public contractId: number;\n public workRefId: number;\n public idWork: number;\n public financialAmount: number;\n public checked: boolean = false;\n public relatedWorks: ContractWork2Model[] = [];\n public included: BasicModel[] = [];\n public excluded: BasicModel[] = [];\n\n constructor() {\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { BasicModel } from '../basic.model';\n\nexport class ContractWork2Model {\n\n public id: number;\n public selected: any = new BasicModel();\n public workCodeMilo: string;\n public miloCode: string;\n public title: string;\n public titleVO: string;\n public titleWork: string;\n public yearOfProduction: string;\n public workYearProductLabel: string;\n public action: string;\n public contractId: number;\n public workRefId: number;\n public idWork: number;\n public financialAmount: number;\n public checked: boolean = false;\n public included: BasicModel[] = [];\n public excluded: BasicModel[] = [];\n\n constructor() {\n\n }\n\n public getAllIdExcluded(): number[] {\n return this.excluded.map((x) => x.id);\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n@Injectable()\nexport class FormActionsEventsService {\n\n public updateEvent: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public consultToEdit: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public EditToConsult: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n public consultToDuplicate: EventEmitter<boolean> = new EventEmitter<boolean>(true);\n\n public emitUpdateEvent(): void {\n this.updateEvent.emit();\n }\n\n public emitEventIsUpdateTrue(): void {\n this.consultToEdit.emit(true);\n }\n\n public emitConsultEvent(): void {\n this.EditToConsult.emit();\n }\n}\n","import { SectionModel } from './section.model';\n\nexport class PermissionModel {\n constructor(public id: number = null,\n public label: string = null,\n public code: string = null,\n public priority: number = null,\n public sectionId: number = null,\n public section: SectionModel = null,\n public description: string = null) {\n }\n\n public fromJSON(json: any): this {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\n }\n}\n","import { PermissionModel } from './permission.model';\n\nexport class SectionModel {\n\n public id: number = null;\n public sectionName: string = null;\n public permissions: PermissionModel[] = [];\n\n constructor() {\n }\n}\n","import { FamilyModel } from \"./family.model\";\n\nexport class SubsidiaryModel {\n public id: number = null;\n public label: string = null;\n public family: FamilyModel = null;\n\n constructor() {\n }\n}\n","export class FamilyModel {\n public id: number = null;\n public label: string = null;\n constructor() {\n }\n}\n","import { SectionModel } from './section.model';\n\nexport class NotificationModel {\n public id: number;\n public description: string;\n public classification: string;\n public messageEn: string;\n public messageFr: string;\n public targetSections: SectionModel[];\n public publicationDate: Date;\n public expirationDate: Date;\n public published: boolean;\n public createdBy: string;\n public createdDate: Date;\n}\n","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { Config, WEB_CONFIG } from '../../config';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { catchError, map } from 'rxjs/operators';\nimport { AuthUserModel } from '../../models';\nimport { inject } from '@angular/core';\nimport { AuthService } from '../auth/auth.service';\nimport { Observable, of } from \"rxjs\";\n\nexport const authGuard: CanActivateFn = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n) => {\n const cookieService: CookieService = inject(CookieService);\n const commonApiService: CommonApiService = inject(CommonApiService);\n const webConfig: Config = inject(WEB_CONFIG);\n const authService: AuthService = inject(AuthService);\n\n if (state.url.includes('/login/invalid')) {\n return true;\n }\n\n if (commonApiService.isTokenValid()) {\n authService.setAuthenticated(true);\n return true;\n }\n\n const user: AuthUserModel = commonApiService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : cookieService.get('auth-mail');\n\n return commonApiService.ssoLogin(email).pipe(\n map((data: any): boolean => {\n user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\n authService.setAuthenticated(true);\n return true;\n }),\n catchError((): Observable<boolean> => {\n authService.setAuthenticated(false);\n window.location.href = webConfig.api_url + '/login/invalid';\n return of(false);\n })\n );\n};\n","import { inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MyDialogPopupLoginComponent } from '../../component/popup/popup-login/popup-login.component';\nimport { AuthService } from '../auth/auth.service';\nimport { map } from \"rxjs/operators\";\n\nexport const loginGuard = () => {\n const dialog: MatDialog = inject(MatDialog);\n const authService: AuthService = inject(AuthService);\n\n if (sessionStorage.getItem('authToken') !== null) {\n authService.setAuthenticated(true);\n return true;\n } else {\n const dialogRef: MatDialogRef<MyDialogPopupLoginComponent> = dialog.open(MyDialogPopupLoginComponent, {\n disableClose: true\n });\n\n return dialogRef.afterClosed().pipe(\n map((res: boolean): boolean => {\n authService.setAuthenticated(res);\n return res;\n })\n );\n }\n};\n","import { HttpParams } from \"@angular/common/http\";\n\nexport class HttpParamsBuilder {\n private params: HttpParams;\n\n constructor() {\n this.params = new HttpParams();\n }\n\n append(param: string, value: any): this {\n if (this.isNotEmpty(value)) {\n this.params = this.params.append(param, value);\n }\n return this;\n }\n\n appendAll(criteriaModel: object): this {\n for (const property in criteriaModel) {\n this.append(property, criteriaModel[property]);\n }\n return this;\n }\n\n build(): HttpParams {\n return this.params;\n }\n\n private isNotEmpty(value: any): boolean {\n return value !== null\n && value !== undefined\n && !(typeof value === 'string' && value.trim().length === 0);\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, switchMap, take } from 'rxjs/operators';\nimport { CookieService } from 'ngx-cookie-service';\nimport { CommonApiService } from '../api/common-api.service';\nimport { AuthUserModel } from '../../models';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n private refreshTokenInProgress: boolean = false;\n private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\n null\n );\n private readonly commonApiService: CommonApiService = inject(CommonApiService);\n private readonly cookieService: CookieService = inject(CookieService);\n\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (request.url.includes('/login/email') || request.url.includes('/login/findUser') || request.url.startsWith('./')) {\n return next.handle(request);\n }\n\n if (!this.commonApiService.isTokenValid()) {\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject.pipe(\n filter((result: any): boolean => result !== null),\n take(1),\n switchMap((): Observable<HttpEvent<any>> => next.handle(this.addToken(request)))\n );\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n const user: AuthUserModel = this.commonApiService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\n\n return this.commonApiService.ssoLogin(email)\n .pipe(\n switchMap((data: any): Observable<HttpEvent<any>> => {\n this.commonApiService.setToken(data.token);\n this.refreshTokenInProgress = false;\n this.refreshTokenSubject.next(data.token);\n return next.handle(this.addToken(request));\n })\n );\n }\n }\n\n return next.handle(this.addToken(request));\n }\n\n private addToken(request: HttpRequest<any>): HttpRequest<any> {\n const token: string = this.commonApiService.getToken();\n if (!token) {\n return request;\n }\n\n return request.clone({\n headers: request.headers.set('Authorization', `Bearer ${token}`)\n });\n }\n}\n","export enum StatusColor {\n BLUE = 'status-blue',\n GREEN = 'status-green',\n ORANGE = 'status-orange',\n RED = 'status-red',\n PINK = 'status-pink',\n GREY = 'status-grey',\n WHITE = 'status-white'\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport merge from 'deepmerge';\nimport { inject } from \"@angular/core\";\n\n\ninterface ITranslationResource {\n prefix: string;\n suffix: string;\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n private readonly http: HttpClient = inject(HttpClient);\n\n constructor(\n private resources: ITranslationResource[],\n ) {\n }\n\n public getTranslation(lang: string): Observable<any> {\n const requests = this.resources.map(resource => {\n const path: string = resource.prefix + lang + resource.suffix;\n return this.http.get(path).pipe(catchError(res => {\n console.error('Something went wrong for the following translation file:', path);\n console.error(res.message);\n return of({});\n }));\n });\n return forkJoin(requests).pipe(map(response => merge.all(response)));\n }\n}\n","/*\n * Public API Surface of front-common-library-3\n */\n\nexport * from './lib/util/util.module';\nexport * from './lib/util/array.service';\nexport { User } from './lib/util/decorators/user.decorator';\nexport { Theme } from './lib/util/decorators/theme.decorator';\nexport { CustomMatPaginatorIntl } from './lib/util/paginator/custom-paginator-configuration';\nexport * from './lib/util/services/storage/local-storage.service';\nexport * from './lib/util/services/storage/session-storage.service';\nexport * from './lib/util/event/storage/local-storage-events.service';\nexport * from './lib/util/event/storage/session-storage-events.service';\nexport { PermissionsInterface } from './lib/util/interfaces/permissions.interface'\nexport * from './lib/util/config'\nexport * from './lib/util/theme/theme-event.service';\nexport * from './lib/util/regex/regex.service';\nexport * from './lib/util/permissions/permissions.service';\nexport * from './lib/util/date/date.util';\nexport * from './lib/util/date/date-format-constants';\nexport * from './lib/util/sort';\nexport * from './lib/util/number.validator';\n\nexport * from './lib/util/services/jwt-security/aes.service';\nexport * from './lib/util/component/overlay/overlay.service';\nexport * from './lib/util/component/overlay/overlay.component';\nexport * from './lib/util/component/header/header.component';\nexport * from './lib/util/component/sub-header/sub-header.component';\nexport * from './lib/util/component/popup/popup-login/popup-login.component';\n\n\nexport * from './lib/util/services/jwt-security/jwt.helpher';\nexport * from './lib/util/models';\n\n\nexport * from './lib/util/services/guard/auth.guard';\nexport * from './lib/util/services/guard/login.guard';\nexport * from './lib/util/services/form-action/form-actions-events.service';\nexport * from './lib/util/services/api/common-api.service';\nexport * from './lib/util/services/history/history.service';\nexport * from './lib/util/services/translate-language/lang.service';\nexport * from './lib/util/services/elasticsearch/elasticsearch.service';\nexport * from './lib/util/services/auth/auth.service';\nexport * from './lib/util/services/user/user-subsidiary.service';\nexport * from './lib/util/http/http-params.builder';\n\nexport * from './lib/util/date/PeriodModel';\nexport * from './lib/util/pipes/capitalizefirst.pipe';\nexport * from './lib/util/services/interceptor/auth.interceptor';\nexport * from './lib/util/pipes/local-date.pipe';\nexport * from './lib/util/pipes/trim-string.pipe';\nexport * from './lib/util/pipes/common-translate.pipe';\n\nexport * from './lib/util/pipes/my-number.pipe';\nexport * from './lib/util/pipes/comma-separated-number.pipe';\nexport * from './lib/util/pipes/display-html.pipe';\nexport * from './lib/util/pipes/display-null.pipe';\nexport * from './lib/util/pipes/format-number-input.pipe';\nexport * from './lib/util/directives/my-number-formatter-directive';\nexport * from './lib/util/pipes/third-party-address.pipe';\nexport * from './lib/util/pipes/format-duration.pipe';\nexport * from './lib/util/pipes/format-currency.pipe';\n\nexport * from './lib/util/enums/status-color.enum';\n\nexport * from './lib/util/toaster/toaster-events.service';\nexport * from './lib/util/event/header/header-events.service';\n\nexport * from './lib/util/directives/show-if-truncated.directive';\n\nexport * from './lib/util/i18n/multi-translate-http-loader';\n\nexport * from './lib/util/services/notification/notification.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TOKEN_NAME","i1","ClientJs","i2","i3","i4","i6.CommonTranslatePipe","i2.CommonTranslatePipe","i1.CommonTranslatePipe","i2.ThirdPartyAddressSearchPipe","i5","i6","i8.PurchaseOrderRapidSearchComponent","i9.ProductRapidSearchComponent","i10.WorkVersionRapidSearchComponent","i11.DealRapidSearchComponent","i12.WorkRecordRapidSearchComponent","i13.ThirdPartyRapidSearchComponent","i14.ContractRapidSearchComponent","i15.InvoiceRapidSearchComponent","i16.RoyaltyContractRapidSearchComponent","i17.RoyaltyInvoiceRapidSearchComponent","i18.RoyaltyCountRapidSearchComponent","i19","i20.CommonTranslatePipe","i3.CommonTranslatePipe","i5.CommonTranslatePipe","Client","i1.NotificationApiService","i2.LocalStorageService","i3.AuthService","i4.MenuComponent","i5.AdvancedSearchComponent","i6.HistoryComponent","i7.SettingsComponent","i8.NotificationBarComponent","i9.CommonTranslatePipe","i7","ReferentielModel"],"mappings":"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"}