{"version":3,"file":"main.js","mappings":"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","sources":["./src/aws-exports.js","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/core/base.component.ts","./src/app/core/core.module.ts","./src/app/core/enums/activation-type.enum.ts","./src/app/core/enums/campaign-list.enums.ts","./src/app/core/enums/form-mode.enum.ts","./src/app/core/enums/form-names.enum.ts","./src/app/core/enums/index.ts","./src/app/core/enums/list-sort-mode.enum.ts","./src/app/core/enums/storage-key.enum.ts","./src/app/core/guards/auth.guard.ts","./src/app/core/helpers/array.helper.ts","./src/app/core/helpers/error.handler.ts","./src/app/core/helpers/randomId.generator.ts","./src/app/core/interceptors/header-interceptor.ts","./src/app/core/interceptors/server-error.interceptor.ts","./src/app/core/resources/index.ts","./src/app/core/services/notification.service.ts","./src/app/core/services/resource.service.ts","./src/app/core/services/user.service.ts","./src/app/features/auth/auth.module.ts","./src/app/features/auth/components/signin/signin.component.ts","./src/app/features/auth/components/signin/signin.component.html","./src/app/features/auth/services/auth.service.ts","./src/app/features/campaigns/campaigns.module.ts","./src/app/features/campaigns/components/campaign-delete-dialog/campaign-delete-dialog.component.ts","./src/app/features/campaigns/components/campaign-delete-dialog/campaign-delete-dialog.component.html","./src/app/features/campaigns/components/campaign-form/campaign-form.component.ts","./src/app/features/campaigns/components/campaign-form/campaign-form.component.html","./src/app/features/campaigns/components/campaign-form/crm-form/crm-form.component.ts","./src/app/features/campaigns/components/campaign-form/crm-form/crm-form.component.html","./src/app/features/campaigns/components/campaign-form/media-form/media-form.component.ts","./src/app/features/campaigns/components/campaign-form/media-form/media-form.component.html","./src/app/features/campaigns/components/campaign-form/product-form/product-form.component.ts","./src/app/features/campaigns/components/campaign-form/product-form/product-form.component.html","./src/app/features/campaigns/components/campaign-list/campaign-list.component.ts","./src/app/features/campaigns/components/campaign-list/campaign-list.component.html","./src/app/features/campaigns/components/campaign-url-dialog/campaign-url-dialog.component.ts","./src/app/features/campaigns/components/campaign-url-dialog/campaign-url-dialog.component.html","./src/app/features/campaigns/models/campaign-form.model.ts","./src/app/features/campaigns/models/campaign-url.model.ts","./src/app/features/campaigns/models/campaign.model.ts","./src/app/features/campaigns/models/index.ts","./src/app/features/campaigns/services/campaign-form.service.ts","./src/app/features/campaigns/services/campaign.service.ts","./src/app/material.module.ts","./src/app/pages/campaign-create-page/campaign-create-page-routing.module.ts","./src/app/pages/campaign-create-page/campaign-create-page.component.ts","./src/app/pages/campaign-create-page/campaign-create-page.component.html","./src/app/pages/campaign-create-page/campaign-create-page.module.ts","./src/app/pages/campaign-duplicate-page/campaign-duplicate-page-routing.module.ts","./src/app/pages/campaign-duplicate-page/campaign-duplicate-page.component.ts","./src/app/pages/campaign-duplicate-page/campaign-duplicate-page.component.html","./src/app/pages/campaign-duplicate-page/campaign-duplicate-page.module.ts","./src/app/pages/campaign-list-page/campaign-list-page-routing.module.ts","./src/app/pages/campaign-list-page/campaign-list-page.component.ts","./src/app/pages/campaign-list-page/campaign-list-page.component.html","./src/app/pages/campaign-list-page/campaign-list-page.module.ts","./src/app/pages/campaign-update-page/campaign-update-page-routing.module.ts","./src/app/pages/campaign-update-page/campaign-update-page.component.ts","./src/app/pages/campaign-update-page/campaign-update-page.component.html","./src/app/pages/campaign-update-page/campaign-update-page.module.ts","./src/app/pages/not-found-page/not-found-page.component.ts","./src/app/pages/not-found-page/not-found-page.component.html","./src/app/pages/signin-page/signin-page-routing.module.ts","./src/app/pages/signin-page/signin-page.component.ts","./src/app/pages/signin-page/signin-page.component.html","./src/app/pages/signin-page/signin-page.module.ts","./src/app/shared/golden-rules-dialog/golden-rules-dialog.component.ts","./src/app/shared/golden-rules-dialog/golden-rules-dialog.component.html","./src/app/shared/header/header.component.ts","./src/app/shared/header/header.component.html","./src/app/shared/loader/loader.component.ts","./src/app/shared/loader/loader.component.html","./src/app/shared/shared.module.ts","./src/environments/environment.ts","./src/main.ts","ignored|/codebuild/output/src1630083124/src/SEBAnalytics_UrlBuilder/app/node_modules/amazon-cognito-identity-js/es/utils|crypto"],"sourcesContent":["/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"eu-west-1\",\n \"aws_cloud_logic_custom\": [\n {\n \"name\": \"urlbuilderapi\",\n \"endpoint\": \"https://i73e6hd34e.execute-api.eu-west-1.amazonaws.com/dev\",\n \"region\": \"eu-west-1\"\n }\n ],\n \"aws_cognito_identity_pool_id\": \"eu-west-1:40d8bc81-1e3b-4619-8864-2b36686b7b38\",\n \"aws_cognito_region\": \"eu-west-1\",\n \"aws_user_pools_id\": \"eu-west-1_zJ3YXRQBp\",\n \"aws_user_pools_web_client_id\": \"4fh4t9ocvkbsbo4ghrva9ihfng\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"aws_dynamodb_all_tables_region\": \"eu-west-1\",\n \"aws_dynamodb_table_schemas\": [\n {\n \"tableName\": \"campaignsReferential-dev\",\n \"region\": \"eu-west-1\"\n },\n {\n \"tableName\": \"urlreferential-dev\",\n \"region\": \"eu-west-1\"\n }\n ]\n};\n\n\nexport default awsmobile;\n","import { NgModule } from '@angular/core'\nimport { RouterModule, Routes } from '@angular/router'\nimport { AuthGuard } from '@core/guards/auth.guard'\n\nconst routes: Routes = [\n {\n path: 'campaigns/create',\n canActivate: [AuthGuard],\n loadChildren: () =>\n import('./pages/campaign-create-page/campaign-create-page.module').then(\n (m) => m.CampaignCreatePageModule,\n ),\n data: {\n title: 'Campaign Naming Builder'\n }\n },\n {\n path: 'campaigns/update/:id',\n canActivate: [AuthGuard],\n loadChildren: () =>\n import('./pages/campaign-update-page/campaign-update-page.module').then(\n (m) => m.CampaignUpdateModule,\n ),\n data: {\n title: 'Campaign Naming Update'\n }\n },\n {\n path: 'campaigns/duplicate/:id',\n canActivate: [AuthGuard],\n loadChildren: () =>\n import('./pages/campaign-duplicate-page/campaign-duplicate-page.module').then(\n (m) => m.CampaignDuplicateModule,\n ),\n data: {\n title: 'Campaign Naming Update'\n }\n },\n {\n path: 'campaigns/detail/:id',\n canActivate: [AuthGuard],\n loadChildren: () =>\n import('./pages/campaign-details-page/campaign-details-page.module').then(\n (m) => m.CampaignDetailsPageModule,\n ),\n data: {\n title: 'Campaign Naming Details'\n }\n },\n {\n path: 'campaigns',\n canActivate: [AuthGuard],\n loadChildren: () =>\n import('./pages/campaign-list-page/campaign-list-page.module').then(\n (m) => m.CampaignListModule,\n ),\n data: {\n title: 'Campaign Referential (Url Builder)'\n }\n },\n {\n path: 'signin',\n loadChildren: () =>\n import('./pages/signin-page/signin-page.module').then(\n (m) => m.SigninPageModule,\n ),\n },\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'signin',\n },\n {\n path: '**',\n loadChildren: () =>\n import('./pages/not-found-page/not-found-page.module').then(\n (m) => m.NotFoundPageModule,\n ),\n },\n]\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import {\n ChangeDetectorRef,\n Component,\n NgZone,\n OnInit,\n isDevMode,\n} from '@angular/core'\nimport { MatIconRegistry } from '@angular/material/icon'\nimport { DomSanitizer } from '@angular/platform-browser'\nimport { Router } from '@angular/router'\nimport { AuthenticatorService } from '@aws-amplify/ui-angular'\nimport { Amplify } from 'aws-amplify'\nimport awsExports from 'src/aws-exports'\nimport { UserService } from '@core/services/user.service'\nimport { FormMode } from '@core/enums/form-mode.enum'\nimport { CognitoUser } from 'amazon-cognito-identity-js'\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n title = 'Campaign Naming Builder'\n\n constructor(\n /**\n * To add and use Angular Material custom svg icons\n */\n private readonly matIconRegistry: MatIconRegistry,\n private readonly domSanitizer: DomSanitizer,\n private readonly router: Router,\n private readonly userService: UserService,\n public authenticator: AuthenticatorService,\n ) {\n Amplify.configure(awsExports)\n console.log('is dev mode', isDevMode())\n\n /**\n * Register icons here (name, path)\n */\n this.matIconRegistry.addSvgIcon(\n 'headphone',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n '../assets/icons/headphone-symbol.svg',\n ),\n )\n this.matIconRegistry.addSvgIcon(\n 'logout',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n '../assets/icons/logout.svg',\n ),\n )\n this.matIconRegistry.addSvgIcon(\n 'eraser',\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n '../assets/icons/eraser-solid.svg',\n ),\n )\n }\n\n ngOnInit(): void {\n this.authenticator.subscribe((data: any) => {\n if (this.authenticator.authStatus === 'authenticated') {\n const typedUserData: CognitoUser = data.user; // const used specifically to specify \n this.userService.userToken = typedUserData.getSignInUserSession().getIdToken().getJwtToken();\n this.userService.loggedUser = typedUserData;\n this.router.navigate(['campaigns', FormMode.CREATE])\n this.userService.isLogged = true;\n }\n })\n }\n // onAuthUIStateChange((authState, authData: CognitoUserInterface) => {\n // if (authData) {\n // this.userService.userToken = authData.signInUserSession.idToken.jwtToken\n // this.userService.loggedUser = authData\n // }\n // if (!this.ref['destroyed']) {\n // this._ngZone.run(() => {\n // this.ref.detectChanges()\n // if (authState == AuthState.SignedIn && authData) {\n // this.router.navigate(['campaigns', FormMode.CREATE])\n // }\n // })\n // }\n // })\n\n ngOnDestroy() {\n // return onAuthUIStateChange\n }\n}","\n \n\n","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { CoreModule } from '@core/core.module';\nimport { CampaignsModule } from '@features/campaigns/campaigns.module';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { MaterialModule } from './material.module';\nimport { CampaignCreatePageModule } from './pages/campaign-create-page/campaign-create-page.module';\nimport { CampaignListModule } from './pages/campaign-list-page/campaign-list-page.module';\nimport { CampaignUpdateModule } from './pages/campaign-update-page/campaign-update-page.module';\nimport { CampaignDuplicateModule } from './pages/campaign-duplicate-page/campaign-duplicate-page.module';\nimport { SigninPageModule } from './pages/signin-page/signin-page.module';\nimport { SharedModule } from './shared/shared.module';\n\nimport { AmplifyAuthenticatorModule } from '@aws-amplify/ui-angular';\nimport { AuthModule } from '@features/auth/auth.module';\n@NgModule({\n declarations: [AppComponent],\n imports: [\n BrowserModule,\n HttpClientModule,\n BrowserAnimationsModule,\n CoreModule,\n MaterialModule,\n HttpClientModule,\n NgSelectModule,\n SharedModule,\n AppRoutingModule,\n ClipboardModule,\n CampaignsModule,\n AuthModule,\n CampaignListModule,\n CampaignCreatePageModule,\n CampaignUpdateModule,\n CampaignDuplicateModule,\n SigninPageModule,\n AmplifyAuthenticatorModule ,\n ],\n providers: [],\n bootstrap: [AppComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class AppModule {}\n","import { Component, OnDestroy } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n \n@Component({\n template: ``\n})\nexport class BaseComponent implements OnDestroy {\n destroy$ = new Subject();\n \n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { HeaderInterceptor } from './interceptors/header-interceptor';\nimport { ServerErrorInterceptor } from './interceptors/server-error.interceptor';\nimport { BaseComponent } from './base.component';\n@NgModule({\n declarations: [BaseComponent],\n imports: [\n CommonModule,\n HttpClientModule,\n ],\n exports: [BaseComponent],\n providers: [\n { provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, multi: true},\n { provide: HTTP_INTERCEPTORS, useClass: ServerErrorInterceptor, multi: true}\n ]\n})\nexport class CoreModule { }\n","export enum ActivationType {\n CRM = 'CRM',\n MEDIA = 'DIG',\n}","export enum CampaignListColumns {\n ACTIVATION_TYPE = \"activationType\",\n URL_ID = \"urlId\",\n URL_MEDIUM_NAME = \"urlMediumName\",\n USED = \"used\",\n COPY_URLS = \"copyCampaignUrls\",\n CREATED_DATE = \"createdDate\",\n OPTIONS = \"options\"\n}","export enum FormMode {\n CREATE = 'create',\n UPDATE = 'update',\n DUPLICATE = 'duplicate',\n DISPLAY = 'display'\n}","export enum FormName {\n CRM = 'crmType',\n MEDIA = 'mediaType',\n PRODUCT = 'productType'\n}","export * from './activation-type.enum';\nexport * from './campaign-list.enums';\nexport * from './form-mode.enum';\nexport * from './form-names.enum';\nexport * from './list-sort-mode.enum';\nexport * from './storage-key.enum';\n","export enum ListSortMode {\n PER_VALUE = 'perValue',\n PER_ORIGIN_ORDER = 'perOriginOrder',\n}","export enum StorageKey {\n USER_TOKEN = \"userToken\",\n IDENTITY = \"identity\"\n}","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { AuthService } from '@features/auth/services/auth.service';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n\n constructor(\n private readonly authService: AuthService,\n private router: Router,\n ) { }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n if (!this.authService.isLoggedIn()) {\n this.router.navigate(['/signin'])\n return false;\n }\n return true;\n }\n canActivateChild(\n childRoute: ActivatedRouteSnapshot,\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\n return true;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { IRessource } from '@core/models/ressource.model';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArrayHelper {\n\n removeDuplicatedObjectsFromArray(array): any[] {\n return array.reduce((unique, o) => {\n if(!unique.some(obj => obj.label === o.label && obj.value === o.value)) {\n unique.push(o);\n }\n return unique;\n },[]);\n }\n\n sortResourcesArray(array?: IRessource[]) {\n return array?.sort((a, b) => (a.name > b.name ? 1 : -1))\n }\n\n sortResourcesArrayByValue(array?: IRessource[]) {\n return array?.sort((a, b) => (a.value > b.value ? 1 : -1))\n\n }\n\n}","import {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidationErrors} from '@angular/forms';\nimport {Injectable} from '@angular/core';\nimport {debounceTime, distinctUntilChanged} from 'rxjs/operators';\n\n\nexport declare interface ServerError {\n [key: string]: [];\n}\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ErrorHandler {\n private form: UntypedFormGroup;\n private serverError: any;\n private errorObject: ServerError;\n private message: string;\n\n\n private static hasError(control: AbstractControl): boolean {\n return control.invalid && (control.dirty || control.touched);\n }\n\n\n /**\n * Takes server error obj and set errors to appropriate fields at form given.\n *\n * @param serverError Error object that is received from the server\n * @param form Form to which errors belong to.\n */\n public organizeServerErrors(serverError: ServerError, form: UntypedFormGroup) {\n if (serverError && typeof serverError === 'object') {\n this.form = form;\n this.serverError = serverError;\n this.setErrorToFormFields();\n this.findErrors(form.controls);\n }\n }\n\n /**\n * Listen's for invalid status of the form given and find's it's errors.\n *\n * @param form Form to be listened\n * @param errorObject Error object which to set errors.\n */\n public handleErrors(form: UntypedFormGroup, errorObject: any) {\n this.form = form;\n this.errorObject = errorObject;\n form.valueChanges.pipe(\n debounceTime(500),\n distinctUntilChanged(),\n ).subscribe(() => {\n if (form.invalid) {\n this.findErrors(form.controls);\n }\n });\n }\n\n /** Used to call when an invalid form has been submit\n * By setting error we emit a status changed event for the form.\n */\n public invalidFormHasSubmit() {\n // fixme: changed the listener to value changes so setErrors() wouldn't trigger it\n // fixme: look up for another method to trigger value changes\n this.form?.markAllAsTouched();\n this.form?.setErrors({});\n }\n\n /** Finds appropriate fields on form and set's the server error. */\n private setErrorToFormFields() {\n Object.keys(this.serverError).forEach(field => {\n if (!Array.isArray(this.serverError[field])) {\n this.setErrorsToNestedFields(field);\n } else {\n const errorMessages: any[] = this.serverError[field];\n this.form.get(field)?.setErrors({serverError: errorMessages[0].message});\n }\n });\n }\n\n /**\n * Takes nested field name and set's server error to appropriate nested field.\n * @param nestedFieldName Usually formControlName of a FormArray.\n */\n private setErrorsToNestedFields(nestedFieldName: string) {\n const nestedFormErrors = this.serverError[nestedFieldName];\n Object.keys(nestedFormErrors).forEach(field => {\n const formControl = this.form.get(field);\n if (formControl) {\n formControl.setErrors({serverError: nestedFormErrors[field]});\n } else {\n const nestedForm = this.form.get(nestedFieldName);\n const nestedField = nestedForm.get(field);\n if (nestedField) {\n nestedField.setErrors({serverError: nestedFormErrors[field]});\n }\n }\n });\n }\n\n /**\n * Find which control contains the error and set required { control -> error message } combination\n * into the errorObject given previously.\n *\n * @param controls Abstract Controls of the form which contains errors.\n */\n private findErrors(controls: { [key: string]: AbstractControl }) {\n Object.keys(controls).forEach((control: string) => {\n if (controls[control] instanceof UntypedFormArray) {\n Object.defineProperty(this.errorObject, control, {value: [], writable: true});\n this.findErrorsOnFormArrays(controls[control] as UntypedFormArray, control);\n\n } else if (controls[control] instanceof UntypedFormControl) {\n this.findErrorsOnFormControls(controls, control);\n }\n });\n }\n\n private findErrorsOnFormArrays(formArray: UntypedFormArray, formArrayName: string) {\n let i = 0;\n for (const formGroup of formArray.controls as UntypedFormGroup[]) {\n const controls = formGroup.controls;\n const formArrayErrors: any[] = this.errorObject[formArrayName];\n formArrayErrors.push({});\n Object.keys(controls).forEach(control => {\n if (ErrorHandler.hasError(controls[control])) {\n this.setErrorMessage(controls[control].errors);\n Object.defineProperty(formArrayErrors[i], control, {value: this.message, writable: true});\n }\n });\n i++;\n }\n }\n\n private findErrorsOnFormControls(controls: { [key: string]: AbstractControl }, control: string) {\n if (ErrorHandler.hasError(controls[control])) {\n this.setErrorMessage(controls[control].errors);\n this.setErrorToErrorObject(control);\n }\n }\n\n /**\n * Find's error type and set's a message value for this type.\n *\n * @param errors Validation Error obj.\n */\n private setErrorMessage(errors: ValidationErrors) {\n if (errors.serverError) {\n this.message = errors.serverError;\n } else if (errors.required) {\n this.message = 'Required field';\n } else if (errors.minlength) {\n this.message = `Max length is ${errors.minlength.actualLength}/${errors.minlength.requiredLength}`;\n } else if (errors.maxlength) {\n this.message = `Min length is ${errors.maxlength.actualLength}/${errors.maxlength.requiredLength}`;\n } else if (errors.email) {\n this.message = 'Email is not valid';\n } else if (errors.min) {\n this.message = `Min value is ${errors.min.min}, actual value is ${errors.min.actual}`;\n } else if (errors.max) {\n this.message = `Max value is ${errors.max.max}, actual value is ${errors.max.actual}`;\n } else if (errors.pattern) {\n this.message = 'Invalid value';\n } else if (errors.passwordMismatch) {\n this.message = 'Passwords do not match';\n } else {\n this.message = '';\n }\n }\n\n /**\n * Set's a new property to errorObject with key from the field's name and error message as a value.\n * @param field Field which contains error.\n */\n private setErrorToErrorObject(field: string) {\n Object.defineProperty(this.errorObject, field, {value: this.message, writable: true});\n }\n}","import { Injectable } from '@angular/core';\n// import cryptoRandomString from 'crypto-random-string';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RandomIdGenerator {\n constructor() {}\n\n getRandomNumber(length) {\n var randomChars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var result = '';\n for (var i = 0; i < length; i++) {\n result += randomChars.charAt(\n Math.floor(Math.random() * randomChars.length)\n );\n }\n return result;\n }\n\n generateId() {\n const charRange = (start, end) => Array.from(Array(end-start), \n (v, i) => String.fromCharCode(i + start))\n\n const digits = charRange(48, 48+10) // 0 to 9\n .concat(charRange(97, 97+26)) // a to b\n .concat(charRange(65, 65+26)) // A to B\n\n const base = digits.length\n let result = \"\";\n let decimal: number = Math.floor(Date.now() / 1000)\n while(decimal >= base) {\n result = digits[decimal % base] + result\n decimal = Math.floor(decimal / base)\n }\n return digits[decimal] + result\n}\n}\n","import {\n HttpEvent, HttpHandler, HttpInterceptor, HttpRequest\n} from '@angular/common/http'\nimport { Injectable } from '@angular/core'\nimport { UserService } from '@core/services/user.service'\nimport { Observable } from 'rxjs'\n\n@Injectable()\nexport class HeaderInterceptor implements HttpInterceptor {\n constructor(private readonly userService: UserService) {\n\n }\n intercept(\n HttpRequest: HttpRequest,\n next: HttpHandler,\n ): Observable> {\n let authReq\n const userToken = this.userService.userToken\n authReq = HttpRequest.clone({\n headers: HttpRequest.headers.set('Authorization', userToken),\n })\n return next.handle(authReq)\n }\n}\n","import { Injectable } from '@angular/core'\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpErrorResponse,\n} from '@angular/common/http'\nimport { Observable, throwError } from 'rxjs'\nimport { retry, catchError } from 'rxjs/operators'\nimport { UserService } from '@core/services/user.service'\nimport { Router } from '@angular/router'\n\n@Injectable()\nexport class ServerErrorInterceptor implements HttpInterceptor {\n constructor(private readonly userService: UserService, private readonly router: Router) { }\n intercept(\n request: HttpRequest,\n next: HttpHandler,\n ): Observable> {\n return next.handle(request).pipe(\n retry(1),\n catchError((error: HttpErrorResponse) => {\n if (error.status === 401) {\n this.router.navigate(['signin']);\n return throwError(error);\n } else {\n return throwError(error)\n }\n }),\n )\n }\n}\n","\n// Markets\nimport markets from '@core/resources/markets.json';\nimport languages from '@core/resources/languages.json';\nimport brands from '@core/resources/brands.json';\nimport eventTypes from '@core/resources/event_types.json';\nimport shared_eventTypes from '@core/resources/shared_event_types.json';\n\n// Product lines\nimport productLines from '@core/resources/product_lines.json';\nimport productFamily from '@core/resources/families.json';\nimport productSubFamily from '@core/resources/sub_families.json';\n\n// Channels\nimport channels from '@core/resources/channels.json';\nimport formats from '@core/resources/formats.json';\nimport funnels from '@core/resources/funnel_phases.json';\nimport engines from '@core/resources/engines.json';\nimport buyingMethods from '@core/resources/buying_methods.json';\nimport campaignTypes from '@core/resources/campaign_types.json';\n\n// Media types\nimport activationTypes from '@core/resources/media_types.json';\n\n// Duration Types\nimport durationTypes from '@core/resources/durations.json';\n\n// Consumer journeys\nimport objectives from '@core/resources/objectives.json';\nimport cyclesJourneys from '@core/resources/cycles_journeys.json';\n\n// Medias\nimport medias from '@core/resources/medias.json';\nimport campaignLinkRedirections from '@core/resources/campaign_link_redirections.json'\nimport fundingSources from '@core/resources/funding_sources.json'\n\n// Consumer types\nimport consumerTypes from '@core/resources/consumer_types.json';\n\n// Iterations\nimport iterations from '@core/resources/iterations.json';\n\n// CRM\nimport communications from '@core/resources/communications.json';\nimport stages from '@core/resources/stages.json';\nimport crmCampainTypes from '@core/resources/crm_campaign_types.json'; \nimport crmFunnels from '@core/resources/funnel_phases.json';\n\nexport const Resources = {\n activationTypes,\n brands,\n buyingMethods,\n campaignLinkRedirections,\n campaignTypes,\n channels,\n communications,\n consumerTypes,\n crmCampainTypes,\n crmFunnels,\n cyclesJourneys,\n durationTypes,\n engines,\n eventTypes,\n formats,\n fundingSources,\n funnels,\n iterations,\n languages,\n markets,\n medias,\n objectives,\n productFamily,\n productLines,\n productSubFamily,\n shared_eventTypes,\n stages,\n};","import { Injectable } from '@angular/core';\nimport {\n MatSnackBar,\n MatSnackBarConfig,\n MatSnackBarRef,\n SimpleSnackBar,\n} from '@angular/material/snack-bar';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NotificationService {\n private defaultConfiguration: MatSnackBarConfig = {\n horizontalPosition: 'center',\n verticalPosition: 'bottom',\n panelClass: 'snack-notification',\n duration: 2000,\n }\n\n constructor(public snackBar: MatSnackBar) {}\n\n action(message: string, action: string, duration?: number): Observable {\n return this.openSnackbar(message, action, duration ? { duration } : undefined).onAction();\n }\n\n notify(message:string): void {\n this.openSnackbar(message, undefined, { panelClass: 'snack-info'});\n }\n\n error(message: string): void {\n this.openSnackbar(message, undefined, { panelClass: 'snack-error', duration: 3000})\n }\n\n success(message: string): void {\n this.openSnackbar(message, undefined, { panelClass: 'snack-success' });\n }\n\n requiredFields(message: string): void {\n this.openSnackbar(message, undefined, { panelClass: 'snack-required' });\n }\n\n private openSnackbar(message: string, action?: string, configuration: MatSnackBarConfig = {}): MatSnackBarRef {\n const currentConfiguration = Object.assign({}, this.defaultConfiguration, configuration);\n return this.snackBar.open(message, action, currentConfiguration);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Resources } from '@core/resources';\n\nimport { FormName } from '@core/enums/form-names.enum';\nimport { ILeadData, ILeadRessource, IResourcesList, IRessource, ISourceData } from '@core/models';\n\nimport { UserService } from './user.service';\n\n@Injectable({\n providedIn: 'root',\n})\n\nexport class ResourceService {\n constructor(\n private readonly userService: UserService\n ) {}\n\n /**\n * \n * @returns data from json resources\n */\n getResources(): IResourcesList {\n const resources = {\n brands: Resources.brands,\n buyingMethods: Resources.buyingMethods,\n campaignLinkRedirections: Resources.campaignLinkRedirections,\n campaignTypes: Resources.campaignTypes,\n channels: Resources.channels,\n cyclesJourneys: Resources.cyclesJourneys,\n engines: Resources.engines,\n events: Resources.eventTypes,\n families: Resources.productFamily,\n formats: Resources.formats,\n fundingSources: Resources.fundingSources,\n funnels: Resources.funnels,\n languages: Resources.languages,\n sharedEvents: Resources.shared_eventTypes,\n subFamilies: Resources.productSubFamily,\n };\n\n return resources;\n }\n\n getResourcesByForm(form: FormName.CRM | FormName.MEDIA | FormName.PRODUCT) {\n switch (form) {\n case FormName.CRM : \n return this.getCRMData();\n\n case FormName.MEDIA : \n return this.getMediaData();\n\n case FormName.PRODUCT :\n return this.getProductData();\n }\n }\n\n /**\n * @returns builded lead data (i.e with no parent data)\n */\n resolveLeadData(): ILeadData {\n return {\n markets: this.filterMarketsByLoggedUser(this.buildLeadData(this.getLeadResources().markets)),\n productLines: this.buildLeadData(this.getLeadResources().productLines),\n durations: this.buildLeadData(this.getLeadResources().durations),\n objectives: this.buildLeadData(this.getLeadResources().objectives),\n activationTypes: this.buildLeadData(this.getLeadResources().activationTypes),\n consumerTypes: this.buildLeadData(this.getLeadResources().consumerTypes),\n medias: this.buildLeadData(this.getLeadResources().medias),\n iterations: this.buildLeadData(this.getLeadResources().iterations),\n };\n }\n\n /**\n * Filter markets data by logged user\n * @param marketsData \n * @returns filtered array of type ILeadResource\n */\n private filterMarketsByLoggedUser(marketsData: ILeadRessource[]): ILeadRessource[]{\n const userMarkets = this.userService.getUserMarket().split(' ');\n let filteredMarkets: ILeadRessource[][] = [];\n userMarkets.map((market) => {\n filteredMarkets.push(this.filterByMarket(marketsData, market))\n });\n return filteredMarkets.flat()\n }\n\n /**\n * \n * @param arr ILeadRessource array\n * @param value logged user custom attribute markets\n * @returns \n */\n private filterByMarket(arr: ILeadRessource[], value: string): ILeadRessource[] {\n if (value === \"*\") {\n return arr;\n } else {\n return arr.filter(el => el.value === value)\n }\n }\n\n /**\n * \n * @returns imported lead data from json resources\n */\n private getLeadResources(): any {\n return {\n markets: Resources.markets,\n productLines: Resources.productLines,\n durations: Resources.durationTypes,\n objectives: Resources.objectives,\n activationTypes: Resources.activationTypes,\n consumerTypes: Resources.consumerTypes,\n medias: Resources.medias,\n iterations: Resources.iterations,\n stages: Resources.stages,\n cyclesJourneys: Resources.cyclesJourneys,\n }\n }\n\n /**\n * Build lead data with dependencies\n * @param leadData json ressource\n * @returns ILeadRessource array [{value: 'value', props: {name: 'name, ...}}, ...]\n */\n private buildLeadData(leadData: any): ILeadRessource[] {\n let result = [];\n for (const [key, value] of Object.entries(leadData)) {\n result.push({ props: value, value: key });\n }\n return result;\n }\n\n private buildStandAloneResource(sourceData: ISourceData): IRessource[] {\n let result = [];\n for (const [key, value] of Object.entries(sourceData)) {\n result.push({name: value.name, value: key })\n }\n return result;\n }\n\n private getCRMData() {\n return {\n campaignLinkRedirections: this.buildStandAloneResource(Resources.campaignLinkRedirections),\n campaignTypes: Resources.crmCampainTypes,\n channels: this.buildStandAloneResource(Resources.channels.CRM),\n communications: Resources.communications,\n consumerTypes: this.buildStandAloneResource(Resources.consumerTypes),\n cyclesJourneys: Resources.cyclesJourneys,\n fundingSources: Resources.fundingSources,\n funnels: this.buildStandAloneResource(Resources.funnels.CRM),\n objectives: this.buildStandAloneResource(Resources.objectives),\n stages: this.buildLeadData(this.getLeadResources().stages),\n }\n }\n\n private getMediaData() {\n return {\n buyingMethods: Resources.buyingMethods,\n campaignLinkRedirections: this.buildStandAloneResource(Resources.campaignLinkRedirections),\n campaignTypes: Resources.campaignTypes,\n channels: this.buildStandAloneResource(Resources.channels.DIG),\n engines: Resources.engines,\n formats: Resources.formats,\n fundingSources: Resources.fundingSources,\n funnels: this.buildStandAloneResource(Resources.funnels.DIG),\n }\n }\n\n private getProductData() {\n return {\n productLines: this.buildStandAloneResource(Resources.productLines),\n families: Resources.productFamily,\n subFamilies: Resources.productSubFamily\n }\n }\n\n}\n","import { Injectable } from '@angular/core'\nimport { AmplifyUser } from '@aws-amplify/ui'\nimport { CognitoUser } from 'amazon-cognito-identity-js'\n\nimport { Auth } from 'aws-amplify'\nimport { StorageKey } from 'src/app/core/enums'\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService {\n isLogged = false\n constructor() {}\n\n // Get token\n async getUserToken(): Promise {\n const user: CognitoUser = await Auth.currentAuthenticatedUser()\n const token = user.getSignInUserSession().getIdToken().getJwtToken();\n\n return token;\n }\n\n getLoggedUser() {\n return this.loggedUser\n }\n\n logout() {\n localStorage.removeItem(StorageKey.IDENTITY)\n localStorage.removeItem(StorageKey.USER_TOKEN)\n }\n\n set loggedUser(value: AmplifyUser | undefined) {\n localStorage.removeItem(StorageKey.IDENTITY)\n localStorage.setItem(StorageKey.IDENTITY, JSON.stringify(value))\n }\n\n get loggedUser(): AmplifyUser | undefined {\n return JSON.parse(localStorage.getItem(StorageKey.IDENTITY))\n }\n\n get userToken(): string | undefined {\n return localStorage.getItem(StorageKey.USER_TOKEN) || undefined\n }\n\n set userToken(value: string | undefined) {\n localStorage.removeItem(StorageKey.USER_TOKEN)\n localStorage.setItem(StorageKey.USER_TOKEN, value)\n }\n\n /**\n * Get markets\n * @returns string \"FR AR ...\"\n */\n getUserMarket(): string {\n return this.loggedUser?.attributes['custom:markets']\n }\n\n /**\n * Get user email\n * @returns string\n */\n getUserEmail(): string {\n return this.loggedUser?.attributes.email\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AmplifyAuthenticatorModule } from '@aws-amplify/ui-angular';\nimport { SigninComponent } from './components/signin/signin.component';\n\n\n\n@NgModule({\n declarations: [\n SigninComponent\n ],\n imports: [\n CommonModule,\n AmplifyAuthenticatorModule,\n\n ],\n exports: [\n SigninComponent\n ]\n})\nexport class AuthModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { I18n } from 'aws-amplify';\nimport { AuthenticatorService, translations } from '@aws-amplify/ui-angular';\n\nI18n.putVocabularies(translations);\nI18n.setLanguage('en');\nI18n.putVocabularies({\n en: {\n Username: 'Username * (First letter of first name followed by full family name)',\n }\n});\n\n@Component({\n selector: 'app-signin',\n templateUrl: './signin.component.html',\n styleUrls: ['./signin.component.scss']\n})\nexport class SigninComponent implements OnInit {\n isLoading = true;\n\n constructor(\n public authenticator: AuthenticatorService\n\n ) {}\n\n ngOnInit(): void {\n setTimeout(() => {\n this.isLoading= false\n }, 500);\n }\n\n}\n","
\n \n \n

\n Sign in to your account\n

\n
\n
\n
","import { Injectable } from '@angular/core';\nimport { Auth } from '@aws-amplify/auth';\nimport { CognitoUserSession } from 'amazon-cognito-identity-js';\nimport { StorageKey } from 'src/app/core/enums';\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n public isLoggedIn(): boolean {\n const token = localStorage.getItem(StorageKey.USER_TOKEN);\n const payload = token ? atob(token.split('.')[1]) : undefined;\n const parsePayload = payload ? JSON.parse(payload) : null;\n\n return !!token && parsePayload.exp > Date.now() / 1000\n }\n\n public async getCurrentSession(): Promise {\n return await Auth.currentSession()\n }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CampaignListComponent } from '@features/campaigns/components/campaign-list/campaign-list.component';\nimport { MaterialModule } from 'src/app/material.module';\nimport { CampaignUrlDialogComponent } from './components/campaign-url-dialog/campaign-url-dialog.component';\nimport { CampaignService } from './services/campaign.service';\nimport { CampaignFormComponent } from './components/campaign-form/campaign-form.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CampaignFormService } from './services/campaign-form.service';\nimport { SharedModule } from '@shared/shared.module';\nimport { CampaignDeleteDialogComponent } from './components/campaign-delete-dialog/campaign-delete-dialog.component';\nimport { CrmFormComponent } from './components/campaign-form/crm-form/crm-form.component';\nimport { MediaFormComponent } from './components/campaign-form/media-form/media-form.component';\nimport { ProductFormComponent } from './components/campaign-form/product-form/product-form.component';\n\n@NgModule({\n declarations: [\n CampaignListComponent,\n CampaignUrlDialogComponent,\n CampaignFormComponent,\n CampaignDeleteDialogComponent,\n CrmFormComponent,\n MediaFormComponent,\n ProductFormComponent,\n ],\n imports: [\n CommonModule, \n SharedModule,\n MaterialModule, \n FormsModule, \n ReactiveFormsModule,\n ],\n providers: [\n CampaignService, \n CampaignFormService\n ],\n exports: [\n FormsModule, \n ReactiveFormsModule,\n CampaignUrlDialogComponent, \n CampaignFormComponent,\n CampaignListComponent,\n CampaignDeleteDialogComponent\n\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class CampaignsModule {}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { takeUntil, tap } from 'rxjs/operators';\nimport { BaseComponent } from 'src/app/core/base.component';\nimport { CampaignService } from '../../services/campaign.service';\n@Component({\n selector: 'app-campaign-delete-dialog',\n templateUrl: './campaign-delete-dialog.component.html',\n styleUrls: ['./campaign-delete-dialog.component.scss']\n})\nexport class CampaignDeleteDialogComponent extends BaseComponent implements OnInit {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data,\n public dialogRef: MatDialogRef, \n private readonly campaignService: CampaignService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n }\n\n public onDelete(): void {\n this.campaignService.deleteCampaign(this.data.campaignId).pipe(\n takeUntil(this.destroy$),\n tap(() => {\n this.closeDialog('delete_success')\n })\n ).subscribe(() => {\n });\n }\n\n private closeDialog(msg:string): void {\n this.dialogRef.close(msg);\n }\n\n}\n","

Delete campaign url

\n\n

Do you really want to delete permanently this campaign ?

\n
    \n
  • Campaign ID : {{ data.campaignId }}
  • \n
  • Campaign name : {{ data.campaignName }}
  • \n
\n
\n\n \n \n Delete\n \n\n","import { Component, Input, OnInit } from '@angular/core'\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms'\nimport { MatDatepicker } from '@angular/material/datepicker'\nimport { MatDialog } from '@angular/material/dialog'\nimport { ActivatedRoute, Router } from '@angular/router'\nimport { AmplifyUser } from '@aws-amplify/ui'\nimport { ErrorHandler } from '@core/helpers/error.handler'\nimport { ILeadData, ILeadRessource, IRessource } from '@core/models'\nimport shared_eventTypesData from '@core/resources/shared_event_types.json'\nimport { NotificationService } from '@core/services/notification.service'\nimport { ResourceService } from '@core/services/resource.service'\nimport { UserService } from '@core/services/user.service'\nimport { CampaignUrlDialogComponent } from '@features/campaigns/components/campaign-url-dialog/campaign-url-dialog.component'\nimport { CampaignFormControl, ICampaignForm } from '@features/campaigns/models/campaign-form.model'\nimport { ICampaignUrl } from '@features/campaigns/models/campaign-url.model'\nimport { ICampaign } from '@features/campaigns/models/campaign.model'\nimport { CampaignFormService } from '@features/campaigns/services/campaign-form.service'\nimport { CampaignService } from '@features/campaigns/services/campaign.service'\nimport { Observable } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { BaseComponent } from 'src/app/core/base.component'\nimport { FormMode, ListSortMode } from 'src/app/core/enums'\nimport dayjs, { ConfigType } from 'dayjs'\n\n\n@Component({\n selector: 'app-campaign-form',\n templateUrl: './campaign-form.component.html',\n styleUrls: ['./campaign-form.component.scss'],\n})\nexport class CampaignFormComponent extends BaseComponent implements OnInit {\n @Input() mode: string\n\n sourceCampaign: ICampaign\n\n isLoading = false\n date = new UntypedFormControl()\n\n campaignForm: UntypedFormGroup\n createdCampaign: ICampaign\n formMode = FormMode\n\n showErrorsSummary = false\n leadData: ILeadData\n\n activationType = null\n activationTypeError = false\n errors: any = {}\n\n markets: ILeadRessource[]\n languages: IRessource[]\n brands: IRessource[]\n events: IRessource[]\n filteredEvents: IRessource[]\n channels: IRessource[]\n\n // Date picker\n currentYear = dayjs().year()\n currentMonth = dayjs().month()\n\n generatedUrl: ICampaignUrl\n resources: any\n\n loggedUser: AmplifyUser\n userMarkets: string\n\n constructor(\n public dialog: MatDialog,\n private readonly fb: UntypedFormBuilder,\n private readonly errorHandler: ErrorHandler,\n private readonly userService: UserService,\n private readonly campaignService: CampaignService,\n private readonly resourceService: ResourceService,\n private readonly campaignFormService: CampaignFormService,\n private readonly notificationService: NotificationService,\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n ) {\n super();\n\n }\n\n ngOnInit(): void {\n this.loggedUser = this.userService.loggedUser\n this.userMarkets = this.userService.getUserMarket()\n this.initForm()\n this.initData()\n this.configFormByMode(this.mode)\n this.handleFormChanges()\n this.initFormErrors()\n }\n\n public onSearch(event: any): void {\n this.filteredEvents = this.events\n if (event.target.value.length) {\n this.filteredEvents = this.search(event.target.value)\n }\n }\n // Filter the states list and send back to populate the selectedStates\n search(value: string) {\n let filter = value.toLowerCase()\n return this.events.filter((option) =>\n option.name.toLowerCase().includes(filter),\n )\n }\n\n configFormByMode(mode: string) {\n // Update || display -> get campaign by Id and populate fields values\n if (mode !== FormMode.CREATE) {\n this.isLoading = true\n let campaignUrlId = this.activatedRoute.snapshot.params.id\n this.campaignService\n .getCampaign(campaignUrlId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n (campaign: ICampaign) => {\n if (!!campaign) {\n if (\n this.userMarkets\n .split(' ')\n .some(\n (market) => market === campaign.market || market === '*',\n )\n ) {\n this.sourceCampaign = campaign\n this.campaignFormService.populateCampaignForm(\n this.campaignForm,\n campaign,\n )\n this.isLoading = false\n\n if (mode === FormMode.DISPLAY) {\n this.campaignForm.disable({ emitEvent: false })\n }\n } else {\n // Unauthorized Access\n this.notificationService.error('UNAUTHORIZED ACCESS')\n this.router.navigate(['campaigns', 'create'])\n }\n } else {\n // No campaign founded\n this.notificationService.error('No campaign founded!')\n this.router.navigate(['campaigns', 'create'])\n }\n },\n (err) => {\n this.notificationService.error('OUPS... Error ocurred!')\n },\n )\n }\n }\n\n /**\n * Init lead data -> parent data with dependencies\n */\n private initData(): void {\n this.leadData = this.resourceService.resolveLeadData()\n this.resources = this.resourceService.getResources()\n }\n\n private initForm() {\n this.campaignForm = this.fb.group({\n market: ['', [Validators.required]],\n language: [{ value: '', disabled: true }],\n brand: [{ value: '', disabled: true }, [Validators.required]],\n activationType: ['', [Validators.required]],\n eventType: [{ value: '', disabled: true }, [Validators.required]],\n durationType: ['', [Validators.required]],\n startMonth: [{ value: undefined, disabled: true }, [Validators.required]],\n optional: [''],\n media: [''],\n })\n }\n\n private initFormErrors(): void {\n this.errors = {\n required: 'Required field',\n }\n this.errorHandler.handleErrors(this.campaignForm, this.errors)\n }\n\n private handleFormChanges(): void {\n // market changes\n this.campaignForm\n .get(CampaignFormControl.MARKET)\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleMarketChanges(value)\n })\n\n // optional free text\n this.campaignForm\n .get(CampaignFormControl.OPTIONAL)\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleOptionalTxtChanges(value)\n })\n\n // activation types\n this.campaignForm\n .get(CampaignFormControl.ACTIVATION_TYPE)\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n if (!!value) {\n this.handleActivationTypeChanges(value)\n }\n })\n // duration changes\n this.campaignForm\n .get(CampaignFormControl.DURATION_TYPE)\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleDurationTypeChanges(value)\n })\n }\n\n /**\n * Function used when chosing a year on datePicker\n * Setting up a date based on today but switching its year with the one picked by the user\n * @param normalizedYear Date set on 1st January of picked date\n */\n chosenYearHandler(normalizedYear: Date): void {\n const pickedUpYear = dayjs(normalizedYear).get('year');\n const now = dayjs().year(pickedUpYear);\n this.date.setValue(now)\n return;\n }\n\n // start month set month value\n chosenMonthHandler(\n normalizedMonth: Date,\n datepicker: MatDatepicker,\n ) {\n const pickedUpMonth = dayjs(normalizedMonth).get('month');\n const datePicked = dayjs(this.date.value).month(pickedUpMonth);\n this.campaignForm.get('startMonth').setValue(datePicked.toDate())\n this.date.setValue(datePicked)\n datepicker.close()\n }\n\n public onSubmit(): void {\n if (\n (this.mode == FormMode.CREATE &&\n this.campaignForm.dirty &&\n this.campaignForm.valid) ||\n (this.mode == FormMode.UPDATE && this.campaignForm.valid) ||\n (this.mode == FormMode.DUPLICATE && this.campaignForm.valid)\n ) {\n this.isLoading = true\n this.showErrorsSummary = false\n this.createdCampaign = this.parseForm(this.mode)\n\n this.createOrUpdateCampaign(this.createdCampaign, this.mode)\n .pipe(takeUntil(this.destroy$))\n .subscribe((campaign) => {\n this.isLoading = false\n this.openDialog(campaign.Item)\n })\n } else {\n this.checkActivationTypeError()\n this.notificationService.requiredFields(\n 'Please fill all required fields!',\n )\n }\n }\n\n private checkActivationTypeError(): void {\n if (\n this.campaignForm.get(CampaignFormControl.ACTIVATION_TYPE).errors &&\n this.campaignForm.get(CampaignFormControl.ACTIVATION_TYPE).hasError('required')\n ) {\n this.activationTypeError = true\n }\n }\n\n private parseForm(mode: FormMode): ICampaign {\n const formValue: ICampaignForm = this.campaignForm.value\n // Resolve values according to mode\n let createdCampaign =\n this.campaignFormService.resolveUrlCampaignValuesByMode(\n formValue,\n mode,\n this.sourceCampaign,\n )\n // generate url\n this.generatedUrl =\n this.campaignService.generateCampaignUrl(createdCampaign)\n createdCampaign = {\n ...createdCampaign,\n url_xSmall: this.generatedUrl.xSmallUrl,\n url_short: this.generatedUrl.shortUrl,\n url_full: this.generatedUrl.fullUrl,\n owner: this.userService.loggedUser.attributes.email,\n }\n return createdCampaign\n }\n\n private createOrUpdateCampaign(\n campaign: ICampaign,\n mode: FormMode,\n ): Observable {\n if (mode !== FormMode.UPDATE) {\n return this.campaignService.createCampaign(campaign)\n } else {\n return this.campaignService.updateCampaign(campaign)\n }\n }\n\n public openDialog(campaign: ICampaign): void {\n let dialogRef = this.dialog.open(CampaignUrlDialogComponent, {\n data: {\n campaignUrlId: campaign.id,\n xSmallUrl: this.generatedUrl.xSmallUrl,\n shortUrl: this.generatedUrl.shortUrl,\n fullUrl: this.generatedUrl.fullUrl,\n utm_source: campaign.engine,\n utm_medium:\n this.resources.channels[campaign.activation_type][campaign.channel]\n .utm_medium,\n },\n panelClass: 'generated-url-dialog-container',\n minWidth: 700,\n disableClose: true,\n autoFocus: false,\n })\n dialogRef\n .afterClosed()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.resolveRouteAfterClose(data.action, data.campaignUrlId)\n })\n }\n\n /***********************************************\n * PRIVATE METHODS\n ***********************************************/\n\n private resolveRouteAfterClose(action: string, campaignId?: string) {\n switch (action) {\n case FormMode.CREATE:\n this.router.navigate(['campaigns', FormMode.CREATE])\n break\n case FormMode.UPDATE:\n this.router.navigate(['campaigns', FormMode.UPDATE, campaignId])\n break\n\n case FormMode.DUPLICATE:\n this.router.navigate(['campaigns', FormMode.DUPLICATE, campaignId])\n break\n\n default:\n this.router.navigate(['/'])\n }\n }\n\n /**\n * Add shared events to market events and sort\n * @param {IRessource[]} events market events type \n * @returns {IRessource[]} events\n */\n private buildEvents(events: IRessource[]): IRessource[] {\n let sharedEventTypes: IRessource[] = []\n for (const [key, val] of Object.entries(shared_eventTypesData)) {\n sharedEventTypes.push({ name: val.name, value: key })\n }\n events.push(...sharedEventTypes)\n return events.sort((a, b) => (a.value > b.value ? 1 : -1))\n }\n\n private handleOptionalTxtChanges(value: string) {\n if (!!value) {\n // Prevent from spaces\n const forbiddenCharacters = /\\s+/g\n if (forbiddenCharacters.test(value)) {\n this.campaignForm\n .get(CampaignFormControl.OPTIONAL)\n .setValue(value.replace(forbiddenCharacters, ''))\n }\n }\n }\n\n private handleMarketChanges(value: string) {\n // Reset potential dependents fields value\n this.campaignForm.get(CampaignFormControl.BRAND).reset()\n this.campaignForm.get(CampaignFormControl.EVENT_TYPE).reset()\n // Resolve dependencies language, brand, event\n this.languages = this.campaignFormService.resolveDependencies(\n value,\n this.resources.languages,\n )\n this.brands = this.campaignFormService.resolveDependencies(\n value,\n this.resources.brands,\n ListSortMode.PER_ORIGIN_ORDER\n )\n // build events\n this.events = this.buildEvents(\n this.campaignFormService.resolveDependencies(\n value,\n this.resources.events,\n ),\n )\n this.filteredEvents = this.events\n // Resolve fields state\n this.campaignFormService.resolveFieldState(\n CampaignFormControl.LANGUAGE,\n this.campaignForm,\n this.languages,\n )\n this.campaignFormService.resolveFieldState(\n CampaignFormControl.BRAND,\n this.campaignForm,\n this.brands,\n )\n this.campaignFormService.resolveFieldState(\n CampaignFormControl.EVENT_TYPE,\n this.campaignForm,\n this.events,\n )\n }\n\n private handleActivationTypeChanges(value: string) {\n this.activationType = value\n this.activationTypeError = false\n }\n\n private handleDurationTypeChanges(value: string) {\n if (this.campaignForm.get(CampaignFormControl.DURATION_TYPE).value == 'BU') {\n this.campaignForm.get('startMonth').enable()\n } else {\n this.campaignForm.get('startMonth').disable()\n this.campaignForm.get('startMonth').reset()\n this.campaignForm.updateValueAndValidity()\n }\n }\n}\n","
\n
\n
\n
\n \n
\n

Country & brand

\n \n \n Market\n \n \n {{ market.props.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Language (optional)\n \n \n {{ language.name }}\n \n \n \n\n \n \n Brand\n \n \n {{ brand.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n
\n\n \n
\n

Events Details

\n\n \n \n Event\n \n
\n search\n \n
\n\n \n {{ event.name }}\n \n
\n \n error\n {{ errors.required }}\n \n
\n\n \n \n Duration type\n \n \n {{ duration.props.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Start month (day is indicative and not used in reporting)\n \n \n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Free text (optional)\n \n \n
\n\n \n \n
\n\n \n
\n
\n

Activation type

\n \n {{ type.props.name }}\n \n \n \n error\n {{ errors.required }}\n \n
\n
\n\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n\n
\n \n \n \n
\n
\n
\n
\n\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core'\nimport {\n ControlContainer,\n UntypedFormBuilder,\n UntypedFormGroup,\n FormGroupDirective,\n Validators,\n} from '@angular/forms'\nimport { ActivationType, FormName } from '@core/enums'\nimport { ILeadRessource } from '@core/models/lead-ressource.model'\nimport { IRessource } from '@core/models/ressource.model'\nimport { ResourceService } from '@core/services/resource.service'\nimport { ICampaign } from '@features/campaigns/models/campaign.model'\nimport { CampaignFormService } from '@features/campaigns/services/campaign-form.service'\nimport { FormMode, ListSortMode } from 'src/app/core/enums'\nimport { takeUntil } from 'rxjs/operators'\nimport { BaseComponent } from 'src/app/core/base.component'\nimport { CrmFormControl } from 'src/app/features/campaigns/models'\n\n@Component({\n selector: 'app-crm-form',\n templateUrl: './crm-form.component.html',\n styleUrls: ['./crm-form.component.scss'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class CrmFormComponent\n extends BaseComponent\n implements OnInit, OnDestroy\n{\n @Input() errors: any\n\n @Input() mode: string\n\n @Input() sourceCampaign?: ICampaign\n\n public crmFormName = FormName.CRM\n\n private campaignForm!: UntypedFormGroup\n\n private crmForm!: UntypedFormGroup\n\n public CRMData!: any\n\n public consumerTypes: IRessource[]\n public stages: ILeadRessource[]\n public communications: IRessource[]\n public cyclesJourneys: IRessource[]\n public objectives: IRessource[]\n public funnels: IRessource[]\n public campaignTypes: IRessource[]\n public campaignLinkRedirections: IRessource[]\n public fundingSources: IRessource[]\n public channels: IRessource[]\n\n constructor(\n private readonly parent: FormGroupDirective,\n private readonly fb: UntypedFormBuilder,\n private readonly resourceService: ResourceService,\n private readonly campaignFormService: CampaignFormService,\n ) {\n super()\n super.ngOnDestroy()\n }\n\n ngOnInit(): void {\n this.initForm()\n this.initData()\n this.handleFormChanges()\n this.populateCrmForm()\n this.resolveCrmFormState()\n }\n\n ngOnDestroy(): void {\n this.removeCrmForm()\n }\n\n // PRIVATE METHODS\n\n private initForm(): void {\n this.campaignForm = this.parent.form\n this.campaignForm.addControl(\n FormName.CRM,\n this.fb.group({\n consumerType: ['', [Validators.required]],\n objective: ['', [Validators.required]],\n funnel: ['', [Validators.required]],\n campaignLinkRedirection: ['', [Validators.required]],\n fundingSource: [{ value: '', disabled: true }, [Validators.required]],\n stage: ['', [Validators.required]],\n cycleOrJourney: [{ value: '', disabled: true }, [Validators.required]],\n communication: [{ value: '', disabled: true }, [Validators.required]],\n channel: [{ value: '', disabled: true }, [Validators.required]],\n campaignType: [{ value: '', disabled: true }, [Validators.required]],\n }),\n )\n this.crmForm = this.campaignForm.controls[FormName.CRM] as UntypedFormGroup\n }\n\n private initData(): void {\n this.CRMData = this.resourceService.getResourcesByForm(FormName.CRM)\n this.consumerTypes = this.CRMData.consumerTypes\n this.stages = this.CRMData.stages\n this.objectives = this.CRMData.objectives\n this.funnels = this.CRMData.funnels\n this.channels = this.CRMData.channels\n this.campaignLinkRedirections = this.CRMData.campaignLinkRedirections\n }\n\n private handleFormChanges(): void {\n this.crmForm.controls.stage.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleStageChanges(value)\n })\n\n this.crmForm.controls.cycleOrJourney.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleCycleJourneyChanges(value)\n })\n\n this.crmForm.controls.communication.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleCommunicationsChanges(value)\n })\n\n // campaign link redirection\n this.crmForm.controls.campaignLinkRedirection.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleCampaignLinkRedirectionChanges(value)\n })\n\n this.campaignForm.controls.eventType.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleEventTypeChange(value)\n })\n }\n\n private handleEventTypeChange(value: string): void {\n console.log(\"event type change\", value)\n this.handleStageChanges(this.crmForm.controls.stage.value)\n }\n\n private handleStageChanges(value: string): void {\n // reset dependent fields\n console.log(\"handle stgae change value: \", value)\n this.crmForm.controls.cycleOrJourney.reset()\n this.crmForm.controls.communication.reset()\n this.crmForm.controls.campaignType.reset()\n\n this.cyclesJourneys = this.campaignFormService.resolveDependencies(\n value,\n this.CRMData.cyclesJourneys,\n ListSortMode.PER_ORIGIN_ORDER,\n )\n this.campaignFormService.resolveFieldState(\n CrmFormControl.CYCLE_OR_JOURNEY,\n this.crmForm,\n this.cyclesJourneys,\n )\n console.log(\"cycle journeys in stage change\", this.cyclesJourneys)\n if (this.campaignForm.controls.eventType.value) {\n console.log(\"eventType change in stage change\", this.campaignForm.controls.eventType.value)\n this.handleCyclesJourneysValue(this.campaignForm.controls.eventType.value)\n }\n }\n\n private handleCycleJourneyChanges(value: string): void {\n this.crmForm.controls.communication.reset()\n\n this.communications = this.campaignFormService.resolveDependencies(\n value,\n this.CRMData.communications,\n ListSortMode.PER_ORIGIN_ORDER,\n )\n this.campaignFormService.resolveFieldState(\n CrmFormControl.COMMUNICATION,\n this.crmForm,\n this.communications,\n )\n }\n\n private handleCyclesJourneysValue(value: string): void {\n\n if (value !== \".1NSE\") {\n console.log(\"HEY Thematic Events\", this.cyclesJourneys)\n this.cyclesJourneys?.forEach((element, index) => {\n if (element.value === \"NEWLT\") {\n this.cyclesJourneys.splice(index, 1)\n }\n })\n }\n else {\n console.log(\"HEY NO SPECIFIC EVENT\", this.cyclesJourneys)\n this.cyclesJourneys?.forEach((element, index) => {\n if (element.value === \"THEEV\") {\n this.cyclesJourneys.splice(index, 1)\n }\n })\n }\n }\n\n private handleCommunicationsChanges(value: string): void {\n this.crmForm.controls.campaignType.reset()\n\n this.campaignTypes = this.campaignFormService.resolveDependencies(\n value,\n this.CRMData.campaignTypes,\n )\n this.campaignFormService.resolveFieldState(\n CrmFormControl.CAMPAIGN_TYPE,\n this.crmForm,\n this.campaignTypes,\n )\n\n if (value) {\n this.crmForm.controls.channel.enable()\n }\n }\n\n private handleCampaignLinkRedirectionChanges(value: string): void {\n this.crmForm.controls.fundingSource.reset()\n\n this.fundingSources = this.campaignFormService.resolveDependencies(\n value,\n this.CRMData.fundingSources,\n )\n // Resolve dependent field state\n this.campaignFormService.resolveFieldState(\n CrmFormControl.FUNDING_SOURCE,\n this.crmForm,\n this.fundingSources,\n )\n }\n\n private removeCrmForm(): void {\n this.campaignForm.removeControl(FormName.CRM)\n }\n\n private populateCrmForm(): void {\n if (this.mode !== FormMode.CREATE) {\n this.campaignFormService.populateCrmForm(\n this.crmForm,\n this.sourceCampaign,\n )\n }\n }\n\n private resolveCrmFormState(): void {\n if (this.mode === FormMode.DISPLAY) {\n this.crmForm.disable({ emitEvent: false })\n }\n }\n}\n","
\n
\n
\n

Activation Objectives

\n\n \n \n Objective\n \n \n {{ objective.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Funnel phase\n \n {{ funnel.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Campaign link redirection\n \n {{ link.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Funding source\n \n {{ source.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Consumer type\n \n \n {{ type.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n
\n\n
\n

Activation Details

\n\n \n \n Stage\n \n {{\n stage.props.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Use case\n \n {{\n cj.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Communication\n \n \n {{ comm.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Type of Campaign\n \n {{\n type.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n
\n\n
\n \n \n Channel\n \n {{ channel.name }}\n \n \n error\n {{ errors.required }}\n \n \n
\n
\n
","import { Component, Input, OnDestroy, OnInit } from '@angular/core'\nimport {\n ControlContainer,\n UntypedFormBuilder,\n UntypedFormGroup,\n FormGroupDirective,\n Validators,\n} from '@angular/forms'\nimport { ActivationType, FormName } from '@core/enums'\nimport { IRessource } from '@core/models'\nimport { ResourceService } from '@core/services/resource.service'\nimport { ICampaign } from '@features/campaigns/models/campaign.model'\nimport { CampaignFormService } from '@features/campaigns/services/campaign-form.service'\nimport { takeUntil } from 'rxjs/operators'\nimport { BaseComponent } from 'src/app/core/base.component'\nimport { MediaFormControl } from 'src/app/features/campaigns/models'\nimport { FormMode, ListSortMode } from 'src/app/core/enums'\n\n@Component({\n selector: 'app-media-form',\n templateUrl: './media-form.component.html',\n styleUrls: ['./media-form.component.scss'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class MediaFormComponent\n extends BaseComponent\n implements OnInit, OnDestroy\n{\n @Input() errors: any\n\n @Input() mode: string\n\n @Input() sourceCampaign?: ICampaign\n\n public mediaFormName = FormName.MEDIA\n\n private campaignForm!: UntypedFormGroup\n\n private mediaForm!: UntypedFormGroup\n\n public mediaData!: any\n\n public buyingMethods: IRessource[]\n public campaignLinkRedirections: IRessource[]\n public campaignTypes: IRessource[]\n public channels: IRessource[]\n public engines: IRessource[]\n public formats: IRessource[]\n public fundingSources: IRessource[]\n public funnels: IRessource[]\n\n constructor(\n private readonly parent: FormGroupDirective,\n private readonly fb: UntypedFormBuilder,\n private readonly resourceService: ResourceService,\n private readonly campaignFormService: CampaignFormService,\n ) {\n super()\n super.ngOnDestroy()\n }\n\n ngOnInit(): void {\n this.initForm()\n this.initData()\n this.handleMediaFormChanges()\n this.populateMediaForm()\n this.resolveCrmFormState()\n }\n\n ngOnDestroy(): void {\n this.removeMediaForm()\n }\n\n // PRIVATE METHODS\n\n private initForm(): void {\n this.campaignForm = this.parent.form\n this.campaignForm.addControl(\n FormName.MEDIA,\n this.fb.group({\n channel: ['', [Validators.required]],\n format: [{ value: '', disabled: true }, [Validators.required]],\n funnel: ['' , [Validators.required]],\n campaignLinkRedirection: ['', [Validators.required]],\n fundingSource: [{ value: '', disabled: true }, [Validators.required]],\n engine: [{ value: '', disabled: true }, [Validators.required]],\n engineFree: [{ value: '', disabled: true }],\n buyingMethod: [{ value: '', disabled: true }, [Validators.required]],\n campaignType: [{ value: '', disabled: true }, [Validators.required]],\n }),\n )\n this.mediaForm = this.campaignForm.controls[FormName.MEDIA] as UntypedFormGroup\n }\n\n private initData(): void {\n this.mediaData = this.resourceService.getResourcesByForm(FormName.MEDIA)\n this.channels = this.mediaData.channels\n this.funnels = this.mediaData.funnels\n this.campaignLinkRedirections = this.mediaData.campaignLinkRedirections\n }\n\n private handleMediaFormChanges(): void {\n // channel changes\n this.mediaForm.controls.channel.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleChannelChanges(value)\n })\n\n // engine changes\n this.mediaForm.controls.engine.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleEngineChanges(value)\n })\n\n // free engine changes\n this.mediaForm.controls.engineFree.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleFreeEngineChanges(value)\n })\n\n // campaign link redirection\n this.mediaForm.controls.campaignLinkRedirection.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleCampaignLinkRedirectionChanges(value)\n })\n }\n\n private handleChannelChanges(value: string): void {\n // reset dependent fields\n this.resetChannelDependentFields()\n // // resolve dependencies\n // format\n this.formats = this.campaignFormService.resolveDependencies(\n value,\n this.mediaData.formats,\n )\n // engine\n this.engines = this.campaignFormService.resolveDependencies(\n value,\n this.mediaData.engines,\n ListSortMode.PER_VALUE,\n )\n // buying method\n\n this.buyingMethods = this.campaignFormService.resolveDependencies(\n value,\n this.mediaData.buyingMethods,\n )\n // type of campaign\n\n this.campaignTypes = this.campaignFormService.resolveDependencies(\n value,\n this.mediaData.campaignTypes,\n )\n\n // Resolve fields state\n this.campaignFormService.resolveFieldState(\n MediaFormControl.FORMAT,\n this.mediaForm,\n this.formats,\n )\n this.campaignFormService.resolveFieldState(\n MediaFormControl.ENGINE,\n this.mediaForm,\n this.engines,\n )\n this.campaignFormService.resolveFieldState(\n MediaFormControl.BUYING_METHOD,\n this.mediaForm,\n this.buyingMethods,\n )\n this.campaignFormService.resolveFieldState(\n MediaFormControl.CAMPAIGN_TYPE,\n this.mediaForm,\n this.campaignTypes,\n )\n }\n\n private handleEngineChanges(value: string) {\n if (value === MediaFormControl.ENGINE_FREE) {\n // enable engine free field\n this.mediaForm.controls.engineFree.enable()\n this.campaignFormService.setRequiredValidators(\n this.mediaForm,\n MediaFormControl.ENGINE_FREE,\n )\n } else {\n this.mediaForm.controls.engineFree.reset()\n this.mediaForm.controls.engineFree.disable()\n }\n }\n\n private handleFreeEngineChanges(value: string) {\n if (!!value) {\n const forbiddenCharacters = /[^a-zA-Z0-9]+/g\n if (forbiddenCharacters.test(value)) {\n this.mediaForm.controls.engineFree.setValue(\n value.replace(forbiddenCharacters, ''),\n )\n }\n }\n }\n\n private resetChannelDependentFields(): void {\n this.mediaForm.controls.format.reset()\n this.mediaForm.controls.engine.reset()\n this.mediaForm.controls.buyingMethod.reset()\n this.mediaForm.controls.campaignType.reset()\n }\n\n private handleCampaignLinkRedirectionChanges(value: string): void {\n this.mediaForm.controls.fundingSource.reset()\n\n this.fundingSources = this.campaignFormService.resolveDependencies(\n value,\n this.mediaData.fundingSources,\n )\n\n // Resolve dependent field state\n this.campaignFormService.resolveFieldState(\n MediaFormControl.FUNDING_SOURCE,\n this.mediaForm,\n this.fundingSources,\n )\n }\n\n private removeMediaForm(): void {\n this.campaignForm.removeControl(FormName.MEDIA)\n }\n\n private populateMediaForm(): void {\n if (this.mode !== FormMode.CREATE) {\n const enginesResources = this.resourceService.getResources().engines\n this.campaignFormService.populateMediaForm(\n this.mediaForm,\n this.sourceCampaign,\n enginesResources,\n )\n }\n }\n\n private resolveCrmFormState(): void {\n if (this.mode === FormMode.DISPLAY) {\n this.mediaForm.disable({ emitEvent: false })\n }\n }\n}\n","
\n
\n

Activation Strategy

\n\n \n \n Funnel phase\n \n {{ funnel.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Campaign link redirection\n \n {{ link.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Funding source\n \n {{ source.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n
\n\n
\n

Activation lever

\n\n \n \n Channel\n \n {{\n channel.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Format\n \n {{\n format.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n
\n\n
\n

Activation Details

\n \n \n Engine\n \n {{\n engine.name\n }}\n Other engine\n \n \n error\n {{ errors.required }}\n \n \n\n \n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Buying method\n \n {{ method.name }}\n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Type of campaign\n \n {{\n type.name\n }}\n \n \n error\n {{ errors.required }}\n \n \n
\n
","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core'\nimport {\n ControlContainer,\n UntypedFormBuilder,\n UntypedFormGroup,\n FormGroupDirective,\n Validators,\n} from '@angular/forms'\nimport { FormName } from '@core/enums/form-names.enum'\nimport { IRessource } from '@core/models/ressource.model'\nimport { ResourceService } from '@core/services/resource.service'\nimport { ProductFormControl } from '@features/campaigns/models/campaign-form.model'\nimport { ICampaign } from '@features/campaigns/models/campaign.model'\nimport { CampaignFormService } from '@features/campaigns/services/campaign-form.service'\nimport { takeUntil } from 'rxjs/operators'\nimport { BaseComponent } from '@core/base.component'\nimport { FormMode, ListSortMode } from '@core/enums'\n\n@Component({\n selector: 'app-product-form',\n templateUrl: './product-form.component.html',\n styleUrls: ['./product-form.component.scss'],\n viewProviders: [\n { provide: ControlContainer, useExisting: FormGroupDirective },\n ],\n})\nexport class ProductFormComponent\n extends BaseComponent\n implements OnInit, OnChanges\n{\n @Input() errors: any\n\n @Input() mode: string\n\n @Input() sourceCampaign?: ICampaign\n\n public productFormName = FormName.PRODUCT\n\n private campaignForm!: UntypedFormGroup\n\n private productForm!: UntypedFormGroup\n\n public productData!: any\n\n public productLines: IRessource[]\n\n public families: IRessource[]\n\n public subFamilies: IRessource[]\n\n constructor(\n private readonly parent: FormGroupDirective,\n private readonly fb: UntypedFormBuilder,\n private readonly resourceService: ResourceService,\n private readonly campaignFormService: CampaignFormService,\n ) {\n super()\n super.ngOnDestroy()\n }\n\n ngOnInit(): void {\n this.initForm()\n this.initData()\n this.handleFormChanges()\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.sourceCampaign.currentValue) {\n this.populateProductForm()\n this.resolveProductFormState()\n }\n }\n\n // PRIVATE METHODS\n\n private initForm(): void {\n this.campaignForm = this.parent.form\n this.campaignForm.addControl(\n FormName.PRODUCT,\n this.fb.group({\n productLine: ['', [Validators.required]],\n family: [{ value: '', disabled: true }, [Validators.required]],\n subFamily: [{ value: '', disabled: true }, [Validators.required]],\n switchToggleProducts: [],\n }),\n )\n this.productForm = this.campaignForm.controls[FormName.PRODUCT] as UntypedFormGroup\n }\n\n private initData(): void {\n this.productData = this.resourceService.getResourcesByForm(FormName.PRODUCT)\n this.productLines = this.productData.productLines\n }\n\n private handleFormChanges(): void {\n // product changes\n this.productForm.controls[ProductFormControl.PRODUCT_LINE].valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => this.handleProductLineChanges(value))\n\n // family changes\n this.productForm\n .get(ProductFormControl.FAMILY)\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleFamilyChanges(value)\n })\n\n // switch toggle products\n this.productForm\n .get('switchToggleProducts')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.handleSwitchToggleProductsChanges(value)\n })\n }\n\n private handleProductLineChanges(value: string): void {\n // Reset potential dependent field value\n this.productForm.get(ProductFormControl.FAMILY).reset()\n this.productForm.get(ProductFormControl.SUB_FAMILY).reset()\n\n this.families = this.campaignFormService.resolveDependencies(\n value,\n this.productData.families,\n ListSortMode.PER_VALUE,\n )\n this.campaignFormService.resolveFieldState(\n ProductFormControl.FAMILY,\n this.productForm,\n this.families,\n )\n }\n\n private handleFamilyChanges(value: string): void {\n // Reset dependent field value\n this.productForm.get(ProductFormControl.SUB_FAMILY).reset()\n\n this.subFamilies = this.campaignFormService.resolveDependencies(\n value,\n this.productData.subFamilies,\n ListSortMode.PER_VALUE,\n )\n this.campaignFormService.resolveFieldState(\n ProductFormControl.SUB_FAMILY,\n this.productForm,\n this.subFamilies,\n )\n }\n\n private handleSwitchToggleProductsChanges(value): void {\n if (!!value) {\n this.productForm.get(ProductFormControl.PRODUCT_LINE).setValue('NSP')\n this.productForm.get(ProductFormControl.PRODUCT_LINE).disable()\n this.productForm.get(ProductFormControl.FAMILY).disable()\n this.productForm.get(ProductFormControl.SUB_FAMILY).disable()\n } else {\n this.productForm.get(ProductFormControl.PRODUCT_LINE).reset()\n this.productForm.get(ProductFormControl.PRODUCT_LINE).enable()\n }\n }\n\n private populateProductForm(): void {\n if (this.mode !== FormMode.CREATE) {\n this.campaignFormService.populateProductForm(\n this.productForm,\n this.sourceCampaign,\n )\n }\n }\n\n private resolveProductFormState(): void {\n if (this.mode === FormMode.DISPLAY) {\n this.productForm.disable({ emitEvent: false })\n }\n }\n}\n","
\n
\n

Promoted Product

\n \n \n Product line\n \n \n {{ product.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Family\n \n \n {{ family.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n \n \n Sub-family or product\n \n \n {{ subFamily.name }}\n \n \n \n error\n {{ errors.required }}\n \n \n\n No specific promoted product\n \n
\n
","import { Clipboard } from '@angular/cdk/clipboard'\nimport { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'\nimport { UntypedFormControl } from '@angular/forms'\nimport { MatDialog } from '@angular/material/dialog'\nimport { MatPaginator } from '@angular/material/paginator'\nimport { MatSort } from '@angular/material/sort'\nimport { MatTableDataSource } from '@angular/material/table'\nimport { Router } from '@angular/router'\nimport { ArrayHelper } from '@core/helpers/array.helper'\n\nimport { ILeadRessource } from '@core/models/lead-ressource.model'\nimport { IRessource } from '@core/models/ressource.model'\n\nimport { NotificationService } from '@core/services/notification.service'\nimport { ResourceService } from '@core/services/resource.service'\nimport { UserService } from '@core/services/user.service'\n\nimport { ICampaign, IfilterValues } from '@features/campaigns/models'\n\nimport { CampaignFormService } from '@features/campaigns/services/campaign-form.service'\nimport { CampaignService } from '@features/campaigns/services/campaign.service'\nimport { takeUntil } from 'rxjs/operators'\nimport { BaseComponent } from 'src/app/core/base.component'\nimport { CampaignListColumns, FormMode } from 'src/app/core/enums'\nimport { CampaignDeleteDialogComponent } from '../campaign-delete-dialog/campaign-delete-dialog.component'\n\n\n@Component({\n selector: 'app-campaign-list',\n templateUrl: './campaign-list.component.html',\n styleUrls: ['./campaign-list.component.scss'],\n})\nexport class CampaignListComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n displayedColumns: string[] = [\n CampaignListColumns.ACTIVATION_TYPE,\n CampaignListColumns.URL_ID,\n CampaignListColumns.URL_MEDIUM_NAME,\n CampaignListColumns.USED,\n CampaignListColumns.COPY_URLS,\n CampaignListColumns.CREATED_DATE,\n CampaignListColumns.OPTIONS,\n ]\n dataSource = new MatTableDataSource()\n isLoading = false\n showNoResultsMsg = false;\n userMarkets!: string;\n\n userCampaigns: ICampaign[] = [];\n filteredDataArray = []\n\n filterValues: IfilterValues = {\n campaign_id: null,\n product_line: null,\n market: null,\n brand: null,\n }\n\n\n productLines: ILeadRessource[]\n activationType: ILeadRessource[]\n markets: ILeadRessource[]\n brands: IRessource[] = []\n\n\n campaignIdFilter = new UntypedFormControl()\n productsFilter = new UntypedFormControl()\n marketsFilter = new UntypedFormControl()\n brandsFilter = new UntypedFormControl()\n\n @ViewChild(MatPaginator) paginator: MatPaginator\n @ViewChild(MatSort) sort: MatSort\n\n constructor(\n public dialog: MatDialog,\n private readonly router: Router,\n private readonly campaignService: CampaignService,\n private readonly userService: UserService,\n private readonly clipboard: Clipboard,\n private readonly resourcesService: ResourceService,\n private readonly campaignFormService: CampaignFormService,\n private readonly arrayHelper: ArrayHelper,\n private readonly notificationService: NotificationService,\n ) {\n super()\n }\n\n ngOnInit(): void {\n this.userMarkets = this.userService.getUserMarket();\n\n // get toolbar filter resources\n this.getToolbarFilterResources()\n this.handleFilterChanges()\n }\n\n\n get hasNoFilters() {\n const filters = Object.values(this.filterValues);\n return filters.every(val => val === null);\n }\n\n // Populate filter select fields\n getToolbarFilterResources(): void {\n const leadData = this.resourcesService.resolveLeadData()\n this.productLines = leadData.productLines\n this.activationType = leadData.activationTypes\n this.markets = leadData.markets\n this.brands = this.buildBrandListByUserMarkets(this.markets)\n }\n\n // Build brands list by user markets\n buildBrandListByUserMarkets(userMarkets: ILeadRessource[]): IRessource[] {\n let bufferArray = []\n userMarkets.map((m) => {\n bufferArray.push(\n this.campaignFormService.resolveDependencies(\n m.value,\n this.resourcesService.getResources().brands,\n ),\n )\n })\n bufferArray = bufferArray.flat();\n return this.arrayHelper.removeDuplicatedObjectsFromArray(bufferArray)\n }\n\n buildCampaignSourceData(campaigns: ICampaign[]): CampaignElement[] {\n let res: CampaignElement[] = []\n campaigns.map((c) => {\n res.push({\n activationType: c.activation_type,\n urlId: c.id,\n urlShortName: c.url_xSmall,\n urlMediumName: c.url_short,\n urlFullName: c.url_full,\n used: c.url_state === 'USED',\n associatedCampaigns: null,\n createdDate: c.created_date,\n })\n })\n return res\n }\n\n ngAfterViewInit(): void {\n this.dataSource.paginator = this.paginator\n this.dataSource.sort = this.sort\n }\n\n public searchByFilter() {\n this.isLoading = true;\n this.resolveSearchType(this.filterValues);\n }\n\n public clearFilter() {\n this.router.navigate(['/'])\n // this.campaignIdFilter.reset()\n // this.clearFiltersFields();\n // this.showNoResultsMsg = false;\n // this.dataSource.data = this.userCampaigns.length ? this.buildCampaignSourceData(this.userCampaigns) : [];\n }\n\n public onCreateNew() {\n this.router.navigate(['campaigns', FormMode.CREATE])\n }\n\n public onGetMyCampaigns() {\n this.isLoading = true;\n this.campaignService\n .getCampaigns({ owner: this.userService.getUserEmail() })\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.userCampaigns = [...data];\n this.dataSource.data = this.buildCampaignSourceData(this.userCampaigns)\n this.showNoResultsMsg = !this.dataSource.data.length;\n this.isLoading = false\n })\n\n }\n\n public onCopyToClipboard(source: string): void {\n if (!!source) {\n const urlCopied = this.clipboard.copy(source)\n if (!!urlCopied) {\n this.openSnackBar()\n }\n }\n }\n\n public onDisplay(item: CampaignElement): void {\n this.router.navigate(['campaigns', 'detail', item.urlId])\n }\n\n public onModify(item: CampaignElement): void {\n this.router.navigate(['campaigns', 'update', item.urlId])\n }\n\n public onDuplicate(item: CampaignElement): void {\n this.router.navigate(['campaigns', 'duplicate', item.urlId])\n }\n\n public onDelete(item: CampaignElement): void {\n let dialogRef = this.dialog.open(CampaignDeleteDialogComponent, {\n data: {\n campaignId: item.urlId,\n campaignName: item.urlFullName,\n },\n panelClass: 'generated-url-dialog-container',\n minWidth: 700,\n disableClose: true,\n });\n\n dialogRef.afterClosed().subscribe(result => {\n if (!!result) {\n this.isLoading = true;\n\n this.campaignService\n .getCampaigns({ owner: this.userService.getUserEmail() })\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.userCampaigns = [...data];\n this.dataSource.data = this.buildCampaignSourceData(this.userCampaigns)\n this.isLoading = false\n this.notificationService.success('Campaign successfully deleted!');\n })\n\n }\n })\n }\n\n\n\n // PRIVATE METHODS\n\n private handleFilterChanges(): void {\n this.campaignIdFilter.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n (value) => {\n this.filterValues.campaign_id = value || null;\n this.resolveSearchFieldsState(value);\n\n });\n\n this.productsFilter.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe(\n (value) => {\n this.filterValues.product_line = value || null;\n });\n\n this.marketsFilter.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.filterValues.market = value || null;\n });\n\n this.brandsFilter.valueChanges\n .pipe(takeUntil(this.destroy$))\n .subscribe((value) => {\n this.filterValues.brand = value || null;\n });\n }\n\n private openSnackBar() {\n this.notificationService.success('Url successfully copied!')\n }\n\n /**\n * \n * @param {IfilterValues} filterValues \n */\n private resolveSearchType(filterValues: IfilterValues): void {\n if (filterValues.campaign_id) {\n this.campaignService.getCampaign(filterValues.campaign_id).pipe(\n takeUntil(this.destroy$),\n ).subscribe((res) => {\n this.isLoading = false;\n\n // Check if founded campaign is in user markets\n if ((!!res && (this.userMarkets.split(' ').includes(res.market))) ||\n (!!res && this.userMarkets === '*')) {\n this.dataSource.data = this.buildCampaignSourceData([res]);\n } else {\n this.dataSource.data = [];\n }\n\n this.showNoResultsMsg = !this.dataSource.data.length;\n }\n );\n } else {\n this.campaignService.searchCampaigns({ filter: this.filterValues, markets: this.userService.getUserMarket() }).pipe(\n takeUntil(this.destroy$),\n ).subscribe((res) => {\n this.isLoading = false;\n this.dataSource.data = this.buildCampaignSourceData(res)\n this.showNoResultsMsg = !this.dataSource.data.length;\n\n });\n }\n }\n\n private resolveSearchFieldsState(value: string | null) {\n if (!!value && value.length) {\n this.disableFiltersFields();\n this.clearFiltersFields();\n } else {\n this.enableFiltersFields();\n }\n }\n\n private disableFiltersFields(): void {\n this.productsFilter.disable();\n this.marketsFilter.disable();\n this.brandsFilter.disable();\n }\n\n private enableFiltersFields(): void {\n this.productsFilter.enable();\n this.marketsFilter.enable();\n this.brandsFilter.enable();\n }\n\n private clearFiltersFields(): void {\n this.productsFilter.reset()\n this.marketsFilter.reset()\n this.brandsFilter.reset()\n }\n\n}\n\nexport interface CampaignElement {\n activationType: string\n urlId: string\n urlShortName: string\n urlMediumName: string\n urlFullName: string\n used: boolean\n associatedCampaigns: number\n createdDate: string\n}\n","\n
\n
\n \n \n
\n
\n
\n \n \n SEB campaign Id\n \n \n\n \n \n Product Line\n \n None\n {{ product.props.name }}\n \n \n \n\n \n \n Market\n \n None\n {{\n market.props.name\n }}\n \n \n\n \n \n Brand\n \n None\n {{\n brand.name\n }}\n \n \n
\n
\n \n searchsearch\n \n \n
\n
\n
\n\n
\n \n \n Activation Type\n \n {{\n element.activationType === 'DIG' ? 'MEDIA' : element.activationType\n }}\n \n \n\n \n SEB Campaign Id\n {{ element.urlId }}\n \n\n \n \n SEB Campaign Name\n \n {{ element.urlMediumName }}\n \n\n \n \n Used\n \n \n \n \n \n\n \n Copy SEB Campaign Names\n \n \n file_copy\n \n \n file_copy\n \n\n \n file_copy\n \n \n \n\n \n Created Date\n {{ element.createdDate }}\n \n\n \n \n \n \n \n \n \n \n \n Delete\n \n \n \n \n\n \n \n \n\n
\n
\n

\n To display campaigns, please click on \"My Campaigns\" (based on your\n credentials) or select your filter(s) and click on\n search.\n

\n
\n\n
\n Sorry, there is no result for your search...\n
\n
\n\n
\n 500 ? 500 : dataSource.data.length\n ]\"\n showFirstLastButtons\n >\n
\n
\n\n\n","import { Clipboard } from '@angular/cdk/clipboard'\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core'\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'\nimport { NotificationService } from '@core/services/notification.service'\nimport { debounceTime, takeUntil, distinctUntilChanged } from 'rxjs/operators'\nimport { FormMode } from 'src/app/core/enums/form-mode.enum'\nimport { BaseComponent } from 'src/app/core/base.component'\n\nenum TrackedUrl {\n LANDING_PAGE_URL = 'landingPageUrl',\n UTM_CONTENT = 'utmContent',\n UTM_TERM = 'utmTerm',\n}\n@Component({\n selector: 'app-campaign-url-dialog',\n templateUrl: './campaign-url-dialog.component.html',\n styleUrls: ['./campaign-url-dialog.component.scss'],\n})\nexport class CampaignUrlDialogComponent\n extends BaseComponent\n implements OnInit, OnDestroy\n{\n generatedUrl: string\n trackedUrl: string\n\n trackedUrlForm: UntypedFormGroup\n landingPageUrl: string = ''\n utmContent: string\n utmTerm: string\n\n constructor(\n @Inject(MAT_DIALOG_DATA)\n public data: {\n campaignUrlId: string\n xSmallUrl: string\n shortUrl: string\n fullUrl: string\n utm_source: string\n utm_medium: string\n },\n private readonly dialogRef: MatDialogRef,\n private readonly clipboard: Clipboard,\n private readonly fb: UntypedFormBuilder,\n private readonly notificationService: NotificationService,\n ) {\n super()\n }\n\n ngOnInit(): void {\n this.initForm()\n this.buildTrackedUrl()\n this.handleFormChanges()\n }\n\n initForm() {\n this.trackedUrlForm = this.fb.group({\n landingPageUrl: [''],\n utmContent: [''],\n utmTerm: [''],\n })\n }\n\n // Prevent from spaces\n cleanTrackedUrlFieldValue(value: string, field: string): string {\n const forbiddenCharacters = /\\s+/g\n if (forbiddenCharacters.test(value)) {\n this.trackedUrlForm\n .get(field)\n .setValue(value.replace(forbiddenCharacters, ''))\n }\n return value\n }\n\n handleFormChanges() {\n this.trackedUrlForm\n .get(TrackedUrl.LANDING_PAGE_URL)\n .valueChanges.pipe(\n takeUntil(this.destroy$),\n debounceTime(500),\n distinctUntilChanged(),\n )\n .subscribe((value) => {\n this.landingPageUrl = this.cleanTrackedUrlFieldValue(\n value,\n TrackedUrl.LANDING_PAGE_URL,\n )\n this.buildTrackedUrl()\n })\n\n this.trackedUrlForm\n .get(TrackedUrl.UTM_CONTENT)\n .valueChanges.pipe(\n takeUntil(this.destroy$),\n debounceTime(500),\n distinctUntilChanged(),\n )\n .subscribe((value) => {\n this.utmContent = this.cleanTrackedUrlFieldValue(value, TrackedUrl.UTM_CONTENT)\n this.buildTrackedUrl()\n })\n\n this.trackedUrlForm\n .get(TrackedUrl.UTM_TERM)\n .valueChanges.pipe(\n takeUntil(this.destroy$),\n debounceTime(500),\n distinctUntilChanged(),\n )\n .subscribe((value) => {\n this.utmTerm = this.cleanTrackedUrlFieldValue(value, TrackedUrl.UTM_TERM)\n this.buildTrackedUrl()\n })\n }\n\n onCopyToClipboard(source: string): void {\n const urlCopied = this.clipboard.copy(source)\n if (!!urlCopied) {\n this.openSnackBar()\n }\n }\n\n close(): void {\n this.dialogRef.close({ action: 'close' })\n }\n\n onCreateNew(): void {\n this.dialogRef.close({ action: FormMode.CREATE })\n }\n\n onEdit(): void {\n this.dialogRef.close({\n action: FormMode.UPDATE,\n campaignUrlId: this.data.campaignUrlId,\n })\n }\n\n onDuplicate(): void {\n this.dialogRef.close({\n action: FormMode.DUPLICATE,\n campaignUrlId: this.data.campaignUrlId,\n })\n }\n\n openSnackBar() {\n this.notificationService.success('Url successfully copied!')\n }\n\n buildTrackedUrl() {\n //In order to avoid multiple question marks at the bstart of the tracked URL\n const trackedUrlSeparator = this.landingPageUrl.includes('?', 0) ? '&' : '?'\n\n this.trackedUrl = `${this.landingPageUrl}${trackedUrlSeparator}utm_source=${this.data.utm_source}&utm_medium=${this.data.utm_medium}`\n this.trackedUrl += !!this.utmContent\n ? `&utm_content=${this.utmContent}`\n : ``\n this.trackedUrl += !!this.utmTerm ? `&utm_term=${this.utmTerm}` : ``\n this.trackedUrl += `&utm_campaign=${this.data.shortUrl}`\n }\n}\n","

Campaign name generated

\n\n
\n \n Short campaign name\n\n \n file_copy\n \n\n \n Medium campaign name\n\n \n file_copy\n \n\n \n Long campaign name\n\n \n file_copy\n \n\n
\n \n \n \n
\n
\n\n \n\n \n
\n

Need a tracked URL?

\n\n
\n \n Landing page (URL)\n \n \n\n \n UTM content (optional)\n \n \n\n \n UTM term (optional)\n \n \n
\n\n Tracked URL\n \n \n file_copy\n \n URL too long? Use\n https://bitly.com/ to\n shorten your landing page URL\n
\n
\n\n\n \n","import { ActivationType } from '@core/enums'\nimport { Dayjs } from 'dayjs'\n\nexport interface ICampaignForm {\n activationType: ActivationType\n brand: string\n crmType?: ICrmForm\n durationType: string\n eventType: string\n language: string\n market: string\n mediaType?: IMediaForm\n optional: string\n productType: IProductForm\n startMonth: Dayjs\n}\n\nexport enum CampaignFormControl {\n ACTIVATION_TYPE = 'activationType',\n BRAND = 'brand',\n DURATION_TYPE = 'durationType',\n EVENT_TYPE = 'eventType',\n LANGUAGE = 'language',\n MARKET = 'market',\n OPTIONAL = 'optional',\n}\n\nexport interface IProductForm {\n productLine: string\n family: string\n subFamily: string\n}\n\nexport enum ProductFormControl {\n PRODUCT_LINE = 'productLine',\n FAMILY = 'family',\n SUB_FAMILY = 'subFamily',\n}\n\nexport interface ICrmForm {\n campaignType: string\n channel: string\n communication: string\n consumerType: string\n cycleOrJourney: string\n funnel: string\n objective: string\n stage: string\n campaignLinkRedirection: string\n fundingSource: string\n}\n\nexport enum CrmFormControl {\n CAMPAIGN_LINK_REDIRECTION = 'campaignLinkRedirection',\n CAMPAIGN_TYPE = 'campaignType',\n CHANNEL = 'channel',\n COMMUNICATION = 'communication',\n CONSUMER_TYPE = 'consumerType',\n CYCLE_OR_JOURNEY = 'cycleOrJourney',\n FUNDING_SOURCE = 'fundingSource',\n FUNNEL = 'funnel',\n OBJECTIVE = 'objective',\n STAGE = 'stage',\n}\n\nexport interface IMediaForm {\n buyingMethod: string\n campaignLinkRedirection: string\n campaignType: string\n channel: string\n engine: string\n engineFree: string\n format: string\n fundingSource: string\n funnel: string\n}\n\nexport enum MediaFormControl {\n BUYING_METHOD = 'buyingMethod',\n CAMPAIGN_LINK_REDIRECTION = 'campaignLinkRedirection',\n CAMPAIGN_TYPE = 'campaignType',\n CHANNEL = 'channel',\n ENGINE = 'engine',\n ENGINE_FREE = 'engineFree',\n FORMAT = 'format',\n FUNDING_SOURCE = 'fundingSource',\n FUNNEL = 'funnel',\n}\n","export interface ICampaignUrl {\n xSmallUrl: string,\n shortUrl: string,\n fullUrl: string\n}","export interface ICampaign {\n activation_type: string;\n brand: string;\n buying_method: string;\n campaign_type: string;\n campaign_link_redirection: string;\n channel: string;\n communication: string;\n consumer_type: string;\n created_date: string;\n cycle_or_journey: string;\n duration_type: string;\n engine: string;\n event_type: string;\n family: string;\n format: string;\n funding_source: string;\n funnel: string;\n id: string;\n language: string;\n market: string;\n media: string;\n objective: string;\n optional: string;\n owner?: string\n product_line: string;\n stage: string;\n start_month: string;\n sub_family: string;\n updated_date?: string;\n url_full?: string;\n url_short?: string;\n url_state?: string;\n url_xSmall?: string;\n}\n\nexport interface IfilterValues {\n campaign_id: string\n product_line: string\n market: string\n brand: string\n}\n\nexport interface ICampaignSearchParams {\n filter: IfilterValues;\n markets: string;\n}\n\nexport interface ICampaignEngine {\n engine: string;\n engineFree: any;\n}","export * from './campaign-form.model';\nexport * from './campaign-url.model';\nexport * from './campaign.model';","import { Injectable } from '@angular/core'\nimport { UntypedFormGroup, Validators } from '@angular/forms'\nimport { ArrayHelper } from '@core/helpers/array.helper'\nimport { RandomIdGenerator } from '@core/helpers/randomId.generator'\nimport { IRessource, IRessourceName } from '@core/models'\nimport { FormMode, FormName, ActivationType } from '@core/enums'\nimport dayjs from \"dayjs\"\nimport { ListSortMode } from 'src/app/core/enums'\nimport {\n ICampaign,\n ICampaignForm,\n ICampaignEngine,\n IMediaForm,\n ICrmForm,\n} from 'src/app/features/campaigns/models'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CampaignFormService {\n constructor(\n private readonly idGenerator: RandomIdGenerator,\n private readonly arrayHelper: ArrayHelper,\n ) {}\n\n /**\n * Resolve 'media' hidden field value\n * @param formValue\n * @returns value type string\n */\n private resolveMedia(formValue: ICampaignForm): string {\n const activationType = formValue.activationType\n const channel =\n formValue[FormName.CRM]?.channel ?? formValue[FormName.MEDIA].channel\n if (activationType === ActivationType.CRM) {\n return ActivationType.CRM\n } else if (channel === 'OGSOC' || channel === 'INFLU') {\n return 'SIN'\n } else {\n return ActivationType.MEDIA\n }\n }\n\n /**\n * Resolve field state (enabled or disabled) depending on data populated or not\n * Resolve value if field is populated by only one item\n * @param field\n * @param form\n * @param data\n */\n public resolveFieldState(\n field: string,\n form: UntypedFormGroup,\n data: IRessource[],\n ): void {\n if (data && !!data.length) {\n form.get(field).enable()\n this.resolveOneValueField(field, form, data)\n } else {\n form.get(field).disable()\n }\n }\n\n /**\n * Set field value if data contains only one item\n * @param field field name\n * @param form\n * @param data populated data\n */\n private resolveOneValueField(\n field: string,\n form: UntypedFormGroup,\n data: IRessource[],\n ): void {\n if (data.length == 1) {\n form.get(field).setValue(data[0].value)\n }\n }\n\n /**\n * Set field to required\n * @param form used form\n * @param field form field to affect\n */\n public setRequiredValidators(form: UntypedFormGroup, field: string): void {\n form.get(field).setValidators([Validators.required])\n form.get(field).updateValueAndValidity({ emitEvent: false })\n }\n\n /**\n * Clear field required validator\n * @param form used form\n * @param field form field to affect\n */\n public clearRequiredValidators(form: UntypedFormGroup, field: string): void {\n form.get(field).clearValidators()\n form.get(field).updateValueAndValidity({ emitEvent: false })\n }\n\n /**\n *\n * @param parentValue parent input value type string\n * @param child json object\n * @param {ListSortMode} sortMode (optional) mode to sort results\n * @returns {IRessource[]} ([{name: \"name1\", value: \"value1\"}, {name: \"name2\", value: \"value2\"}, ...])\n */\n public resolveDependencies(\n parentValue: string,\n child: any,\n sortMode?: ListSortMode,\n ): IRessource[] {\n let values: string[]\n let names: IRessourceName[]\n let result: IRessource[]\n\n for (const [key, value] of Object.entries(child)) {\n if (key == parentValue) {\n names = Object.values(value) // [{name1: ''}, {name2: ''}]\n values = Object.keys(value) // ['name1', 'name2]\n }\n }\n result = values?.map((val, index) => {\n return {\n name: names[index].name,\n value: val,\n }\n })\n\n switch (sortMode) {\n case ListSortMode.PER_VALUE:\n return this.arrayHelper.sortResourcesArrayByValue(result)\n\n case ListSortMode.PER_ORIGIN_ORDER:\n return result\n\n default:\n return this.arrayHelper.sortResourcesArray(result)\n }\n }\n\n /**\n * Resolve engine free value and engine value\n * @param enginesData engines json\n * @param value engine value to check\n * @returns engine value\n */\n private resolveEngineValue(enginesData, value): ICampaignEngine {\n let engineValues = []\n let array = []\n for (const [key, value] of Object.entries(enginesData)) {\n engineValues.push(value)\n }\n engineValues.map((item) => {\n array.push(Object.keys(item))\n })\n array = array.flat()\n\n array = Array.from(new Set(array))\n if (!!array.find((el) => el == value)) {\n return { engine: value, engineFree: undefined }\n } else {\n return { engine: 'engineFree', engineFree: value }\n }\n }\n\n /**\n * Populate campaign form from source campaign\n * Display source campaign values on display, modify and update mode\n * @param form\n * @param sourceCampaign\n */\n public populateCampaignForm(\n form: UntypedFormGroup,\n sourceCampaign: ICampaign,\n ): void {\n const startMonth = dayjs(sourceCampaign.start_month, 'YYYY-MM').toDate()\n form.patchValue({\n market: sourceCampaign.market,\n language: sourceCampaign.language,\n brand: sourceCampaign.brand,\n productLine: sourceCampaign.product_line,\n family: sourceCampaign.family,\n subFamily: sourceCampaign.sub_family,\n durationType: sourceCampaign.duration_type,\n startMonth,\n eventType: sourceCampaign.event_type,\n optional: sourceCampaign.optional,\n activationType: sourceCampaign.activation_type,\n })\n }\n\n /**\n * Resolve campaignUrl values by mode (update or create)\n * some values must not change on update mode (ex id, created date)\n * @param formValue\n * @param mode\n * @param sourceCampaign\n * @returns campaignUrl values (type ICampaign)\n */\n public resolveUrlCampaignValuesByMode(\n formValue: ICampaignForm,\n mode: FormMode,\n sourceCampaign?: ICampaign,\n ): ICampaign {\n let id, updated_date, created_date, url_state, start_month\n const NotAttributed = 'NA'\n const product = formValue.productType\n const engine = this.setEngineValue(formValue.activationType, formValue)\n const media = this.resolveMedia(formValue)\n\n const activationTypeValues = this.resolveValuesByActivationType(\n formValue.activationType,\n formValue,\n )\n\n if (mode === FormMode.UPDATE) {\n id = sourceCampaign.id\n start_month = formValue.startMonth\n ? dayjs(formValue.startMonth).format('YYYY-MM').toString()\n : NotAttributed\n updated_date = dayjs().format('YYYY-MM-DD').toString()\n created_date = sourceCampaign.created_date\n url_state = sourceCampaign.url_state\n } else {\n id = this.idGenerator.generateId()\n start_month = formValue.startMonth\n ? dayjs(formValue.startMonth).format('YYYY-MM').toString()\n : NotAttributed\n created_date = dayjs().format('YYYY-MM-DD').toString()\n url_state = 'UNUSED'\n }\n return {\n id: String(id),\n market: formValue.market,\n language: formValue.language || NotAttributed,\n brand: formValue.brand,\n product_line: product.productLine || 'NSP',\n family: product.family || '.NSF',\n sub_family: product.subFamily || '.NSSFP',\n funnel: activationTypeValues.funnel || NotAttributed,\n funding_source: activationTypeValues.funding_source || NotAttributed,\n channel: activationTypeValues.channel,\n format: activationTypeValues.format || NotAttributed,\n duration_type: formValue.durationType || NotAttributed,\n start_month,\n engine,\n buying_method: activationTypeValues.buying_method || NotAttributed,\n campaign_type: activationTypeValues.campaign_type || NotAttributed,\n campaign_link_redirection:\n activationTypeValues.campaign_link_redirection || NotAttributed,\n optional: formValue.optional || NotAttributed,\n event_type: formValue.eventType,\n consumer_type: activationTypeValues.consumer_type || NotAttributed,\n cycle_or_journey: activationTypeValues.cycle_or_journey || NotAttributed,\n media,\n activation_type: formValue.activationType,\n objective: activationTypeValues.objective || NotAttributed,\n url_state,\n created_date,\n updated_date,\n communication: activationTypeValues.communication || NotAttributed,\n stage: activationTypeValues.stage || NotAttributed,\n }\n }\n\n public populateMediaForm(\n form: UntypedFormGroup,\n sourceCampaign: ICampaign,\n enginesResources: any,\n ): void {\n let engine = this.resolveEngineValue(\n enginesResources,\n sourceCampaign.engine,\n )\n const hasActivationTypeChanged = sourceCampaign.activation_type !== ActivationType.MEDIA;\n\n const mediaFormValues: IMediaForm = {\n channel: hasActivationTypeChanged ? undefined : sourceCampaign.channel,\n format: sourceCampaign.format,\n funnel: hasActivationTypeChanged ? undefined : sourceCampaign.funnel,\n campaignLinkRedirection: sourceCampaign.campaign_link_redirection,\n fundingSource: sourceCampaign.funding_source,\n engine: engine.engine,\n engineFree: engine.engineFree,\n buyingMethod: sourceCampaign.buying_method,\n campaignType: hasActivationTypeChanged ? undefined : sourceCampaign.campaign_type,\n }\n\n form.patchValue(mediaFormValues)\n }\n\n public populateCrmForm(form: UntypedFormGroup, sourceCampaign: ICampaign): void {\n const hasActivationTypeChanged = sourceCampaign.activation_type !== ActivationType.CRM;\n\n // Warning attribute orders important to follow changes\n const crmFormValues: ICrmForm = {\n objective: sourceCampaign.objective,\n funnel: hasActivationTypeChanged ? undefined : sourceCampaign.funnel,\n campaignLinkRedirection: sourceCampaign.campaign_link_redirection,\n fundingSource: sourceCampaign.funding_source,\n\n consumerType: sourceCampaign.consumer_type,\n stage: sourceCampaign.stage,\n cycleOrJourney: sourceCampaign.cycle_or_journey,\n communication: sourceCampaign.communication,\n campaignType: hasActivationTypeChanged ? undefined : sourceCampaign.campaign_type,\n channel: hasActivationTypeChanged ? undefined : sourceCampaign.channel,\n }\n\n form.patchValue(crmFormValues)\n }\n\n public populateProductForm(form: UntypedFormGroup, sourceCampaign: ICampaign): void {\n form.patchValue({\n productLine: sourceCampaign.product_line,\n family: sourceCampaign.family,\n subFamily: sourceCampaign.sub_family,\n })\n }\n\n private resolveValuesByActivationType(\n activationType: ActivationType,\n formValue: ICampaignForm,\n ): Partial {\n if (activationType === ActivationType.CRM) {\n \n return {\n campaign_link_redirection: formValue[FormName.CRM].campaignLinkRedirection,\n campaign_type: formValue[FormName.CRM].campaignType,\n channel: formValue[FormName.CRM].channel,\n communication: formValue[FormName.CRM].communication,\n consumer_type: formValue[FormName.CRM].consumerType,\n cycle_or_journey: formValue[FormName.CRM].cycleOrJourney,\n funding_source: formValue[FormName.CRM].fundingSource,\n funnel: formValue[FormName.CRM].funnel,\n objective: formValue[FormName.CRM].objective,\n stage: formValue[FormName.CRM].stage,\n }\n } else {\n return {\n buying_method: formValue[FormName.MEDIA].buyingMethod,\n campaign_link_redirection: formValue[FormName.MEDIA].campaignLinkRedirection,\n campaign_type: formValue[FormName.MEDIA].campaignType,\n channel: formValue[FormName.MEDIA].channel,\n engine: formValue[FormName.MEDIA].engine,\n format: formValue[FormName.MEDIA].format,\n funding_source: formValue[FormName.MEDIA].fundingSource,\n funnel: formValue[FormName.MEDIA].funnel,\n }\n }\n }\n\n private setEngineValue(\n activationType: ActivationType,\n formValue: ICampaignForm,\n ): string {\n if (activationType === ActivationType.MEDIA) {\n return !!formValue.mediaType.engineFree\n ? formValue.mediaType.engineFree\n : formValue.mediaType.engine\n }\n return '.NSE'\n }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { NotificationService } from '@core/services/notification.service';\nimport { environment } from '@environment/environment';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, retry, tap, shareReplay } from 'rxjs/operators';\nimport { ICampaignUrl } from '../models/campaign-url.model';\nimport { ICampaign, ICampaignSearchParams } from '../models/campaign.model';\nimport { ActivationType } from '@core/enums';\n@Injectable({\n providedIn: 'root',\n})\n\nexport class CampaignService {\n\n constructor(\n private http: HttpClient,\n private readonly notificationService: NotificationService,\n\n ) {}\n\n httpOptions = {\n headers: new HttpHeaders({ 'Content-Type': 'application/json'}),\n params: new HttpParams()\n };\n\n path = environment.APIEndPoint\n\n\n // Get campaigns\n // \n public getCampaigns(param?: any): Observable {\n let path = `${this.path}/campaigns`;\n if (param.markets) {\n path = `${this.path}/campaigns?markets=${param.markets}`;\n }\n if (param.owner) {\n path = `${this.path}/campaigns?owner=${param.owner}`;\n }\n return this.http\n .get(path, this.httpOptions)\n .pipe(\n retry(3),\n catchError(this.handleError('get campaigns', [])),\n\n map(res => {\n return res\n })\n ) \n }\n\n public searchCampaigns(searchParams?: ICampaignSearchParams): Observable {\n const path = `${this.path}/campaigns`;\n return this.http\n .post(path, searchParams ,this.httpOptions)\n .pipe(\n catchError(this.handleError('search campaigns', [])),\n )\n }\n\n // Get single campaign\n public getCampaign(id: string): Observable {\n const path = `${this.path}/campaign?campaignId=${id}`;\n return this.http\n .get(path, this.httpOptions)\n .pipe(catchError(this.handleError('get campaign', [])));\n }\n\n // Create campaign\n public createCampaign(campaign: ICampaign): Observable {\n const path = `${this.path}/campaign`;\n return this.http.post(path, campaign, this.httpOptions).pipe(\n tap((newCampaign: any) =>\n this.notificationService.success(`new campaign created : ${newCampaign.Item.id}`)\n\n ),\n catchError(this.handleError('create campaign', campaign))\n );\n }\n // Update campaign\n public updateCampaign(campaign: ICampaign): Observable {\n const path = `${this.path}/campaign`;\n return this.http\n .put(path, campaign, this.httpOptions)\n .pipe(\n tap((updatedCampaign: any) => {\n this.notificationService.success(`campaign updated : ${updatedCampaign.Item.id}`)\n\n }),\n catchError(this.handleError('update campaign', []))\n );\n }\n\n // Delete campaign\n public deleteCampaign(id: number): Observable {\n const path = `${this.path}/campaign?campaignId=${id}`;\n return this.http\n .delete(path, this.httpOptions)\n .pipe(\n shareReplay(),\n catchError(this.handleError('delete campaign', [])));\n }\n\n /**\n * Generate url \n * @param {ICampaign} c - campaign\n * @returns urls object { shortUrl: string, fullUrl: string}\n */\n public generateCampaignUrl(c: ICampaign): ICampaignUrl {\n let xSmallUrl: string;\n let shortUrl: string;\n let fullUrl: string;\n if (c.activation_type === ActivationType.MEDIA) {\n xSmallUrl = `${c.id}_${c.channel}_${c.format}_${c.optional}`;\n shortUrl = `${c.id}_${c.market}_${c.brand}_${c.product_line}_${c.family}_${c.sub_family}_${c.funnel}_${c.channel}_${c.format}`;\n fullUrl = `${c.id}_${c.market}_${c.language}_${c.brand}_${c.product_line}_${c.family}_${c.sub_family}_${c.funnel}_${c.channel}_${c.format}_${c.duration_type}_${c.start_month}_${c.campaign_link_redirection}_${c.engine}_${c.buying_method}_${c.campaign_type}_${c.optional}_${c.event_type}_${c.funding_source}`;\n }\n if (c.activation_type === ActivationType.CRM) {\n xSmallUrl = `${c.id}_${c.channel}_${c.optional}`;\n shortUrl = `${c.id}_${c.market}_${c.brand}_${c.product_line}_${c.family}_${c.sub_family}_${c.event_type}_${c.stage}_${c.cycle_or_journey}_${c.communication}_${c.campaign_type}_${c.objective}`;\n fullUrl = `${c.id}_${c.market}_${c.language}_${c.brand}_${c.product_line}_${c.family}_${c.sub_family}_${c.event_type}_${c.stage}_${c.cycle_or_journey}_${c.communication}_${c.campaign_type}_${c.objective}_${c.channel}_${c.consumer_type}_${c.campaign_link_redirection}_${c.duration_type}_${c.start_month}_${c.optional}_${c.funding_source}`;\n }\n return { xSmallUrl, shortUrl, fullUrl };\n }\n\n /**********************************\n *\n * PRIVATE METHODS\n *\n **********************************/\n\n /** Log a CampaignService message with the MessageService */\n private log(message: string) {\n // this.messageService.add(`CampaignService: ${message}`);\n console.error('message: ', message);\n }\n\n /**\n * Handle Http operation that failed.\n * Let the app continue.\n * @param operation - name of the operation that failed\n * @param result - optional value to return as the observable result\n */\n private handleError(operation = 'operation', result?: T) {\n return (error: any): Observable => {\n this.log(`${operation} failed: ${error.message}`);\n this.notificationService.error(`Something went wrong ... ${operation} failed! Please retry`);\n // Let the app keep running by returning an empty result.\n return of(result as T);\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\n\nimport {\n DateAdapter,\n MAT_DATE_FORMATS,\n MAT_DATE_LOCALE,\n} from '@angular/material/core';\n\nconst MY_FORMATS = {\n parse: {\n dateInput: 'MM/YYYY',\n },\n display: {\n dateInput: 'MM/YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY',\n\n },\n};\nconst materialModules = [\n MatIconModule,\n MatButtonModule,\n MatCheckboxModule,\n MatDatepickerModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatRadioModule,\n MatSelectModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTooltipModule,\n MatCardModule,\n MatNativeDateModule,\n MatDividerModule,\n MatExpansionModule,\n MatSlideToggleModule,\n MatProgressSpinnerModule,\n MatMenuModule,\n MatPaginatorModule,\n];\n\n@NgModule({\n imports: [CommonModule, ...materialModules],\n exports: [...materialModules],\n\n})\nexport class MaterialModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotFoundPageComponent } from '../not-found-page/not-found-page.component';\nimport { CampaignCreatePageComponent } from './campaign-create-page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CampaignCreatePageComponent,\n },\n {\n path: '**',\n component: NotFoundPageComponent\n }\n]\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [RouterModule]\n })\n export class CampaignCreatePageRoutingModule { }","import { Component } from '@angular/core';\nimport { FormMode } from '../../core/enums/form-mode.enum';\n\n\n@Component({\n selector: 'app-campaign-create-page',\n templateUrl: './campaign-create-page.component.html',\n styleUrls: ['./campaign-create-page.component.scss'],\n})\nexport class CampaignCreatePageComponent {\n\n public formMode = FormMode\n\n}\n","Campaign Naming Builder\n\n
\n \n
","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CampaignsModule } from '@features/campaigns/campaigns.module';\nimport { CampaignUrlDialogComponent } from '@features/campaigns/components/campaign-url-dialog/campaign-url-dialog.component';\nimport { SharedModule } from '@shared/shared.module';\nimport { CampaignCreatePageRoutingModule } from './campaign-create-page-routing.module';\nimport { CampaignCreatePageComponent } from './campaign-create-page.component';\n\n\n\n@NgModule({\n declarations: [CampaignCreatePageComponent],\n imports: [\n CommonModule,\n CampaignCreatePageRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n CampaignsModule,\n SharedModule\n ]\n})\nexport class CampaignCreatePageModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotFoundPageComponent } from '../not-found-page/not-found-page.component';\nimport { CampaignDuplicatePageComponent } from './campaign-duplicate-page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CampaignDuplicatePageComponent,\n children: [\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n ],\n },\n {\n path: '**',\n component: NotFoundPageComponent\n }\n]\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [RouterModule]\n })\n export class CampaignDuplicatePageRoutingModule { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-campaign-duplicate-page',\n templateUrl: './campaign-duplicate-page.component.html',\n styleUrls: ['./campaign-duplicate-page.component.scss']\n})\nexport class CampaignDuplicatePageComponent {\n}","Duplicate Campaign Url\n
\n \n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CampaignsModule } from '@features/campaigns/campaigns.module';\nimport { SharedModule } from '@shared/shared.module';\nimport { CampaignDuplicatePageRoutingModule } from './campaign-duplicate-page-routing.module';\nimport { CampaignDuplicatePageComponent } from './campaign-duplicate-page.component';\n\n\n@NgModule({\n declarations: [CampaignDuplicatePageComponent],\n imports: [\n CommonModule,\n CampaignDuplicatePageRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n CampaignsModule,\n SharedModule\n ]\n})\nexport class CampaignDuplicateModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotFoundPageComponent } from '../not-found-page/not-found-page.component';\nimport { CampaignListPageComponent } from './campaign-list-page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CampaignListPageComponent,\n children: [\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n ],\n },\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class CampaignListPageRoutingModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-campaign-list-page',\n templateUrl: './campaign-list-page.component.html',\n styleUrls: ['./campaign-list-page.component.scss']\n})\nexport class CampaignListPageComponent {\n}\n","Campaigns Follow-up\n\n
\n \n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CampaignListPageComponent } from './campaign-list-page.component';\nimport { CampaignListPageRoutingModule } from './campaign-list-page-routing.module';\nimport { CampaignsModule } from '@features/campaigns/campaigns.module';\nimport { SharedModule } from '@shared/shared.module';\n\n\n\n@NgModule({\n declarations: [CampaignListPageComponent],\n imports: [\n CommonModule,\n CampaignListPageRoutingModule,\n CampaignsModule,\n SharedModule\n ]\n})\nexport class CampaignListModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotFoundPageComponent } from '../not-found-page/not-found-page.component';\nimport { CampaignUpdatePageComponent } from './campaign-update-page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: CampaignUpdatePageComponent,\n children: [\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n ],\n },\n {\n path: '**',\n component: NotFoundPageComponent\n }\n]\n\n@NgModule({\n imports: [\n RouterModule.forChild(routes)\n ],\n exports: [RouterModule]\n })\n export class CampaignUpdatePageRoutingModule { }","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-campaign-update-page',\n templateUrl: './campaign-update-page.component.html',\n styleUrls: ['./campaign-update-page.component.scss']\n})\nexport class CampaignUpdatePageComponent {\n}\n","Modify Campaign Url\n
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CampaignsModule } from '@features/campaigns/campaigns.module';\nimport { SharedModule } from '@shared/shared.module';\nimport { CampaignUpdatePageRoutingModule } from './campaign-update-page-routing.module';\nimport { CampaignUpdatePageComponent } from './campaign-update-page.component';\n\n@NgModule({\n declarations: [CampaignUpdatePageComponent],\n imports: [\n CommonModule,\n CampaignUpdatePageRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n CampaignsModule,\n SharedModule\n ]\n})\nexport class CampaignUpdateModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-not-found-page',\n templateUrl: './not-found-page.component.html',\n styleUrls: ['./not-found-page.component.scss']\n})\nexport class NotFoundPageComponent {\n}\n","404 Not Found\n\n
\n

Page you are looking for does not exist! !

\n
\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { NotFoundPageComponent } from '../not-found-page/not-found-page.component';\nimport { SigninPageComponent } from './signin-page.component';\n\nconst routes: Routes = [\n {\n path: '',\n component: SigninPageComponent,\n children: [\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n ],\n },\n {\n path: '**',\n component: NotFoundPageComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class SigninPageRoutingModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { FormMode } from '@core/enums';\nimport { UserService } from '@core/services/user.service'\n\n@Component({\n selector: 'app-signin-page',\n templateUrl: './signin-page.component.html',\n styleUrls: ['./signin-page.component.scss']\n})\nexport class SigninPageComponent implements OnInit {\n\n isLoading = true;\n\n constructor(\n private readonly userService: UserService,\n private readonly router: Router,\n ) {\n }\n\n ngOnInit(): void {\n if (this.userService.userToken) {\n this.router.navigate(['campaigns', FormMode.CREATE])\n this.isLoading = false\n }\n setTimeout(() => {\n this.isLoading = false\n }, 3000);\n }\n\n}\n","Authentication\n
\n
\n
\n
\n info\n For new account creation, please contact your SEB referent\n
\n
\n \n
\n
\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SigninPageComponent } from './signin-page.component';\nimport { AuthModule } from '@features/auth/auth.module';\nimport { AmplifyAuthenticatorModule } from '@aws-amplify/ui-angular';\nimport { SigninPageRoutingModule } from './signin-page-routing.module';\nimport { SharedModule } from '@shared/shared.module';\nimport { MaterialModule } from 'src/app/material.module';\n\n\n\n@NgModule({\n declarations: [\n SigninPageComponent\n ],\n imports: [\n CommonModule,\n MaterialModule,\n SigninPageRoutingModule,\n AmplifyAuthenticatorModule,\n AuthModule,\n SharedModule\n ]\n})\nexport class SigninPageModule { }\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-golden-rules-dialog',\n templateUrl: './golden-rules-dialog.component.html',\n styleUrls: ['./golden-rules-dialog.component.scss']\n})\nexport class GoldenRulesDialogComponent {\n\n constructor(\n private readonly dialogRef: MatDialogRef,\n\n ) { }\n\n close(): void {\n this.dialogRef.close();\n }\n\n}\n","

Golden Rules

\n\n

\n A proper use of the Campaign Naming Builder is strategic and a pre-requisite\n for our analytics and the campaign dashboard automation:\n

\n
    \n
  • Try to do your best to define the right values in the various dropdown lists
  • \n
  • Never edit manually the string generated: copy and paste it into the activation tool “as is”
  • \n
  • Never reuse an old campaign naming string for a new campaign, always re-generate a campaign name for your activation campaign.
  • \n
  • If one of your product is absent from the list, please :\n
      \n
    • Set up the campaign using the sub-family is belonging to
    • \n
    • Or ask to add the product to the list if you consider the product as key => For information, only the products considered as the most strategic have been added to the « Product or Sub Family » dropdown list.
    • \n
    \n
  • \n\n
  • Always use the optional free text for any information you would like to keep or add in the campaign naming
  • \n
\n

In case of any doubt or question regarding this tool, please contact your continental or central lead or GSEB internal referent (fctis_support_datamarketing@groupeseb.com)

\n
\n\n \n\n","import { Component, Input } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Router } from '@angular/router';\nimport { UserService } from '@core/services/user.service';\nimport { GoldenRulesDialogComponent } from '@shared/golden-rules-dialog/golden-rules-dialog.component';\nimport { Auth } from 'aws-amplify';\nimport { FormMode } from '../../core/enums/form-mode.enum';\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent {\n\n // TODO: enum\n // signin/create/followup/modify/detail\n @Input() page: string;\n\n constructor(\n private readonly router: Router,\n public dialog: MatDialog,\n private userService: UserService,\n\n ) { }\n\n public onFolloWUp(): void {\n this.router.navigate(['campaigns'])\n }\n\n public onBackToHomePage(): void {\n this.router.navigate(['campaigns', FormMode.CREATE])\n }\n\n public onSignOut(): void {\n Auth.signOut().then(() => {\n this.userService.logout()\n this.router.navigate(['signin'])\n })\n }\n\n public onOpenGoldenRules(): void {\n // open dialog\n this.dialog.open(GoldenRulesDialogComponent, {\n panelClass: 'generated-url-dialog-container', \n disableClose: true,\n })\n }\n\n\n}\n","
\n
\n
\n \"logo-seb\"\n
\n
\n
\n \n \n \n
\n
\n\n\n
\n
\n \n
\n\n
\n \n
\n \n
\n\n
\n \n help_outline\n \n \n \n \n \n \n \n \n
\n
\n
\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n styleUrls: ['./loader.component.scss']\n})\n\nexport class LoaderComponent {\n}\n","
\n \n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MaterialModule } from '../material.module';\nimport { HeaderComponent } from './header/header.component';\nimport { GoldenRulesDialogComponent } from './golden-rules-dialog/golden-rules-dialog.component';\nimport { LoaderComponent } from './loader/loader.component';\n\n@NgModule({\n declarations: [HeaderComponent, GoldenRulesDialogComponent, LoaderComponent],\n imports: [\n CommonModule,\n MaterialModule,\n ],\n exports: [\n HeaderComponent,\n GoldenRulesDialogComponent,\n LoaderComponent\n ]\n})\nexport class SharedModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n APIEndPoint: 'https://i73e6hd34e.execute-api.eu-west-1.amazonaws.com/dev'\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nimport 'zone.js';\n\nif (environment.production) {\n enableProdMode();\n}\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n","/* (ignored) */"],"names":["awsmobile","Auth","StorageKey","UserService","constructor","getUserToken","user","currentAuthenticatedUser","token","getSignInUserSession","getIdToken","getJwtToken","getLoggedUser","loggedUser","logout","localStorage","removeItem","IDENTITY","USER_TOKEN","value","setItem","JSON","stringify","parse","getItem","userToken","undefined","getUserMarket","attributes","getUserEmail","email","factory","providedIn","AuthService","isLoggedIn","payload","atob","split","parsePayload","exp","Date","now","getCurrentSession","currentSession"],"sourceRoot":"webpack:///","x_google_ignoreList":[81]}