{"version":3,"sources":["node_modules/@vendasta/api-gateway/fesm2020/vendasta-api-gateway.mjs","apps/business-center-client/src/app/social-connections/social-connections.service.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n  'local': 'api-gateway-api.vendasta-local.com',\n  'test': '',\n  'demo': 'api-gateway-demo.apigateway.co',\n  'prod': 'api-gateway-prod.apigateway.co',\n  'production': 'api-gateway-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n  class HostService {\n    get host() {\n      return hostMap[environment.toLowerCase()];\n    }\n    get hostWithScheme() {\n      return 'https://' + this.host;\n    }\n  }\n  HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || HostService)();\n  };\n  HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: HostService,\n    factory: HostService.ɵfac,\n    providedIn: 'root'\n  });\n  return HostService;\n})();\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass IntegrationConnectionRequestDataEntry {\n  static fromProto(proto) {\n    let m = new IntegrationConnectionRequestDataEntry();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.key !== 'undefined') {\n      toReturn['key'] = this.key;\n    }\n    if (typeof this.value !== 'undefined') {\n      toReturn['value'] = this.value;\n    }\n    return toReturn;\n  }\n}\nclass IntegrationConnectionResponseDataEntry {\n  static fromProto(proto) {\n    let m = new IntegrationConnectionResponseDataEntry();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.key !== 'undefined') {\n      toReturn['key'] = this.key;\n    }\n    if (typeof this.value !== 'undefined') {\n      toReturn['value'] = this.value;\n    }\n    return toReturn;\n  }\n}\nclass IntegrationConnectionRequest {\n  static fromProto(proto) {\n    let m = new IntegrationConnectionRequest();\n    m = Object.assign(m, proto);\n    if (proto.data) {\n      m.data = Object.keys(proto.data).reduce((obj, k) => {\n        obj[k] = proto.data[k];\n        return obj;\n      }, {});\n    }\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.connectionId !== 'undefined') {\n      toReturn['connectionId'] = this.connectionId;\n    }\n    if (typeof this.namespace !== 'undefined') {\n      toReturn['namespace'] = this.namespace;\n    }\n    if (typeof this.integrationName !== 'undefined') {\n      toReturn['integrationName'] = this.integrationName;\n    }\n    if (typeof this.data !== 'undefined' && this.data !== null) {\n      toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n    }\n    return toReturn;\n  }\n}\nclass IntegrationConnectionResponse {\n  static fromProto(proto) {\n    let m = new IntegrationConnectionResponse();\n    m = Object.assign(m, proto);\n    if (proto.data) {\n      m.data = Object.keys(proto.data).reduce((obj, k) => {\n        obj[k] = proto.data[k];\n        return obj;\n      }, {});\n    }\n    if (proto.lastAttempt) {\n      m.lastAttempt = new Date(proto.lastAttempt);\n    }\n    if (proto.lastSuccess) {\n      m.lastSuccess = new Date(proto.lastSuccess);\n    }\n    if (proto.lastDataReceived) {\n      m.lastDataReceived = new Date(proto.lastDataReceived);\n    }\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.connectionId !== 'undefined') {\n      toReturn['connectionId'] = this.connectionId;\n    }\n    if (typeof this.integrationName !== 'undefined') {\n      toReturn['integrationName'] = this.integrationName;\n    }\n    if (typeof this.namespace !== 'undefined') {\n      toReturn['namespace'] = this.namespace;\n    }\n    if (typeof this.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    if (typeof this.environment !== 'undefined') {\n      toReturn['environment'] = this.environment;\n    }\n    if (typeof this.status !== 'undefined') {\n      toReturn['status'] = this.status;\n    }\n    if (typeof this.data !== 'undefined' && this.data !== null) {\n      toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n    }\n    if (typeof this.lastAttempt !== 'undefined' && this.lastAttempt !== null) {\n      toReturn['lastAttempt'] = 'toApiJson' in this.lastAttempt ? this.lastAttempt.toApiJson() : this.lastAttempt;\n    }\n    if (typeof this.lastSuccess !== 'undefined' && this.lastSuccess !== null) {\n      toReturn['lastSuccess'] = 'toApiJson' in this.lastSuccess ? this.lastSuccess.toApiJson() : this.lastSuccess;\n    }\n    if (typeof this.lastDataReceived !== 'undefined' && this.lastDataReceived !== null) {\n      toReturn['lastDataReceived'] = 'toApiJson' in this.lastDataReceived ? this.lastDataReceived.toApiJson() : this.lastDataReceived;\n    }\n    return toReturn;\n  }\n}\nclass IntegrationConnectionResponseList {\n  static fromProto(proto) {\n    let m = new IntegrationConnectionResponseList();\n    m = Object.assign(m, proto);\n    if (proto.connections) {\n      m.connections = proto.connections.map(IntegrationConnectionResponse.fromProto);\n    }\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.connections !== 'undefined' && this.connections !== null) {\n      toReturn['connections'] = 'toApiJson' in this.connections ? this.connections.toApiJson() : this.connections;\n    }\n    return toReturn;\n  }\n}\nclass NamespaceConnectionIDRequest {\n  static fromProto(proto) {\n    let m = new NamespaceConnectionIDRequest();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.namespace !== 'undefined') {\n      toReturn['namespace'] = this.namespace;\n    }\n    if (typeof this.connectionId !== 'undefined') {\n      toReturn['connectionId'] = this.connectionId;\n    }\n    return toReturn;\n  }\n}\nclass NamespaceIntegrationNameRequest {\n  static fromProto(proto) {\n    let m = new NamespaceIntegrationNameRequest();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.namespace !== 'undefined') {\n      toReturn['namespace'] = this.namespace;\n    }\n    if (typeof this.integrationName !== 'undefined') {\n      toReturn['integrationName'] = this.integrationName;\n    }\n    return toReturn;\n  }\n}\nclass NamespaceRequest {\n  static fromProto(proto) {\n    let m = new NamespaceRequest();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.namespace !== 'undefined') {\n      toReturn['namespace'] = this.namespace;\n    }\n    return toReturn;\n  }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet IntegrationConnectionApiService = /*#__PURE__*/(() => {\n  class IntegrationConnectionApiService {\n    constructor(http, hostService) {\n      this.http = http;\n      this.hostService = hostService;\n      this._host = this.hostService.hostWithScheme;\n    }\n    apiOptions() {\n      return {\n        headers: new HttpHeaders({\n          'Content-Type': 'application/json'\n        }),\n        withCredentials: true\n      };\n    }\n    create(r) {\n      const request = r.toApiJson ? r : new IntegrationConnectionRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IntegrationConnectionResponse.fromProto(resp)));\n    }\n    get(r) {\n      const request = r.toApiJson ? r : new NamespaceConnectionIDRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IntegrationConnectionResponse.fromProto(resp)));\n    }\n    getMultiByNamespace(r) {\n      const request = r.toApiJson ? r : new NamespaceRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/GetMultiByNamespace\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IntegrationConnectionResponseList.fromProto(resp)));\n    }\n    getMultiByNamespaceAndIntegration(r) {\n      const request = r.toApiJson ? r : new NamespaceIntegrationNameRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/GetMultiByNamespaceAndIntegration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IntegrationConnectionResponseList.fromProto(resp)));\n    }\n    update(r) {\n      const request = r.toApiJson ? r : new IntegrationConnectionRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/Update\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IntegrationConnectionResponse.fromProto(resp)));\n    }\n    delete(r) {\n      const request = r.toApiJson ? r : new NamespaceConnectionIDRequest(r);\n      return this.http.post(this._host + \"/api_gateway.v1.IntegrationConnectionService/Delete\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n  }\n  IntegrationConnectionApiService.ɵfac = function IntegrationConnectionApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || IntegrationConnectionApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n  };\n  IntegrationConnectionApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: IntegrationConnectionApiService,\n    factory: IntegrationConnectionApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return IntegrationConnectionApiService;\n})();\n(() => {\n  (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { HostService, IntegrationConnectionApiService, IntegrationConnectionRequest, IntegrationConnectionRequestDataEntry, IntegrationConnectionResponse, IntegrationConnectionResponseDataEntry, IntegrationConnectionResponseList, NamespaceConnectionIDRequest, NamespaceIntegrationNameRequest, NamespaceRequest };\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n  IntegrationConnectionApiService,\n  IntegrationConnectionRequest,\n  IntegrationConnectionResponse,\n  IntegrationConnectionResponseList,\n  NamespaceConnectionIDRequest,\n  NamespaceIntegrationNameRequest,\n} from '@vendasta/api-gateway';\nimport {\n  Category,\n  ConnectedProperty,\n  DeletePropertyRequest,\n  GA4PropertiesApiService,\n  GetAvailablePropertiesRequest,\n  SetPropertyMultiRequest,\n} from '@vendasta/google-analytics';\nimport { QuickBooksService } from '@vendasta/quickbooks';\nimport {\n  BehaviorSubject,\n  catchError,\n  EMPTY,\n  expand,\n  map,\n  Observable,\n  of,\n  reduce,\n  shareReplay,\n  switchMap,\n  tap,\n} from 'rxjs';\nimport { AccountGroupService } from '../account-group';\nimport { AuthService } from '../auth.service';\nimport { GA4View, GAView, SocialPage } from './interface';\nimport {\n  ConnectionsService,\n  GetConnectionsResponseInterface,\n  GetConnectionsInfoResponseInterface,\n  ConnectionInterface,\n} from '@vendasta/business-center';\n\nconst googleSearchConsoleURL = {\n  availableSitesV2: '/ajax/v2/google-search-console/get-available-sites/',\n  connectSiteV2: '/ajax/v2/google-search-console/connect-site/',\n};\n\nexport interface SocialConnectionLinks {\n  facebook: string;\n  googleplus: string;\n  linkedin: string;\n  twitter: string;\n  googleAnalytics: string;\n  googleAnalyticsGA4: string;\n  zoom: string;\n  google_meet: string;\n  quickbooks: string;\n  googleSearchConsole: string;\n  gingr: string;\n}\n\ninterface AccountMeta {\n  accounts: SocialPage[];\n  cursor: string;\n}\n\nexport interface SocialPageMeta {\n  clientTags: string[];\n  deleteUrl: string;\n  isVerified: boolean;\n  name: string;\n  pages: SocialPageMeta[];\n  ssid: string;\n  tokenIsBroken: boolean;\n  type: string;\n  locationId: string;\n  mapsUri: string;\n}\n\nexport interface SocialConnections {\n  facebook: SocialPageMeta[];\n  google_my_business: SocialPageMeta[];\n  google_analytics: SocialPageMeta[];\n  google_analyticsGA4: SocialPageMeta[];\n  zoom: SocialPageMeta[];\n  google_meet: SocialPageMeta[];\n  quickbooks: SocialPageMeta[];\n  google_search_console: SocialPageMeta[];\n  gingr: SocialPageMeta[];\n}\n\nexport interface SocialConnectionsInfo {\n  facebook: boolean;\n  instagram: boolean;\n  linkedin: boolean;\n  twitter: boolean;\n}\ntype pageResponse = any[];\n\n@Injectable({ providedIn: 'root' })\nexport class SocialConnectionsService {\n  pagesForAccount: Map<string, AccountMeta> = new Map();\n\n  private pages$$ = new BehaviorSubject<SocialPage[]>([]);\n  readonly pages$ = this.pages$$.asObservable();\n  private loadingPages$$ = new BehaviorSubject<boolean>(false);\n  readonly loadingPages$ = this.loadingPages$$.asObservable();\n  private pagesCursor$$ = new BehaviorSubject<string>('');\n  readonly pagesCursor$ = this.pagesCursor$$.asObservable();\n  private accountsCursor$$ = new BehaviorSubject<string>('');\n  readonly accountsCursor$ = this.accountsCursor$$.asObservable();\n  private accounts$$ = new BehaviorSubject<SocialPage[]>([]);\n  readonly accounts$ = this.accounts$$.asObservable();\n  private loadingAccounts$$ = new BehaviorSubject<boolean>(false);\n  readonly loadingAccounts$ = this.loadingAccounts$$.asObservable();\n  private views$$: BehaviorSubject<GAView[]> = new BehaviorSubject<GAView[]>([]);\n  readonly views$: Observable<GAView[]> = this.views$$.asObservable();\n  private GA4views$$: BehaviorSubject<GA4View[]> = new BehaviorSubject<GA4View[]>([]);\n  readonly GA4views$: Observable<GA4View[]> = this.GA4views$$.asObservable();\n\n  private sites$$: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\n  readonly sites$: Observable<string[]> = this.sites$$.asObservable();\n\n  socialProfileConnections$ = this.accountGroupService.currentAccountGroup$.pipe(\n    switchMap((accountGroup) => this.getSocialProfileConnections(accountGroup.accountGroupId)),\n    shareReplay({ refCount: true, bufferSize: 1 }),\n  );\n\n  socialProfileConnectionsInfo$ = this.accountGroupService.currentAccountGroup$.pipe(\n    switchMap((accountGroup) => this.getSocialProfileConnectionsInfo(accountGroup.accountGroupId)),\n    shareReplay({ refCount: true, bufferSize: 1 }),\n  );\n\n  gmbConnected$ = this.socialProfileConnections$.pipe(\n    map((connections) => connections?.google_my_business?.length > 0),\n  );\n\n  googleAnalyticsConnectedGA4$ = this.socialProfileConnections$.pipe(\n    map((connections) => connections?.google_analyticsGA4?.length > 0),\n  );\n\n  facebookConnected$ = this.socialProfileConnections$.pipe(\n    map((connections) => {\n      return !!connections.facebook?.some((connection) => connection?.pages?.length > 0);\n    }),\n  );\n\n  quickbooksConnectedCompany$ = this.accountGroupService.currentAccountGroupId$.pipe(\n    switchMap((agid) => this.quickBooksService.getConnectedCompany(agid, this.authService.userId())),\n    catchError((err) => {\n      if (err.status >= 500) {\n        console.error(this.translateService.instant('SOCIAL_CONNECTIONS.QUICKBOOKS.LOADING_ERROR'));\n      }\n      return of(null);\n    }),\n    shareReplay({ refCount: true, bufferSize: 1 }),\n  );\n\n  noGaViews$$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  noGaViews$ = this.noGaViews$$.asObservable();\n\n  constructor(\n    private http: HttpClient,\n    private accountGroupService: AccountGroupService,\n    private connectionsService: ConnectionsService,\n    private readonly environment: EnvironmentService,\n    private quickBooksService: QuickBooksService,\n    private translateService: TranslateService,\n    private ga: GA4PropertiesApiService,\n    private integrationConnectionApiService: IntegrationConnectionApiService,\n    private authService: AuthService,\n  ) {}\n\n  getAuthUrls(accountGroupId: string, nextUrl: Location): Observable<SocialConnectionLinks> {\n    let newUrl = nextUrl.href;\n    const urlParts = nextUrl.pathname.split('/');\n    urlParts.forEach((part) => {\n      if (part.startsWith('AG-')) {\n        newUrl = newUrl.replace(part, accountGroupId);\n      }\n    });\n    return this.http\n      .get<{ data: SocialConnectionLinks }>('/ajax/v1/get-auth-urls/', {\n        params: {\n          accountGroupId: accountGroupId,\n          nextUrl: newUrl,\n        },\n      })\n      .pipe(\n        map((response) => {\n          return response.data;\n        }),\n      );\n  }\n\n  getSocialProfileConnections(accountGroupId: string): Observable<SocialConnections> {\n    return this.connectionsService.getConnections(accountGroupId).pipe(\n      map((r: GetConnectionsResponseInterface) => getConnectionsResponseInterfaceToSocialConnections(r)),\n      catchError(() => of({} as SocialConnections)),\n      shareReplay({ refCount: true, bufferSize: 1 }),\n    );\n  }\n\n  getSocialProfileConnectionsInfo(accountGroupId: string): Observable<SocialConnectionsInfo> {\n    return this.connectionsService.getConnectionsInfo(accountGroupId).pipe(\n      map((r: GetConnectionsInfoResponseInterface) => {\n        return {\n          facebook: r.connectionInfo?.facebook,\n          instagram: r.connectionInfo?.instagram,\n          linkedin: r.connectionInfo?.linkedin,\n          twitter: r.connectionInfo?.twitter,\n        };\n      }),\n      catchError(() => of({} as SocialConnectionsInfo)),\n      shareReplay({ refCount: true, bufferSize: 1 }),\n    );\n  }\n\n  getSocialAccountInformation(\n    accountGroupId: string,\n    serviceUserId: string,\n    type: string,\n    cursor?: string,\n    accountId?: string,\n  ): void {\n    this.loadingAccounts$$.next(true);\n    this.getSocialPageInformation(accountGroupId, serviceUserId, type, cursor, accountId).subscribe((response) => {\n      this.accountsCursor$$.next(response.cursor || '');\n      this.loadingAccounts$$.next(false);\n      this.accounts$$.next([...this.accounts$$.getValue(), ...response.pages]);\n    });\n  }\n\n  getSocialPageInformation(\n    accountGroupId: string,\n    serviceUserId: string,\n    type: string,\n    cursor?: string,\n    accountId?: string,\n  ): Observable<SocialPageResponse> {\n    return this.http\n      .get<VAPIResponse>('/ajax/v1/get-social-page-info/', {\n        params: {\n          accountGroupId,\n          serviceUserId,\n          type,\n          accountId,\n          nextCursor: cursor,\n        },\n      })\n      .pipe(\n        map(\n          (res): SocialPageResponse => ({\n            cursor: res.data.cursor,\n            pages: res.data.pages,\n          }),\n        ),\n      );\n  }\n\n  getAllSocialPageInformation(\n    accountGroupId: string,\n    serviceUserId: string,\n    type: string,\n    cursor?: string,\n    accountId?: string,\n  ): Observable<pageResponse> {\n    return this.getSocialPageInformation(accountGroupId, serviceUserId, type, cursor, accountId).pipe(\n      expand((response) => {\n        if (!response.cursor) {\n          return EMPTY;\n        } else {\n          return this.getSocialPageInformation(accountGroupId, serviceUserId, type, response.cursor, accountId);\n        }\n      }),\n      reduce((all, { pages }) => all.concat(pages), []),\n    );\n  }\n\n  connectSocialPage(accountGroupId: string, serviceUserId: string, type: string, pageId: string): Observable<any> {\n    return this.http\n      .post<any>(\n        '/ajax/v1/connect-social-page/',\n        {},\n        {\n          params: {\n            accountGroupId: accountGroupId,\n            serviceUserId: serviceUserId,\n            type: type,\n            pageId: pageId,\n          },\n        },\n      )\n      .pipe(map((response) => response));\n  }\n\n  deleteService(deleteUrl: string): Observable<VAPIResponse> {\n    return this.http.post<VAPIResponse>(deleteUrl, {});\n  }\n  // Google Analytics GA4 property deletion\n  deleteGA4Service(partnerId: string, accountGroupId: string, _propertyId: string): Observable<any> {\n    return this.ga.deleteProperty(\n      new DeletePropertyRequest({\n        partnerId: partnerId,\n        businessId: accountGroupId,\n        category: Category.CATEGORY_WEBSITE,\n        subcategory: 'CATEGORY_WEBSITE',\n      }),\n    );\n  }\n  // Google Analytics\n  buildGoogleAnalyticsAuthUrl(partnerId: string, accountGroupId: string): string {\n    // determine if the first query parameter needs an & or an ?\n    const queryParamCharacter = window.location.search ? '&' : '?';\n    // encode the URI\n    const returnUrl = encodeURIComponent(\n      window.location.href + queryParamCharacter + 'type=google-analytics' + `&message=VBC`,\n    );\n    const uri = `${this.googleAnalyticsHost()}/oauth/v1/auth-user`;\n    const uriEncodedParams = `partner_id=${partnerId}&business_id=${accountGroupId}&return_url=${returnUrl}`;\n    return `${uri}?${uriEncodedParams}`;\n  }\n\n  buildGoogleAnalyticsGA4AuthUrl(partnerId: string, accountGroupId: string): string {\n    // determine if the first query parameter needs an & or an ?\n    const queryParamCharacter = window.location.search ? '&' : '?';\n    // encode the URI\n    const returnUrl = encodeURIComponent(\n      window.location.href + queryParamCharacter + 'type=google-analyticsGA4' + `&message=VBC`,\n    );\n    const uri = `${this.googleAnalyticsHost()}/oauth/v1/auth-user`;\n    const uriEncodedParams = `partner_id=${partnerId}&business_id=${accountGroupId}&return_url=${returnUrl}`;\n    return `${uri}?${uriEncodedParams}`;\n  }\n  private googleAnalyticsHost(): string {\n    switch (this.environment.getEnvironment()) {\n      case Environment.LOCAL:\n        return 'http://localhost:11001';\n      case Environment.DEMO:\n        return 'https://google-analytics-api-demo.apigateway.co';\n      case Environment.PROD:\n        return 'https://google-analytics-api-prod.apigateway.co';\n    }\n    return 'https://google-analytics-api-demo.apigateway.co';\n  }\n\n  getPropertiesInformation(googleUserID: string): void {\n    this.loadingAccounts$$.next(true);\n    this.ga\n      .getAvailableProperties(new GetAvailablePropertiesRequest({ googleUserId: googleUserID }))\n      .pipe(\n        tap((response) => {\n          this.GA4views$$.next(response.properties ?? []);\n          this.loadingAccounts$$.next(false);\n        }),\n      )\n      .subscribe();\n  }\n\n  connectGA4Prop(\n    partnerId: string,\n    accountGroupId: string,\n    accountId: string,\n    propertyId: string,\n    gaUserId: string,\n    category: number,\n    subcategory: string,\n    propertyName: string,\n    accountName: string,\n  ): any {\n    const param: ConnectedProperty[] = [\n      new ConnectedProperty({\n        partnerId: partnerId,\n        businessId: accountGroupId,\n        category: Category.CATEGORY_WEBSITE,\n        subcategory: subcategory,\n        propertyId: propertyId,\n        propertyName: propertyName,\n        accountId: accountId,\n        accountName: accountName,\n        googleUserId: gaUserId,\n      }),\n    ];\n    this.ga\n      .setPropertyMulti(\n        new SetPropertyMultiRequest({\n          properties: param,\n        }),\n      )\n      .subscribe();\n  }\n  // Google Search Console\n  buildGoogleSearchConsoleAuthUrl(partnerId: string, accountGroupId: string): string {\n    // determine if the first query parameter needs an & or an ?\n    const queryParamCharacter = window.location.search ? '&' : '?';\n    // encode the URI\n    let newUrl = window.location.href;\n    const urlParts = window.location.pathname.split('/');\n    urlParts.forEach((part) => {\n      if (part.startsWith('AG-')) {\n        newUrl = newUrl.replace(part, accountGroupId);\n      }\n    });\n    const returnUrl = encodeURIComponent(newUrl + queryParamCharacter + 'type=google-search-console' + `&message=VBC`);\n    const uri = `${this.googleSearchConsoleHost()}/oauth/v1/auth-user`;\n    const uriEncodedParams = `partner_id=${partnerId}&business_id=${accountGroupId}&return_url=${returnUrl}`;\n    return `${uri}?${uriEncodedParams}`;\n  }\n\n  private googleSearchConsoleHost(): string {\n    switch (this.environment.getEnvironment()) {\n      case Environment.LOCAL:\n        return 'http://localhost:11001';\n      case Environment.DEMO:\n        return 'https://google-search-console-demo.apigateway.co';\n      case Environment.PROD:\n        return 'https://google-search-console-prod.apigateway.co';\n    }\n    return 'https://google-search-console-demo.apigateway.co';\n  }\n\n  gscGetSitesInformation(googleUserID: string): void {\n    this.loadingAccounts$$.next(true);\n    this.http\n      .get<VAPIResponse>(googleSearchConsoleURL.availableSitesV2, {\n        params: {\n          googleUserId: googleUserID,\n        },\n      })\n      .pipe(\n        tap((response) => {\n          this.sites$$.next(response.data);\n          this.loadingAccounts$$.next(false);\n        }),\n      )\n      .subscribe();\n  }\n  getIntegrationConnection(namespace: string, integrationName: string): Observable<IntegrationConnectionResponseList> {\n    return this.integrationConnectionApiService.getMultiByNamespaceAndIntegration(\n      new NamespaceIntegrationNameRequest({\n        namespace: namespace,\n        integrationName: integrationName,\n      }),\n    );\n  }\n\n  createIntegrationConnection(\n    namespace: string,\n    integrationName: string,\n    locationId: string,\n  ): Observable<IntegrationConnectionResponse> {\n    return this.integrationConnectionApiService.create(\n      new IntegrationConnectionRequest({\n        namespace: namespace,\n        integrationName: integrationName,\n        data: {\n          locationId: locationId,\n        },\n      }),\n    );\n  }\n\n  deleteIntegrationConnection(namespace: string, connectionId: string): Observable<HttpResponse<null>> {\n    return this.integrationConnectionApiService.delete(\n      new NamespaceConnectionIDRequest({\n        namespace: namespace,\n        connectionId: connectionId,\n      }),\n    );\n  }\n  updateIntegrationConnection(\n    namespace: string,\n    connectionId: string,\n    locationId: string,\n  ): Observable<IntegrationConnectionResponse> {\n    return this.integrationConnectionApiService.update(\n      new IntegrationConnectionRequest({\n        namespace: namespace,\n        connectionId: connectionId,\n        data: {\n          locationId: locationId,\n        },\n      }),\n    );\n  }\n  gscConnectSite(\n    partnerId: string,\n    accountGroupId: string,\n    googleUserId: string,\n    gscSiteUrl: string,\n  ): Observable<VAPIResponse> {\n    const params = {\n      partnerId: partnerId,\n      businessId: accountGroupId,\n      gscSiteUrl: gscSiteUrl,\n      googleUserId: googleUserId,\n    };\n    return this.http\n      .post<VAPIResponse>(\n        googleSearchConsoleURL.connectSiteV2,\n        {},\n        {\n          params: params,\n        },\n      )\n      .pipe(map((response) => response.data));\n  }\n}\n\nfunction getConnectionsResponseInterfaceToSocialConnections(r: GetConnectionsResponseInterface): SocialConnections {\n  if (!r.connections) {\n    return {} as SocialConnections;\n  }\n  return {\n    facebook: r.connections['facebook']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    google_my_business: r.connections['google_my_business']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    google_analytics: r.connections['google_analytics']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    google_analyticsGA4: r.connections['google_analyticsGA4']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    zoom: r.connections['zoom']?.connection?.map((page: ConnectionInterface) => connectionToSocialPageMeta(page)),\n    google_meet: r.connections['google_meet']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    quickbooks: r.connections['quickbooks']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    google_search_console: r.connections['google_search_console']?.connection?.map((page: ConnectionInterface) =>\n      connectionToSocialPageMeta(page),\n    ),\n    gingr: r.connections['gingr']?.connection?.map((page: ConnectionInterface) => connectionToSocialPageMeta(page)),\n  };\n}\n\nfunction connectionToSocialPageMeta(connection: ConnectionInterface): SocialPageMeta {\n  if (!connection) {\n    return null;\n  }\n  return {\n    clientTags: connection.clientTags,\n    deleteUrl: connection.deleteUrl,\n    isVerified: connection.isVerified,\n    name: connection.name,\n    pages: connection.pages?.map((page: SocialPageMeta) => connectionToSocialPageMeta(page)),\n    ssid: connection.ssid,\n    tokenIsBroken: connection.tokenIsBroken,\n    type: connection.type,\n    locationId: connection.locationId,\n    mapsUri: connection.mapsUri,\n  };\n}\n\nexport interface VAPIResponse {\n  data: any;\n  requestId: string;\n  responseTime: number;\n  statusCode: number;\n  version: string;\n}\nexport interface SocialPageResponse {\n  cursor?: string;\n  pages: any[];\n}\n"],"mappings":"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","names":["environment","hostMap","HostService","IntegrationConnectionRequest","IntegrationConnectionResponse","IntegrationConnectionResponseList","NamespaceConnectionIDRequest","NamespaceIntegrationNameRequest","NamespaceRequest","IntegrationConnectionApiService","init_vendasta_api_gateway","__esmMin","init_core","init_http","init_operators","__ngFactoryType__","ɵɵdefineInjectable","_IntegrationConnectionRequest","proto","m","obj","k","kwargs","toReturn","_IntegrationConnectionResponse","_IntegrationConnectionResponseList","_NamespaceConnectionIDRequest","_NamespaceIntegrationNameRequest","_NamespaceRequest","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","getConnectionsResponseInterfaceToSocialConnections","r","connections","facebook","connection","map","page","connectionToSocialPageMeta","google_my_business","google_analytics","google_analyticsGA4","zoom","google_meet","quickbooks","google_search_console","gingr","clientTags","deleteUrl","isVerified","name","pages","ssid","tokenIsBroken","type","locationId","mapsUri","googleSearchConsoleURL","SocialConnectionsService","init_social_connections_service","__esmMin","init_src","init_vendasta_api_gateway","init_vendasta_google_analytics","init_esm","availableSitesV2","connectSiteV2","constructor","http","accountGroupService","connectionsService","environment","quickBooksService","translateService","ga","integrationConnectionApiService","authService","pagesForAccount","Map","pages$$","BehaviorSubject","pages$","asObservable","loadingPages$$","loadingPages$","pagesCursor$$","pagesCursor$","accountsCursor$$","accountsCursor$","accounts$$","accounts$","loadingAccounts$$","loadingAccounts$","views$$","views$","GA4views$$","GA4views$","sites$$","sites$","socialProfileConnections$","currentAccountGroup$","pipe","switchMap","accountGroup","getSocialProfileConnections","accountGroupId","shareReplay","refCount","bufferSize","socialProfileConnectionsInfo$","getSocialProfileConnectionsInfo","gmbConnected$","length","googleAnalyticsConnectedGA4$","facebookConnected$","some","quickbooksConnectedCompany$","currentAccountGroupId$","agid","getConnectedCompany","userId","catchError","err","status","console","error","instant","of","noGaViews$$","noGaViews$","getAuthUrls","nextUrl","newUrl","href","urlParts","pathname","split","forEach","part","startsWith","replace","get","params","response","data","getConnections","getConnectionsInfo","connectionInfo","instagram","linkedin","twitter","getSocialAccountInformation","serviceUserId","cursor","accountId","next","getSocialPageInformation","subscribe","getValue","nextCursor","res","getAllSocialPageInformation","expand","EMPTY","reduce","all","concat","connectSocialPage","pageId","post","deleteService","deleteGA4Service","partnerId","_propertyId","deleteProperty","DeletePropertyRequest","businessId","category","Category","CATEGORY_WEBSITE","subcategory","buildGoogleAnalyticsAuthUrl","queryParamCharacter","window","location","search","returnUrl","encodeURIComponent","uri","googleAnalyticsHost","uriEncodedParams","buildGoogleAnalyticsGA4AuthUrl","getEnvironment","Environment","LOCAL","DEMO","PROD","getPropertiesInformation","googleUserID","getAvailableProperties","GetAvailablePropertiesRequest","googleUserId","tap","properties","connectGA4Prop","propertyId","gaUserId","propertyName","accountName","param","ConnectedProperty","setPropertyMulti","SetPropertyMultiRequest","buildGoogleSearchConsoleAuthUrl","googleSearchConsoleHost","gscGetSitesInformation","getIntegrationConnection","namespace","integrationName","getMultiByNamespaceAndIntegration","NamespaceIntegrationNameRequest","createIntegrationConnection","create","IntegrationConnectionRequest","deleteIntegrationConnection","connectionId","delete","NamespaceConnectionIDRequest","updateIntegrationConnection","update","gscConnectSite","gscSiteUrl","ɵɵinject","HttpClient","AccountGroupService","ConnectionsService","EnvironmentService","QuickBooksService","TranslateService","GA4PropertiesApiService","IntegrationConnectionApiService","AuthService","factory","ɵfac","providedIn"],"x_google_ignoreList":[0]}