new-front-common-library 16.1.32-ROY-1 → 16.1.32-ROY-2
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.
- package/esm2022/lib/util/component/header/header.component.mjs +6 -3
- package/esm2022/lib/util/enums/rapid-search-item-type.enum.mjs +2 -1
- package/esm2022/lib/util/i18n/fr.mjs +2 -1
- package/fesm2022/new-front-common-library.mjs +7 -2
- package/fesm2022/new-front-common-library.mjs.map +1 -1
- package/lib/util/enums/rapid-search-item-type.enum.d.ts +2 -1
- package/lib/util/i18n/fr.d.ts +1 -0
- package/package.json +1 -1
|
@@ -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/decorators/theme.decorator.ts","../../../projects/new-front-common-library/src/lib/util/enums/rapid-search-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/toaster/toaster-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/translate-language/lang.service.ts","../../../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/component/header/menu/menu.const.ts","../../../projects/new-front-common-library/src/lib/util/services/api/video-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/commercial-api.service.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/pipes/third-party-address-search.pipe.ts","../../../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/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/services/auth/auth.service.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/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) {\n let parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n let decoded = 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) {\n let output = 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\n public headers: HttpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n public jwtHelper = new JwtHelper();\n\n constructor(\n @Inject(WEB_CONFIG) private config: Config,\n private cookieService: CookieService,\n private http: HttpClient\n ) {\n }\n\n public static handleError(error) {\n return throwError(error || 'api error');\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() {\n const user = 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) {\n return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\n }\n\n public getUserDataFromToken(): any {\n const user = 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() {\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 constructor() {\n }\n\n // emit an event when local storage change\n public emitLocalStorageEvent() {\n this.localStorageEvent.emit('maj localstorage');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\n\n@Injectable()\nexport class LocalStorageService {\n\n constructor(private localStorageEvents: LocalStorageEventsService) {\n }\n\n // Check if the data exist in the session storage\n public exist(key: string) {\n return localStorage.hasOwnProperty(key);\n }\n\n public get(key: string) {\n return this.exist(key) ? JSON.parse(localStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any) {\n localStorage.setItem(key, JSON.stringify(data));\n this.localStorageEvents.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) {\n return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1 ? true : false;\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, Input, OnInit } from '@angular/core';\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\n\n@Directive({selector: '[myNumberFormatter]'})\nexport class MyNumberFormatterDirective implements OnInit {\n @Input() public decimalNumber: number;\n private el: HTMLInputElement;\n\n constructor(\n private elementRef: ElementRef,\n private currencyPipe: MyNumberPipe\n ) {\n this.el = this.elementRef.nativeElement;\n }\n\n public ngOnInit() {\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) {\n this.el.value = this.currencyPipe.parse(value, this.decimalNumber); // opossite of transform\n }\n\n @HostListener('blur', ['$event.target.value'])\n public onBlur(value) {\n this.el.value = this.currencyPipe.transform(value, this.decimalNumber);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/*\n@Pipe({\n name: 'capitalizeFirst'\n})\n*/\n\n@Pipe({\n name: 'myCapitalizeFirst'\n})\nexport class CapitalizefirstPipe implements PipeTransform {\n\n constructor() {\n }\n\n public transform(value: string): string {\n if (value == null) {\n return '';\n }\n let valueArgs;\n\n let args = (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) {\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 = '';\n\n constructor() {\n }\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 = 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 constructor() {\n }\n\n // emit an event when local storage change\n public switchTheme() {\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 constructor() {\n }\n\n // emit a success event toaster\n public emitUpdate() {\n this.sessionsStorageUpdateEvent.emit('update');\n }\n}\n","// Angular 2\nimport { Injectable } from '@angular/core';\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\n\n// Services\n\n@Injectable()\nexport class SessionStorageService {\n\n constructor(private sessionsStorageEvents: SessionStorageEventsService) {\n }\n\n // Check if the data exist in the session storage\n public exist(key: string) {\n return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key)) ? true : false;\n }\n\n public get(key: string) {\n return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any) {\n sessionStorage.setItem(key, JSON.stringify(data));\n this.sessionsStorageEvents.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) {\n return this.get(key).indexOf(JSON.stringify(data)) !== -1 ? true : false;\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() {\n\n const jwtHelper: JwtHelper = new JwtHelper();\n return (target: any, key: string) => {\n\n // Check if the data exist in the local storage\n function exist(dataKey: string) {\n return sessionStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(user: string) {\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 = 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) => 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) => value.family?.label === Family.STUDIOCANAL.valueOf()\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { User } from '../decorators/user.decorator';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\n\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\n\n@Injectable()\nexport class PermissionsService {\n @User() public user;\n\n constructor(private readonly permissionsService: NgxPermissionsService,\n private readonly userSubsidiaryService: UserSubsidiaryService) {\n }\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) => p.code === code).length > 0;\n }\n\n private shouldLoadUserPermissions() {\n const loadedPermissions = Object.keys(this.permissionsService.getPermissions());\n if (loadedPermissions.length !== this.user.permissions.length) {\n return true;\n }\n let res = false;\n this.user.permissions.forEach((p) => {\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 constructor() {\n }\n\n public show(message?: string) {\n this.showEvent.emit(message);\n }\n\n public setMessage(message: string) {\n this.setMessageEvent.emit(message);\n }\n\n public hide() {\n this.hideEvent.emit();\n }\n}\n","import { ChangeDetectorRef, Component, 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 = false;\n\n constructor(\n private router: Router,\n private translateService: TranslateService,\n private overlayService: OverlayService,\n private cd: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit() {\n this.router.events.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.showEvent.subscribe((message?: string) => {\n this.message = message || this.message;\n this.show = true;\n this.cd.detectChanges();\n });\n\n this.overlayService.hideEvent.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.setMessageEvent.subscribe((message: string) => {\n this.message = message;\n });\n }\n}\n","<div *ngIf=\"show\" class=\"blackshield\"></div>\n\n<div *ngIf=\"show\" 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","export function Theme() {\n return (target: any, key: string) => {\n // Check if the data exist in the local storage\n function exist(dataKey: string) {\n return localStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(theme: string) {\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","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}\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 constructor() {\n }\n\n // emit a success event toaster\n public successEvent(message: string) {\n this.toasterSuccessEvent.emit(message);\n }\n\n // emit a success event toaster\n public errorEvent(message: string) {\n this.toasterErrorEvent.emit(message);\n }\n\n // emit a success event toaster\n public warnEvent(message: string) {\n this.toasterWarnEvent.emit(message);\n }\n\n // emit a success event toaster\n public infoEvent(message: string) {\n this.toasterInfoEvent.emit(message);\n }\n}\n","import { EventEmitter, 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\n constructor(private translate: TranslateService, private localStorage: LocalStorageService) {\n }\n\n translateLanguage() {\n this.translate.addLangs(['en', 'fr', 'de']);\n if (this.localStorage.exist('lang') && this.translate.getLangs().indexOf(this.localStorage.get('lang')) != -1) {\n this.translate.use(this.localStorage.get('lang'));\n } else {\n this.translate.use(this.translate.getLangs().indexOf(this.translate.getBrowserLang()) != -1 ? this.translate.getBrowserLang() : 'en');\n }\n this.localStorage.post('lang', this.translate.currentLang);\n }\n\n // emit an event when local storage change\n public switchLang() {\n this.switchLangEmitter.emit();\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 public apiUrl: string = this.config.api_url + '/legal-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n constructor(@Inject(WEB_CONFIG) private config: Config,\n private http: HttpClient\n ) {\n }\n public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\n return this.http.get<Record<number, number[]>>(this.apiUrl + 'subsidiaries/societe_mapping')\n .pipe(catchError(this.handleError));\n }\n\n public handleError(error) {\n return throwError(error || 'api error');\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],\n 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990]\n }\n\n private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\n\n constructor() {\n this.loadTableSocieteAppartenance();\n }\n loadTableSocieteAppartenance() {\n this.legalService.getMappingSocietesSubsidiaries().subscribe({\n next: (map: Record<number, number[]>) => {\n this.subsidiaryToSocieteMapLegal = map;\n },\n error: () => {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n }\n })\n }\n\n getSocieteAppartenance(subsidiaries: SubsidiaryModel[]) {\n if (subsidiaries === null) {\n return null;\n }\n return subsidiaries\n .reduce((acc: number[], sub) => {\n const societes = this.subsidiaryToSocieteMapLegal[sub.id] || [];\n return acc.concat(societes);\n }, [])\n .filter((v, i, arr) => 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 {PurchaseOrderRapidSearchModel} from \"../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport {ProductRapidSearchModel} from \"../../models/video/product-rapid-search.model\";\nimport {Config, WEB_CONFIG} from '../../config';\nimport {WorkVersionRapidSearchModel} from \"../../models/referential/work-version-rapid-search.model\";\nimport {DealRapidSearchModel} from '../../models/commercial/deal-rapid-search-model';\nimport {ThirdPartyRapidSearchModel} from \"../../models/referential/third-party-rapid-search.model\";\nimport {WorkRecordRapidSearchModel} from \"../../models/commercial/work-record-rapid-search-model\";\nimport {ContractRapidSearchModel} from \"../../models/legal/contract-rapid-search-model\";\nimport {InvoiceRapidSearchModel} from \"../../models/commercial/invoice-rapid-search-model\";\nimport {AuthUserModel} from \"../../models\";\nimport {SubsidiariesService} from \"./subsidiaries.service\";\n\n\n@Injectable()\nexport class ElasticsearchService {\n\n constructor(@Inject(WEB_CONFIG) private config: Config,\n private subsidiariesMappingService: SubsidiariesService) {\n }\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'],\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 = 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 body.push({\n query: {bool: this.composeContractQuery(text, user.subsidiaries)},\n sort: [{'lisaId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-contract' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {contractNumber: {value: '*' + text + '*'}}}]}},\n sort: [{'contractNumber.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): (PurchaseOrderRapidSearchModel | ProductRapidSearchModel |\n WorkVersionRapidSearchModel | DealRapidSearchModel | WorkRecordRapidSearchModel | ThirdPartyRapidSearchModel | ContractRapidSearchModel)[] {\n let results = [];\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 = 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, subsidiadies) {\n const societes = this.subsidiariesMappingService.getSocieteAppartenance(subsidiadies);\n const must: any[] = [\n {wildcard: {lisaId: {value: '*' + text + '*'}}}\n ];\n const should: any[] = [];\n should.push({bool: {must_not: {exists: {field: 'societeAppartenance'}}}});\n if (societes && societes.length > 0) {\n should.push({terms: {societeAppartenance: societes}});\n }\n const boolQuery: any = {must};\n boolQuery.should = should;\n boolQuery.minimum_should_match = 1;\n return boolQuery\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.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","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\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 constructor(\n @Inject(WEB_CONFIG) private config: Config,\n private cookieService: CookieService,\n private http: HttpClient\n ) {\n }\n\n public static handleError(error: HttpErrorResponse) {\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(\n '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 {Inject, Injectable} from '@angular/core';\nimport {throwError} from \"rxjs\";\nimport {Config, WEB_CONFIG} from \"../../config\";\n\n@Injectable()\nexport class CommercialApiService {\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 constructor(@Inject(WEB_CONFIG) private config: Config) {\n }\n\n public static handleError(error: Response) {\n return throwError(error.json() || 'api error');\n }\n\n public getAccountWrittingDownload() {\n window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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\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.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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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 { 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\n constructor(private localStorageService: LocalStorageService) {\n }\n\n public transform(value: string, lang?: string): string {\n let currentLang = lang;\n if (!lang) {\n currentLang = this.localStorageService.get('lang');\n }\n\n if (this.isValidLang(currentLang)) {\n const currentTranslation = this.availableTranslations[currentLang];\n return currentTranslation[value];\n }\n }\n\n private isValidLang(lang: string) {\n if (lang) {\n const languages = ['en', 'fr', 'de'];\n if (languages.indexOf(lang) !== -1) {\n return true;\n }\n }\n return false;\n }\n}\n","import { Component, EventEmitter, HostListener, Input, Output } 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 { 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 @Input() public lang!: string;\n @Output() public navigate: EventEmitter<MenuLink> = new EventEmitter<MenuLink>();\n @Output() public redirect: EventEmitter<MenuLink> = new EventEmitter<MenuLink>();\n\n public activeMenu: string | null = null;\n public readonly menuButtons = MENU_SECTIONS;\n private menuTriggerRef: MatMenuTrigger | null = null;\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n const menuButton = (event.target as HTMLElement).closest('.button-wrapper');\n const insideMenu = (event.target as HTMLElement).closest('.mat-menu-panel');\n\n if (!menuButton && !insideMenu) {\n this.forceCloseMenu();\n }\n }\n\n constructor(\n private overlayService: OverlayService,\n private videoApiService: VideoApiService,\n private commercialApiService: CommercialApiService\n ) {}\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() {\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 = 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 <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\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 <ng-container *ngFor=\"let section of menuCurrent.sections\">\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 <ng-container *ngFor=\"let link of section.links\">\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 </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </mat-menu>\n </ng-container>\n </ng-container>\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, EventEmitter, HostListener, Inject, OnInit, Output} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {CookieService} from 'ngx-cookie-service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {OverlayContainer} from '@angular/cdk/overlay';\nimport {PermissionsInterface} from \"../../interfaces/permissions.interface\";\nimport {Theme} from \"../../decorators/theme.decorator\";\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 {ToasterEventsService} from \"../../toaster/toaster-events.service\";\nimport {CommonApiService} from \"../../services/api/common-api.service\";\nimport {SessionStorageService} from \"../../services/storage/session-storage.service\";\nimport {PermissionsService} from \"../../permissions/permissions.service\";\nimport {Config, WEB_CONFIG} from \"../../config\";\nimport {LangService} from \"../../services/translate-language/lang.service\";\nimport {ElasticsearchService} from \"../../services/elasticsearch/elasticsearch.service\";\nimport {PurchaseOrderRapidSearchModel} from \"../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport {ProductRapidSearchModel} from \"../../models/video/product-rapid-search.model\";\nimport {RapidSearchItemType} from \"../../enums/rapid-search-item-type.enum\"\nimport {FormControl} from '@angular/forms';\nimport {WorkVersionRapidSearchModel} from \"../../models/referential/work-version-rapid-search.model\";\nimport {debounceTime, map, switchMap} from 'rxjs/operators';\nimport {Observable, of} from 'rxjs';\nimport {MatOptionSelectionChange} from '@angular/material/core';\nimport {DealRapidSearchModel} from '../../models/commercial/deal-rapid-search-model';\nimport {ThirdPartyRapidSearchModel} from \"../../models/referential/third-party-rapid-search.model\";\nimport {WorkRecordRapidSearchModel} from \"../../models/commercial/work-record-rapid-search-model\";\nimport {ContractRapidSearchModel} from \"../../models/legal/contract-rapid-search-model\";\nimport {InvoiceRapidSearchModel} from \"../../models/commercial/invoice-rapid-search-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 @Theme() public theme: string;\n @User() public user: AuthUserModel;\n\n @Output() toogleMenuEvent = new EventEmitter();\n\n restrictions = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\n\n public lang: string;\n public labelLang = 'labelFr';\n public isHide = false;\n public currentScroll = 0;\n public env: string;\n public historyList = [];\n private readonly apiUrl: string;\n public activeButton: string = '';\n public RapidSearchItemType = RapidSearchItemType;\n public formControlSearch: FormControl<string>;\n public documents$: Observable<(PurchaseOrderRapidSearchModel\n | ProductRapidSearchModel\n | WorkVersionRapidSearchModel\n | DealRapidSearchModel\n | WorkRecordRapidSearchModel\n | ThirdPartyRapidSearchModel\n | ContractRapidSearchModel\n | InvoiceRapidSearchModel)[]>;\n\n constructor(\n private readonly router: Router,\n private readonly localStorageEvents: LocalStorageEventsService,\n private readonly localStorage: LocalStorageService,\n private readonly toasterService: ToasterEventsService,\n private readonly translate: TranslateService,\n private readonly commonApiService: CommonApiService,\n private readonly sessionStorageService: SessionStorageService,\n private readonly permissionsService: PermissionsService,\n private readonly overlayContainer: OverlayContainer,\n private readonly cookieService: CookieService,\n private readonly langService: LangService,\n private readonly elasticsearchService: ElasticsearchService,\n @Inject(WEB_CONFIG) private readonly config: Config\n ) {\n this.apiUrl = this.config.api_url;\n }\n\n\n public ngOnInit() {\n this.formControlSearch = new FormControl<string>(null);\n\n this.initPermissionsService();\n this.lang = this.localStorage.get('lang') || 'fr';\n this.updateLabelLang(this.lang);\n this.env = this.config.env.toLowerCase();\n this.localStorageEvents.localStorageEvent.subscribe(() => {\n this.lang = this.localStorage.get('lang');\n this.updateLabelLang(this.lang);\n });\n\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 @HostListener('window:scroll', [])\n public onWindowScroll() {\n const numberVar = 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 public switchTheme() {\n if (this.theme === 'dark') {\n this.localStorage.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.localStorage.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 stopIdentityTheft() {\n sessionStorage.removeItem('authTokenSecondary');\n }\n\n public navigate(module = '', route: string, queryParamString?: string | null) {\n if (!route.startsWith('/')) {\n route = '/' + route;\n }\n\n const url = this.config.api_url + (module ? `/${module}` : '') + route;\n let queryParams = 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) {\n window.location.href = route;\n }\n\n public getHistory() {\n this.historyList = [];\n if (this.localStorage.exist('history')) {\n this.historyList = this.localStorage.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 switchLang(lang) {\n this.localStorage.post('lang', lang);\n this.translate.use(lang);\n this.langService.switchLang();\n }\n\n private updateLabelLang(lang: string) {\n if ('en' === lang) {\n this.labelLang = 'labelEn';\n } else if ('de' === lang) {\n this.labelLang = 'labelDe';\n } else {\n this.labelLang = 'labelFr';\n }\n }\n\n public getContractType(type) {\n return type === 'Sale' ? 'cess' : type ==='Acquisition' ? 'acq' : 'auth';\n }\n\n onSelectSearch($event: MatOptionSelectionChange, doc: any) {\n switch (doc.docType) {\n case RapidSearchItemType.PURCHASE_ORDER:\n this.navigate('expenditure-commitment', '/purchase-orders/' + doc.poId);\n break;\n case RapidSearchItemType.PRODUCT:\n this.navigate('video', '/product/consult/' + doc.productId);\n break;\n case RapidSearchItemType.WORK_VERSION:\n this.navigate(null, '/work-summary/' + doc.id + '/info');\n break;\n case RapidSearchItemType.DEAL:\n this.navigate(null, '/commercial/deal/consult/' + doc.id);\n break;\n case RapidSearchItemType.THIRD_PARTY:\n this.navigate(null, '/referential/third-party/' + doc.id);\n break;\n case RapidSearchItemType.WORK_RECORD:\n this.navigate(null, '/commercial/work-record/consult/' + doc.id + '/general');\n break;\n case RapidSearchItemType.CONTRACT:\n this.navigate(null, '/legal/contracts-details/' + this.getContractType(doc.type.labelEn) + '/'+ doc.contractId);\n break;\n case RapidSearchItemType.INVOICE:\n if (doc.right) {\n this.navigate(null, '/commercial/invoice/right-payment-consult?idEcheance=' + doc.invoiceId);\n } else {\n this.navigate(null, '/commercial/invoice/material-payment-consult?idEcheance=' + doc.invoiceId);\n }\n break;\n }\n }\n\n\n}\n","<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\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\" src=\"./assets/img/unity_logo_48x48.png\">\n </a>\n <span *ngIf=\"env != 'prod'\" [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\n </span>\n\n <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\n (redirect)=\"redirect($event.route)\" class=\"menu-header\" />\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)=\"navigate(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 <mat-option (onSelectionChange)=\"onSelectSearch($event, doc)\"\n *ngFor=\"let doc of documents$ | async\"\n class=\"mat-option-global-search\">\n <!--PURCHASE_ORDER-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.PURCHASE_ORDER\" class=\"d-flex align-items-center\">\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>{{ doc.poNumber }}\n - {{ doc.totalAmount | currency: doc.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>{{ doc?.basketNumber ? doc.basketNumber : '-' }}</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.EAN' | commonTranslate: lang }}</span>\n <span>{{ doc?.ean ? doc.ean : '-' }}</span>\n </div>\n </div>\n </div>\n <!--PRODUCT-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.PRODUCT\" class=\"d-flex align-items-center\">\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\">{{ doc.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>{{ doc.support[labelLang] }}</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.EAN' | commonTranslate: lang }}</span>\n <span>{{ doc.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>{{ doc?.releaseDate ? doc.releaseDate : '-' }}</span>\n </div>\n </div>\n </div>\n <!--WORK-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.WORK_VERSION\" class=\"d-flex align-items-center\">\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\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.title }} ({{ doc.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>{{ doc.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>{{ doc.yearOfProduction }}</span>\n </div>\n </div>\n </div>\n <!--DEAL-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.DEAL\" class=\"d-flex align-items-center\">\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\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }} - {{ doc.thirdPartyClientName }}\n ({{ doc.thirdPartyClientSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.calculatedAmount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang\n }}</span>\n <span>{{ doc.validationDate }}</span>\n </div>\n </div>\n </div>\n <!--WORK_RECORD-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.WORK_RECORD\" class=\"d-flex align-items-center\">\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\">{{ doc.id }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.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\">{{ doc.getTitle(lang) }} ({{ doc.miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.amount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n </div>\n </div>\n <!--INVOICE-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.INVOICE\" class=\"d-flex align-items-center\">\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\">{{ doc.number }}</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.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }}</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.CLIENT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.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\">{{ doc.getTitle(lang) }} ({{ doc.miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.amount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n </div>\n </div>\n <!--THIRD_PARTY-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.THIRD_PARTY\" class=\"d-flex align-items-center\">\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\">{{ doc.companyOrPersonName }} ({{ doc.address | thirdPartyAddressSearch: lang }}\n )</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.CODE' | commonTranslate: lang }}</span>\n <span>{{ doc.code }}</span>\n </div>\n </div>\n </div>\n <!--CONTRACT-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.CONTRACT\" class=\"d-flex align-items-center\">\n <div class=\"max-width-5\">\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'cess'\"\n class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'acq'\"\n class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'auth'\"\n class=\"material-icons-outlined rapid-search-type-icon\">account_circle</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.CONTRACT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.lisaId }} </span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang\n }}</span>\n <span>{{ doc.type[labelLang] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang\n }}</span>\n <span>{{ doc.status[labelLang] }}</span>\n </div>\n <div *ngIf=\"doc.type.labelEn !== 'Sale'\" class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang\n }}</span>\n <span>{{ doc.licensor ? doc.licensor : '-' }}</span>\n </div>\n <div *ngIf=\"doc.type.labelEn === 'Sale'\" class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang\n }}</span>\n <span>{{ doc.customer ? doc.customer : '-' }}</span>\n </div>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n\n </mat-form-field>\n </div>\n\n <div *ngIf=\"user && user.secondary\" 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 <button (click)=\"stopIdentityTheft()\" *ngIf=\"user.secondary\" color=\"warn\" mat-raised-button>\n {{ 'CORE.STOP' | commonTranslate: lang }}\n </button>\n </div>\n\n <span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\"\n class=\"material-icons header-icon max-width-5\">history</span>\n <mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\n <ng-container *ngFor=\"let history of historyList\" [ngSwitch]=\"history.type\">\n <button (click)=\"navigate('expenditure-commitment', '/purchase-orders/' + history.id)\" *ngSwitchCase=\"'PRODUCT'\"\n 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 <button (click)=\"navigate('expenditure-commitment', '/purchase-orders/' + history.id)\" *ngSwitchCase=\"'PO'\"\n 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 <button (click)=\"navigate('commercial', '/deal/consult/' + history.id)\" *ngSwitchCase=\"'DEAL'\"\n 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 <button (click)=\"navigate('commercial', '/work-record/consult/'+ history.id +'/general')\" *ngSwitchCase=\"'WORK'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/acq/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_ACQ'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/cess/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_CESS'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/auth/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_AUTH'\"\n 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 <button (click)=\"navigate('expenditure-commitment', '/budget/form/' + history.id)\" *ngSwitchCase=\"'BUDGET'\"\n 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 <button *ngSwitchCase=\"'NO_HISTORY_AVAILABLE'\" 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 </ng-container>\n </mat-menu>\n <span class=\"header-separator\"></span>\n\n <span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon max-width-5\">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 <button class=\"img-btn\" (click)='switchLang(\"en\")' *ngIf='lang !== \"en\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/en-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH' | commonTranslate: lang }}</span>\n </button>\n <button class=\"img-btn\" (click)='switchLang(\"fr\")' *ngIf='lang !== \"fr\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/fr-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH' | commonTranslate: lang }}</span>\n </button>\n <button class=\"img-btn\" (click)='switchLang(\"de\")' *ngIf='lang !== \"de\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/de-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH' | commonTranslate: lang }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n <button (click)=\"navigate('user', '/account/authorization/search')\" *ngIf=\"user && user.admin\" 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 </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"navigate('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 </mat-menu>\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 = false;\n public currentScroll = 0;\n\n constructor(@Inject(DOCUMENT) private document: any) {\n }\n\n public ngOnInit(): void {\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll() {\n const numberVar = 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 SECRET_CODE: string ;\n private readonly SECRET_CODE: string = '1234567891234567';\n private keySize: number = 128 / 32;\n private iterationCount = 1000;\n // private iv: string ;\n // private salt: string ;\n private pwdEncrypted: string;\n\n // private cipherText: string;\n\n constructor() {\n }\n\n public generateKey(salt: string) {\n\n // this.SECRET_CODE = sessionStorage.getItem('_uniqueKey');\n const key = CryptoJS.PBKDF2(\n this.SECRET_CODE,\n CryptoJS.enc.Hex.parse(salt),\n {keySize: this.keySize, iterations: this.iterationCount});\n\n return key;\n }\n\n public encrypt(planText: string) {\n const iv = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n const salt = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n\n const key = this.generateKey(salt);\n\n const encrypted = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\n\n const cipherText = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\n\n const aesPassword = (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 { MAT_DIALOG_DATA, 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, FormControl, 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 username = '';\n public password = '';\n public loading = false;\n public errorMessage = '';\n public apiUrl = '';\n public userForm: FormGroup<UserFormModel>;\n\n constructor(\n public dialogRef: MatDialogRef<MyDialogPopupLoginComponent>,\n private aesUtil: AesService,\n @Inject(WEB_CONFIG) private config: Config,\n private http: HttpClient,\n private translateService: TranslateService,\n private cookieService: CookieService,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private commonApiService: CommonApiService,\n private formBuilder: FormBuilder\n ) {\n this.apiUrl = config.api_url + '/authorization-api';\n }\n\n public ngOnInit() {\n this.buildForm();\n }\n\n public onLogin() {\n if (this.userForm.invalid) {\n this.errorMessage = this.translateService.instant(\n 'CORE.LOGIN.ACCESS_DENIED'\n );\n return;\n }\n this.loading = true;\n this.errorMessage = '';\n\n this.login(\n {username: this.username, password: this.password},\n this.translateService.currentLang\n ).subscribe(\n user => {\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 () => {\n this.loading = false;\n this.errorMessage = this.translateService.instant(\n '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.aesUtil.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: new FormControl<string>(null, Validators.required),\n password: new FormControl<string>(null, Validators.required)\n });\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 [(ngModel)]=\"username\" 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 [(ngModel)]=\"password\" 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 }}</button>\n <mat-spinner *ngIf=\"loading\" [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\n <div *ngIf=\"(errorMessage !== null || errorMessage !== '')\" class=\"errorMessage not-so-close-from-button\">\n {{errorMessage}} </div>\n</mat-dialog-actions>\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 constructor() {\n }\n\n public menuSwitch() {\n console.log('Menu switch');\n this.toggleMenu.emit();\n }\n\n public lightSwitch() {\n this.toggleLight.emit();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from '../storage/local-storage.service';\n\n@Injectable()\nexport class HistoryService {\n\n constructor(private localStorage: LocalStorageService) {\n }\n\n public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any) {\n let history = [];\n if (this.localStorage.exist('history')) {\n history = this.localStorage.get('history');\n }\n // DELETE EXISTING SCREEN\n history.forEach((element, index) => {\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.localStorage.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) {\n if (type == history.type && id == history.id && ref == history.ref) {\n return true;\n }\n return false;\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip][appShowIfTruncated]'\n})\nexport class ShowIfTruncatedDirective {\n constructor(\n private matTooltip: MatTooltip,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n @HostListener('mouseenter', ['$event'])\n setTooltipState(): void {\n const element = 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): string {\n if (value > 0 && value < 60) {\n return value + 'min';\n } else {\n const h = Math.floor(value / 60);\n const min = value % 60;\n return min === 0 ? h + 'h' : h + 'h ' + min + 'min';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n name: 'formatCurrency'\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n\n constructor(private currencyPipe: CurrencyPipe) {\n }\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 { 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\n\n unsubscribe: Subject<void> = new Subject<void>();\n OF_LABEL = 'of';\n\n constructor(private translate: TranslateService) {\n super();\n\n this.translate.onLangChange\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.getAndInitTranslations();\n });\n\n this.getAndInitTranslations();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n getAndInitTranslations() {\n this.translate\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 ) => {\n if (length === 0 || pageSize === 0) {\n return `0 ${this.OF_LABEL} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\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 { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n private isAuthenticatedSubject = 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 { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\n// Angular\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport {CommonModule, CurrencyPipe, DatePipe} 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 { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTableModule } from '@angular/material/table';\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 { MatSelectModule } from '@angular/material/select';\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 { NgSelectModule } from \"@ng-select/ng-select\";\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';\n\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 ],\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 ],\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 ],\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 ]\n})\nexport class UtilModule {\n constructor(private readonly langService: LangService) {\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 = new Map<number, number>();\n\n constructor() {\n }\n\n // Format Date to YYYY-MM-DD\n public static formatDate(date: Date, language) {\n const mm = date.getMonth() + 1;\n const dd = 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 = stringdate.split('-');\n const month = parts[1].toString();\n const yearNumber = Number(parts[0]);\n let monthNumber = 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 = stringdate.split(',');\n const month = parts[1].toString();\n const yearNumber = Number(parts[0]);\n let monthNumber = 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 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 = 0;\n let numberOfYears = b.getFullYear() - a.getFullYear();\n let numberOfMonths = (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 = 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() {\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, d2): 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 const period = new PeriodModel(0, 0, 0);\n return period;\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 constructor() {\n }\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 constructor() {\n }\n\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 = 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 = 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 = 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 = 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 = 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 = 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) {\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: 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 = 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) {\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 = false;\n\n public permissions: AuthPermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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 = 0;\n\n constructor() {\n this.bonusType = new ReferentielModel();\n this.bonusType.id = 1;\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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: 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) {\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 = '';\n public isoCode = '';\n public IsLanguageTech: boolean = null;\n public order = 0;\n public territories: TerritoryModel[];\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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) {\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 = null;\n public theatricalReleaseDate = 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 = '';\n public pressOfficerCode = '';\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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) {\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) {\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 = false;\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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) {\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 = false;\n public availabilityDate: string;\n public checked = 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) {\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) {\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: 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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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: 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 fromJSON(json) {\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) {\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) {\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: 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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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 = 0;\n public label = '';\n public order = 0;\n\n constructor() {\n }\n\n fromJSON(json) {\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: 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) {\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) {\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: 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) {\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) {\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) {\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: 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 = 0;\n public lastName = '';\n public firstName = '';\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) {\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: 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) {\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) {\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) {\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) {\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: 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) {\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: 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 = 'WARNING';\n public LEVEL_ERROR = 'ERROR';\n\n public errorMessageKey = '';\n public status = 0;\n public severity = '';\n public parameters: string[] = [];\n public statusText = '';\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) {\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 fromJSON(json) {\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) {\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 = '';\n public supplierType = '';\n public dateCreation: any = null;\n public userCreation = '';\n public service = '';\n public tel = '';\n public label = '';\n public address = '';\n public zipCode = '';\n public country: TerritoryModel;\n public city = '';\n public intraCommunautaireTvaNumber = '';\n public siret = '';\n public socialSecurity = '';\n public agessaAgrement = '';\n public existMilo = false;\n public blocageReason = '';\n public miloIdentification = '';\n public miloBlockedCompta = false;\n public miloBlockedMM = false;\n public email = '';\n public thirdPartyType = '';\n public honoraire = false;\n public currency: CurrencyModel;\n public amount = '';\n public commandeVerso = false;\n public commandeRambo = false;\n public commandeBBP = false;\n public contratRambo = false;\n public clientType = '';\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 = '';\n public personCompanyType = '';\n public statusCreationRequest: boolean;\n\n constructor() {\n }\n\n public fromJSON(json) {\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 fromJSON(json) {\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) {\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) {\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 = '';\n public nameTypeExport = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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 = 0;\n public codeTva: string = null;\n public rate = 0;\n public label = '';\n public codeLabel: string;\n\n // public client = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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 = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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) {\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) {\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 = 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 = 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) {\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: 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) {\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) {\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) {\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: 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) {\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) {\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 constructor() {\n }\n\n public fromJSON(json) {\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 = 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 = 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) {\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) {\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 = 'Referential-WorkModel-Session-key';\n public editorialContents: EditorialContentModel[];\n public workKeywords: KeywordsModel[];\n public exportableSap = false;\n public header: boolean;\n public seriesWorkId?: number;\n\n constructor() {\n this.versions = [];\n }\n\n public fromJSON(json) {\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) {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\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) {\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) {\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) {\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\n constructor() {\n }\n\n public getFullName(): string {\n return this.firstName + ' ' + this.name;\n }\n\n public fromJSON(json) {\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) {\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) {\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 constructor() {\n }\n\n public emitUpdateEvent() {\n this.updateEvent.emit();\n }\n\n public emitEventIsUpdateTrue() {\n this.consultToEdit.emit(true);\n }\n\n public emitConsultEvent() {\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) {\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 {ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { 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 { of } from \"rxjs\";\n\nexport const authGuard: CanActivateFn = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n) => {\n const cookieService = inject(CookieService);\n const commonApiService = inject(CommonApiService);\n const webConfig = inject(WEB_CONFIG);\n const 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) => {\n user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\n authService.setAuthenticated(true);\n return true;\n }),\n catchError(() => {\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 } 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 = inject(MatDialog);\n const authService = inject(AuthService);\n\n if (sessionStorage.getItem('authToken') !== null) {\n authService.setAuthenticated(true);\n return true;\n } else {\n const dialogRef = dialog.open(MyDialogPopupLoginComponent, {\n disableClose: true\n });\n\n return dialogRef.afterClosed().pipe(\n map((res: 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) {\n return value !== null\n && value !== undefined\n && !(typeof value === 'string' && value.trim().length === 0);\n }\n}\n","import { 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 = false;\n private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\n null\n );\n\n constructor(\n private authService: CommonApiService,\n private cookieService: CookieService\n ) {\n }\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.authService.isTokenValid()) {\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject.pipe(\n filter((result) => result !== null),\n take(1),\n switchMap(() => next.handle(this.addToken(request)))\n );\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n const user: AuthUserModel = this.authService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\n\n return this.authService.ssoLogin(email)\n .pipe(\n switchMap((data: any) => {\n this.authService.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 = this.authService.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';\n\n\ninterface ITranslationResource {\n prefix: string;\n suffix: string;\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private resources: ITranslationResource[],\n ) {\n }\n\n public getTranslation(lang: string): Observable<any> {\n const requests = this.resources.map(resource => {\n const path = 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TOKEN_NAME","i1.LocalStorageEventsService","i1.MyNumberPipe","i1","i1.SessionStorageEventsService","i2.UserSubsidiaryService","i2","i3.OverlayService","i4","i2.LocalStorageService","ClientJs","i1.SubsidiariesService","i1.LocalStorageService","i1.OverlayService","i2.VideoApiService","i3.CommercialApiService","i5","i6","i9.CommonTranslatePipe","i16","i18","i19","i20","i21","i24.MenuComponent","i25.CommonTranslatePipe","i26.ThirdPartyAddressSearchPipe","i2.AesService","i3","i6.CommonApiService","i7","i8","i9","i10","i11","i12","i1.LangService","ReferentielModel","i1.CommonApiService"],"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/decorators/theme.decorator.ts","../../../projects/new-front-common-library/src/lib/util/enums/rapid-search-item-type.enum.ts","../../../projects/new-front-common-library/src/lib/util/toaster/toaster-events.service.ts","../../../projects/new-front-common-library/src/lib/util/services/translate-language/lang.service.ts","../../../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/component/header/menu/menu.const.ts","../../../projects/new-front-common-library/src/lib/util/services/api/video-api.service.ts","../../../projects/new-front-common-library/src/lib/util/services/api/commercial-api.service.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/pipes/third-party-address-search.pipe.ts","../../../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/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/services/auth/auth.service.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/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) {\n let parts = token.split('.');\n if (parts.length !== 3) {\n throw new Error('JWT must have 3 parts');\n }\n let decoded = 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) {\n let output = 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\n public headers: HttpHeaders = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n public jwtHelper = new JwtHelper();\n\n constructor(\n @Inject(WEB_CONFIG) private config: Config,\n private cookieService: CookieService,\n private http: HttpClient\n ) {\n }\n\n public static handleError(error) {\n return throwError(error || 'api error');\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() {\n const user = 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) {\n return sessionStorage.hasOwnProperty(tokenName) ? this.jwtHelper.decodeToken(sessionStorage.getItem(tokenName)) : {};\n }\n\n public getUserDataFromToken(): any {\n const user = 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() {\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 constructor() {\n }\n\n // emit an event when local storage change\n public emitLocalStorageEvent() {\n this.localStorageEvent.emit('maj localstorage');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageEventsService } from '../../event/storage/local-storage-events.service';\n\n@Injectable()\nexport class LocalStorageService {\n\n constructor(private localStorageEvents: LocalStorageEventsService) {\n }\n\n // Check if the data exist in the session storage\n public exist(key: string) {\n return localStorage.hasOwnProperty(key);\n }\n\n public get(key: string) {\n return this.exist(key) ? JSON.parse(localStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any) {\n localStorage.setItem(key, JSON.stringify(data));\n this.localStorageEvents.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) {\n return localStorage.getItem(key).indexOf(JSON.stringify(data)) !== -1 ? true : false;\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, Input, OnInit } from '@angular/core';\nimport { MyNumberPipe } from '../pipes/my-number.pipe';\n\n@Directive({selector: '[myNumberFormatter]'})\nexport class MyNumberFormatterDirective implements OnInit {\n @Input() public decimalNumber: number;\n private el: HTMLInputElement;\n\n constructor(\n private elementRef: ElementRef,\n private currencyPipe: MyNumberPipe\n ) {\n this.el = this.elementRef.nativeElement;\n }\n\n public ngOnInit() {\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) {\n this.el.value = this.currencyPipe.parse(value, this.decimalNumber); // opossite of transform\n }\n\n @HostListener('blur', ['$event.target.value'])\n public onBlur(value) {\n this.el.value = this.currencyPipe.transform(value, this.decimalNumber);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/*\n@Pipe({\n name: 'capitalizeFirst'\n})\n*/\n\n@Pipe({\n name: 'myCapitalizeFirst'\n})\nexport class CapitalizefirstPipe implements PipeTransform {\n\n constructor() {\n }\n\n public transform(value: string): string {\n if (value == null) {\n return '';\n }\n let valueArgs;\n\n let args = (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) {\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 = '';\n\n constructor() {\n }\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 = 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 constructor() {\n }\n\n // emit an event when local storage change\n public switchTheme() {\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 constructor() {\n }\n\n // emit a success event toaster\n public emitUpdate() {\n this.sessionsStorageUpdateEvent.emit('update');\n }\n}\n","// Angular 2\nimport { Injectable } from '@angular/core';\nimport { SessionStorageEventsService } from '../../event/storage/session-storage-events.service';\n\n// Services\n\n@Injectable()\nexport class SessionStorageService {\n\n constructor(private sessionsStorageEvents: SessionStorageEventsService) {\n }\n\n // Check if the data exist in the session storage\n public exist(key: string) {\n return (undefined !== sessionStorage.getItem(key) && null !== sessionStorage.getItem(key)) ? true : false;\n }\n\n public get(key: string) {\n return this.exist(key) ? JSON.parse(sessionStorage.getItem(key)) : null;\n }\n\n public post(key: string, data: any) {\n sessionStorage.setItem(key, JSON.stringify(data));\n this.sessionsStorageEvents.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) {\n return this.get(key).indexOf(JSON.stringify(data)) !== -1 ? true : false;\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() {\n\n const jwtHelper: JwtHelper = new JwtHelper();\n return (target: any, key: string) => {\n\n // Check if the data exist in the local storage\n function exist(dataKey: string) {\n return sessionStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(user: string) {\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 = 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) => 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) => value.family?.label === Family.STUDIOCANAL.valueOf()\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { User } from '../decorators/user.decorator';\nimport { NgxPermissionsService } from 'ngx-permissions';\nimport { UserSubsidiaryService } from '../services/user/user-subsidiary.service';\n\nexport const CANAL_PLUS_INTERNATIONAL_RESTRICTION = 'CANAL_PLUS_INTERNATIONAL_RESTRICTION';\n\n@Injectable()\nexport class PermissionsService {\n @User() public user;\n\n constructor(private readonly permissionsService: NgxPermissionsService,\n private readonly userSubsidiaryService: UserSubsidiaryService) {\n }\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) => p.code === code).length > 0;\n }\n\n private shouldLoadUserPermissions() {\n const loadedPermissions = Object.keys(this.permissionsService.getPermissions());\n if (loadedPermissions.length !== this.user.permissions.length) {\n return true;\n }\n let res = false;\n this.user.permissions.forEach((p) => {\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 constructor() {\n }\n\n public show(message?: string) {\n this.showEvent.emit(message);\n }\n\n public setMessage(message: string) {\n this.setMessageEvent.emit(message);\n }\n\n public hide() {\n this.hideEvent.emit();\n }\n}\n","import { ChangeDetectorRef, Component, 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 = false;\n\n constructor(\n private router: Router,\n private translateService: TranslateService,\n private overlayService: OverlayService,\n private cd: ChangeDetectorRef\n ) {\n }\n\n public ngOnInit() {\n this.router.events.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.showEvent.subscribe((message?: string) => {\n this.message = message || this.message;\n this.show = true;\n this.cd.detectChanges();\n });\n\n this.overlayService.hideEvent.subscribe(() => {\n this.show = false;\n });\n\n this.overlayService.setMessageEvent.subscribe((message: string) => {\n this.message = message;\n });\n }\n}\n","<div *ngIf=\"show\" class=\"blackshield\"></div>\n\n<div *ngIf=\"show\" 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","export function Theme() {\n return (target: any, key: string) => {\n // Check if the data exist in the local storage\n function exist(dataKey: string) {\n return localStorage.hasOwnProperty(dataKey);\n }\n\n // Get data from local storage\n function get(theme: string) {\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","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}\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 constructor() {\n }\n\n // emit a success event toaster\n public successEvent(message: string) {\n this.toasterSuccessEvent.emit(message);\n }\n\n // emit a success event toaster\n public errorEvent(message: string) {\n this.toasterErrorEvent.emit(message);\n }\n\n // emit a success event toaster\n public warnEvent(message: string) {\n this.toasterWarnEvent.emit(message);\n }\n\n // emit a success event toaster\n public infoEvent(message: string) {\n this.toasterInfoEvent.emit(message);\n }\n}\n","import { EventEmitter, 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\n constructor(private translate: TranslateService, private localStorage: LocalStorageService) {\n }\n\n translateLanguage() {\n this.translate.addLangs(['en', 'fr', 'de']);\n if (this.localStorage.exist('lang') && this.translate.getLangs().indexOf(this.localStorage.get('lang')) != -1) {\n this.translate.use(this.localStorage.get('lang'));\n } else {\n this.translate.use(this.translate.getLangs().indexOf(this.translate.getBrowserLang()) != -1 ? this.translate.getBrowserLang() : 'en');\n }\n this.localStorage.post('lang', this.translate.currentLang);\n }\n\n // emit an event when local storage change\n public switchLang() {\n this.switchLangEmitter.emit();\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 public apiUrl: string = this.config.api_url + '/legal-api/';\n\n public header: Headers = new Headers({\n 'Content-Type': 'application/json'\n });\n\n constructor(@Inject(WEB_CONFIG) private config: Config,\n private http: HttpClient\n ) {\n }\n public getMappingSocietesSubsidiaries(): Observable<Record<number, number[]>> {\n return this.http.get<Record<number, number[]>>(this.apiUrl + 'subsidiaries/societe_mapping')\n .pipe(catchError(this.handleError));\n }\n\n public handleError(error) {\n return throwError(error || 'api error');\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],\n 3: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 4: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 5: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 6: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990],\n 7: [332, 333, 334, 739, 335, 1379, 1380, 4988, 4990]\n }\n\n private subsidiaryToSocieteMapLegal: Record<number, number[]> = {};\n\n constructor() {\n this.loadTableSocieteAppartenance();\n }\n loadTableSocieteAppartenance() {\n this.legalService.getMappingSocietesSubsidiaries().subscribe({\n next: (map: Record<number, number[]>) => {\n this.subsidiaryToSocieteMapLegal = map;\n },\n error: () => {\n console.log('Default mapping for subsidiaryToSocieteMapLegal');\n this.subsidiaryToSocieteMapLegal = {...this.defaultMapping};\n }\n })\n }\n\n getSocieteAppartenance(subsidiaries: SubsidiaryModel[]) {\n if (subsidiaries === null) {\n return null;\n }\n return subsidiaries\n .reduce((acc: number[], sub) => {\n const societes = this.subsidiaryToSocieteMapLegal[sub.id] || [];\n return acc.concat(societes);\n }, [])\n .filter((v, i, arr) => 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 {PurchaseOrderRapidSearchModel} from \"../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport {ProductRapidSearchModel} from \"../../models/video/product-rapid-search.model\";\nimport {Config, WEB_CONFIG} from '../../config';\nimport {WorkVersionRapidSearchModel} from \"../../models/referential/work-version-rapid-search.model\";\nimport {DealRapidSearchModel} from '../../models/commercial/deal-rapid-search-model';\nimport {ThirdPartyRapidSearchModel} from \"../../models/referential/third-party-rapid-search.model\";\nimport {WorkRecordRapidSearchModel} from \"../../models/commercial/work-record-rapid-search-model\";\nimport {ContractRapidSearchModel} from \"../../models/legal/contract-rapid-search-model\";\nimport {InvoiceRapidSearchModel} from \"../../models/commercial/invoice-rapid-search-model\";\nimport {AuthUserModel} from \"../../models\";\nimport {SubsidiariesService} from \"./subsidiaries.service\";\n\n\n@Injectable()\nexport class ElasticsearchService {\n\n constructor(@Inject(WEB_CONFIG) private config: Config,\n private subsidiariesMappingService: SubsidiariesService) {\n }\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'],\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 = 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 body.push({\n query: {bool: this.composeContractQuery(text, user.subsidiaries)},\n sort: [{'lisaId.keyword': {order: 'asc'}}],\n size: 50\n });\n break;\n case 'unity-royalty-contract' :\n body.push({\n query: {dis_max: {queries: [{wildcard: {contractNumber: {value: '*' + text + '*'}}}]}},\n sort: [{'contractNumber.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): (PurchaseOrderRapidSearchModel | ProductRapidSearchModel |\n WorkVersionRapidSearchModel | DealRapidSearchModel | WorkRecordRapidSearchModel | ThirdPartyRapidSearchModel | ContractRapidSearchModel)[] {\n let results = [];\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 = 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, subsidiadies) {\n const societes = this.subsidiariesMappingService.getSocieteAppartenance(subsidiadies);\n const must: any[] = [\n {wildcard: {lisaId: {value: '*' + text + '*'}}}\n ];\n const should: any[] = [];\n should.push({bool: {must_not: {exists: {field: 'societeAppartenance'}}}});\n if (societes && societes.length > 0) {\n should.push({terms: {societeAppartenance: societes}});\n }\n const boolQuery: any = {must};\n boolQuery.should = should;\n boolQuery.minimum_should_match = 1;\n return boolQuery\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.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","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\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 constructor(\n @Inject(WEB_CONFIG) private config: Config,\n private cookieService: CookieService,\n private http: HttpClient\n ) {\n }\n\n public static handleError(error: HttpErrorResponse) {\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(\n '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 {Inject, Injectable} from '@angular/core';\nimport {throwError} from \"rxjs\";\nimport {Config, WEB_CONFIG} from \"../../config\";\n\n@Injectable()\nexport class CommercialApiService {\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 constructor(@Inject(WEB_CONFIG) private config: Config) {\n }\n\n public static handleError(error: Response) {\n return throwError(error.json() || 'api error');\n }\n\n public getAccountWrittingDownload() {\n window.open(this.apiUrl + 'accounting-writing/get-account-writting-file');\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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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\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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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\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 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH': 'fr',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH': 'en',\n 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH': 'de',\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.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 { 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\n constructor(private localStorageService: LocalStorageService) {\n }\n\n public transform(value: string, lang?: string): string {\n let currentLang = lang;\n if (!lang) {\n currentLang = this.localStorageService.get('lang');\n }\n\n if (this.isValidLang(currentLang)) {\n const currentTranslation = this.availableTranslations[currentLang];\n return currentTranslation[value];\n }\n }\n\n private isValidLang(lang: string) {\n if (lang) {\n const languages = ['en', 'fr', 'de'];\n if (languages.indexOf(lang) !== -1) {\n return true;\n }\n }\n return false;\n }\n}\n","import { Component, EventEmitter, HostListener, Input, Output } 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 { 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 @Input() public lang!: string;\n @Output() public navigate: EventEmitter<MenuLink> = new EventEmitter<MenuLink>();\n @Output() public redirect: EventEmitter<MenuLink> = new EventEmitter<MenuLink>();\n\n public activeMenu: string | null = null;\n public readonly menuButtons = MENU_SECTIONS;\n private menuTriggerRef: MatMenuTrigger | null = null;\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent): void {\n const menuButton = (event.target as HTMLElement).closest('.button-wrapper');\n const insideMenu = (event.target as HTMLElement).closest('.mat-menu-panel');\n\n if (!menuButton && !insideMenu) {\n this.forceCloseMenu();\n }\n }\n\n constructor(\n private overlayService: OverlayService,\n private videoApiService: VideoApiService,\n private commercialApiService: CommercialApiService\n ) {}\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() {\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 = 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 <ng-container *ngFor=\"let menuCurrent of menuButtons\" class=\"menu-panel-container\">\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 <ng-container *ngFor=\"let section of menuCurrent.sections\">\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 <ng-container *ngFor=\"let link of section.links\">\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 </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </mat-menu>\n </ng-container>\n </ng-container>\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, EventEmitter, HostListener, Inject, OnInit, Output} from '@angular/core';\nimport {Router} from '@angular/router';\nimport {CookieService} from 'ngx-cookie-service';\nimport {TranslateService} from '@ngx-translate/core';\nimport {OverlayContainer} from '@angular/cdk/overlay';\nimport {PermissionsInterface} from \"../../interfaces/permissions.interface\";\nimport {Theme} from \"../../decorators/theme.decorator\";\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 {ToasterEventsService} from \"../../toaster/toaster-events.service\";\nimport {CommonApiService} from \"../../services/api/common-api.service\";\nimport {SessionStorageService} from \"../../services/storage/session-storage.service\";\nimport {PermissionsService} from \"../../permissions/permissions.service\";\nimport {Config, WEB_CONFIG} from \"../../config\";\nimport {LangService} from \"../../services/translate-language/lang.service\";\nimport {ElasticsearchService} from \"../../services/elasticsearch/elasticsearch.service\";\nimport {PurchaseOrderRapidSearchModel} from \"../../models/expenditure-commitment/purchase-order-rapid-search.model\";\nimport {ProductRapidSearchModel} from \"../../models/video/product-rapid-search.model\";\nimport {RapidSearchItemType} from \"../../enums/rapid-search-item-type.enum\"\nimport {FormControl} from '@angular/forms';\nimport {WorkVersionRapidSearchModel} from \"../../models/referential/work-version-rapid-search.model\";\nimport {debounceTime, map, switchMap} from 'rxjs/operators';\nimport {Observable, of} from 'rxjs';\nimport {MatOptionSelectionChange} from '@angular/material/core';\nimport {DealRapidSearchModel} from '../../models/commercial/deal-rapid-search-model';\nimport {ThirdPartyRapidSearchModel} from \"../../models/referential/third-party-rapid-search.model\";\nimport {WorkRecordRapidSearchModel} from \"../../models/commercial/work-record-rapid-search-model\";\nimport {ContractRapidSearchModel} from \"../../models/legal/contract-rapid-search-model\";\nimport {InvoiceRapidSearchModel} from \"../../models/commercial/invoice-rapid-search-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 @Theme() public theme: string;\n @User() public user: AuthUserModel;\n\n @Output() toogleMenuEvent = new EventEmitter();\n\n restrictions = ['CANAL_PLUS_INTERNATIONAL_RESTRICTION'];\n\n public lang: string;\n public labelLang = 'labelFr';\n public isHide = false;\n public currentScroll = 0;\n public env: string;\n public historyList = [];\n private readonly apiUrl: string;\n public activeButton: string = '';\n public RapidSearchItemType = RapidSearchItemType;\n public formControlSearch: FormControl<string>;\n public documents$: Observable<(PurchaseOrderRapidSearchModel\n | ProductRapidSearchModel\n | WorkVersionRapidSearchModel\n | DealRapidSearchModel\n | WorkRecordRapidSearchModel\n | ThirdPartyRapidSearchModel\n | ContractRapidSearchModel\n | InvoiceRapidSearchModel)[]>;\n\n constructor(\n private readonly router: Router,\n private readonly localStorageEvents: LocalStorageEventsService,\n private readonly localStorage: LocalStorageService,\n private readonly toasterService: ToasterEventsService,\n private readonly translate: TranslateService,\n private readonly commonApiService: CommonApiService,\n private readonly sessionStorageService: SessionStorageService,\n private readonly permissionsService: PermissionsService,\n private readonly overlayContainer: OverlayContainer,\n private readonly cookieService: CookieService,\n private readonly langService: LangService,\n private readonly elasticsearchService: ElasticsearchService,\n @Inject(WEB_CONFIG) private readonly config: Config\n ) {\n this.apiUrl = this.config.api_url;\n }\n\n\n public ngOnInit() {\n this.formControlSearch = new FormControl<string>(null);\n\n this.initPermissionsService();\n this.lang = this.localStorage.get('lang') || 'fr';\n this.updateLabelLang(this.lang);\n this.env = this.config.env.toLowerCase();\n this.localStorageEvents.localStorageEvent.subscribe(() => {\n this.lang = this.localStorage.get('lang');\n this.updateLabelLang(this.lang);\n });\n\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 @HostListener('window:scroll', [])\n public onWindowScroll() {\n const numberVar = 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 public switchTheme() {\n if (this.theme === 'dark') {\n this.localStorage.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.localStorage.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 stopIdentityTheft() {\n sessionStorage.removeItem('authTokenSecondary');\n }\n\n public navigate(module = '', route: string, queryParamString?: string | null) {\n if (!route.startsWith('/')) {\n route = '/' + route;\n }\n\n const url = this.config.api_url + (module ? `/${module}` : '') + route;\n let queryParams = 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) {\n window.location.href = route;\n }\n\n public getHistory() {\n this.historyList = [];\n if (this.localStorage.exist('history')) {\n this.historyList = this.localStorage.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 switchLang(lang) {\n this.localStorage.post('lang', lang);\n this.translate.use(lang);\n this.langService.switchLang();\n }\n\n private updateLabelLang(lang: string) {\n if ('en' === lang) {\n this.labelLang = 'labelEn';\n } else if ('de' === lang) {\n this.labelLang = 'labelDe';\n } else {\n this.labelLang = 'labelFr';\n }\n }\n\n public getContractType(type) {\n return type === 'Sale' ? 'cess' : type ==='Acquisition' ? 'acq' : 'auth';\n }\n\n onSelectSearch($event: MatOptionSelectionChange, doc: any) {\n switch (doc.docType) {\n case RapidSearchItemType.PURCHASE_ORDER:\n this.navigate('expenditure-commitment', '/purchase-orders/' + doc.poId);\n break;\n case RapidSearchItemType.PRODUCT:\n this.navigate('video', '/product/consult/' + doc.productId);\n break;\n case RapidSearchItemType.WORK_VERSION:\n this.navigate(null, '/work-summary/' + doc.id + '/info');\n break;\n case RapidSearchItemType.DEAL:\n this.navigate(null, '/commercial/deal/consult/' + doc.id);\n break;\n case RapidSearchItemType.THIRD_PARTY:\n this.navigate(null, '/referential/third-party/' + doc.id);\n break;\n case RapidSearchItemType.WORK_RECORD:\n this.navigate(null, '/commercial/work-record/consult/' + doc.id + '/general');\n break;\n case RapidSearchItemType.CONTRACT:\n this.navigate(null, '/legal/contracts-details/' + this.getContractType(doc.type.labelEn) + '/'+ doc.contractId);\n break;\n case RapidSearchItemType.INVOICE:\n if (doc.right) {\n this.navigate(null, '/commercial/invoice/right-payment-consult?idEcheance=' + doc.invoiceId);\n } else {\n this.navigate(null, '/commercial/invoice/material-payment-consult?idEcheance=' + doc.invoiceId);\n }\n break;\n case RapidSearchItemType.ROYALTY_CONTRACT:\n this.navigate(null, '/royalty/contract/consult/' + doc.id);\n break;\n }\n }\n\n\n}\n","<mat-toolbar class=\"d-flex align-items-center toolbar-header toolbar-padding\">\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\" src=\"./assets/img/unity_logo_48x48.png\">\n </a>\n <span *ngIf=\"env != 'prod'\" [attr.id]=\"'env-' + env\" class=\"env\">{{ env }}</span>\n </span>\n\n <sc-menu [lang]=\"lang\" (navigate)=\"navigate($event.module, $event.route, $event.queryParams)\"\n (redirect)=\"redirect($event.route)\" class=\"menu-header\" />\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)=\"navigate(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 <mat-option (onSelectionChange)=\"onSelectSearch($event, doc)\"\n *ngFor=\"let doc of documents$ | async\"\n class=\"mat-option-global-search\">\n <!--PURCHASE_ORDER-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.PURCHASE_ORDER\" class=\"d-flex align-items-center\">\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>{{ doc.poNumber }}\n - {{ doc.totalAmount | currency: doc.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>{{ doc?.basketNumber ? doc.basketNumber : '-' }}</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.EAN' | commonTranslate: lang }}</span>\n <span>{{ doc?.ean ? doc.ean : '-' }}</span>\n </div>\n </div>\n </div>\n <!--PRODUCT-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.PRODUCT\" class=\"d-flex align-items-center\">\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\">{{ doc.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>{{ doc.support[labelLang] }}</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.EAN' | commonTranslate: lang }}</span>\n <span>{{ doc.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>{{ doc?.releaseDate ? doc.releaseDate : '-' }}</span>\n </div>\n </div>\n </div>\n <!--WORK-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.WORK_VERSION\" class=\"d-flex align-items-center\">\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\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.WORK' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.title }} ({{ doc.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>{{ doc.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>{{ doc.yearOfProduction }}</span>\n </div>\n </div>\n </div>\n <!--DEAL-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.DEAL\" class=\"d-flex align-items-center\">\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\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }} - {{ doc.thirdPartyClientName }}\n ({{ doc.thirdPartyClientSap }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.calculatedAmount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.VALIDATION_DATE' | commonTranslate: lang\n }}</span>\n <span>{{ doc.validationDate }}</span>\n </div>\n </div>\n </div>\n <!--WORK_RECORD-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.WORK_RECORD\" class=\"d-flex align-items-center\">\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\">{{ doc.id }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-10 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30 ellipsis\">\n <span\n class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CLIENT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.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\">{{ doc.getTitle(lang) }} ({{ doc.miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.amount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n </div>\n </div>\n <!--INVOICE-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.INVOICE\" class=\"d-flex align-items-center\">\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\">{{ doc.number }}</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.DEAL' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.dealNumber }}</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.CLIENT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.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\">{{ doc.getTitle(lang) }} ({{ doc.miloCode }})</span>\n </div>\n <div class=\"d-flex flex-column max-width-15\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.AMOUNT' | commonTranslate: lang\n }}</span>\n <span>{{ doc.amount | currency: doc.currencyCode:'symbol' }}</span>\n </div>\n </div>\n </div>\n <!--THIRD_PARTY-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.THIRD_PARTY\" class=\"d-flex align-items-center\">\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\">{{ doc.companyOrPersonName }} ({{ doc.address | thirdPartyAddressSearch: lang }}\n )</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.CODE' | commonTranslate: lang }}</span>\n <span>{{ doc.code }}</span>\n </div>\n </div>\n </div>\n <!--CONTRACT-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.CONTRACT\" class=\"d-flex align-items-center\">\n <div class=\"max-width-5\">\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'cess'\"\n class=\"material-icons-outlined rapid-search-type-icon\">receipt</span>\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'acq'\"\n class=\"material-icons-outlined rapid-search-type-icon\">shop_two</span>\n <span *ngIf=\"getContractType(doc.type.labelEn) === 'auth'\"\n class=\"material-icons-outlined rapid-search-type-icon\">account_circle</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.CONTRACT' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.lisaId }} </span>\n </div>\n <div class=\"d-flex flex-column max-width-10\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TYPE' | commonTranslate: lang\n }}</span>\n <span>{{ doc.type[labelLang] }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-30\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.STATUS' | commonTranslate: lang\n }}</span>\n <span>{{ doc.status[labelLang] }}</span>\n </div>\n <div *ngIf=\"doc.type.labelEn !== 'Sale'\" class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.LICENSOR' | commonTranslate: lang\n }}</span>\n <span>{{ doc.licensor ? doc.licensor : '-' }}</span>\n </div>\n <div *ngIf=\"doc.type.labelEn === 'Sale'\" class=\"d-flex flex-column max-width-40 ellipsis\">\n <span class=\"auto-complete-label\">{{\n 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.CUSTOMER' | commonTranslate: lang\n }}</span>\n <span>{{ doc.customer ? doc.customer : '-' }}</span>\n </div>\n </div>\n </div>\n <!--CONTRACT ROYALTY-->\n <div *ngIf=\"doc.docType === RapidSearchItemType.ROYALTY_CONTRACT\" class=\"d-flex align-items-center\">\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\">{{ doc.contractNumber }}</span>\n </div>\n <div class=\"d-flex flex-column max-width-80 ellipsis\">\n <span class=\"auto-complete-label\">{{ 'COMMON.HEADER.GLOBAL_SEARCH.ITEM.TITLES' | commonTranslate: lang }}</span>\n <span class=\"ellipsis\">{{ doc.works.join(', ') }}</span>\n </div>\n </div>\n </mat-option>\n </mat-autocomplete>\n\n </mat-form-field>\n </div>\n\n <div *ngIf=\"user && user.secondary\" 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 <button (click)=\"stopIdentityTheft()\" *ngIf=\"user.secondary\" color=\"warn\" mat-raised-button>\n {{ 'CORE.STOP' | commonTranslate: lang }}\n </button>\n </div>\n\n <span (click)=\"getHistory()\" [matMenuTriggerFor]=\"menuHistory\"\n class=\"material-icons header-icon max-width-5\">history</span>\n <mat-menu #menuHistory=\"matMenu\" class=\"action-menu\">\n <ng-container *ngFor=\"let history of historyList\" [ngSwitch]=\"history.type\">\n <button (click)=\"navigate('expenditure-commitment', '/purchase-orders/' + history.id)\" *ngSwitchCase=\"'PRODUCT'\"\n 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 <button (click)=\"navigate('expenditure-commitment', '/purchase-orders/' + history.id)\" *ngSwitchCase=\"'PO'\"\n 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 <button (click)=\"navigate('commercial', '/deal/consult/' + history.id)\" *ngSwitchCase=\"'DEAL'\"\n 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 <button (click)=\"navigate('commercial', '/work-record/consult/'+ history.id +'/general')\" *ngSwitchCase=\"'WORK'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/acq/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_ACQ'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/cess/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_CESS'\"\n 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 <button (click)=\"navigate('legal', '/contracts-details/auth/' + history.id)\"\n *ngSwitchCase=\"'CONTRACT_AUTH'\"\n 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 <button (click)=\"navigate('expenditure-commitment', '/budget/form/' + history.id)\" *ngSwitchCase=\"'BUDGET'\"\n 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 <button *ngSwitchCase=\"'NO_HISTORY_AVAILABLE'\" 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 </ng-container>\n </mat-menu>\n <span class=\"header-separator\"></span>\n\n <span [matMenuTriggerFor]=\"settings\" class=\"material-icons-outlined header-icon max-width-5\">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 <button class=\"img-btn\" (click)='switchLang(\"en\")' *ngIf='lang !== \"en\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/en-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.ENGLISH' | commonTranslate: lang }}</span>\n </button>\n <button class=\"img-btn\" (click)='switchLang(\"fr\")' *ngIf='lang !== \"fr\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/fr-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.FRENCH' | commonTranslate: lang }}</span>\n </button>\n <button class=\"img-btn\" (click)='switchLang(\"de\")' *ngIf='lang !== \"de\"' mat-menu-item>\n <img class=\"mat-icon\" src=\"assets/img/flag/de-flag.png\">\n <span>{{ 'COMMON.HEADER.PARAMETERS.TITLE.LANGUAGES.DEUTCH' | commonTranslate: lang }}</span>\n </button>\n <ng-container *ngxPermissionsExcept=\"restrictions\">\n <!--USER-->\n <button (click)=\"navigate('user', '/account/authorization/search')\" *ngIf=\"user && user.admin\" 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 </ng-container>\n <!--MY PREFERENCES-->\n <button (click)=\"navigate('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 </mat-menu>\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 = false;\n public currentScroll = 0;\n\n constructor(@Inject(DOCUMENT) private document: any) {\n }\n\n public ngOnInit(): void {\n }\n\n @HostListener('window:scroll', [])\n public onWindowScroll() {\n const numberVar = 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 SECRET_CODE: string ;\n private readonly SECRET_CODE: string = '1234567891234567';\n private keySize: number = 128 / 32;\n private iterationCount = 1000;\n // private iv: string ;\n // private salt: string ;\n private pwdEncrypted: string;\n\n // private cipherText: string;\n\n constructor() {\n }\n\n public generateKey(salt: string) {\n\n // this.SECRET_CODE = sessionStorage.getItem('_uniqueKey');\n const key = CryptoJS.PBKDF2(\n this.SECRET_CODE,\n CryptoJS.enc.Hex.parse(salt),\n {keySize: this.keySize, iterations: this.iterationCount});\n\n return key;\n }\n\n public encrypt(planText: string) {\n const iv = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n const salt = CryptoJS.lib.WordArray.random(16).toString(CryptoJS.enc.Hex);\n\n const key = this.generateKey(salt);\n\n const encrypted = CryptoJS.AES.encrypt(planText, key, {iv: CryptoJS.enc.Hex.parse(iv)});\n\n const cipherText = encrypted.ciphertext.toString(CryptoJS.enc.Base64);\n\n const aesPassword = (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 { MAT_DIALOG_DATA, 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, FormControl, 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 username = '';\n public password = '';\n public loading = false;\n public errorMessage = '';\n public apiUrl = '';\n public userForm: FormGroup<UserFormModel>;\n\n constructor(\n public dialogRef: MatDialogRef<MyDialogPopupLoginComponent>,\n private aesUtil: AesService,\n @Inject(WEB_CONFIG) private config: Config,\n private http: HttpClient,\n private translateService: TranslateService,\n private cookieService: CookieService,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private commonApiService: CommonApiService,\n private formBuilder: FormBuilder\n ) {\n this.apiUrl = config.api_url + '/authorization-api';\n }\n\n public ngOnInit() {\n this.buildForm();\n }\n\n public onLogin() {\n if (this.userForm.invalid) {\n this.errorMessage = this.translateService.instant(\n 'CORE.LOGIN.ACCESS_DENIED'\n );\n return;\n }\n this.loading = true;\n this.errorMessage = '';\n\n this.login(\n {username: this.username, password: this.password},\n this.translateService.currentLang\n ).subscribe(\n user => {\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 () => {\n this.loading = false;\n this.errorMessage = this.translateService.instant(\n '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.aesUtil.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: new FormControl<string>(null, Validators.required),\n password: new FormControl<string>(null, Validators.required)\n });\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 [(ngModel)]=\"username\" 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 [(ngModel)]=\"password\" 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 }}</button>\n <mat-spinner *ngIf=\"loading\" [diameter]=\"30\" class=\"not-so-close-from-button login-spinner\"></mat-spinner>\n <div *ngIf=\"(errorMessage !== null || errorMessage !== '')\" class=\"errorMessage not-so-close-from-button\">\n {{errorMessage}} </div>\n</mat-dialog-actions>\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 constructor() {\n }\n\n public menuSwitch() {\n console.log('Menu switch');\n this.toggleMenu.emit();\n }\n\n public lightSwitch() {\n this.toggleLight.emit();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from '../storage/local-storage.service';\n\n@Injectable()\nexport class HistoryService {\n\n constructor(private localStorage: LocalStorageService) {\n }\n\n public add(type: 'PRODUCT' | 'PO' | 'DEAL' | 'WORK' | 'CONTRACT_ACQ' | 'CONTRACT_CESS' | 'CONTRACT_AUTH' | 'BUDGET', id: string, ref: any) {\n let history = [];\n if (this.localStorage.exist('history')) {\n history = this.localStorage.get('history');\n }\n // DELETE EXISTING SCREEN\n history.forEach((element, index) => {\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.localStorage.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) {\n if (type == history.type && id == history.id && ref == history.ref) {\n return true;\n }\n return false;\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[matTooltip][appShowIfTruncated]'\n})\nexport class ShowIfTruncatedDirective {\n constructor(\n private matTooltip: MatTooltip,\n private elementRef: ElementRef<HTMLElement>\n ) {\n }\n\n @HostListener('mouseenter', ['$event'])\n setTooltipState(): void {\n const element = 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): string {\n if (value > 0 && value < 60) {\n return value + 'min';\n } else {\n const h = Math.floor(value / 60);\n const min = value % 60;\n return min === 0 ? h + 'h' : h + 'h ' + min + 'min';\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CurrencyPipe } from '@angular/common';\n\n@Pipe({\n name: 'formatCurrency'\n})\nexport class FormatCurrencyPipe implements PipeTransform {\n\n constructor(private currencyPipe: CurrencyPipe) {\n }\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 { 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\n\n unsubscribe: Subject<void> = new Subject<void>();\n OF_LABEL = 'of';\n\n constructor(private translate: TranslateService) {\n super();\n\n this.translate.onLangChange\n .pipe(takeUntil(this.unsubscribe))\n .subscribe(() => {\n this.getAndInitTranslations();\n });\n\n this.getAndInitTranslations();\n }\n\n ngOnDestroy() {\n this.unsubscribe.next();\n this.unsubscribe.complete();\n }\n\n getAndInitTranslations() {\n this.translate\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 ) => {\n if (length === 0 || pageSize === 0) {\n return `0 ${this.OF_LABEL} ${length}`;\n }\n length = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\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 { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class AuthService {\n\n private isAuthenticatedSubject = 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 { Config, DEFAULT_WEB_CONFIG, WEB_CONFIG } from './config';\n// Angular\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport {CommonModule, CurrencyPipe, DatePipe} 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 { MatDividerModule } from '@angular/material/divider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTableModule } from '@angular/material/table';\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 { MatSelectModule } from '@angular/material/select';\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 { NgSelectModule } from \"@ng-select/ng-select\";\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';\n\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 ],\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 ],\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 ],\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 ]\n})\nexport class UtilModule {\n constructor(private readonly langService: LangService) {\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 = new Map<number, number>();\n\n constructor() {\n }\n\n // Format Date to YYYY-MM-DD\n public static formatDate(date: Date, language) {\n const mm = date.getMonth() + 1;\n const dd = 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 = stringdate.split('-');\n const month = parts[1].toString();\n const yearNumber = Number(parts[0]);\n let monthNumber = 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 = stringdate.split(',');\n const month = parts[1].toString();\n const yearNumber = Number(parts[0]);\n let monthNumber = 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 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 = 0;\n let numberOfYears = b.getFullYear() - a.getFullYear();\n let numberOfMonths = (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 = 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() {\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, d2): 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 const period = new PeriodModel(0, 0, 0);\n return period;\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 constructor() {\n }\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 constructor() {\n }\n\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 = 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 = 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 = 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 = 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 = 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 = 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) {\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: 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 = 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) {\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 = false;\n\n public permissions: AuthPermissionModel[] = [];\n public subsidiaries: SubsidiaryModel[] = [];\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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 = 0;\n\n constructor() {\n this.bonusType = new ReferentielModel();\n this.bonusType.id = 1;\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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: 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) {\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 = '';\n public isoCode = '';\n public IsLanguageTech: boolean = null;\n public order = 0;\n public territories: TerritoryModel[];\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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) {\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 = null;\n public theatricalReleaseDate = 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 = '';\n public pressOfficerCode = '';\n public formattedEan: string;\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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) {\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) {\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 = false;\n uuid: string;\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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) {\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 = false;\n public availabilityDate: string;\n public checked = 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) {\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) {\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: 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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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: 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 fromJSON(json) {\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) {\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) {\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: 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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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) {\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 = 0;\n public label = '';\n public order = 0;\n\n constructor() {\n }\n\n fromJSON(json) {\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: 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) {\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) {\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: 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) {\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) {\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) {\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: 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 = 0;\n public lastName = '';\n public firstName = '';\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) {\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: 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) {\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) {\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) {\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) {\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: 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) {\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: 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 = 'WARNING';\n public LEVEL_ERROR = 'ERROR';\n\n public errorMessageKey = '';\n public status = 0;\n public severity = '';\n public parameters: string[] = [];\n public statusText = '';\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) {\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 fromJSON(json) {\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) {\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 = '';\n public supplierType = '';\n public dateCreation: any = null;\n public userCreation = '';\n public service = '';\n public tel = '';\n public label = '';\n public address = '';\n public zipCode = '';\n public country: TerritoryModel;\n public city = '';\n public intraCommunautaireTvaNumber = '';\n public siret = '';\n public socialSecurity = '';\n public agessaAgrement = '';\n public existMilo = false;\n public blocageReason = '';\n public miloIdentification = '';\n public miloBlockedCompta = false;\n public miloBlockedMM = false;\n public email = '';\n public thirdPartyType = '';\n public honoraire = false;\n public currency: CurrencyModel;\n public amount = '';\n public commandeVerso = false;\n public commandeRambo = false;\n public commandeBBP = false;\n public contratRambo = false;\n public clientType = '';\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 = '';\n public personCompanyType = '';\n public statusCreationRequest: boolean;\n\n constructor() {\n }\n\n public fromJSON(json) {\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 fromJSON(json) {\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) {\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) {\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 = '';\n public nameTypeExport = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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 = 0;\n public codeTva: string = null;\n public rate = 0;\n public label = '';\n public codeLabel: string;\n\n // public client = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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: 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 = '';\n\n constructor() {\n }\n\n public fromJSON(json) {\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) {\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: 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) {\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) {\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) {\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) {\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 = 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 = 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) {\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: 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) {\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) {\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) {\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: 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) {\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) {\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 constructor() {\n }\n\n public fromJSON(json) {\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 = 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 = 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) {\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) {\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 = 'Referential-WorkModel-Session-key';\n public editorialContents: EditorialContentModel[];\n public workKeywords: KeywordsModel[];\n public exportableSap = false;\n public header: boolean;\n public seriesWorkId?: number;\n\n constructor() {\n this.versions = [];\n }\n\n public fromJSON(json) {\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) {\n for (let propName in json) {\n if (json.hasOwnProperty(propName)) {\n this[propName] = json[propName];\n }\n }\n return this;\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) {\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) {\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) {\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\n constructor() {\n }\n\n public getFullName(): string {\n return this.firstName + ' ' + this.name;\n }\n\n public fromJSON(json) {\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) {\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) {\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 constructor() {\n }\n\n public emitUpdateEvent() {\n this.updateEvent.emit();\n }\n\n public emitEventIsUpdateTrue() {\n this.consultToEdit.emit(true);\n }\n\n public emitConsultEvent() {\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) {\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 {ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { 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 { of } from \"rxjs\";\n\nexport const authGuard: CanActivateFn = (\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n) => {\n const cookieService = inject(CookieService);\n const commonApiService = inject(CommonApiService);\n const webConfig = inject(WEB_CONFIG);\n const 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) => {\n user.secondary ? commonApiService.setSecondaryToken(data.token) : commonApiService.setToken(data.token);\n authService.setAuthenticated(true);\n return true;\n }),\n catchError(() => {\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 } 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 = inject(MatDialog);\n const authService = inject(AuthService);\n\n if (sessionStorage.getItem('authToken') !== null) {\n authService.setAuthenticated(true);\n return true;\n } else {\n const dialogRef = dialog.open(MyDialogPopupLoginComponent, {\n disableClose: true\n });\n\n return dialogRef.afterClosed().pipe(\n map((res: 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) {\n return value !== null\n && value !== undefined\n && !(typeof value === 'string' && value.trim().length === 0);\n }\n}\n","import { 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 = false;\n private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\n null\n );\n\n constructor(\n private authService: CommonApiService,\n private cookieService: CookieService\n ) {\n }\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.authService.isTokenValid()) {\n if (this.refreshTokenInProgress) {\n return this.refreshTokenSubject.pipe(\n filter((result) => result !== null),\n take(1),\n switchMap(() => next.handle(this.addToken(request)))\n );\n } else {\n this.refreshTokenInProgress = true;\n this.refreshTokenSubject.next(null);\n const user: AuthUserModel = this.authService.getUserDataFromToken();\n const email: string = user.secondary ? user.email : this.cookieService.get('auth-mail');\n\n return this.authService.ssoLogin(email)\n .pipe(\n switchMap((data: any) => {\n this.authService.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 = this.authService.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';\n\n\ninterface ITranslationResource {\n prefix: string;\n suffix: string;\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private resources: ITranslationResource[],\n ) {\n }\n\n public getTranslation(lang: string): Observable<any> {\n const requests = this.resources.map(resource => {\n const path = 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["TOKEN_NAME","i1.LocalStorageEventsService","i1.MyNumberPipe","i1","i1.SessionStorageEventsService","i2.UserSubsidiaryService","i2","i3.OverlayService","i4","i2.LocalStorageService","ClientJs","i1.SubsidiariesService","i1.LocalStorageService","i1.OverlayService","i2.VideoApiService","i3.CommercialApiService","i5","i6","i9.CommonTranslatePipe","i16","i18","i19","i20","i21","i24.MenuComponent","i25.CommonTranslatePipe","i26.ThirdPartyAddressSearchPipe","i2.AesService","i3","i6.CommonApiService","i7","i8","i9","i10","i11","i12","i1.LangService","ReferentielModel","i1.CommonApiService"],"mappings":"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"}
|